diff options
Diffstat (limited to 'src/area_popup.h')
| -rw-r--r-- | src/area_popup.h | 25 |
1 files changed, 25 insertions, 0 deletions
| diff --git a/src/area_popup.h b/src/area_popup.h index 2401e4e..50e10e8 100644 --- a/src/area_popup.h +++ b/src/area_popup.h | |||
| @@ -7,13 +7,32 @@ | |||
| 7 | #include <wx/wx.h> | 7 | #include <wx/wx.h> |
| 8 | #endif | 8 | #endif |
| 9 | 9 | ||
| 10 | #include <vector> | ||
| 11 | |||
| 10 | class AreaPopup : public wxScrolledCanvas { | 12 | class AreaPopup : public wxScrolledCanvas { |
| 11 | public: | 13 | public: |
| 12 | AreaPopup(wxWindow* parent, int area_id); | 14 | AreaPopup(wxWindow* parent, int area_id); |
| 13 | 15 | ||
| 16 | void ResetIndicators(); | ||
| 14 | void UpdateIndicators(); | 17 | void UpdateIndicators(); |
| 15 | 18 | ||
| 16 | private: | 19 | private: |
| 20 | enum IndicatorType { | ||
| 21 | kLOCATION, | ||
| 22 | kPAINTING, | ||
| 23 | }; | ||
| 24 | |||
| 25 | struct IndicatorInfo { | ||
| 26 | // For locations, the id is an index into the map area's locations list. | ||
| 27 | // For paintings, it is a real painting id. | ||
| 28 | int id; | ||
| 29 | IndicatorType type; | ||
| 30 | int y; | ||
| 31 | |||
| 32 | IndicatorInfo(int id, IndicatorType type, int y) | ||
| 33 | : id(id), type(type), y(y) {} | ||
| 34 | }; | ||
| 35 | |||
| 17 | void OnPaint(wxPaintEvent& event); | 36 | void OnPaint(wxPaintEvent& event); |
| 18 | void OnDPIChanged(wxDPIChangedEvent& event); | 37 | void OnDPIChanged(wxDPIChangedEvent& event); |
| 19 | 38 | ||
| @@ -26,6 +45,12 @@ class AreaPopup : public wxScrolledCanvas { | |||
| 26 | const wxBitmap* unchecked_owl_; | 45 | const wxBitmap* unchecked_owl_; |
| 27 | const wxBitmap* checked_owl_; | 46 | const wxBitmap* checked_owl_; |
| 28 | 47 | ||
| 48 | int full_width_ = 0; | ||
| 49 | int full_height_ = 0; | ||
| 50 | wxSize header_extent_; | ||
| 51 | |||
| 52 | std::vector<IndicatorInfo> indicators_; | ||
| 53 | |||
| 29 | wxBitmap rendered_; | 54 | wxBitmap rendered_; |
| 30 | }; | 55 | }; |
| 31 | 56 | ||
