4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Lars Gullik Bjønnes
9 * Full author contact details are available in file CREDITS.
15 #include "insets/InsetCode.h"
17 #include "support/types.h"
33 InsetList(InsetList
const &);
34 /// Partial copy constructor.
35 /// Copy the InsetList contents from \p beg to \p end (without end).
36 InsetList(InsetList
const &, pos_type beg
, pos_type end
);
38 void setBuffer(Buffer
&);
44 InsetTable(pos_type p
, Inset
* i
) : pos(p
), inset(i
) {}
51 typedef std::vector
<InsetTable
> List
;
53 typedef List::iterator iterator
;
55 typedef List::const_iterator const_iterator
;
60 iterator
begin() { return list_
.begin(); }
62 iterator
end() { return list_
.end(); }
64 const_iterator
begin() const { return list_
.begin(); }
66 const_iterator
end() const { return list_
.end(); }
68 bool empty() const { return list_
.empty(); }
70 iterator
insetIterator(pos_type pos
);
72 const_iterator
insetIterator(pos_type pos
) const;
74 void insert(Inset
* inset
, pos_type pos
);
76 void erase(pos_type pos
);
78 Inset
* release(pos_type
);
80 Inset
* get(pos_type pos
) const;
82 void increasePosAfterPos(pos_type pos
);
84 void decreasePosAfterPos(pos_type pos
);
86 /// search for next occurence of an \c Inset type.
87 /// \return the position of the found inset.
88 /// \retval -1 if no \c Inset is found.
90 InsetCode code
, ///< Code of inset to find.
91 pos_type startpos
= 0 ///< start position for the search.
94 /// count occurences of of an \c Inset type.
95 /// \return the number of found inset(s).
97 InsetCode code
, ///< Code of inset type to count.
98 pos_type startpos
= 0 ///< start position for the counting.