X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fiterators.h;h=8bc2128a08c297b9a7fb7e3aa855421c86221704;hb=ac103f15a7cead429a7b2ee1f75d67cc988ec81d;hp=ba85b6c46aade4f17485cd46e243a36e40b10147;hpb=260c7f3187a7dd392888b1d1eea513abffd8f2f7;p=lyx.git diff --git a/src/iterators.h b/src/iterators.h index ba85b6c46a..8bc2128a08 100644 --- a/src/iterators.h +++ b/src/iterators.h @@ -74,4 +74,46 @@ bool operator!=(ParIterator const & iter1, ParIterator const & iter2) { return !(iter1 == iter2); } + +class ParConstIterator { +public: + /// + typedef std::stack PosHolder; + /// + ParConstIterator() {} + /// + ParConstIterator(Paragraph * par) { + positions.push(ParPosition(par)); + } + /// + ParConstIterator & operator++(); + /// + Paragraph const * operator*() { + return positions.top().par; + } + /// + PosHolder::size_type size() const + { return positions.size(); } + /// + friend + bool operator==(ParConstIterator const & iter1, + ParConstIterator const & iter2); +private: + /// + PosHolder positions; +}; + + +/// +inline +bool operator==(ParConstIterator const & iter1, ParConstIterator const & iter2) { + return iter1.positions == iter2.positions; +} + +/// +inline +bool operator!=(ParConstIterator const & iter1, ParConstIterator const & iter2) { + return !(iter1 == iter2); +} + #endif