equal
deleted
inserted
replaced
3 #ifndef WIDGET_H |
3 #ifndef WIDGET_H |
4 #define WIDGET_H |
4 #define WIDGET_H |
5 |
5 |
6 |
6 |
7 #include <list> |
7 #include <list> |
8 #include <map> |
8 #include <vector> |
9 #include "../macros.h" |
9 #include "../macros.h" |
10 #include "../string.h" |
10 #include "../string.h" |
11 #include "../order.h" |
11 #include "../order.h" |
12 #include "../rail.h" |
12 #include "../rail.h" |
13 #include "../airport.h" |
13 #include "../airport.h" |
47 FF_NO_RESIZE_BOX = (1 << 3), |
47 FF_NO_RESIZE_BOX = (1 << 3), |
48 FF_UNMOVABLE = (1 << 4), |
48 FF_UNMOVABLE = (1 << 4), |
49 FF_TRANSPARENT = (1 << 5), |
49 FF_TRANSPARENT = (1 << 5), |
50 FF_TOGGLE_BUTTON = (1 << 6), |
50 FF_TOGGLE_BUTTON = (1 << 6), |
51 FF_STICKED = (1 << 7), |
51 FF_STICKED = (1 << 7), |
|
52 FF_FIXED_WIDTH = (1 << 8), |
|
53 FF_FIXED_HEIGHT = (1 << 9), |
|
54 |
|
55 FF_FIXED_SIZE = FF_FIXED_WIDTH | FF_FIXED_HEIGHT, |
52 }; |
56 }; |
53 |
57 |
54 DECLARE_ENUM_AS_BIT_SET(FeatureFlags); |
58 DECLARE_ENUM_AS_BIT_SET(FeatureFlags); |
55 |
59 |
56 struct Widget; |
60 struct Widget; |
197 } |
201 } |
198 |
202 |
199 }; |
203 }; |
200 |
204 |
201 struct CompositeWidget : public Widget { |
205 struct CompositeWidget : public Widget { |
|
206 struct Slot { |
|
207 WidgetPtr m_wi; |
|
208 uint8 m_span; |
|
209 }; |
|
210 |
202 typedef Widget super; |
211 typedef Widget super; |
203 typedef std::map<WidgetId, WidgetPtr> Widgets; |
212 typedef std::vector<Slot> Widgets; |
204 typedef Widgets::iterator WidgetIterator; |
213 typedef Widgets::iterator WidgetIterator; |
205 typedef Widgets::reverse_iterator WidgetReverseIterator; |
214 typedef Widgets::reverse_iterator WidgetReverseIterator; |
206 |
215 |
207 protected: |
216 protected: |
208 Widgets m_widgets; |
217 Widgets m_widgets; |
215 CompositeWidget(CompositeWidget *container, WidgetId id, FeatureFlags feature_flags, byte color, const Rect16 &rect, StringID tooltips) |
224 CompositeWidget(CompositeWidget *container, WidgetId id, FeatureFlags feature_flags, byte color, const Rect16 &rect, StringID tooltips) |
216 : Widget(container, id, feature_flags, color, rect, tooltips) |
225 : Widget(container, id, feature_flags, color, rect, tooltips) |
217 {} |
226 {} |
218 |
227 |
219 void AddWidget(Widget *wd); |
228 void AddWidget(Widget *wd); |
|
229 WidgetIterator FindWidget(WidgetId id); |
220 Widget* GetWidget(WidgetId id); |
230 Widget* GetWidget(WidgetId id); |
221 Widget* RemoveWidget(WidgetId id); |
231 Widget* RemoveWidget(WidgetId id); |
222 |
232 |
223 /*virtual*/ Widget* WidgetFromPt(const Point16 &pt); |
233 /*virtual*/ Widget* WidgetFromPt(const Point16 &pt); |
224 |
234 |
231 /*virtual*/ void OnLeftButtonDown(EvtLeftButtonDown &ev); |
241 /*virtual*/ void OnLeftButtonDown(EvtLeftButtonDown &ev); |
232 /*virtual*/ void OnRightButtonDown(EvtRightButtonDown &ev); |
242 /*virtual*/ void OnRightButtonDown(EvtRightButtonDown &ev); |
233 /*virtual*/ void OnResize(EvtResize &ev); |
243 /*virtual*/ void OnResize(EvtResize &ev); |
234 }; |
244 }; |
235 |
245 |
236 |
|
237 }; // namespace gui |
246 }; // namespace gui |
238 |
247 |
239 #endif /* WIDGET_H */ |
248 #endif /* WIDGET_H */ |