class ParPosition {
public:
ParPosition(Paragraph * p)
- : par(p), it(p->inset_iterator_begin()), index(-1) {}
+ : par(p), it(p->insetlist.begin()), index(-1) {}
///
Paragraph * par;
///
- Paragraph::inset_iterator it;
+ InsetList::iterator it;
///
int index;
};
return !(iter1 == iter2);
}
+
+class ParConstIterator {
+public:
+ ///
+ typedef std::stack<ParPosition> 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