X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FInsetList.h;h=dcaa28eabce6ee073c00367b53032406c12e51be;hb=f7be88ce4c2bbc10c4691e614a54fca427a2e8fb;hp=b434298c92058bbb3f8047811e936769f182628e;hpb=2e57f2ff0ae7cd4a6efbf634ffe6d2f4379d9cfc;p=lyx.git diff --git a/src/InsetList.h b/src/InsetList.h index b434298c92..dcaa28eabc 100644 --- a/src/InsetList.h +++ b/src/InsetList.h @@ -1,25 +1,51 @@ // -*- C++ -*- +/** + * \file InsetList.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Lars Gullik Bjønnes + * + * Full author contact details are available in file CREDITS. + */ #ifndef INSET_LIST_H #define INSET_LIST_H +#include "insets/InsetCode.h" + #include "support/types.h" -class InsetOld; -class BufferView; +#include + + +namespace lyx { +class Inset; +class Buffer; /// class InsetList { public: /// - struct InsetTable { + InsetList() {} + /// + InsetList(InsetList const &); + /// Partial copy constructor. + /// Copy the InsetList contents from \p beg to \p end (without end). + InsetList(InsetList const &, pos_type beg, pos_type end); + /// + void setBuffer(Buffer &); + + /// + class InsetTable { + public: /// - lyx::pos_type pos; + InsetTable(pos_type p, Inset * i) : pos(p), inset(i) {} /// - InsetOld * inset; + pos_type pos; /// - InsetTable(lyx::pos_type p, InsetOld * i) : pos(p), inset(i) {} + Inset * inset; }; /// typedef std::vector List; @@ -31,34 +57,53 @@ public: /// ~InsetList(); /// - iterator begin(); + iterator begin() { return list_.begin(); } /// - iterator end(); + iterator end() { return list_.end(); } /// - const_iterator begin() const; + const_iterator begin() const { return list_.begin(); } /// - const_iterator end() const; + const_iterator end() const { return list_.end(); } /// - iterator insetIterator(lyx::pos_type pos); + bool empty() const { return list_.empty(); } /// - void insert(InsetOld * inset, lyx::pos_type pos); + iterator insetIterator(pos_type pos); /// - void erase(lyx::pos_type pos); + const_iterator insetIterator(pos_type pos) const; /// - InsetOld * release(lyx::pos_type); + void insert(Inset * inset, pos_type pos); /// - InsetOld * get(lyx::pos_type pos) const; + void erase(pos_type pos); /// - void increasePosAfterPos(lyx::pos_type pos); + Inset * release(pos_type); /// - void decreasePosAfterPos(lyx::pos_type pos); + Inset * get(pos_type pos) const; /// - void deleteInsetsLyXText(BufferView * bv); + void increasePosAfterPos(pos_type pos); /// - void resizeInsetsLyXText(BufferView * bv); + void decreasePosAfterPos(pos_type pos); + + /// search for next occurence of an \c Inset type. + /// \return the position of the found inset. + /// \retval -1 if no \c Inset is found. + pos_type find( + InsetCode code, ///< Code of inset to find. + pos_type startpos = 0 ///< start position for the search. + ) const; + + /// count occurences of of an \c Inset type. + /// \return the number of found inset(s). + int count( + InsetCode code, ///< Code of inset type to count. + pos_type startpos = 0 ///< start position for the counting. + ) const; + private: /// - List list; + List list_; }; + +} // namespace lyx + #endif