#ifndef TRACKER_FRAME_H_86BD8DFB #define TRACKER_FRAME_H_86BD8DFB #include #ifndef WX_PRECOMP #include #endif class AchievementsPane; class SubwayMap; class TrackerPanel; class wxBookCtrlEvent; class wxNotebook; wxDECLARE_EVENT(STATE_RESET, wxCommandEvent); wxDECLARE_EVENT(STATE_CHANGED, wxCommandEvent); wxDECLARE_EVENT(STATUS_CHANGED, wxCommandEvent); wxDECLARE_EVENT(REDRAW_POSITION, wxCommandEvent); enum UpdateIndicatorsMode { kUPDATE_ALL_INDICATORS = 0, kUPDATE_ONLY_PANELS = 1, }; class TrackerFrame : public wxFrame { public: TrackerFrame(); void UpdateStatusMessage(); void ResetIndicators(); void UpdateIndicators(UpdateIndicatorsMode mode = kUPDATE_ALL_INDICATORS); void RedrawPosition(); private: void OnExit(wxCommandEvent &event); void OnAbout(wxCommandEvent &event); void OnConnect(wxCommandEvent &event); void OnSettings(wxCommandEvent &event); void OnCheckForUpdates(wxCommandEvent &event); void OnZoomIn(wxCommandEvent &event); void OnZoomOut(wxCommandEvent &event); void OnChangePage(wxBookCtrlEvent &event); void OnOpenFile(wxCommandEvent &event); void OnStateReset(wxCommandEvent &event); void OnStateChanged(wxCommandEvent &event); void OnStatusChanged(wxCommandEvent &event); void OnRedrawPosition(wxCommandEvent &event); void CheckForUpdates(bool manual); wxNotebook *notebook_; TrackerPanel *tracker_panel_; AchievementsPane *achievements_pane_; SubwayMap *subway_map_; TrackerPanel *panels_panel_ = nullptr; wxMenuItem *zoom_in_menu_item_; wxMenuItem *zoom_out_menu_item_; }; #endif /* end of include guard: TRACKER_FRAME_H_86BD8DFB */