X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=otk%2Fdisplay.hh;h=ccce6ae1bfbc9f19b3c721fbc75e49c5692eb48c;hb=fabb6e8c1faa8339730cc7f56f84eb0a7e8b6c4f;hp=0dc59481d3d5bd6898a634265fa9d3d7338b03b4;hpb=c97915f445017d36667a6ad32767fa41d14d23b1;p=chaz%2Fopenbox diff --git a/otk/display.hh b/otk/display.hh index 0dc59481..ccce6ae1 100644 --- a/otk/display.hh +++ b/otk/display.hh @@ -6,12 +6,11 @@ extern "C" { #include } -#include - namespace otk { class ScreenInfo; class GCCache; +class RenderControl; class Display; @@ -19,17 +18,8 @@ class Display; extern Display *display; //! Manages a single X11 display. -/*! - This class is static, and cannot be instantiated. - Use the initialize() method to open the display and ready it for use. - Use the destroy() method to close it and clean up the class' data. -*/ class Display { -public: - //! A List of ScreenInfo instances - typedef std::vector ScreenInfoList; - private: //! The X display ::Display *_display; @@ -62,7 +52,11 @@ private: int _grab_count; //! A list of information for all screens on the display - ScreenInfoList _screenInfoList; + ScreenInfo** _screeninfo_list; + + //! A list of RenderControl objects, which are used for all graphics on a + //! screen + RenderControl** _rendercontrol_list; //! A cache for re-using GCs, used by the drawing objects /*! @@ -105,6 +99,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