--- a/src/widget/widget.h Sun Apr 15 14:17:40 2007 +0000
+++ b/src/widget/widget.h Sun Apr 15 14:20:35 2007 +0000
@@ -290,6 +290,15 @@
/*virtual*/ void OnLeftButtonDown(EvtLeftButtonDown &ev);
/*virtual*/ void OnRightButtonDown(EvtRightButtonDown &ev);
/*virtual*/ void OnResize(EvtResize &ev);
+
+ template <class Tcls, void (Tcls::*Tenum_proc)(typename Tcls::Slot &, int) > void EnumSlotsT(Tcls *cls)
+ {
+ int slot_idx = 0;
+ for (WidgetIterator it = m_widgets.begin(); it != m_widgets.end(); slot_idx++) {
+ SlotPtr &slot = (*(it++));
+ (cls->*Tenum_proc)(*(typename Tcls::Slot*)(Slot*)slot, slot_idx);
+ }
+ }
};
struct Panel : CompositeWidget {
@@ -314,7 +323,25 @@
: CompositeWidget(container, feature_flags, tooltips, color)
{}
- virtual CompositeWidget::WidgetIterator AddWidget(Widget *wd, Placement pp);
+ virtual CompositeWidget::WidgetIterator AddWidget(Widget *wi, Placement pp);
+
+ /*virtual*/ void QuerySizes();
+ /*virtual*/ void DoLayout();
+};
+
+struct Table : CompositeWidget {
+ typedef CompositeWidget super;
+
+ static const FeatureFlags DEFAULT_FEATURES = FF_NONE;
+
+ Rect16 m_used_area;
+ CCountedPtr<SimpleCountedObject> m_size_data;
+
+ Table(CompositeWidget *container, FeatureFlags feature_flags = DEFAULT_FEATURES, StringID tooltips = 0, uint16 color = COLOUR_PARENT)
+ : CompositeWidget(container, feature_flags, tooltips, color)
+ {}
+
+ virtual CompositeWidget::WidgetIterator AddWidget(Widget *wi, int x_pos, int y_pos, int x_span = 1, int y_span = 1);
/*virtual*/ void QuerySizes();
/*virtual*/ void DoLayout();