- /// access to cursor 'tip'
- CursorSlice & top() { return cursor_.back(); }
- /// access to cursor 'tip'
- CursorSlice const & top() const { return cursor_.back(); }
- /// how many nested insets do we have?
- size_t depth() const { return cursor_.size(); }
-
- /// access to the topmost slice
- /// the current inset
- InsetBase * inset() const { return top().inset(); }
- /// return the text-ed cell this cursor is in
- idx_type idx() const { return top().idx(); }
- /// return the text-ed cell this cursor is in
- idx_type & idx() { return top().idx(); }
- /// return the paragraph this cursor is in
- par_type par() const { return top().par(); }
- /// return the paragraph this cursor is in
- par_type & par() { return top().par(); }
- /// return the position within the paragraph
- pos_type pos() const { return top().pos(); }
- /// return the position within the paragraph
- pos_type & pos() { return top().pos(); }
- /// return the last position within the paragraph
- pos_type lastpos() const { return top().lastpos(); }
- /// return the number of embedded cells
- size_t nargs() const { return top().nargs(); }
- /// return the number of embedded cells
- size_t ncols() const { return top().ncols(); }
- /// return the number of embedded cells
- size_t nrows() const { return top().nrows(); }
- /// return the grid row of the current cell
- row_type row() const { return top().row(); }
- /// return the grid row of the current cell
- col_type col() const { return top().col(); }
+ /// pop one slice off the cursor stack and go left
+ bool popLeft();
+ /// pop one slice off the cursor stack and go right
+ bool popRight();
+ /// make sure we are outside of given inset
+ void leaveInset(InsetBase const & inset);
+ /// sets cursor part
+ void setCursor(DocIterator const & it);