Thanks.

JMarc


Pavel Sanda <sa...@lyx.org> a écrit :

>commit b76b6575bdcca8fda2380a11d8d7301c63fe6887
>Author: Pavel Sanda <sa...@lyx.org>
>Date:   Mon Jul 1 09:52:06 2013 -0700
>
>    Add introduction to cursor related classes, written by JMarc.
>
>diff --git a/src/Cursor.h b/src/Cursor.h
>index 006919b..c3ae448 100644
>--- a/src/Cursor.h
>+++ b/src/Cursor.h
>@@ -9,6 +9,47 @@
>  * Full author contact details are available in file CREDITS.
>  */
> 
>+/*
>+First some explanation about what a Cursor really is. I try to go from
>+more local to general.
>+
>+* a CursorSlice indicates the position of the cursor at local level.
>+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)
>+  * pos(): the position in the current paragraph (or in the math
>+           equation in Mathed).
>+  * inset(): the inset in which the cursor is.
>+
>+* a DocIterator indicated the position of the cursor in the document.
>+  It knows about the current buffer (buffer() method) and contains a
>+  vector of CursorSlices that describes the nesting of insets up to
>the
>+  point of interest. Note that operator<< has been implemented, so
>that
>+  one can send a DocIterator to a stream to see its value. Try it, it
>is
>+  very helpful to understand the cursor layout.
>+  * when using idx/pit/pos on a DocIterator, one gets the information
>+    from the inner slice (this slice can be accessed as top())
>+  * inMathed() returns true when the cursor is in a math formula
>+  * inTexted() returns true when the cursor is in text
>+  * 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 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
>+
>+* 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
> #define LCURSOR_H
> 

Reply via email to