X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FInsetList.h;h=708eab86fa0377ca7bd56e6bfc10ebfb820594c3;hb=801d7dc9f42baf331642606a6641606779985439;hp=33a9fe1e7f27e338240ebe1f919447d58fed090a;hpb=c9f9ba315c8e475ad47c64fef6c9c755dea3d55c;p=lyx.git diff --git a/src/InsetList.h b/src/InsetList.h index 33a9fe1e7f..708eab86fa 100644 --- a/src/InsetList.h +++ b/src/InsetList.h @@ -4,7 +4,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * * Full author contact details are available in file CREDITS. */ @@ -12,29 +12,45 @@ #ifndef INSET_LIST_H #define INSET_LIST_H +#include "insets/InsetCode.h" + #include "support/types.h" #include -class InsetBase; -class Buffer; +namespace lyx { + +class Inset; +class Buffer; /// class InsetList { public: /// - class 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 &); + /// + void resetBuffer(); + + /// + class Element { public: /// - InsetTable(lyx::pos_type p, InsetBase * i) : pos(p), inset(i) {} + Element(pos_type p, Inset * i) : pos(p), inset(i) {} /// - lyx::pos_type pos; + pos_type pos; /// - InsetBase * inset; + Inset * inset; }; /// - typedef std::vector List; + typedef std::vector List; /// typedef List::iterator iterator; /// @@ -53,25 +69,43 @@ public: /// bool empty() const { return list_.empty(); } /// - iterator insetIterator(lyx::pos_type pos); + iterator insetIterator(pos_type pos); /// - const_iterator insetIterator(lyx::pos_type pos) const; + const_iterator insetIterator(pos_type pos) const; /// - void insert(InsetBase * inset, lyx::pos_type pos); + void insert(Inset * inset, pos_type pos); /// - void erase(lyx::pos_type pos); + void erase(pos_type pos); /// - InsetBase * release(lyx::pos_type); + Inset * release(pos_type); /// - InsetBase * get(lyx::pos_type pos) const; + Inset * get(pos_type pos) const; /// - void increasePosAfterPos(lyx::pos_type pos); + void increasePosAfterPos(pos_type pos); /// - void decreasePosAfterPos(lyx::pos_type pos); + 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 occurrences 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_; }; + +} // namespace lyx + #endif