X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxscreen.h;h=f611e8a6e118411a27a5f9c955c68c1dc611a5d7;hb=98c966c64594611e469313314abd1e59524adb4a;hp=cd9f3266d71fc7e8c3b515a5cc1c842d5e92e74d;hpb=c3ac97d9512d3b7b5d3c4e9e4959225a596c9d65;p=lyx.git diff --git a/src/lyxscreen.h b/src/lyxscreen.h index cd9f3266d7..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,14 +16,14 @@ #pragma interface #endif -#include FORMS_H_LOCATION #include class LyXText; -struct Row; -typedef unsigned short Dimension; - class WorkArea; +class Buffer; +class BufferView; + +struct Row; /** The class LyXScreen is used for the main Textbody. Concretely, the screen is held in a pixmap. This pixmap is kept up to @@ -32,7 +32,7 @@ class WorkArea; */ class LyXScreen { public: - + /// enum Cursor_Shape { /// BAR_SHAPE, @@ -43,72 +43,69 @@ public: }; /// - LyXScreen(WorkArea &, LyXText * text_ptr); + 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(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 hideCursor(); /// - void CursorToggle(); + void cursorToggle(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(); - -#if 0 - /** Updates part of the screen. Updates till row with cursor, - or only current row */ - void SmallUpdate(); -#endif - /// 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; 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(int y1, int y2); + void drawFromTo(LyXText *, BufferView *, int y1, int y2, + int y_offset = 0, int x_offset = 0, bool internal=false); -#if 1 - /// y is a coordinate of the text - void DrawOneRow(Row * row, long y_text); -#else /// y is a coordinate of the text - void DrawOneRow(Row * row, long & y_text); -#endif + void drawOneRow(LyXText *, BufferView *, Row * row, + int y_text, int y_offset = 0, int x_offset = 0); /// WorkArea & owner; - - /// - LyXText * text; /// Pixmap cursor_pixmap; @@ -122,6 +119,8 @@ private: int cursor_pixmap_h; /// GC gc_copy; + /// + bool force_clear; }; #endif