+ explicit CursorSlice(InsetBase &);
+
+ /// the current inset
+ InsetBase & inset() const { return *inset_; }
+ /// return the cell this cursor is in
+ idx_type idx() const { return idx_; }
+ /// return the cell this cursor is in
+ idx_type & idx() { return idx_; }
+ /// return the last cell in this inset
+ idx_type lastidx() const { return nargs() - 1; }
+ /// return the offset of the paragraph this cursor is in
+ pit_type pit() const { return pit_; }
+ /// set the offset of the paragraph this cursor is in
+ pit_type & pit() { return pit_; }
+ /// increments the paragraph this cursor is in
+ void incrementPar();
+ /// decrements the paragraph this cursor is in
+ void decrementPar();
+ /// return the position within the paragraph
+ pos_type pos() const { return pos_; }
+ /// return the position within the paragraph
+ pos_type & pos() { return pos_; }
+ /// return the last position within the paragraph
+ pos_type lastpos() const;
+ /// return the number of embedded cells
+ size_t nargs() const { return inset_->nargs(); }
+ /// return the number of columns (1 in non-grid-like insets)
+ size_t ncols() const { return inset_->ncols(); }
+ /// return the number of rows (1 in non-grid-like insets)
+ size_t nrows() const { return inset_->nrows(); }
+ /*!
+ * \return the grid row of the current cell.
+ * This does only make sense in grid like insets.
+ */
+ row_type row() const;
+ /*!
+ * \return the grid column of the current cell.
+ * This does only make sense in grid like insets.
+ */
+ col_type col() const;