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 | ||