*/
/*
-First some explanation about what a Cursor really is. I try to go from
-more local to general.
+First some explanation about what a Cursor really is, from local to
+global.
* a CursorSlice indicates the position of the cursor at local level.
-It contains in particular:
+ It contains in particular:
* idx(): the cell that contains the cursor (for Tabular or math
arrays). Always 0 for 'plain' insets
- * pit(): the index of the current paragraph (only for Texted)
+ * pit(): the index of the current paragraph (only for text)
* pos(): the position in the current paragraph (or in the math
- equation in Mathed).
- * inset(): the inset in which the cursor is.
+ equation in mathed).
+ * inset(): the inset in which the cursor is. For a InsetTabular,
+ this is the tabular itself, not the cell inset (which is an
+ InsetTableCell).
* a DocIterator indicated the position of the cursor in the document.
It knows about the current buffer (buffer() method) and contains a
* innerTextSlice() returns the deepest slice that is text (useful
when one is in a math equation and looks for the enclosing text)
-* A CursorData is a descendent of Dociterator that contains
+* A CursorData is a descendant of Dociterator that contains
* a second DocIterator object, the anchor, that is useful when
selecting.
- * some other data not interesting here
-This class is used only for undo and contains the Cursor element that
-are not GUI-related. In LyX 2.0, Cursor was directly deriving from
-DocIterator
+ * some other data that describes current selection, cursor font, etc.
+
+ This class is mostly used only for undo and contains the Cursor
+ elements that are not GUI-related. In LyX 2.0, Cursor was directly
+ deriving from DocIterator
* A Cursor is a descendant of CursorData that contains interesting
display-related information, in particular targetX(), the horizontal
position of the cursor in pixels.
- * one interesting method for what you want to do is textRow(), that
- returns the inner Row object that contains the cursor
*/
#ifndef LCURSOR_H
/// set the cursor data
void setCursorData(CursorData const & data);
/// sets cursor part
+ /// this (intentionally) does neither touch anchor nor selection status
void setCursor(DocIterator const & it);
+ /// set the cursor to dit normalised against the anchor, and set selection.
+ void setCursorSelectionTo(DocIterator dit);
/// sets the cursor to the normalized selection anchor
void setCursorToAnchor();