From 356751ca1ee7df3819dfcfcece24cfbdb37fba7c Mon Sep 17 00:00:00 2001 From: Sebastian Geerken Date: Sun, 19 Oct 2014 00:29:52 +0200 Subject: Changes in drawing process: is now interruptable. (Some errors left.) --- dw/oofawarewidget.hh | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'dw/oofawarewidget.hh') 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); -- cgit v1.2.3