]> Dogcows Code - chaz/openbox/blobdiff - otk/display.hh
rm prefixes for all elements in the otk namepsace
[chaz/openbox] / otk / display.hh
index 7f5ab02d0b55daf96385ab430152de3e60129361..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,29 +19,40 @@ 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;
 
@@ -50,27 +61,27 @@ private:
 
   //! 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.
   */
@@ -79,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
   /*!
@@ -90,13 +101,24 @@ 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();
 
@@ -113,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.023682 seconds and 4 git commands to generate.