]> git.lyx.org Git - lyx.git/blobdiff - src/lyxtext.h
Disable InsetText::update and InsetTabular::update
[lyx.git] / src / lyxtext.h
index 9395bb8490620fc6536311082499681445f09414..2e6ddd97c343df0830428b891686ecd3f74ba3c4 100644 (file)
@@ -44,37 +44,12 @@ class ParagraphList;
 // transition...
 class LyXText : public TextCursor {
 public:
-       /// what repainting is needed
-       enum refresh_status {
-               /// no repaint is needed
-               REFRESH_NONE = 0,
-               /// the refresh_row needs repainting
-               REFRESH_ROW = 1,
-               /// everything from refresh_y downwards needs repainting
-               REFRESH_AREA = 2
-       };
-
-       ///
-       enum word_location {
-               // 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
-               PARTIAL_WORD,
-               /// the word around the cursor or before the cursor
-               PREVIOUS_WORD,
-               /// the next word (not yet used)
-               NEXT_WORD
-       };
-
        /// Constructor
        LyXText(BufferView *);
        /// sets inset as owner
        LyXText(BufferView *, InsetText *);
 
-       void init(BufferView *, bool reinit = false);
+       void init(BufferView *);
        ///
        int height;
        ///
@@ -188,6 +163,8 @@ public:
        void partialRebreak();
        /// a full rebreak of the whole text
        void fullRebreak();
+       /// rebuild RowList cache
+       void rebuild();
 
        ///
        RowList::iterator need_break_row;
@@ -195,15 +172,8 @@ public:
        /// clear any pending paints
        void clearPaint();
 
-       /**
-        * Mark position y as the starting point for a repaint
-        */
-       void postPaint(int start_y);
-
-       /**
-        * Mark the given row at position y as needing a repaint.
-        */
-       void postRowPaint(RowList::iterator rit, int start_y);
+       /// submit repaint request
+       void postPaint();
 
        ///
        Inset::RESULT dispatch(FuncRequest const & cmd);
@@ -218,29 +188,17 @@ public:
         * Return the status. This represents what repaints are
         * pending after some operation (e.g. inserting a char).
         */
-       refresh_status refreshStatus() const;
+       bool needRefresh() const;
 
 private:
-       /**
-        * The pixel y position from which to repaint the screen.
-        * The position is absolute along the height of outermost
-        * lyxtext (I think). REFRESH_AREA and REFRESH_ROW
-        * repaints both use this as a starting point (if it's within
-        * the viewable portion of the lyxtext).
-        */
-       int refresh_y;
-       /**
-        * The row from which to repaint the screen, used by screen.c.
-        * This must be set if the pending update is REFRESH_ROW.
-        * It doesn't make any difference for REFRESH_AREA.
-        */
-       RowList::iterator refresh_row;
-
-       refresh_status refresh_status_;
+       // do we need a refresh?
+       bool need_refresh_;
 
+public:
        /// only the top-level LyXText has this non-zero
        BufferView * bv_owner;
 
+private:
        /// returns a pointer to a specified row.
        RowList::iterator
        getRow(ParagraphList::iterator pit, lyx::pos_type pos) const;
@@ -249,7 +207,14 @@ public:
        RowList::iterator getRow(LyXCursor const & cursor) const;
        /// convenience
        RowList::iterator cursorRow() const;
-       
+       /**
+        * Return the next row, when cursor is at the end of the
+        * previous row, for insets that take a full row.
+        *
+        * FIXME: explain why we need this ? especially for y...
+        */
+       RowList::iterator cursorIRow() const;
+
        /** returns a pointer to the row near the specified y-coordinate
          (relative to the whole text). y is set to the real beginning
          of this row
@@ -272,19 +237,16 @@ public:
                return rowlist_;
        }
 
-       
+
        /// need the selection cursor:
        void setSelection();
        ///
        void clearSelection();
-       ///
-       string const selectionAsString(Buffer const *, bool label) const;
 
        /// select the word we need depending on word_location
-       void getWord(LyXCursor & from, LyXCursor & to,
-                    word_location const);
+       void getWord(LyXCursor & from, LyXCursor & to, lyx::word_location const);
        /// just selects the word the cursor is in
-       void selectWord(word_location const);
+       void selectWord(lyx::word_location loc);
        /// returns the inset at cursor (if it exists), 0 otherwise
        Inset * getInset() const;
 
@@ -365,7 +327,7 @@ public:
        ///
        void backspace();
        ///
-       bool selectWordWhenUnderCursor(word_location);
+       bool selectWordWhenUnderCursor(lyx::word_location);
        ///
        enum TextCase {
                ///
@@ -454,8 +416,6 @@ public:
 private:
        ///
        mutable RowList rowlist_;
-       ///
-       void cursorLeftOneWord(LyXCursor &);
 
        ///
        float getCursorX(RowList::iterator rit, lyx::pos_type pos,