#ifndef TRACKER_PANEL_H_D675A54D #define TRACKER_PANEL_H_D675A54D #include #ifndef WX_PRECOMP #include #endif #include #include #include class AreaPopup; class TrackerPanel : public wxPanel { public: TrackerPanel(wxWindow *parent); void UpdateIndicators(); void SetPanelsMode(); void SetSavedataPath(std::string savedata_path); bool IsPanelsMode() const { return panels_mode_; } const std::set &GetSolvedPanels() const { return solved_panels_; } private: struct AreaIndicator { int area_id = -1; AreaPopup *popup = nullptr; int real_x1 = 0; int real_y1 = 0; int real_x2 = 0; int real_y2 = 0; bool active = true; }; void OnPaint(wxPaintEvent &event); void OnMouseMove(wxMouseEvent &event); void OnRefreshSavedata(wxCommandEvent &event); void Redraw(); void RefreshSavedata(); wxImage map_image_; wxImage player_image_; wxBitmap rendered_; wxBitmap scaled_player_; int offset_x_ = 0; int offset_y_ = 0; double scale_x_ = 0; double scale_y_ = 0; std::vector areas_; bool panels_mode_ = false; std::optional savedata_path_; std::set solved_panels_; }; #endif /* end of include guard: TRACKER_PANEL_H_D675A54D */