// -*- C++ -*-
/**
* \file xscreen.h
- * Copyright 1995-2002 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
* \author unknown
- * \author John Levon <moz@compsoc.man.ac.uk>
+ * \author John Levon
+ *
+ * Full author contact details are available in file CREDITS.
*/
#ifndef XSCREEN_H
#define XSCREEN_H
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include <X11/Xlib.h>
#include "screen.h"
+#include <X11/Xlib.h> // for Pixmap, GC
+
+class WorkArea;
+class XWorkArea;
+
-#include "XWorkArea.h"
-
/** The class XScreen 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.
/// Sets the cursor color to LColor::cursor.
virtual void setCursorColor();
- ///
- virtual void hideCursor();
- ///
- virtual void showManualCursor(LyXText const *, int x, int y,
- int asc, int desc,
- Cursor_Shape shape);
-
- /** Draws the screen form textposition y. Uses as much of
- the already printed pixmap as possible */
- virtual void draw(LyXText *, BufferView *, unsigned int y);
protected:
/// get the work area
- virtual WorkArea & workarea() const { return owner_; }
-
+ virtual WorkArea & workarea() const;
+
/// Copies specified area of pixmap to screen
- virtual void expose(int x, int y, int w, int h);
-
+ virtual void expose(int x, int y, int w, int h);
+
+ /// paint the cursor and store the background
+ virtual void showCursor(int x, int y, int h, Cursor_Shape shape);
+
+ /// hide the cursor
+ virtual void removeCursor();
+
private:
/// our owning widget
XWorkArea & owner_;
-
- ///
- Pixmap cursor_pixmap;
- ///
- int cursor_pixmap_x;
- ///
- int cursor_pixmap_y;
- ///
- int cursor_pixmap_w;
- ///
- int cursor_pixmap_h;
- ///
+
+ /// backing pixmap for cursor
+ Pixmap nocursor_pixmap_;
+ /// x of backing pixmap
+ int cursor_x_;
+ /// y of backing pixmap
+ int cursor_y_;
+ /// width of backing pixmap
+ int cursor_w_;
+ /// height of backing pixmap
+ int cursor_h_;
+ /// cursor cs
GC gc_copy;
};