X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fdociterator.h;h=f8f4b490f52cb6c2bc82dc74c534bf9770402141;hb=37d42d45f3f4a5d3e916a080af50b37ae4a9d118;hp=5b410ae9a7c10f0596111a2c5435ddd566bf5370;hpb=41ecabf5197a74719dd125e974b062184208c96b;p=lyx.git diff --git a/src/dociterator.h b/src/dociterator.h index 5b410ae9a7..f8f4b490f5 100644 --- a/src/dociterator.h +++ b/src/dociterator.h @@ -164,6 +164,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 +178,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 @@ -207,13 +212,16 @@ public: friend bool operator==(DocIterator const &, DocIterator const &); /// friend class StableDocIterator; -protected: +//protected: /// void clear() { slices_.clear(); } /// 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,6 +282,12 @@ 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 + pos_type & pos() { return data_.back().pos(); } /// friend std::ostream & operator<<(std::ostream & os, StableDocIterator const & cur);