X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fdociterator.h;h=7d4c4439681589200460d00067e4be9548204599;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=07ade45dedee730ac86d0b10d40f682de88eaf28;hpb=55c5fcb30c5de011fd1ebb502e33041eda8179ad;p=lyx.git diff --git a/src/dociterator.h b/src/dociterator.h index 07ade45ded..7d4c443968 100644 --- a/src/dociterator.h +++ b/src/dociterator.h @@ -17,13 +17,15 @@ #include #include + +namespace lyx { + class LyXText; class MathAtom; class Paragraph; class Row; - // only needed for gcc 2.95, remove when support terminated template bool ptr_cmp(A const * a, B const * b) @@ -39,10 +41,6 @@ class DocIterator // : public std::vector public: /// type for cell number in inset typedef CursorSlice::idx_type idx_type; - /// type for paragraph numbers positions within a cell - typedef CursorSlice::pit_type pit_type; - /// type for cursor positions within a cell - typedef CursorSlice::pos_type pos_type; /// type for row indices typedef CursorSlice::row_type row_type; /// type for col indices @@ -164,6 +162,8 @@ public: LyXText * text(); /// LyXText const * text() const; + /// the containing inset or the cell, respectively + InsetBase * realInset() const; /// InsetBase * innerInsetOfType(int code) const; /// @@ -176,8 +176,11 @@ public: // /// move on one logical position, do not descend into nested insets void forwardPosNoDescend(); - /// move on one logical position, descend into nested insets - void forwardPos(); + /** + * move on one logical position, descend into nested insets + * skip collapsed insets if \p ignorecollapsed is true + */ + void forwardPos(bool ignorecollapsed = false); /// move on one physical character or inset void forwardChar(); /// move on one paragraph @@ -214,6 +217,9 @@ public: void push_back(CursorSlice const & sl) { slices_.push_back(sl); } /// void pop_back() { slices_.pop_back(); } + /// recompute the inset parts of the cursor from the document data + void updateInsets(InsetBase * inset); + private: /** * When the cursor position is i, is the cursor after the i-th char @@ -274,8 +280,6 @@ public: DocIterator asDocIterator(InsetBase * start) const; /// size_t size() const { return data_.size(); } - /// type for cursor positions within a cell - typedef CursorSlice::pos_type pos_type; /// return the position within the paragraph pos_type pos() const { return data_.back().pos(); } /// return the position within the paragraph @@ -293,4 +297,7 @@ private: std::vector data_; }; + +} // namespace lyx + #endif