summaryrefslogtreecommitdiff
path: root/dw/oofawarewidget.hh
diff options
context:
space:
mode:
Diffstat (limited to 'dw/oofawarewidget.hh')
-rw-r--r--dw/oofawarewidget.hh22
1 files changed, 20 insertions, 2 deletions
diff --git a/dw/oofawarewidget.hh b/dw/oofawarewidget.hh
index d2d5ef85..5525c301 100644
--- a/dw/oofawarewidget.hh
+++ b/dw/oofawarewidget.hh
@@ -105,6 +105,16 @@ protected:
void print ();
};
+ class OOFStackIterator: public lout::object::Object
+ {
+ public:
+ enum { START, BACKGROUND, SC_BOTTOM, IN_FLOW, OOF_REF, OOF_CONT, SC_TOP,
+ END } ;
+ int majorLevel, minorLevel, index;
+
+ static const char *majorLevelText (int majorLevel4);
+ };
+
inline bool isParentRefOOF (int parentRef)
{ return parentRef != -1 && (parentRef & PARENT_REF_OOFM_MASK); }
@@ -169,8 +179,12 @@ protected:
void sizeAllocateStart (core::Allocation *allocation);
void sizeAllocateEnd ();
void containerSizeChangedForChildrenOOF ();
- void drawOOF (core::View *view, core::Rectangle *area);
- core::Widget *getWidgetOOFAtPoint (int x, int y);
+ virtual Widget *drawLevel (core::View *view, core::Rectangle *area,
+ lout::container::untyped::Stack *iterator,
+ int majorLevel);
+ Widget *drawOOF (core::View *view, core::Rectangle *area,
+ lout::container::untyped::Stack *iterator);
+ Widget *getWidgetOOFAtPoint (int x, int y);
static bool isOOFContainer (Widget *widget, int oofmIndex);
@@ -190,6 +204,10 @@ public:
OOFAwareWidget ();
~OOFAwareWidget ();
+ Widget *draw (core::View *view, core::Rectangle *area,
+ lout::container::untyped::Stack *iterator);
+ lout::object::Object *stackingIterator (bool atEnd);
+
virtual void borderChanged (int y, core::Widget *vloat);
virtual void clearPositionChanged ();
virtual void oofSizeChanged (bool extremesChanged);