aboutsummaryrefslogtreecommitdiff
path: root/dw
diff options
context:
space:
mode:
Diffstat (limited to 'dw')
-rw-r--r--dw/iterator.cc63
-rw-r--r--dw/iterator.hh26
-rw-r--r--dw/oofawarewidget.cc197
-rw-r--r--dw/oofawarewidget.hh37
-rw-r--r--dw/table.cc28
-rw-r--r--dw/table.hh6
-rw-r--r--dw/textblock.cc96
-rw-r--r--dw/textblock.hh8
-rw-r--r--dw/widget.cc4
-rw-r--r--dw/widget.hh7
10 files changed, 68 insertions, 404 deletions
diff --git a/dw/iterator.cc b/dw/iterator.cc
index fccd4c1a..dbb779f6 100644
--- a/dw/iterator.cc
+++ b/dw/iterator.cc
@@ -898,68 +898,5 @@ void CharIterator::unhighlight (CharIterator *it1, CharIterator *it2,
}
}
-// ---------------------------
-// StackingIteratorStack
-// ---------------------------
-
-StackingIteratorStack::StackingIteratorStack ()
-{
- vector = new lout::container::untyped::Vector (1, true);
- topPos = -1;
-}
-
-StackingIteratorStack::~StackingIteratorStack ()
-{
- delete vector;
-}
-
-void StackingIteratorStack::intoStringBuffer(lout::misc::StringBuffer *sb)
-{
- sb->append ("[ ");
-
- for (int i = 0; i < vector->size (); i++) {
- if (i != 0)
- sb->append (" ");
- if (i == topPos)
- sb->append ("<b>");
- vector->get(i)->intoStringBuffer (sb);
- if (i == topPos)
- sb->append ("</b>");
- }
-
- sb->append (" ]");
-}
-
-void StackingIteratorStack::push (lout::object::Object *object)
-{
- assert (atRealTop ());
- vector->put (object);
- topPos++;
-}
-
-void StackingIteratorStack::pop ()
-{
- assert (atRealTop ());
- vector->remove (vector->size () - 1);
- topPos--;
-}
-
-void StackingIteratorStack::forward ()
-{
- assert (!atRealTop ());
- topPos++;
-}
-
-void StackingIteratorStack::backward ()
-{
- topPos--;
-}
-
-void StackingIteratorStack::cleanup ()
-{
- while (!atRealTop ())
- vector->remove (vector->size () - 1);
-}
-
} // namespace core
} // namespace dw
diff --git a/dw/iterator.hh b/dw/iterator.hh
index 686235ed..9460adc4 100644
--- a/dw/iterator.hh
+++ b/dw/iterator.hh
@@ -263,32 +263,6 @@ public:
hpos, vpos); }
};
-/**
- * \brief Some completely different kind of iterator. See \ref
- * dw-interrupted-drawing for details.
- */
-class StackingIteratorStack
-{
-private:
- lout::container::untyped::Vector *vector;
- int topPos;
-
-public:
- StackingIteratorStack ();
- ~StackingIteratorStack ();
-
- void intoStringBuffer(lout::misc::StringBuffer *sb);
-
- inline bool atRealTop () { return topPos == vector->size () - 1; }
- inline lout::object::Object *getTop () { return vector->get (topPos); }
-
- void push (lout::object::Object *object);
- void pop ();
- void forward ();
- void backward ();
- void cleanup ();
-};
-
} // namespace core
} // namespace dw
diff --git a/dw/oofawarewidget.cc b/dw/oofawarewidget.cc
index e457a84e..4f7f4bc8 100644
--- a/dw/oofawarewidget.cc
+++ b/dw/oofawarewidget.cc
@@ -37,74 +37,6 @@ const char *OOFAwareWidget::OOFM_NAME[NUM_OOFM] = {
"FLOATS", "ABSOLUTE", "FIXED"
};
-OOFAwareWidget::OOFStackingIterator::OOFStackingIterator
- (OOFAwareWidget *widget, bool atEnd)
-{
- if (atEnd) {
- majorLevel = OOFStackingIterator::END - 1;
- minorLevel = widget->getLastMinorLevel (majorLevel);
- index = widget->getLastLevelIndex (majorLevel, minorLevel);
- } else {
- majorLevel = OOFStackingIterator::START + 1;
- minorLevel = index = 0;
- }
-
- widgetsDrawnAfterInterruption = NULL;
-}
-
-OOFAwareWidget::OOFStackingIterator::~OOFStackingIterator ()
-{
- if (widgetsDrawnAfterInterruption)
- delete widgetsDrawnAfterInterruption;
-}
-
-void OOFAwareWidget::OOFStackingIterator::registerWidgetDrawnAfterInterruption
- (Widget *widget)
-{
- if (widgetsDrawnAfterInterruption == NULL)
- widgetsDrawnAfterInterruption = new HashSet<TypedPointer<Widget> > (true);
-
- TypedPointer<Widget> *p = new TypedPointer<Widget> (widget);
- assert (!widgetsDrawnAfterInterruption->contains (p));
- widgetsDrawnAfterInterruption->put (p);
-}
-
-bool OOFAwareWidget::OOFStackingIterator::hasWidgetBeenDrawnAfterInterruption
- (Widget *widget)
-{
- if (widgetsDrawnAfterInterruption) {
- TypedPointer<Widget> p (widget);
- return widgetsDrawnAfterInterruption->contains (&p);
- } else
- return false;
-}
-
-const char *OOFAwareWidget::OOFStackingIterator::majorLevelText (int majorLevel)
-{
- switch (majorLevel) {
- case START: return "START";
- case BACKGROUND: return "BACKGROUND";
- case SC_BOTTOM: return "SC_BOTTOM";
- case IN_FLOW: return "IN_FLOW";
- case OOF_REF: return "OOF_REF";
- case OOF_CONT: return "OOF_CONT";
- case SC_TOP: return "SC_TOP";
- case END: return "END";
- default: return "???";
- }
-}
-
-void OOFAwareWidget::OOFStackingIterator::intoStringBuffer(StringBuffer *sb)
-{
- sb->append ("(");
- sb->append (majorLevelText (majorLevel));
- sb->append (", ");
- sb->appendInt (minorLevel);
- sb->append (", ");
- sb->appendInt (index);
- sb->append (")");
-}
-
int OOFAwareWidget::CLASS_ID = -1;
OOFAwareWidget::OOFAwareWidget ()
@@ -135,6 +67,21 @@ OOFAwareWidget::~OOFAwareWidget ()
DBG_OBJ_DELETE ();
}
+const char *OOFAwareWidget::stackingLevelText (int level)
+{
+ switch (level) {
+ case SL_START: return "START";
+ case SL_BACKGROUND: return "BACKGROUND";
+ case SL_SC_BOTTOM: return "SC_BOTTOM";
+ case SL_IN_FLOW: return "IN_FLOW";
+ case SL_OOF_REF: return "OOF_REF";
+ case SL_OOF_CONT: return "OOF_CONT";
+ case SL_SC_TOP: return "SC_TOP";
+ case SL_END: return "END";
+ default: return "???";
+ }
+}
+
void OOFAwareWidget::notifySetAsTopLevel ()
{
for (int i = 0; i < NUM_OOFM; i++) {
@@ -397,8 +344,7 @@ void OOFAwareWidget::draw (View *view, Rectangle *area, DrawingContext *context)
DBG_OBJ_ENTER ("draw", 0, "draw", "%d, %d, %d * %d",
area->x, area->y, area->width, area->height);
- for (int level = OOFStackingIterator::START + 1;
- level < OOFStackingIterator::END; level++)
+ for (int level = SL_START + 1; level < SL_END; level++)
drawLevel (view, area, level, context);
DBG_OBJ_LEAVE ();
@@ -410,39 +356,39 @@ void OOFAwareWidget::drawLevel (View *view, Rectangle *area, int level,
DBG_OBJ_ENTER ("draw", 0, "OOFAwareWidget::drawLevel",
"(%d, %d, %d * %d), %s",
area->x, area->y, area->width, area->height,
- OOFStackingIterator::majorLevelText (level));
+ stackingLevelText (level));
switch (level) {
- case OOFStackingIterator::START:
+ case SL_START:
break;
- case OOFStackingIterator::BACKGROUND:
+ case SL_BACKGROUND:
drawWidgetBox (view, area, false);
break;
- case OOFStackingIterator::SC_BOTTOM:
+ case SL_SC_BOTTOM:
if (stackingContextMgr)
stackingContextMgr->drawBottom (view, area, context);
break;
- case OOFStackingIterator::IN_FLOW:
+ case SL_IN_FLOW:
// Should be implemented in the sub class.
break;
- case OOFStackingIterator::OOF_REF:
+ case SL_OOF_REF:
// Should be implemented in the sub class (when references are hold).
break;
- case OOFStackingIterator::OOF_CONT:
+ case SL_OOF_CONT:
drawOOF (view, area, context);
break;
- case OOFStackingIterator::SC_TOP:
+ case SL_SC_TOP:
if (stackingContextMgr)
stackingContextMgr->drawTop (view, area, context);
break;
- case OOFStackingIterator::END:
+ case SL_END:
break;
}
@@ -465,9 +411,9 @@ Widget *OOFAwareWidget::getWidgetAtPoint (int x, int y,
Widget *widgetAtPoint = NULL;
if (inAllocation (x, y)) {
- for (int level = OOFStackingIterator::END - 1;
- widgetAtPoint == NULL && level > OOFStackingIterator::START; level--)
- widgetAtPoint = getWidgetAtPointLevel (x, y, context, level);
+ for (int level = SL_END - 1; widgetAtPoint == NULL && level > SL_START;
+ level--)
+ widgetAtPoint = getWidgetAtPointLevel (x, y, level, context);
}
DBG_OBJ_MSGF ("events", 1, "=> %p", widgetAtPoint);
@@ -475,43 +421,41 @@ Widget *OOFAwareWidget::getWidgetAtPoint (int x, int y,
return widgetAtPoint;
}
-Widget *OOFAwareWidget::getWidgetAtPointLevel (int x, int y,
+Widget *OOFAwareWidget::getWidgetAtPointLevel (int x, int y, int level,
GettingWidgetAtPointContext
- *context,
- int level)
+ *context)
{
DBG_OBJ_ENTER ("events", 0, "OOFAwareWidget::getWidgetAtPointLevel",
- "%d, %d, %s",
- x, y, OOFStackingIterator::majorLevelText (level));
+ "%d, %d, %s", x, y, stackingLevelText (level));
Widget *widgetAtPoint = NULL;
switch (level) {
- case OOFStackingIterator::BACKGROUND:
+ case SL_BACKGROUND:
if (inAllocation (x, y))
widgetAtPoint = this;
break;
- case OOFStackingIterator::SC_BOTTOM:
+ case SL_SC_BOTTOM:
if (stackingContextMgr)
widgetAtPoint =
stackingContextMgr->getBottomWidgetAtPoint (x, y, context);
break;
- case OOFStackingIterator::IN_FLOW:
+ case SL_IN_FLOW:
// Should be implemented in the sub class.
assertNotReached ();
break;
- case OOFStackingIterator::OOF_REF:
+ case SL_OOF_REF:
// Should be implemented in the sub class (when references are hold).
break;
- case OOFStackingIterator::OOF_CONT:
+ case SL_OOF_CONT:
widgetAtPoint = getWidgetOOFAtPoint (x, y, context);
break;
- case OOFStackingIterator::SC_TOP:
+ case SL_SC_TOP:
if (stackingContextMgr)
widgetAtPoint =
stackingContextMgr->getTopWidgetAtPoint (x, y, context);
@@ -540,68 +484,6 @@ Widget *OOFAwareWidget::getWidgetOOFAtPoint (int x, int y,
return widgetAtPoint;
}
-int OOFAwareWidget::getLastMinorLevel (int majorLevel)
-{
- switch (majorLevel) {
- case OOFStackingIterator::BACKGROUND:
- return 0;
-
- case OOFStackingIterator::SC_BOTTOM:
- case OOFStackingIterator::SC_TOP:
- // See StackingContextMgr: refers to list of z-indices; region
- // (top or bottom) does not play a role.
- if (stackingContextMgr)
- return stackingContextMgr->getNumZIndices () - 1;
- else
- return 0;
-
- case OOFStackingIterator::IN_FLOW:
- return 0;
-
- case OOFStackingIterator::OOF_REF:
- case OOFStackingIterator::OOF_CONT:
- return NUM_OOFM - 1;
-
-
- default:
- assertNotReached ();
- return 0;
- }
-}
-
-int OOFAwareWidget::getLastLevelIndex (int majorLevel, int minorLevel)
-{
- switch (majorLevel) {
- case OOFStackingIterator::BACKGROUND:
- return 0;
-
- case OOFStackingIterator::SC_BOTTOM:
- case OOFStackingIterator::SC_TOP:
- if (stackingContextMgr)
- return stackingContextMgr->getNumChildSCWidgets () - 1;
- else
- return 0;
-
- case OOFStackingIterator::IN_FLOW:
- // Should be implemented in the sub class.
- assertNotReached ();
-
- case OOFStackingIterator::OOF_REF:
- // Should be implemented in the sub class (when references are hold).
- return 0;
-
- case OOFStackingIterator::OOF_CONT:
- if(outOfFlowMgr[minorLevel])
- return outOfFlowMgr[minorLevel]->getNumWidgets () - 1;
- else
- return 0;
-
- default:
- assertNotReached ();
- return 0;
- }
-}
-
int OOFAwareWidget::getAvailWidthOfChild (Widget *child, bool forceValue)
{
if (isWidgetOOF(child)) {
@@ -632,11 +514,6 @@ void OOFAwareWidget::removeChild (Widget *child)
assert (isWidgetOOF (child));
}
-Object *OOFAwareWidget::stackingIterator (bool atEnd)
-{
- return new OOFStackingIterator (this, atEnd);
-}
-
bool OOFAwareWidget::mustBeWidenedToAvailWidth ()
{
// Only used for floats.
diff --git a/dw/oofawarewidget.hh b/dw/oofawarewidget.hh
index a654f0f6..3d78d69a 100644
--- a/dw/oofawarewidget.hh
+++ b/dw/oofawarewidget.hh
@@ -164,16 +164,12 @@ protected:
Widget *getWidgetAtPoint (int x, int y,
core::GettingWidgetAtPointContext *context);
- virtual Widget *getWidgetAtPointLevel (int x, int y,
+ virtual Widget *getWidgetAtPointLevel (int x, int y, int level,
core::GettingWidgetAtPointContext
- *context,
- int level);
+ *context);
Widget *getWidgetOOFAtPoint (int x, int y,
core::GettingWidgetAtPointContext *context);
- virtual int getLastMinorLevel (int majorLevel);
- virtual int getLastLevelIndex (int majorLevel, int minorLevel);
-
static bool isOOFContainer (Widget *widget, int oofmIndex);
void notifySetAsTopLevel();
@@ -186,33 +182,17 @@ 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;
+ enum {
+ SL_START, SL_BACKGROUND, SL_SC_BOTTOM, SL_IN_FLOW, SL_OOF_REF,
+ SL_OOF_CONT, SL_SC_TOP, SL_END };
- static const char *majorLevelText (int majorLevel);
-
- OOFStackingIterator (OOFAwareWidget *widget, bool atEnd);
- ~OOFStackingIterator ();
-
- void intoStringBuffer(lout::misc::StringBuffer *sb);
-
- void registerWidgetDrawnAfterInterruption (Widget *widget);
- bool hasWidgetBeenDrawnAfterInterruption (Widget *widget);
- };
+ static int CLASS_ID;
OOFAwareWidget ();
~OOFAwareWidget ();
+ static const char *stackingLevelText (int level);
+
static inline bool testStyleFloat (core::style::Style *style)
{ return style->vloat != core::style::FLOAT_NONE; }
@@ -252,7 +232,6 @@ public:
void draw (core::View *view, core::Rectangle *area,
core::DrawingContext *context);
- lout::object::Object *stackingIterator (bool atEnd);
virtual bool mustBeWidenedToAvailWidth ();
virtual void borderChanged (int y, core::Widget *vloat);
diff --git a/dw/table.cc b/dw/table.cc
index 9e493e51..1df5d862 100644
--- a/dw/table.cc
+++ b/dw/table.cc
@@ -368,12 +368,12 @@ bool Table::isBlockLevel ()
return true;
}
- void Table::drawLevel (core::View *view, core::Rectangle *area, int level,
+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",
area->x, area->y, area->width, area->height,
- OOFStackingIterator::majorLevelText (level));
+ stackingLevelText (level));
#if 0
// This old code belongs perhaps to the background. Check when reactivated.
@@ -394,7 +394,7 @@ bool Table::isBlockLevel ()
#endif
switch (level) {
- case OOFStackingIterator::IN_FLOW:
+ case SL_IN_FLOW:
for (int i = 0; i < children->size (); i++) {
if (childDefined (i)) {
Widget *child = children->get(i)->cell.widget;
@@ -414,18 +414,17 @@ bool Table::isBlockLevel ()
DBG_OBJ_LEAVE ();
}
-core::Widget *Table::getWidgetAtPointLevel (int x, int y,
+core::Widget *Table::getWidgetAtPointLevel (int x, int y, int level,
core::GettingWidgetAtPointContext
- *context,
- int level)
+ *context)
{
DBG_OBJ_ENTER ("events", 0, "Table::getWidgetAtPointLevel", "%d, %d, %s",
- x, y, OOFStackingIterator::majorLevelText (level));
+ x, y, stackingLevelText (level));
Widget *widgetAtPoint = NULL;
switch (level) {
- case OOFStackingIterator::IN_FLOW:
+ case SL_IN_FLOW:
for (int i = children->size () - 1; widgetAtPoint == NULL && i >= 0;
i--) {
if (childDefined (i)) {
@@ -438,7 +437,7 @@ core::Widget *Table::getWidgetAtPointLevel (int x, int y,
default:
widgetAtPoint =
- OOFAwareWidget::getWidgetAtPointLevel (x, y, context, level);
+ OOFAwareWidget::getWidgetAtPointLevel (x, y, level, context);
break;
}
@@ -448,17 +447,6 @@ core::Widget *Table::getWidgetAtPointLevel (int x, int y,
return widgetAtPoint;
}
-int Table::getLastLevelIndex (int majorLevel, int minorLevel)
-{
- switch (majorLevel) {
- case OOFStackingIterator::IN_FLOW:
- return children->size () - 1;
-
- default:
- return OOFAwareWidget::getLastLevelIndex (majorLevel, minorLevel);
- }
-}
-
void Table::removeChild (Widget *child)
{
/** \bug Not implemented. */
diff --git a/dw/table.hh b/dw/table.hh
index 491bb709..526acb32 100644
--- a/dw/table.hh
+++ b/dw/table.hh
@@ -477,10 +477,8 @@ protected:
void drawLevel (core::View *view, core::Rectangle *area, int level,
core::DrawingContext *context);
- Widget *getWidgetAtPointLevel (int x, int y,
- core::GettingWidgetAtPointContext *context,
- int level);
- int getLastLevelIndex (int majorLevel, int minorLevel);
+ Widget *getWidgetAtPointLevel (int x, int y, int level,
+ core::GettingWidgetAtPointContext *context);
//bool buttonPressImpl (core::EventButton *event);
//bool buttonReleaseImpl (core::EventButton *event);
diff --git a/dw/textblock.cc b/dw/textblock.cc
index 1e1733d0..e4bc72ab 100644
--- a/dw/textblock.cc
+++ b/dw/textblock.cc
@@ -1704,15 +1704,15 @@ Textblock::Word *Textblock::findWord (int x, int y, bool *inSpace)
return NULL;
}
-void Textblock::drawLevel (core::View *view, core::Rectangle *area, int level,
- core::DrawingContext *context)
+void Textblock::drawLevel (core::View *view, core::Rectangle *area,
+ int level, core::DrawingContext *context)
{
DBG_OBJ_ENTER ("draw", 0, "Textblock::drawLevel", "(%d, %d, %d * %d), %s",
area->x, area->y, area->width, area->height,
- OOFStackingIterator::majorLevelText (level));
+ stackingLevelText (level));
switch (level) {
- case OOFStackingIterator::IN_FLOW:
+ case SL_IN_FLOW:
for (int lineIndex = findLineIndexWhenAllocated (area->y);
lineIndex < lines->size (); lineIndex++) {
Line *line = lines->getRef (lineIndex);
@@ -1724,7 +1724,7 @@ void Textblock::drawLevel (core::View *view, core::Rectangle *area, int level,
}
break;
- case OOFStackingIterator::OOF_REF:
+ case SL_OOF_REF:
// TODO Inefficient. Perhaps store OOF references in seperate
// (much smaller!) list.
for (int oofmIndex = 0; oofmIndex < NUM_OOFM; oofmIndex++) {
@@ -1747,66 +1747,6 @@ void Textblock::drawLevel (core::View *view, core::Rectangle *area, int level,
}
/**
- * \brief Used for getting the widget at a point, since this method
- * only interrupts, but does not do actual drawing or searching,
- * respectively. Will be changed soon.
- */
-void Textblock::handleOOFReferences (core::StackingIteratorStack *iteratorStack,
- Widget **interruptedWidget, bool backwards)
-{
- // TODO Inefficient. Store Widgets OOF references in seperate list?
-
- DBG_OBJ_ENTER ("common", 0, "Textblock::handleOOFReferences", "..., %s",
- backwards ? "true [backwards]" : "false [forwards]");
-
- OOFStackingIterator *osi = (OOFStackingIterator*)iteratorStack->getTop ();
- assert (osi->majorLevel == OOFStackingIterator::OOF_REF);
-
- while (*interruptedWidget == NULL &&
- (backwards ? (osi->minorLevel >= 0) : (osi->minorLevel < NUM_OOFM))) {
- while (*interruptedWidget == NULL &&
- (backwards ? (osi->index >= 0) : (osi->index < words->size ()))) {
-
- //DBG_IF_RTFL {
- // misc::StringBuffer sb;
- // osi->intoStringBuffer (&sb);
- // DBG_OBJ_MSGF ("common", 2, "osi = %s",
- // sb.getChars ());
- //}
-
- Word *word = words->getRef (osi->index);
- if (word->content.type == core::Content::WIDGET_OOF_REF &&
- getOOFMIndex (word->content.widget) == osi->minorLevel &&
- doesWidgetOOFInterruptDrawing (word->content.widget)) {
- *interruptedWidget = word->content.widget;
- DBG_OBJ_MSGF ("draw", 0, "widget oof %p interrupts drawing",
- interruptedWidget);
- }
-
- // The index is increased in any case: the iterator must
- // point to the next element.
- if (backwards)
- osi->index--;
- else
- osi->index++;
- }
-
- if (*interruptedWidget == NULL) {
- if (backwards) {
- osi->minorLevel--;
- osi->index = words->size () - 1;
- } else {
- osi->minorLevel++;
- osi->index = 0;
- }
- }
- }
-
- DBG_OBJ_MSGF ("common", 1, "=> %p", *interruptedWidget);
- DBG_OBJ_LEAVE ();
-}
-
-/**
* Add a new word (text, widget etc.) to a page.
*/
Textblock::Word *Textblock::addWord (int width, int ascent, int descent,
@@ -2754,18 +2694,17 @@ void Textblock::breakAdded ()
words->getRef(words->size () - 2)->effSpace = 0;
}
-core::Widget *Textblock::getWidgetAtPointLevel(int x, int y,
+core::Widget *Textblock::getWidgetAtPointLevel (int x, int y, int level,
core::GettingWidgetAtPointContext
- *context,
- int level)
+ *context)
{
DBG_OBJ_ENTER ("events", 0, "Textblock::getWidgetAtPointLevel", "%d, %d, %s",
- x, y, OOFStackingIterator::majorLevelText (level));
+ x, y, stackingLevelText (level));
Widget *widgetAtPoint = NULL;
switch (level) {
- case OOFStackingIterator::IN_FLOW:
+ case SL_IN_FLOW:
{
int lineIndex = findLineIndexWhenAllocated (y - allocation.y);
@@ -2786,7 +2725,7 @@ core::Widget *Textblock::getWidgetAtPointLevel(int x, int y,
}
break;
- case OOFStackingIterator::OOF_REF:
+ case SL_OOF_REF:
// TODO Inefficient. Perhaps store OOF references in seperate
// (much smaller!) list.
for (int oofmIndex = NUM_OOFM; widgetAtPoint == NULL && oofmIndex >= 0;
@@ -2806,7 +2745,7 @@ core::Widget *Textblock::getWidgetAtPointLevel(int x, int y,
default:
widgetAtPoint =
- OOFAwareWidget::getWidgetAtPointLevel (x, y, context, level);
+ OOFAwareWidget::getWidgetAtPointLevel (x, y, level, context);
break;
}
@@ -2815,19 +2754,6 @@ core::Widget *Textblock::getWidgetAtPointLevel(int x, int y,
return widgetAtPoint;
}
-int Textblock::getLastLevelIndex (int majorLevel, int minorLevel)
-{
- switch (majorLevel) {
- case OOFStackingIterator::IN_FLOW:
- case OOFStackingIterator::OOF_REF:
- return words->size () - 1;
-
- default:
- return OOFAwareWidget::getLastLevelIndex (majorLevel, minorLevel);
- }
-}
-
-
/**
* This function "hands" the last break of a page "over" to a parent
* page. This is used for "collapsing spaces".
diff --git a/dw/textblock.hh b/dw/textblock.hh
index dd128a0a..5e626876 100644
--- a/dw/textblock.hh
+++ b/dw/textblock.hh
@@ -651,8 +651,6 @@ protected:
int xWidget, int yWidgetBase);
void drawLine (Line *line, core::View *view, core::Rectangle *area,
core::DrawingContext *context);
- void handleOOFReferences (core::StackingIteratorStack *iteratorStack,
- Widget **interruptedWidget, bool backwards);
int findLineIndex (int y);
int findLineIndexWhenNotAllocated (int y);
@@ -812,10 +810,8 @@ protected:
void drawLevel (core::View *view, core::Rectangle *area, int level,
core::DrawingContext *context);
- Widget *getWidgetAtPointLevel (int x, int y,
- core::GettingWidgetAtPointContext *context,
- int level);
- int getLastLevelIndex (int majorLevel, int minorLevel);
+ Widget *getWidgetAtPointLevel (int x, int y, int level,
+ core::GettingWidgetAtPointContext *context);
void sizeRequestImpl (core::Requisition *requisition);
void getExtremesImpl (core::Extremes *extremes);
diff --git a/dw/widget.cc b/dw/widget.cc
index 4903c067..191feda9 100644
--- a/dw/widget.cc
+++ b/dw/widget.cc
@@ -1865,10 +1865,6 @@ void Widget::leaveNotifyImpl (EventCrossing *)
tooltip->onLeave();
}
-lout::object::Object *Widget::stackingIterator (bool atEnd)
-{
- return NULL;
-}
void Widget::removeChild (Widget *child)
{
diff --git a/dw/widget.hh b/dw/widget.hh
index c8431f97..176fed08 100644
--- a/dw/widget.hh
+++ b/dw/widget.hh
@@ -535,13 +535,6 @@ public:
*/
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);
};