aboutsummaryrefslogtreecommitdiff
path: root/dw/widget.hh
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2014-10-19 00:29:52 +0200
committerSebastian Geerken <devnull@localhost>2014-10-19 00:29:52 +0200
commit356751ca1ee7df3819dfcfcece24cfbdb37fba7c (patch)
tree8cffd8d8235aab30ef267695b8b6bf2bfa191e53 /dw/widget.hh
parent021d425fea3bdc727328ccbe24f508453a4ada36 (diff)
Changes in drawing process: is now interruptable. (Some errors left.)
Diffstat (limited to 'dw/widget.hh')
-rw-r--r--dw/widget.hh17
1 files changed, 15 insertions, 2 deletions
diff --git a/dw/widget.hh b/dw/widget.hh
index 4ad397ee..d44454bc 100644
--- a/dw/widget.hh
+++ b/dw/widget.hh
@@ -277,6 +277,8 @@ protected:
inline void queueResize (int ref, bool extremesChanged)
{ queueResize (ref, extremesChanged, false); }
+ virtual void draw (View *view, Rectangle *area);
+
/**
* \brief See \ref dw-widget-sizes.
*/
@@ -468,8 +470,11 @@ public:
bool intersects (Rectangle *area, Rectangle *intersection);
- /** Area is given in widget coordinates. */
- virtual void draw (View *view, Rectangle *area) = 0;
+ virtual Widget *draw (View *view, Rectangle *area,
+ lout::container::untyped::Stack *iterator);
+ Widget *drawTotal (View *view, Rectangle *area,
+ lout::container::untyped::Stack *iterator);
+ void drawToplevel (View *view, Rectangle *area);
bool buttonPress (EventButton *event);
bool buttonRelease (EventButton *event);
@@ -523,6 +528,14 @@ public:
* dw::core::Iterator::prev in this case.
*/
virtual Iterator *iterator (Content::Type mask, bool atEnd) = 0;
+
+ /**
+ * \brief ...
+ *
+ * May return NULL.
+ */
+ virtual lout::object::Object *stackingIterator (bool atEnd);
+
virtual void removeChild (Widget *child);
};