X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxscreen.h;h=f611e8a6e118411a27a5f9c955c68c1dc611a5d7;hb=98c966c64594611e469313314abd1e59524adb4a;hp=89e8cb01f143cdcdbad755a38502285a5888eebb;hpb=797d87b4513088a66b17c7ac653b84e36ea80458;p=lyx.git diff --git a/src/lyxscreen.h b/src/lyxscreen.h index 89e8cb01f1..f611e8a6e1 100644 --- a/src/lyxscreen.h +++ b/src/lyxscreen.h @@ -1,11 +1,11 @@ // -*- C++ -*- /* This file is part of - * ====================================================== - * + * ====================================================== + * * LyX, The Document Processor - * + * * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team + * Copyright 1995-2001 The LyX Team * * ====================================================== */ @@ -16,19 +16,15 @@ #pragma interface #endif -#include FORMS_H_LOCATION #include class LyXText; class WorkArea; class Buffer; +class BufferView; struct Row; -/// -typedef unsigned short Dimension; - - /** The class LyXScreen is used for the main Textbody. Concretely, the screen is held in a pixmap. This pixmap is kept up to date and used to optimize drawing on the screen. @@ -49,58 +45,68 @@ public: /// LyXScreen(WorkArea &); + /// + ~LyXScreen(); + + /// 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 hideCursor(); /// - void CursorToggle(LyXText const *); + void cursorToggle(BufferView *) const; /// - void ShowManualCursor(LyXText const *, long x, long y, + 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, int y_offset = 0, - int x_offset = 0); + 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; private: /// Copies specified area of pixmap to screen - void expose(int x, int y, int exp_width, int exp_height); + 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, bool internal=false); /// 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; - + /// Pixmap cursor_pixmap; /// @@ -113,6 +119,8 @@ private: int cursor_pixmap_h; /// GC gc_copy; + /// + bool force_clear; }; #endif