X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxscreen.h;h=91f17dc06b19c5637cfc822f5007944f4fe4d0af;hb=664eb7ff45dbb4fabc22ec0b56798031a82335b1;hp=f70254e24f047c2d93ec60c69e32c0fef05b0cc9;hpb=6bba977f42b0cde753ac2ffd26f3f9c6b32ba0b6;p=lyx.git diff --git a/src/lyxscreen.h b/src/lyxscreen.h index f70254e24f..91f17dc06b 100644 --- a/src/lyxscreen.h +++ b/src/lyxscreen.h @@ -20,11 +20,15 @@ #include class LyXText; +class WorkArea; +class Buffer; +class BufferView; + 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 @@ -33,7 +37,7 @@ class Buffer; */ class LyXScreen { public: - + /// enum Cursor_Shape { /// BAR_SHAPE, @@ -44,44 +48,49 @@ public: }; /// - LyXScreen(WorkArea &, LyXText * text_ptr); + LyXScreen(WorkArea &); + /// Sets the cursor color to LColor::cursor. + void setCursorColor(); + /** Draws the screen form textposition y. Uses as much of the already printed pixmap as possible */ - void Draw(unsigned long y ); + void Draw(LyXText *, BufferView *, unsigned int y); /// Redraws the screen, without using existing pixmap - void Redraw(); + void Redraw(LyXText *, BufferView *); /// Returns a new top so that the cursor is visible - unsigned long TopCursorVisible(); + unsigned int TopCursorVisible(LyXText const *); /// Redraws the screen such that the cursor is visible - bool FitCursor(); + bool FitCursor(LyXText *, BufferView *); /// - void ShowCursor(); + void ShowCursor(LyXText const *, BufferView const *); /// void HideCursor(); /// - void CursorToggle(); + void CursorToggle(LyXText const *, BufferView const *); /// - void ShowManualCursor(long x, long y, int asc, int desc, + void ShowManualCursor(LyXText const *, int x, int y, + int asc, int desc, Cursor_Shape shape); /// returns 1 if first has changed, otherwise 0 - bool FitManualCursor(long, long, int, int); + bool FitManualCursor(LyXText *, BufferView *, int, int, int, int); /// - void ToggleSelection(bool = true); + void ToggleSelection(LyXText *, BufferView *, bool = true, + int y_offset = 0, int x_offset = 0); /// - void ToggleToggle(); + void ToggleToggle(LyXText *, BufferView *, + 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(); - - /// first visible pixel-row - unsigned long first; + void Update(LyXText *, BufferView *, int y_offset=0, int x_offset=0); + /// + bool forceClear() const { return force_clear; } /// bool cursor_visible; @@ -90,17 +99,16 @@ 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 *, BufferView *, 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 *, BufferView *, Row * row, + int y_text, int y_offset = 0, int x_offset = 0); /// WorkArea & owner; - /// - LyXText * text; - /// Pixmap cursor_pixmap; /// @@ -113,6 +121,8 @@ private: int cursor_pixmap_h; /// GC gc_copy; + /// + bool force_clear; }; #endif