summaryrefslogtreecommitdiff
path: root/otk/display.hh
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-01-18 07:23:28 +0000
committerDana Jansens <danakj@orodu.net>2003-01-18 07:23:28 +0000
commit9b6e5f9cf49df78be25720f9c4b33a733b856c9b (patch)
tree0da395f661151ce079d09483594f221c89e5d196 /otk/display.hh
parenta4dd208a7955e25bca710d4bcf355de7e608b9e1 (diff)
provide RenderControls to all otk from the display class. initialize them all there. try use bitshifts instead of color tables in the TrueRenderControl class for finding correct rgbs. Move the image/pixmap/xftdraw into the surface class, and it maintains them, recreating them when it resizes.
Diffstat (limited to 'otk/display.hh')
-rw-r--r--otk/display.hh14
1 files changed, 9 insertions, 5 deletions
diff --git a/otk/display.hh b/otk/display.hh
index 5f658cd3..9402a8e7 100644
--- a/otk/display.hh
+++ b/otk/display.hh
@@ -12,6 +12,7 @@ namespace otk {
class ScreenInfo;
class GCCache;
+class RenderControl;
class Display;
@@ -21,10 +22,6 @@ extern Display *display;
//! Manages a single X11 display.
class Display
{
-public:
- //! A List of ScreenInfo instances
- typedef std::vector<ScreenInfo> ScreenInfoList;
-
private:
//! The X display
::Display *_display;
@@ -57,7 +54,11 @@ private:
int _grab_count;
//! A list of information for all screens on the display
- ScreenInfoList _screenInfoList;
+ std::vector<ScreenInfo> _screenInfoList;
+
+ //! A list of RenderControl objects, which are used for all graphics on a
+ //! screen
+ std::vector<RenderControl*> _renderControlList;
//! A cache for re-using GCs, used by the drawing objects
/*!
@@ -100,6 +101,9 @@ public:
//! Find a ScreenInfo based on a root window
const ScreenInfo* findScreen(Window root);
+ //! Gets the RenderControl for a screen
+ const RenderControl *renderControl(int snum);
+
//! Returns if the display has the xkb extension available
inline bool xkb() const { return _xkb; }
//! Returns the xkb extension's event base