#include "CursorSlice.h"
#include <vector>
-#include <iosfwd>
namespace lyx {
class Paragraph;
-// only needed for gcc 2.95, remove when support terminated
-template <typename A, typename B>
-bool ptr_cmp(A const * a, B const * b)
-{
- return a == b;
-}
-
-
// The public inheritance should go in favour of a suitable data member
// (or maybe private inheritance) at some point of time.
class DocIterator // : public std::vector<CursorSlice>
/// \warning only works within text!
Paragraph & paragraph() const;
/// the paragraph we're in in any case.
- /// This method will give the containing paragraph if
- /// in not in text mode (ex: in mathed).
+ /// This method will give the containing paragraph even
+ /// if not in text mode (ex: in mathed).
Paragraph & innerParagraph() const;
+ /// return the inner text slice.
+ CursorSlice const & innerTextSlice() const;
///
Text * text() const;
/// the containing inset or the cell, respectively
void forwardChar();
/// move on one paragraph
void forwardPar();
- /// move on one cell
- void forwardIdx();
/// move on one inset
void forwardInset();
/// move backward one logical position
void backwardChar();
/// move backward one paragraph
void backwardPar();
- /// move backward one cell
- void backwardIdx();
/// move backward one inset
/// FIXME: This is not implemented!
//void backwardInset();
/// \return true if the DocIterator was fixed.
bool fixIfBroken();
+ /// find index of CursorSlice with &cell() == &cell (or -1 if not found)
+ idx_type find(MathData const & cell) const;
+ /// find index of CursorSlice with inset() == inset (or -1 of not found)
+ idx_type find(InsetMath const * inset) const;
+ /// cut off CursorSlices with index > above and store cut off slices in cut
+ void cutOff(idx_type above, std::vector<CursorSlice> & cut);
+ /// cut off CursorSlices with index > above
+ void cutOff(idx_type above);
+ /// push CursorSlices on top
+ void append(std::vector<CursorSlice> const & x);
+ /// push one CursorSlice on top and set its index and position
+ void append(idx_type idx, pos_type pos);
+
private:
/**
* When the cursor position is i, is the cursor after the i-th char