diff options
author | Sebastian Geerken <devnull@localhost> | 2015-01-23 13:17:13 +0100 |
---|---|---|
committer | Sebastian Geerken <devnull@localhost> | 2015-01-23 13:17:13 +0100 |
commit | 80229b2b5159af52b407fdf2f535d57c669bb667 (patch) | |
tree | 1119ca90bc237648a1dea0bd5392dbd759239bca /dw/table.cc | |
parent | 101b4e1ddcf164b55ccf06513fc007463bfc0662 (diff) |
Simplified interrupted drawing. (Mouse events will follow.)
Diffstat (limited to 'dw/table.cc')
-rw-r--r-- | dw/table.cc | 41 |
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; |