2 * This file is part of LyX, the document processor.
3 * Licence details can be found in the file COPYING.
6 * \author Lars Gullik Bjønnes
8 * Full author contact details are available in file CREDITS.
13 #include "pariterator.h"
15 #include "paragraph.h"
18 #include "insets/inset.h"
27 ParIterator::ParIterator(DocIterator const & cur) : DocIterator(cur)
31 ParIterator par_iterator_begin(InsetBase & inset)
33 return ParIterator(doc_iterator_begin(inset));
37 ParIterator par_iterator_end(InsetBase & inset)
39 return ParIterator(doc_iterator_end(inset));
43 ParIterator::ParIterator(ParIterator const & pi)
44 : DocIterator(DocIterator(pi))
48 ParIterator & ParIterator::operator++()
55 ParIterator ParIterator::operator++(int)
57 ParIterator tmp(*this);
64 // Unused member functions. Also having this makes ParIterator not be
65 // an forward iterator anymore. So unless we change that, this function
66 // should not be compiled/used. (Lgb)
67 ParIterator & ParIterator::operator--()
72 // DocIterator::backwardPar();
78 Paragraph & ParIterator::operator*() const
80 return const_cast<Paragraph&>(text()->getPar(pit()));
84 pit_type ParIterator::pit() const
86 return DocIterator::pit();
90 Paragraph * ParIterator::operator->() const
92 return const_cast<Paragraph*>(&text()->getPar(pit()));
96 pit_type ParIterator::outerPar() const
98 return bottom().pit();
102 ParagraphList & ParIterator::plist() const
104 return const_cast<ParagraphList&>(text()->paragraphs());
108 bool operator==(ParIterator const & iter1, ParIterator const & iter2)
110 return DocIterator(iter1) == DocIterator(iter2);
114 bool operator!=(ParIterator const & iter1, ParIterator const & iter2)
116 return !(iter1 == iter2);
120 DocIterator makeDocIterator(ParIterator const & par, pos_type pos)
122 DocIterator dit(par);
134 ParConstIterator::ParConstIterator(DocIterator const & dit)
139 ParConstIterator::ParConstIterator(ParConstIterator const & pi)
140 : DocIterator(DocIterator(pi))
144 ParConstIterator & ParConstIterator::operator++()
146 DocIterator::forwardPar();
151 Paragraph const & ParConstIterator::operator*() const
153 return text()->getPar(pit());
157 Paragraph const * ParConstIterator::operator->() const
159 return &text()->getPar(pit());
163 ParagraphList const & ParConstIterator::plist() const
165 return text()->paragraphs();
169 bool operator==(ParConstIterator const & iter1, ParConstIterator const & iter2)
171 return DocIterator(iter1) == DocIterator(iter2);
175 bool operator!=(ParConstIterator const & iter1, ParConstIterator const & iter2)
177 return !(iter1 == iter2);
182 #warning const correctness!
185 ParConstIterator par_const_iterator_begin(InsetBase const & inset)
187 return ParConstIterator(doc_iterator_begin(const_cast<InsetBase &>(inset)));
191 ParConstIterator par_const_iterator_end(InsetBase const & inset)
193 return ParConstIterator(doc_iterator_end(const_cast<InsetBase &>(inset)));