]> git.lyx.org Git - lyx.git/blob - src/ParIterator.h
Fixed some lines that were too long. It compiled afterwards.
[lyx.git] / src / ParIterator.h
1 // -*- C++ -*-
2 /* \file ParIterator.h
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author unknown
7  * \author Lars Gullik Bjønnes
8  *
9  * Full author contact details are available in file CREDITS.
10  */
11
12 #ifndef PARITERATOR_H
13 #define PARITERATOR_H
14
15 #include "DocIterator.h"
16
17 #include "support/types.h"
18
19 #include <vector>
20
21
22 namespace lyx {
23
24 class Inset;
25 class Text;
26 class ParagraphList;
27
28
29 class ParIterator : public std::iterator<std::forward_iterator_tag, Paragraph>,
30                     public DocIterator
31 {
32 public:
33         typedef std::iterator<std::forward_iterator_tag, Paragraph> StdIt;
34
35         typedef StdIt::value_type value_type;
36         typedef StdIt::difference_type difference_type;
37         typedef StdIt::pointer pointer;
38         typedef StdIt::reference reference;
39
40         ///
41         ParIterator() : DocIterator() {}
42
43         ///
44         ParIterator(Inset &, pit_type pit);
45         ///
46         ParIterator(ParIterator const &);
47         ///
48         ParIterator(DocIterator const &);
49
50         /// This really should be implemented...
51         //ParIterator & operator=(ParIterator const &);
52         ///
53         ParIterator & operator++();
54         ///
55         ParIterator operator++(int);
56         /// See comment in ParIterator.cpp
57         //ParIterator & operator--();
58         ///
59         Paragraph & operator*() const;
60         ///
61         Paragraph * operator->() const;
62         /// This gives us the top-most parent paragraph
63         pit_type outerPar() const;
64         ///
65         pit_type pit() const;
66         ///
67         /// return the paragraph this cursor is in
68         pit_type & pit() { return DocIterator::pit(); }
69
70         ParagraphList & plist() const;
71 };
72
73
74 DocIterator makeDocIterator(ParIterator const &, pos_type);
75
76 ParIterator par_iterator_begin(Inset & inset);
77
78 ParIterator par_iterator_end(Inset & inset);
79
80
81 ///
82 bool operator==(ParIterator const & iter1, ParIterator const & iter2);
83
84 ///
85 bool operator!=(ParIterator const & iter1, ParIterator const & iter2);
86
87
88 class ParConstIterator : public std::iterator<std::forward_iterator_tag,
89                          Paragraph>,
90                          public DocIterator
91 {
92 public:
93         ///
94         ParConstIterator(): DocIterator() {}
95         ///
96         ParConstIterator(ParConstIterator const &);
97         ///
98         ParConstIterator(DocIterator const &);
99         ///
100
101         ParConstIterator & operator++();
102         ///
103         ParConstIterator & operator--();
104         ///
105         Paragraph const & operator*() const;
106         ///
107         Paragraph const * operator->() const;
108         ///
109         ParagraphList const & plist() const;
110 };
111
112 bool operator==(ParConstIterator const & iter1,
113                 ParConstIterator const & iter2);
114
115 bool operator!=(ParConstIterator const & iter1,
116                 ParConstIterator const & iter2);
117
118
119 ParConstIterator par_const_iterator_begin(Inset const & inset);
120
121 ParConstIterator par_const_iterator_end(Inset const & inset);
122
123
124
125 } // namespace lyx
126
127 #endif