mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-15 01:41:43 +00:00
5822df009a
* output_latex.h: * buffer.h: * CutAndPaste.h: * pariterator.h: * paragraph_funcs.h: * output_linuxdoc.h: * output_docbook.h: * insets/insettext.h: get forward declaration of ParagraphList * output_plaintext.C: * bufferlist.C: * undo.C: * lyxtext.h: * undo.h: * buffer_funcs.C: * insets/insetbibitem.C: get proper ParagraphList decls * output_linuxdoc.C (linuxdocParagraphs): * output_latex.C (TeXOnePar): * insets/insettext.C (appendParagraphs): * insets/insetcharstyle.C (docbook): use std::distance * CutAndPaste.C (pasteSelectionHelper, copySelectionHelper): * paragraph_funcs.C (breakParagraph, breakParagraphConservative, mergeParagraph): * text.C (acceptChange, rejectChange): * text2.C (deleteEmptyParagraphMechanism): use boost::next * output_docbook.C (several places): use boost::next and std::distance * ParagraphList_fwd.h: modify to provid a forward declaratoin of the new ParagraphList. * RandomAccessList.h: New container for Paragraphs from Abdelrazak Younes * ParagraphList.h: new file, setup user of RandomAccessList * paragraph.C: remove ParagraphList constructor from this file git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_4_X@13487 a592a061-630c-0410-9148-cb99ea01b6c8
122 lines
2.5 KiB
C++
122 lines
2.5 KiB
C++
// -*- 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 <boost/optional.hpp>
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
class InsetBase;
|
|
class LyXText;
|
|
|
|
|
|
class ParIterator : public std::iterator<std::forward_iterator_tag, Paragraph>,
|
|
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::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;
|
|
///
|
|
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<std::forward_iterator_tag,
|
|
Paragraph>,
|
|
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
|