aboutsummaryrefslogtreecommitdiff
path: root/dw/iterator.hh
diff options
context:
space:
mode:
Diffstat (limited to 'dw/iterator.hh')
-rw-r--r--dw/iterator.hh28
1 files changed, 26 insertions, 2 deletions
diff --git a/dw/iterator.hh b/dw/iterator.hh
index abf31d0b..686235ed 100644
--- a/dw/iterator.hh
+++ b/dw/iterator.hh
@@ -86,8 +86,6 @@ public:
static void scrollTo (Iterator *it1, Iterator *it2, int start, int end,
HPosition hpos, VPosition vpos);
-
- virtual void print ();
};
@@ -265,6 +263,32 @@ 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