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 "ParagraphList_fwd.h"
16 #include "support/types.h"
18 #include <boost/scoped_ptr.hpp>
28 class ParIterator : public std::iterator<
29 std::forward_iterator_tag,
30 ParagraphList::value_type> {
33 ParIterator(ParagraphList::iterator pit, ParagraphList const & pl);
37 ParIterator(ParIterator const &);
39 ParIterator(PosIterator const &);
41 void operator=(ParIterator const &);
43 ParIterator & operator++();
45 Paragraph & operator*() const;
47 ParagraphList::iterator operator->() const;
48 /// This gives us the top-most parent paragraph
49 ParagraphList::iterator outerPar() const;
51 ParagraphList::iterator pit() const;
53 ParagraphList & plist() const;
54 /// returns 'innermost' LyXText
55 LyXText * text(Buffer &) const;
56 /// returns innermost inset
57 InsetBase * inset() const;
58 /// returns index of cell in innermost inset
64 bool operator==(ParIterator const & iter1, ParIterator const & iter2);
66 void lockPath(BufferView *) const;
69 PosIterator asPosIterator(lyx::pos_type) const;
72 boost::scoped_ptr<Pimpl> pimpl_;
76 bool operator==(ParIterator const & iter1, ParIterator const & iter2);
79 bool operator!=(ParIterator const & iter1, ParIterator const & iter2);
82 class ParConstIterator : public std::iterator<
83 std::forward_iterator_tag,
84 ParagraphList::value_type> {
87 ParConstIterator(ParagraphList::iterator pit, ParagraphList const & pl);
91 ParConstIterator(ParConstIterator const &);
93 ParConstIterator & operator++();
95 ParagraphList::const_iterator pit() const;
97 Paragraph const & operator*() const;
99 ParagraphList::const_iterator operator->() const;
101 ParagraphList const & plist() const;
107 bool operator==(ParConstIterator const & iter1,
108 ParConstIterator const & iter2);
112 boost::scoped_ptr<Pimpl> pimpl_;
115 bool operator==(ParConstIterator const & iter1,
116 ParConstIterator const & iter2);
118 bool operator!=(ParConstIterator const & iter1,
119 ParConstIterator const & iter2);