// -*- 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.
*
* Full author contact details are available in file CREDITS.
*/
-#ifndef ITERATORS_H
-#define ITERATORS_H
+#ifndef PARITERATOR_H
+#define PARITERATOR_H
#include "dociterator.h"
+#include "ParagraphList_fwd.h"
#include "support/types.h"
#include <vector>
+namespace lyx {
+
+
class InsetBase;
class LyXText;
-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 &, 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;
+ pit_type outerPar() const;
///
- lyx::par_type pit() const;
+ pit_type pit() const;
///
+ /// return the paragraph this cursor is in
+ pit_type & pit() { return DocIterator::pit(); }
+
ParagraphList & plist() const;
};
-DocumentIterator makeDocumentIterator(ParIterator const &, lyx::pos_type);
+DocIterator makeDocIterator(ParIterator const &, pos_type);
ParIterator par_iterator_begin(InsetBase & inset);
class ParConstIterator : public std::iterator<std::forward_iterator_tag,
Paragraph>,
- public DocumentIterator
+ public DocIterator
{
public:
+ ///
+ ParConstIterator(): DocIterator() {}
///
ParConstIterator(ParConstIterator const &);
///
- ParConstIterator(DocumentIterator const &);
+ ParConstIterator(DocIterator const &);
///
ParConstIterator & operator++();
ParConstIterator par_const_iterator_end(InsetBase const & inset);
+
+} // namespace lyx
+
#endif