]> git.lyx.org Git - lyx.git/blobdiff - src/support/types.h
Let paragraph::requestSpellcheck() consider contained insets
[lyx.git] / src / support / types.h
index 94acd680ecfc3a626bbe8e2cf8bea8435695e385..99f53c8f1b8500f0eb83c46a5ff9006c886c4945 100644 (file)
@@ -8,7 +8,7 @@
  * indices wile trying to stay compatible with types used
  * by the standard containers.
  *
- * \author André Pönitz
+ * \author André Pönitz
  *
  * Full author contact details are available in file CREDITS.
  */
 
 namespace lyx {
 
-       /// a type for positions used in paragraphs
-       // needs to be signed for a while to hold the special value -1 that is
-       // used there
+       /*!
+        * A type for positions used in paragraphs.
+        * Each position is either occupied by a single character or an inset.
+        * For insets, the placeholder META_INSET is stored in the paragraph
+        * text, and the actual insets are maintained separately.
+        */
+       // FIXME: should be unsigned, but needs to be signed for a while to
+       // hold the special value -1 that is used somewhere
+       // Specifically, TexRow::getDocIteratorsFromEntries uses negative pos
+       // the way Python does: counting from the end. So maybe this should just
+       // be signed.
+       // Note that the signed property is also used in loops counting to zero.
        typedef ptrdiff_t  pos_type;
 
-       /// a type for paragraph offsets
+       /*!
+        * A type for paragraph offsets.
+        * This is used to address paragraphs in ParagraphList, Text etc.
+        */
        // FIXME: should be unsigned as well.
        // however, simply changing it breaks a downward loop somewhere...
        typedef ptrdiff_t  pit_type;
@@ -33,6 +45,16 @@ namespace lyx {
        /// a type for the nesting depth of a paragraph
        typedef size_t     depth_type;
 
+       /// type for cell indices in inset
+       typedef size_t     idx_type;
+       /// type for row indices
+       typedef size_t     row_type;
+       /// type for col indices
+       typedef size_t     col_type;
+
+       /// type for cells and math insets
+       typedef void const * uid_type;
+
 // set this to '0' if you want to have really safe types
 #if 1
 
@@ -47,13 +69,13 @@ namespace lyx {
 
        struct size_type {
                ///
-               typedef size_t  base_type;
+               typedef size_t base_type;
                ///
                size_type(base_type t) { data_ = t; }
                ///
                operator base_type() const { return data_; }
                ///
-               private:
+       private:
                base_type data_;
        };
 
@@ -61,12 +83,12 @@ namespace lyx {
 
        ///
        enum word_location {
-               // the word around the cursor, only if the cursor is
-               //not at a boundary
+               /// the word around the cursor, only if the cursor is
+               //not at a boundary
                WHOLE_WORD_STRICT,
                // the word around the cursor
                WHOLE_WORD,
-               /// the word begining from the cursor position
+               /// the word beginning from the cursor position
                PARTIAL_WORD,
                /// the word around the cursor or before the cursor
                PREVIOUS_WORD,