diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-03-08 10:52:51 -0500 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-03-08 10:52:51 -0500 |
commit | f8f55976533ac3b77bb8d31697ba2f1e54a994c1 (patch) | |
tree | 59b4cd49e64af291b2fd0b22711174bfd79149fa /src/tracker_frame.h | |
parent | 5fe5bec92e86a4a94cddefec51fabc22212b7364 (diff) | |
download | lingo-ap-tracker-f8f55976533ac3b77bb8d31697ba2f1e54a994c1.tar.gz lingo-ap-tracker-f8f55976533ac3b77bb8d31697ba2f1e54a994c1.tar.bz2 lingo-ap-tracker-f8f55976533ac3b77bb8d31697ba2f1e54a994c1.zip |
Made indicator updates more fine-grained
Diffstat (limited to 'src/tracker_frame.h')
-rw-r--r-- | src/tracker_frame.h | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/src/tracker_frame.h b/src/tracker_frame.h index 4f1f464..ff18e49 100644 --- a/src/tracker_frame.h +++ b/src/tracker_frame.h | |||
@@ -9,6 +9,7 @@ | |||
9 | 9 | ||
10 | #include <memory> | 10 | #include <memory> |
11 | 11 | ||
12 | #include "ap_state.h" | ||
12 | #include "icons.h" | 13 | #include "icons.h" |
13 | #include "updater.h" | 14 | #include "updater.h" |
14 | 15 | ||
@@ -44,17 +45,33 @@ class ApConnectEvent : public wxEvent { | |||
44 | std::string ap_pass_; | 45 | std::string ap_pass_; |
45 | }; | 46 | }; |
46 | 47 | ||
48 | struct StateUpdate { | ||
49 | std::vector<ItemState> items; | ||
50 | std::vector<std::string> paintings; | ||
51 | bool achievements = false; | ||
52 | bool open_panels_tab = false; | ||
53 | bool cleared_locations = false; | ||
54 | bool player_position = false; | ||
55 | }; | ||
56 | |||
57 | class StateChangedEvent : public wxEvent { | ||
58 | public: | ||
59 | StateChangedEvent(wxEventType eventType, int winid, StateUpdate state) | ||
60 | : wxEvent(winid, eventType), state_(std::move(state)) {} | ||
61 | |||
62 | const StateUpdate &GetState() const { return state_; } | ||
63 | |||
64 | virtual wxEvent *Clone() const { return new StateChangedEvent(*this); } | ||
65 | |||
66 | private: | ||
67 | StateUpdate state_; | ||
68 | }; | ||
69 | |||
47 | wxDECLARE_EVENT(STATE_RESET, wxCommandEvent); | 70 | wxDECLARE_EVENT(STATE_RESET, wxCommandEvent); |
48 | wxDECLARE_EVENT(STATE_CHANGED, wxCommandEvent); | 71 | wxDECLARE_EVENT(STATE_CHANGED, StateChangedEvent); |
49 | wxDECLARE_EVENT(STATUS_CHANGED, wxCommandEvent); | 72 | wxDECLARE_EVENT(STATUS_CHANGED, wxCommandEvent); |
50 | wxDECLARE_EVENT(REDRAW_POSITION, wxCommandEvent); | ||
51 | wxDECLARE_EVENT(CONNECT_TO_AP, ApConnectEvent); | 73 | wxDECLARE_EVENT(CONNECT_TO_AP, ApConnectEvent); |
52 | 74 | ||
53 | enum UpdateIndicatorsMode { | ||
54 | kUPDATE_ALL_INDICATORS = 0, | ||
55 | kUPDATE_ONLY_PANELS = 1, | ||
56 | }; | ||
57 | |||
58 | class TrackerFrame : public wxFrame { | 75 | class TrackerFrame : public wxFrame { |
59 | public: | 76 | public: |
60 | TrackerFrame(); | 77 | TrackerFrame(); |
@@ -63,8 +80,7 @@ class TrackerFrame : public wxFrame { | |||
63 | void UpdateStatusMessage(); | 80 | void UpdateStatusMessage(); |
64 | 81 | ||
65 | void ResetIndicators(); | 82 | void ResetIndicators(); |
66 | void UpdateIndicators(UpdateIndicatorsMode mode = kUPDATE_ALL_INDICATORS); | 83 | void UpdateIndicators(StateUpdate state); |
67 | void RedrawPosition(); | ||
68 | 84 | ||
69 | private: | 85 | private: |
70 | void OnExit(wxCommandEvent &event); | 86 | void OnExit(wxCommandEvent &event); |
@@ -80,9 +96,8 @@ class TrackerFrame : public wxFrame { | |||
80 | void OnSashPositionChanged(wxSplitterEvent &event); | 96 | void OnSashPositionChanged(wxSplitterEvent &event); |
81 | 97 | ||
82 | void OnStateReset(wxCommandEvent &event); | 98 | void OnStateReset(wxCommandEvent &event); |
83 | void OnStateChanged(wxCommandEvent &event); | 99 | void OnStateChanged(StateChangedEvent &event); |
84 | void OnStatusChanged(wxCommandEvent &event); | 100 | void OnStatusChanged(wxCommandEvent &event); |
85 | void OnRedrawPosition(wxCommandEvent &event); | ||
86 | void OnConnectToAp(ApConnectEvent &event); | 101 | void OnConnectToAp(ApConnectEvent &event); |
87 | 102 | ||
88 | std::unique_ptr<Updater> updater_; | 103 | std::unique_ptr<Updater> updater_; |