diff options
Diffstat (limited to 'dw/iterator.hh')
-rw-r--r-- | dw/iterator.hh | 28 |
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 |