3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
7 * \author Lars Gullik Bjønnes
9 * Full author contact details are available in file CREDITS.
15 #include "dociterator.h"
17 #include "support/types.h"
19 #include <boost/optional.hpp>
30 class ParIterator : public std::iterator<std::forward_iterator_tag, Paragraph>,
35 ParIterator(InsetBase &, lyx::par_type pit);
37 ParIterator(ParIterator const &);
39 ParIterator(DocIterator const &);
42 void operator=(ParIterator const &);
44 ParIterator & operator++();
46 ParIterator & operator--();
48 Paragraph & operator*() const;
50 Paragraph * operator->() const;
51 /// This gives us the top-most parent paragraph
52 lyx::par_type outerPar() const;
54 lyx::par_type pit() const;
56 ParagraphList & plist() const;
60 DocIterator makeDocIterator(ParIterator const &, lyx::pos_type);
62 ParIterator par_iterator_begin(InsetBase & inset);
64 ParIterator par_iterator_end(InsetBase & inset);
68 bool operator==(ParIterator const & iter1, ParIterator const & iter2);
71 bool operator!=(ParIterator const & iter1, ParIterator const & iter2);
74 class ParConstIterator : public std::iterator<std::forward_iterator_tag,
80 ParConstIterator(ParConstIterator const &);
82 ParConstIterator(DocIterator const &);
85 ParConstIterator & operator++();
87 ParConstIterator & operator--();
89 Paragraph const & operator*() const;
91 Paragraph const * operator->() const;
93 ParagraphList const & plist() const;
96 bool operator==(ParConstIterator const & iter1,
97 ParConstIterator const & iter2);
99 bool operator!=(ParConstIterator const & iter1,
100 ParConstIterator const & iter2);
103 ParConstIterator par_const_iterator_begin(InsetBase const & inset);
105 ParConstIterator par_const_iterator_end(InsetBase const & inset);