* Licence details can be found in the file COPYING.
*
* \author unknown
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
*
* Full author contact details are available in file CREDITS.
*/
#include "support/types.h"
-#include <vector>
-
namespace lyx {
+class Buffer;
class Inset;
-class LyXText;
+class Paragraph;
class ParagraphList;
typedef StdIt::reference reference;
///
- ParIterator() : DocIterator() {}
-
///
- ParIterator(Inset &, pit_type pit);
+ ParIterator(Buffer * buf) : DocIterator(buf) {}
///
- ParIterator(ParIterator const &);
+ ParIterator(ParIterator const & pi) :
+ DocIterator(DocIterator(pi)) {}
///
- ParIterator(DocIterator const &);
+ explicit ParIterator(DocIterator const & dit) :
+ DocIterator(dit) {}
/// This really should be implemented...
//ParIterator & operator=(ParIterator const &);
};
-DocIterator makeDocIterator(ParIterator const &, pos_type);
-
ParIterator par_iterator_begin(Inset & inset);
ParIterator par_iterator_end(Inset & inset);
///
-bool operator==(ParIterator const & iter1, ParIterator const & iter2);
+//bool operator==(ParIterator const & it1, ParIterator const & it2);
-///
-bool operator!=(ParIterator const & iter1, ParIterator const & iter2);
+// FIXME: Unfortunately operator!=(ParIterator &, ParIterator &) is
+// implemented with operator!=(DocIterator &, DocIterator &) that gives
+// false if the positions are different, even if the pars are the same.
+// So ultimately it's a bug in operator!=(ParIterator &, ParIterator &)
+// I'd say (nevertheless, I would be reluctant to change it, because I
+// fear that some part of the code could rely on this "bug". --Alfredo
+//bool operator!=(ParIterator const & it1, ParIterator const & it2);
class ParConstIterator : public std::iterator<std::forward_iterator_tag,
{
public:
///
- ParConstIterator(): DocIterator() {}
+ ParConstIterator(Buffer const * buf)
+ : DocIterator(const_cast<Buffer *>(buf)) {}
///
- ParConstIterator(ParConstIterator const &);
+ ParConstIterator(ParConstIterator const & pi)
+ : DocIterator(DocIterator(pi)) {}
///
- ParConstIterator(DocIterator const &);
+ explicit ParConstIterator(DocIterator const & dit)
+ : DocIterator(dit) {}
///
+ void push_back(Inset const &);
ParConstIterator & operator++();
///
ParagraphList const & plist() const;
};
-bool operator==(ParConstIterator const & iter1,
- ParConstIterator const & iter2);
-
-bool operator!=(ParConstIterator const & iter1,
- ParConstIterator const & iter2);
-
-
-ParConstIterator par_const_iterator_begin(Inset const & inset);
-
-ParConstIterator par_const_iterator_end(Inset const & inset);
+//bool operator==(ParConstIterator const & it1, ParConstIterator const & it2);
+//bool operator!=(ParConstIterator const & it1, ParConstIterator const & it2);
} // namespace lyx