diff options
author | Sebastian Geerken <devnull@localhost> | 2014-10-23 13:56:47 +0200 |
---|---|---|
committer | Sebastian Geerken <devnull@localhost> | 2014-10-23 13:56:47 +0200 |
commit | 9eaaa3b90cba69593ab664b552ac5f5e4a299140 (patch) | |
tree | 2fbd8ad2bad2dca3dfb45b64db3bb123f3954c4d /dw/oofawarewidget.hh | |
parent | 8b633a44f51ecdda001addb99f2474f688920065 (diff) |
Fixed drawing of widgets previously (possibly) drawn after interruption.
Diffstat (limited to 'dw/oofawarewidget.hh')
-rw-r--r-- | dw/oofawarewidget.hh | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/dw/oofawarewidget.hh b/dw/oofawarewidget.hh index 231be48d..20a482f3 100644 --- a/dw/oofawarewidget.hh +++ b/dw/oofawarewidget.hh @@ -104,18 +104,6 @@ protected: bool prev (); }; - class OOFStackingIterator: public lout::object::Object - { - public: - enum { START, BACKGROUND, SC_BOTTOM, IN_FLOW, OOF_REF, OOF_CONT, SC_TOP, - END } ; - int majorLevel, minorLevel, index; - - void intoStringBuffer(lout::misc::StringBuffer *sb); - - static const char *majorLevelText (int majorLevel4); - }; - inline bool isParentRefOOF (int parentRef) { return parentRef != -1 && (parentRef & PARENT_REF_OOFM_MASK); } @@ -205,12 +193,31 @@ protected: public: static int CLASS_ID; + class OOFStackingIterator: public lout::object::Object + { + private: + lout::container::typed::HashSet<lout::object::TypedPointer<Widget> > + *widgetsDrawnAfterInterruption; + + public: + enum { START, BACKGROUND, SC_BOTTOM, IN_FLOW, OOF_REF, OOF_CONT, SC_TOP, + END } ; + int majorLevel, minorLevel, index; + + static const char *majorLevelText (int majorLevel); + + OOFStackingIterator (bool atEnd); + ~OOFStackingIterator (); + + void intoStringBuffer(lout::misc::StringBuffer *sb); + + void registerWidgetDrawnAfterInterruption (Widget *widget); + bool hasWidgetBeenDrawnAfterInterruption (Widget *widget); + }; + OOFAwareWidget (); ~OOFAwareWidget (); - static bool doesWidgetOOFInterruptDrawing (Widget *widget, - OOFAwareWidget *generator, - OOFAwareWidget *container); bool doesWidgetOOFInterruptDrawing (Widget *widget); Widget *draw (core::View *view, core::Rectangle *area, |