aboutsummaryrefslogtreecommitdiff
path: root/dw/table.cc
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2015-01-23 13:17:13 +0100
committerSebastian Geerken <devnull@localhost>2015-01-23 13:17:13 +0100
commit80229b2b5159af52b407fdf2f535d57c669bb667 (patch)
tree1119ca90bc237648a1dea0bd5392dbd759239bca /dw/table.cc
parent101b4e1ddcf164b55ccf06513fc007463bfc0662 (diff)
Simplified interrupted drawing. (Mouse events will follow.)
Diffstat (limited to 'dw/table.cc')
-rw-r--r--dw/table.cc41
1 files changed, 14 insertions, 27 deletions
diff --git a/dw/table.cc b/dw/table.cc
index dc112ef8..5570c853 100644
--- a/dw/table.cc
+++ b/dw/table.cc
@@ -368,13 +368,12 @@ bool Table::isBlockLevel ()
return true;
}
-void Table::drawLevel (core::View *view, core::Rectangle *area,
- core::StackingIteratorStack *iteratorStack,
- Widget **interruptedWidget, int majorLevel)
+ void Table::drawLevel (core::View *view, core::Rectangle *area, int level,
+ core::DrawingContext *context)
{
- DBG_OBJ_ENTER ("draw", 0, "Table/drawLevel", "(%d, %d, %d * %d), %s",
+ DBG_OBJ_ENTER ("draw", 0, "Table::drawLevel", "[%d, %d, %d * %d], %s",
area->x, area->y, area->width, area->height,
- OOFStackingIterator::majorLevelText (majorLevel));
+ OOFStackingIterator::majorLevelText (level));
#if 0
// This old code belongs perhaps to the background. Check when reactivated.
@@ -394,36 +393,24 @@ void Table::drawLevel (core::View *view, core::Rectangle *area,
}
#endif
- switch (majorLevel) {
+ switch (level) {
case OOFStackingIterator::IN_FLOW:
- {
- OOFStackingIterator *osi =
- (OOFStackingIterator*)iteratorStack->getTop ();
-
- while (*interruptedWidget == NULL && osi->index < children->size ()) {
- if (childDefined (osi->index)) {
- Widget *child = children->get(osi->index)->cell.widget;
- core::Rectangle childArea;
- if (!core::StackingContextMgr::handledByStackingContextMgr
- (child)
- && child->intersects (area, &childArea))
- child->drawTotal (view, &childArea, iteratorStack,
- interruptedWidget);
- }
-
- if (*interruptedWidget == NULL)
- osi->index++;
+ for (int i = 0; i < children->size (); i++) {
+ if (childDefined (i)) {
+ Widget *child = children->get(i)->cell.widget;
+ core::Rectangle childArea;
+ if (!core::StackingContextMgr::handledByStackingContextMgr (child)
+ && child->intersects (this, area, &childArea))
+ child->draw (view, &childArea, context);
}
}
break;
default:
- OOFAwareWidget::drawLevel (view, area, iteratorStack, interruptedWidget,
- majorLevel);
+ OOFAwareWidget::drawLevel (view, area, level, context);
break;
}
- DBG_OBJ_MSGF ("draw", 1, "=> %p", *interruptedWidget);
DBG_OBJ_LEAVE ();
}
@@ -433,7 +420,7 @@ core::Widget *Table::getWidgetAtPointLevel (int x, int y,
Widget **interruptedWidget,
int majorLevel)
{
- DBG_OBJ_ENTER ("events", 0, "Table/getWidgetAtPointLevel", "%d, %d, %s",
+ DBG_OBJ_ENTER ("events", 0, "Table::getWidgetAtPointLevel", "%d, %d, %s",
x, y, OOFStackingIterator::majorLevelText (majorLevel));
Widget *widgetAtPoint = NULL;