aboutsummaryrefslogtreecommitdiff
path: root/dw/oofawarewidget.hh
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2014-10-23 13:56:47 +0200
committerSebastian Geerken <devnull@localhost>2014-10-23 13:56:47 +0200
commit9eaaa3b90cba69593ab664b552ac5f5e4a299140 (patch)
tree2fbd8ad2bad2dca3dfb45b64db3bb123f3954c4d /dw/oofawarewidget.hh
parent8b633a44f51ecdda001addb99f2474f688920065 (diff)
Fixed drawing of widgets previously (possibly) drawn after interruption.
Diffstat (limited to 'dw/oofawarewidget.hh')
-rw-r--r--dw/oofawarewidget.hh37
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,