X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FParagraphList.h;h=7e5cc1a869ff50b54150f09d1c85d2448731ba9c;hb=26ba2a65838731ce639a09539f617cb0f0be3b22;hp=7223b58e08c7c1baeb87d3af6959b813cc980dbd;hpb=ebc4d99eaa5d860fedfe509bd1b2a26938d95082;p=lyx.git diff --git a/src/ParagraphList.h b/src/ParagraphList.h index 7223b58e08..7e5cc1a869 100644 --- a/src/ParagraphList.h +++ b/src/ParagraphList.h @@ -1,86 +1,47 @@ // -*- C++ -*- +/** + * \file ParagraphList.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Angus Leeming + * + * Full author contact details are available in file CREDITS. + */ #ifndef PARAGRAPH_LIST_H #define PARAGRAPH_LIST_H -#include +#include "Paragraph.h" -class Paragraph; +#include "support/RandomAccessList.h" -/// -class ParagraphList { + +namespace lyx { + +/// Container for all kind of Paragraphs used in LyX. +class ParagraphList : public RandomAccessList { public: /// - class iterator { - public: - /// - typedef std::bidirectional_iterator_tag iterator_category; - /// - typedef Paragraph * value_type; - /// - typedef ptrdiff_t difference_type; - /// - typedef Paragraph * pointer; - /// - typedef Paragraph & reference; - /// - iterator(); - /// - iterator(value_type); - /// - reference operator*(); - /// - pointer operator->(); - /// - iterator & operator++(); - /// - iterator operator++(int); - /// - iterator & operator--(); - /// - iterator operator--(int); - private: - /// - Paragraph * ptr; - }; - /// - ParagraphList(); - /// - iterator insert(iterator it, Paragraph * par); - /// - void clear(); - /// - void erase(iterator it); - /// - iterator begin(); - /// - iterator begin() const; - /// - iterator end(); + ParagraphList() {} /// - iterator end() const; - /// - void set(Paragraph *); - /// - void push_back(Paragraph *); - /// - Paragraph const * back() const; - /// - Paragraph * back(); - /// - int size() const; - /// - bool empty() const; -private: - /// - Paragraph * parlist; + template + ParagraphList(InputIterator first, InputIterator last) + : RandomAccessList(first, last) + {} + + const Paragraph * getParagraphBefore(const_iterator const & par) const + { + // No previous paragraph. + if (par == begin()) + return nullptr; + + auto prevpar = par; + --prevpar; + return &*prevpar; + } }; -/// -bool operator==(ParagraphList::iterator const & i1, - ParagraphList::iterator const & i2); -/// -bool operator!=(ParagraphList::iterator const & i1, - ParagraphList::iterator const & i2); +} // namespace lyx #endif