// -*- C++ -*- /* \file pariterator.h * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * * \author unknown * \author Lars Gullik Bjønnes * * Full author contact details are available in file CREDITS. */ #ifndef PARITERATOR_H #define PARITERATOR_H #include "dociterator.h" #include "ParagraphList_fwd.h" #include "support/types.h" #include #include class InsetBase; class LyXText; class ParIterator : public std::iterator, public DocIterator { public: typedef std::iterator 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::pit_type pit); /// ParIterator(ParIterator const &); /// ParIterator(DocIterator const &); /// This really should be implemented... //ParIterator & operator=(ParIterator const &); /// 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::pit_type outerPar() const; /// lyx::pit_type pit() const; /// /// return the paragraph this cursor is in pit_type & pit() { return DocIterator::pit(); } ParagraphList & plist() const; }; DocIterator makeDocIterator(ParIterator const &, lyx::pos_type); ParIterator par_iterator_begin(InsetBase & inset); ParIterator par_iterator_end(InsetBase & inset); /// bool operator==(ParIterator const & iter1, ParIterator const & iter2); /// bool operator!=(ParIterator const & iter1, ParIterator const & iter2); class ParConstIterator : public std::iterator, public DocIterator { public: /// ParConstIterator(ParConstIterator const &); /// ParConstIterator(DocIterator const &); /// ParConstIterator & operator++(); /// ParConstIterator & operator--(); /// Paragraph const & operator*() const; /// Paragraph const * operator->() const; /// 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(InsetBase const & inset); ParConstIterator par_const_iterator_end(InsetBase const & inset); #endif