X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxscreen.h;h=91f17dc06b19c5637cfc822f5007944f4fe4d0af;hb=664eb7ff45dbb4fabc22ec0b56798031a82335b1;hp=ef50f28f97c70db2e63381fc1b13ded55657c67a;hpb=572556e94f635a132521ba759cea6b66dc56e2b8;p=lyx.git diff --git a/src/lyxscreen.h b/src/lyxscreen.h index ef50f28f97..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,41 +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(LyXText *, unsigned long y); + void Draw(LyXText *, BufferView *, unsigned int y); /// Redraws the screen, without using existing pixmap - void Redraw(LyXText *); + void Redraw(LyXText *, BufferView *); /// Returns a new top so that the cursor is visible - unsigned long TopCursorVisible(LyXText const *); + unsigned int TopCursorVisible(LyXText const *); /// Redraws the screen such that the cursor is visible - bool FitCursor(LyXText *); + bool FitCursor(LyXText *, BufferView *); /// - void ShowCursor(LyXText const *); + void ShowCursor(LyXText const *, BufferView const *); /// void HideCursor(); /// - void CursorToggle(LyXText const *); + void CursorToggle(LyXText const *, BufferView const *); /// - void ShowManualCursor(LyXText const *, 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(LyXText *, long, long, int, int); + bool FitManualCursor(LyXText *, BufferView *, int, int, int, int); /// - void ToggleSelection(LyXText *, bool = true); + void ToggleSelection(LyXText *, BufferView *, bool = true, + int y_offset = 0, int x_offset = 0); /// - void ToggleToggle(LyXText *, int y_offset = 0, int x_offset = 0); + 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(LyXText *, int y_offset=0, int x_offset=0); + void Update(LyXText *, BufferView *, int y_offset=0, int x_offset=0); + /// + bool forceClear() const { return force_clear; } /// bool cursor_visible; @@ -87,11 +99,12 @@ private: void expose(int x, int y, int exp_width, int exp_height); /// y1 and y2 are coordinates of the screen - void DrawFromTo(LyXText *, int y1, int y2, int y_offset=0, int x_offset=0); + 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(LyXText *, Row * row, long y_text, int y_offset=0, - int x_offset=0); + void DrawOneRow(LyXText *, BufferView *, Row * row, + int y_text, int y_offset = 0, int x_offset = 0); /// WorkArea & owner; @@ -108,6 +121,8 @@ private: int cursor_pixmap_h; /// GC gc_copy; + /// + bool force_clear; }; #endif