]> Dogcows Code - chaz/openbox/blobdiff - otk/display.hh
rm prefixes for all elements in the otk namepsace
[chaz/openbox] / otk / display.hh
index e8f91ae946dcd1bec090d643b2313ac5b82d78af..7f08bc51fbf5b9a04da63ab6014a0f518ca8727f 100644 (file)
@@ -1,4 +1,4 @@
-// -*- mode: C++; indent-tabs-mode: nil; -*-
+// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
 #ifndef   __display_hh
 #define   __display_hh
 
@@ -11,7 +11,7 @@ extern "C" {
 namespace otk {
 
 class ScreenInfo;
-class BGCCache;
+class GCCache;
 
 //! Manages a single X11 display.
 /*!
@@ -19,55 +19,69 @@ class BGCCache;
   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 OBDisplay
+class Display
 {
 public:
   //! The X display
-  static Display *display;
+  static ::Display *display;
   
   //! A List of ScreenInfo instances
   typedef std::vector<ScreenInfo> ScreenInfoList;
 
 private:
-  //! Does the display have the Shape extention?
+  //! Does the display have the XKB extension?
+  static bool _xkb;
+  //! Base for events for the XKB extension
+  static int  _xkb_event_basep;
+
+  //! Does the display have the Shape extension?
   static bool _shape;
-  //! Base for events for the Shape extention
+  //! Base for events for the Shape extension
   static int  _shape_event_basep;
 
-  //! Does the display have the Xinerama extention?
+  //! Does the display have the Xinerama extension?
   static bool _xinerama;
-  //! Base for events for the Xinerama extention
+  //! Base for events for the Xinerama extension
   static int  _xinerama_event_basep;
 
   //! A list of all possible combinations of keyboard lock masks
   static unsigned int _mask_list[8];
 
+  //! The value of the mask for the NumLock modifier
+  static unsigned int _numLockMask;
+
+  //! The value of the mask for the ScrollLock modifier
+  static unsigned int _scrollLockMask;
+
+  //! The number of requested grabs on the display
+  static int _grab_count;
+
   //! A list of information for all screens on the display
   static ScreenInfoList _screenInfoList;
 
   //! A cache for re-using GCs, used by the drawing objects
   /*!
-    @see BPen
-    @see BFont
-    @see BImage
-    @see BImageControl
-    @see BTexture
+    @see Pen
+    @see Font
+    @see Image
+    @see ImageControl
+    @see Texture
   */
-  static BGCCache *_gccache;
+  static GCCache *_gccache;
 
   //! Handles X errors on the display
   /*!
     Displays the error if compiled for debugging.
   */
-  static int xerrorHandler(Display *d, XErrorEvent *e);
+  static int xerrorHandler(::Display *d, XErrorEvent *e);
 
   //! Prevents instantiation of the class
-  OBDisplay();
+  Display();
 
 public:
   //! Initializes the class, opens the X display
   /*!
-    @see OBDisplay::display
+    @see Display::display
     @param name The name of the X display to open. If it is null, the DISPLAY
                 environment variable is used instead.
   */
@@ -76,7 +90,7 @@ public:
   static void destroy();
 
   //! Returns the GC cache for the application
-  inline static BGCCache *gcCache() { return _gccache; }
+  inline static GCCache *gcCache() { return _gccache; }
 
   //! Gets information on a specific screen
   /*!
@@ -87,14 +101,29 @@ public:
   */
   static const ScreenInfo* screenInfo(int snum);
 
-  //! Returns if the display has the shape extention available
+  //! Find a ScreenInfo based on a root window
+  static const ScreenInfo* findScreen(Window root);
+
+  //! Returns if the display has the xkb extension available
+  inline static bool xkb() { return _xkb; }
+  //! Returns the xkb extension's event base
+  inline static int xkbEventBase() { return _xkb_event_basep; }
+
+  //! Returns if the display has the shape extension available
   inline static bool shape() { return _shape; }
   //! Returns the shape extension's event base
   inline static int shapeEventBase() { return _shape_event_basep; }
-  //! Returns if the display has the xinerama extention available
+  //! Returns if the display has the xinerama extension available
   inline static bool xinerama() { return _xinerama; }
 
+  inline static unsigned int numLockMask() { return _numLockMask; }
+  inline static unsigned int scrollLockMask() { return _scrollLockMask; }
 
+  //! Grabs the display
+  static void grab();
+
+  //! Ungrabs the display
+  static void ungrab();
 
 
   
@@ -106,6 +135,11 @@ public:
                   bool allow_scroll_lock);
   static void ungrabButton(unsigned int button, unsigned int modifiers,
                     Window grab_window);
+  static void grabKey(unsigned int keycode, unsigned int modifiers,
+                  Window grab_window, bool owner_events,
+                  int pointer_mode, int keyboard_mode, bool allow_scroll_lock);
+  static void ungrabKey(unsigned int keycode, unsigned int modifiers,
+                        Window grab_window);
 };
 
 }
This page took 0.027932 seconds and 4 git commands to generate.