]> git.lyx.org Git - lyx.git/blobdiff - src/pariterator.h
changelogs
[lyx.git] / src / pariterator.h
index c1f9812e39bd961fa7dcd31cbcebca69f3fdb3a7..1dbd705d7bdff5bd50804c50600a936e8cfcbded 100644 (file)
@@ -1,5 +1,5 @@
 // -*- C++ -*-
-/* \file iterators.h
+/* \file pariterator.h
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
@@ -9,8 +9,8 @@
  * Full author contact details are available in file CREDITS.
  */
 
-#ifndef ITERATORS_H
-#define ITERATORS_H
+#ifndef PARITERATOR_H
+#define PARITERATOR_H
 
 #include "dociterator.h"
 
@@ -28,38 +28,53 @@ class ParagraphList;
 
 
 class ParIterator : public std::iterator<std::forward_iterator_tag, Paragraph>,
-                   public DocumentIterator
+                   public DocIterator
 {
 public:
+       typedef std::iterator<std::forward_iterator_tag, Paragraph> StdIt;
+
+       typedef StdIt::value_type value_type;
+       typedef StdIt::difference_type difference_type;
+       typedef StdIt::pointer pointer;
+       typedef StdIt::reference reference;
+
+       ///
+       ParIterator() : DocIterator() {}
+
+
        ///
-       ParIterator(InsetBase &, lyx::par_type pit);
+       ParIterator(InsetBase &, lyx::pit_type pit);
        ///
        ParIterator(ParIterator const &);
        ///
-       ParIterator(DocumentIterator const &);
+       ParIterator(DocIterator const &);
 
-       ///
-       void operator=(ParIterator const &);
+       /// This really should be implemented...
+       //ParIterator & operator=(ParIterator const &);
        ///
        ParIterator & operator++();
        ///
-       ParIterator & operator--();
+       ParIterator operator++(int);
+       /// See comment in pariterator.C
+       //ParIterator & operator--();
        ///
        Paragraph & operator*() const;
        ///
        Paragraph * operator->() const;
        /// This gives us the top-most parent paragraph
-       lyx::par_type outerPar() const;
+       lyx::pit_type outerPar() const;
        ///
-       lyx::par_type pit() const;
+       lyx::pit_type pit() const;
        ///
        ParagraphList & plist() const;
 };
 
 
-DocumentIterator makeDocumentIterator(ParIterator const &, lyx::pos_type);
+DocIterator makeDocIterator(ParIterator const &, lyx::pos_type);
 
+ParIterator par_iterator_begin(InsetBase & inset);
 
+ParIterator par_iterator_end(InsetBase & inset);
 
 
 ///
@@ -71,15 +86,13 @@ bool operator!=(ParIterator const & iter1, ParIterator const & iter2);
 
 class ParConstIterator : public std::iterator<std::forward_iterator_tag,
                         Paragraph>,
-                        public DocumentIterator
+                        public DocIterator
 {
 public:
-       ///
-       ParConstIterator(InsetBase const &, lyx::par_type pit);
        ///
        ParConstIterator(ParConstIterator const &);
        ///
-       ParConstIterator(DocumentIterator const &);
+       ParConstIterator(DocIterator const &);
        ///
 
        ParConstIterator & operator++();
@@ -99,4 +112,10 @@ bool operator==(ParConstIterator const & iter1,
 bool operator!=(ParConstIterator const & iter1,
                ParConstIterator const & iter2);
 
+
+ParConstIterator par_const_iterator_begin(InsetBase const & inset);
+
+ParConstIterator par_const_iterator_end(InsetBase const & inset);
+
+
 #endif