]> git.lyx.org Git - lyx.git/blobdiff - src/lyxscreen.h
Angus insetindex patch + protect patch from Dekel
[lyx.git] / src / lyxscreen.h
index 1aa54c02ebd182772fc278f8ab336fd0ee1e382c..26e695533f3bdff053cb6a42300f9cf6e75d4b42 100644 (file)
@@ -24,6 +24,7 @@ struct Row;
 typedef unsigned short Dimension;
 
 class WorkArea;
+class Buffer;
 
 /** The class LyXScreen is used for the main Textbody.
     Concretely, the screen is held in a pixmap.  This pixmap is kept up to
@@ -43,48 +44,42 @@ public:
        };
 
        ///
-       LyXScreen(WorkArea &, LyXText * text_ptr);
+       LyXScreen(WorkArea &); //, LyXText * text_ptr);
 
        /** Draws the screen form textposition y. Uses as much of
            the already printed pixmap as possible */
-       void Draw(long y );
+       void Draw(LyXText *, unsigned long y);
 
        /// Redraws the screen, without using existing pixmap
-       void Redraw();
+       void Redraw(LyXText *);
    
        /// Returns a new top so that the cursor is visible
-       long TopCursorVisible();
+       unsigned long TopCursorVisible(LyXText const *);
        /// Redraws the screen such that the cursor is visible
-       int FitCursor();
+       bool FitCursor(LyXText *);
        ///
-       void ShowCursor();
+       void ShowCursor(LyXText const *);
        ///
        void HideCursor();
        ///
-       void CursorToggle();
+       void CursorToggle(LyXText const *);
        ///
-       void ShowManualCursor(long x, long y, int asc, int desc,
+       void ShowManualCursor(LyXText const *, long x, long y, int asc, int desc,
                              Cursor_Shape shape);
        /// returns 1 if first has changed, otherwise 0
-       int  FitManualCursor(long, long, int, int);
+       bool FitManualCursor(LyXText *, long, long, int, int);
        ///
-       void ToggleSelection(bool = true);
+       void ToggleSelection(LyXText *, bool = true, int y_offset = 0,
+                            int x_offset = 0);
        ///
-       void ToggleToggle();
+       void ToggleToggle(LyXText *, int y_offset = 0, int x_offset = 0);
        
        /** Updates part of the screen. If text->status is
            LyXText::NEED_MORE_REFRESH, we update from the
            point of change and to the end of the screen.
            If text->status is LyXText::NEED_VERY_LITTLE_REFRESH,
            we only update the current row. */
-       void Update();
-
-       /** Updates part of the screen. Updates till row with cursor,
-           or only current row */
-       void SmallUpdate();
-
-       /// first visible pixel-row
-       long first;
+       void Update(LyXText *, int y_offset=0, int x_offset=0);
 
        ///
        bool cursor_visible;
@@ -93,17 +88,15 @@ private:
        void expose(int x, int y, int exp_width, int exp_height); 
 
        /// y1 and y2 are coordinates of the screen
-       void DrawFromTo(int y1, int y2);
-   
+       void DrawFromTo(LyXText *, int y1, int y2, int y_offset=0, int x_offset=0);
+
        /// y is a coordinate of the text
-       void DrawOneRow(Row * row, long & y_text);
+       void DrawOneRow(LyXText *, Row * row, long y_text, int y_offset=0,
+                       int x_offset=0);
 
        ///
        WorkArea & owner;
        
-       ///
-       LyXText * text;
-
        ///
        Pixmap cursor_pixmap;
        ///
@@ -114,11 +107,6 @@ private:
        int cursor_pixmap_w;
        ///
        int cursor_pixmap_h;
-       ///
-       long screen_refresh_y;
-       ///
-       Row * screen_refresh_row;
-
        ///
        GC gc_copy;
 };