]> git.lyx.org Git - lyx.git/blobdiff - src/ParIterator.h
InsetInfo: Output 'undefined' instead of an error message for undefined shortcut
[lyx.git] / src / ParIterator.h
index bcae0b96e80533a80fb7eb364f386a6aadb56224..f5e74ca8dc4f5d7271a52cc6bc79c53f29813327 100644 (file)
 #define PARITERATOR_H
 
 #include "DocIterator.h"
-#include "ParagraphList_fwd.h"
 
 #include "support/types.h"
 
-#include <boost/optional.hpp>
-
 #include <vector>
 
 
 namespace lyx {
 
-
-
-class InsetBase;
-class LyXText;
+class Inset;
+class Text;
+class ParagraphList;
 
 
 class ParIterator : public std::iterator<std::forward_iterator_tag, Paragraph>,
@@ -44,13 +40,12 @@ public:
        ///
        ParIterator() : DocIterator() {}
 
-
        ///
-       ParIterator(InsetBase &, pit_type pit);
+       ParIterator(Inset &, pit_type pit);
        ///
        ParIterator(ParIterator const &);
        ///
-       ParIterator(DocIterator const &);
+       explicit ParIterator(DocIterator const &);
 
        /// This really should be implemented...
        //ParIterator & operator=(ParIterator const &);
@@ -76,18 +71,21 @@ public:
 };
 
 
-DocIterator makeDocIterator(ParIterator const &, pos_type);
-
-ParIterator par_iterator_begin(InsetBase & inset);
+ParIterator par_iterator_begin(Inset & inset);
 
-ParIterator par_iterator_end(InsetBase & 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,
@@ -96,12 +94,13 @@ class ParConstIterator : public std::iterator<std::forward_iterator_tag,
 {
 public:
        ///
-       ParConstIterator(): DocIterator() {}
+       ParConstIterator() : DocIterator() {}
        ///
        ParConstIterator(ParConstIterator const &);
        ///
-       ParConstIterator(DocIterator const &);
+       explicit ParConstIterator(DocIterator const &);
        ///
+       void push_back(Inset const &);
 
        ParConstIterator & operator++();
        ///
@@ -114,16 +113,14 @@ public:
        ParagraphList const & plist() const;
 };
 
-bool operator==(ParConstIterator const & iter1,
-               ParConstIterator const & iter2);
+//bool operator==(ParConstIterator const & it1, ParConstIterator const & it2);
 
-bool operator!=(ParConstIterator const & iter1,
-               ParConstIterator const & iter2);
+//bool operator!=(ParConstIterator const & it1, ParConstIterator const & it2);
 
 
-ParConstIterator par_const_iterator_begin(InsetBase const & inset);
+ParConstIterator par_const_iterator_begin(Inset const & inset);
 
-ParConstIterator par_const_iterator_end(InsetBase const & inset);
+ParConstIterator par_const_iterator_end(Inset const & inset);