]> Dogcows Code - chaz/openbox/blobdiff - otk/property.cc
begin conversion to ustring. add some more members.
[chaz/openbox] / otk / property.cc
index 5425f8df81e3e604056c310ed45be4b64d6d9d73..ad9eacc90736ce6a7ec1cb96c2f6676f5f79562e 100644 (file)
@@ -4,18 +4,20 @@
 #  include "../config.h"
 #endif // HAVE_CONFIG_H
 
+#include "property.hh"
+#include "display.hh"
+
 extern "C" {
 #include <assert.h>
 }
 
-#include "property.hh"
-#include "display.hh"
+#include <algorithm>
 
 namespace otk {
 
-OBProperty::OBProperty()
+Property::Property()
 {
-  assert(OBDisplay::display);
+  assert(Display::display);
 
   // make sure asserts fire if there is a problem
   memset(_atoms, 0, sizeof(_atoms));
@@ -27,9 +29,7 @@ OBProperty::OBProperty()
   _atoms[Atom_String] = XA_STRING;
   _atoms[Atom_Utf8] = create("UTF8_STRING");
   
-#ifdef    HAVE_GETPID
-  _atoms[blackbox_pid] = create("_BLACKBOX_PID");
-#endif // HAVE_GETPID
+  _atoms[openbox_pid] = create("_OPENBOX_PID");
 
   _atoms[wm_colormap_windows] = create("WM_COLORMAP_WINDOWS");
   _atoms[wm_protocols] = create("WM_PROTOCOLS");
@@ -40,6 +40,7 @@ OBProperty::OBProperty()
   _atoms[wm_name] = create("WM_NAME");
   _atoms[wm_icon_name] = create("WM_ICON_NAME");
   _atoms[wm_class] = create("WM_CLASS");
+  _atoms[wm_window_role] = create("WM_WINDOW_ROLE");
   _atoms[motif_wm_hints] = create("_MOTIF_WM_HINTS");
   _atoms[blackbox_hints] = create("_BLACKBOX_HINTS");
   _atoms[blackbox_attributes] = create("_BLACKBOX_ATTRIBUTES");
@@ -130,6 +131,7 @@ OBProperty::OBProperty()
   _atoms[net_wm_action_close] = create("_NET_WM_ACTION_CLOSE");
     
   _atoms[net_wm_state_modal] = create("_NET_WM_STATE_MODAL");
+  _atoms[net_wm_state_sticky] = create("_NET_WM_STATE_STICKY");
   _atoms[net_wm_state_maximized_vert] = create("_NET_WM_STATE_MAXIMIZED_VERT");
   _atoms[net_wm_state_maximized_horz] = create("_NET_WM_STATE_MAXIMIZED_HORZ");
   _atoms[net_wm_state_shaded] = create("_NET_WM_STATE_SHADED");
@@ -137,6 +139,8 @@ OBProperty::OBProperty()
   _atoms[net_wm_state_skip_pager] = create("_NET_WM_STATE_SKIP_PAGER");
   _atoms[net_wm_state_hidden] = create("_NET_WM_STATE_HIDDEN");
   _atoms[net_wm_state_fullscreen] = create("_NET_WM_STATE_FULLSCREEN");
+  _atoms[net_wm_state_above] = create("_NET_WM_STATE_ABOVE");
+  _atoms[net_wm_state_below] = create("_NET_WM_STATE_BELOW");
   
   _atoms[kde_net_system_tray_windows] = create("_KDE_NET_SYSTEM_TRAY_WINDOWS");
   _atoms[kde_net_wm_system_tray_window_for] =
@@ -149,7 +153,7 @@ OBProperty::OBProperty()
 /*
  * clean up the class' members
  */
-OBProperty::~OBProperty()
+Property::~Property()
 {
 }
 
@@ -157,9 +161,11 @@ OBProperty::~OBProperty()
 /*
  * Returns an atom from the Xserver, creating it if necessary.
  */
-Atom OBProperty::create(const char *name) const
+Atom Property::create(const char *name) const
 {
-  return XInternAtom(OBDisplay::display, name, False);
+  Atom a = XInternAtom(Display::display, name, False);
+  assert(a);
+  return a;
 }
 
 
@@ -168,14 +174,14 @@ Atom OBProperty::create(const char *name) const
  * Sets a window property on a window, optionally appending to the existing
  * value.
  */
-void OBProperty::set(Window win, Atom atom, Atom type,
+void Property::set(Window win, Atom atom, Atom type,
                           unsigned char* data, int size, int nelements,
                           bool append) const
 {
   assert(win != None); assert(atom != None); assert(type != None);
   assert(nelements == 0 || (nelements > 0 && data != (unsigned char *) 0));
   assert(size == 8 || size == 16 || size == 32);
-  XChangeProperty(OBDisplay::display, win, atom, type, size,
+  XChangeProperty(Display::display, win, atom, type, size,
                   (append ? PropModeAppend : PropModeReplace),
                   data, nelements);
 }
@@ -184,7 +190,7 @@ void OBProperty::set(Window win, Atom atom, Atom type,
 /*
  * Set a 32-bit property value on a window.
  */
-void OBProperty::set(Window win, Atoms atom, Atoms type,
+void Property::set(Window win, Atoms atom, Atoms type,
                           unsigned long value) const
 {
   assert(atom >= 0 && atom < NUM_ATOMS);
@@ -197,7 +203,7 @@ void OBProperty::set(Window win, Atoms atom, Atoms type,
 /*
  * Set an array of 32-bit properties value on a window.
  */
-void OBProperty::set(Window win, Atoms atom, Atoms type,
+void Property::set(Window win, Atoms atom, Atoms type,
                           unsigned long value[], int elements) const
 {
   assert(atom >= 0 && atom < NUM_ATOMS);
@@ -210,7 +216,7 @@ void OBProperty::set(Window win, Atoms atom, Atoms type,
 /*
  * Set an string property value on a window.
  */
-void OBProperty::set(Window win, Atoms atom, StringType type,
+void Property::set(Window win, Atoms atom, StringType type,
                           const std::string &value) const
 {
   assert(atom >= 0 && atom < NUM_ATOMS);
@@ -231,7 +237,7 @@ void OBProperty::set(Window win, Atoms atom, StringType type,
 /*
  * Set an array of string property values on a window.
  */
-void OBProperty::set(Window win, Atoms atom, StringType type,
+void Property::set(Window win, Atoms atom, StringType type,
                      const StringVect &strings) const
 {
   assert(atom >= 0 && atom < NUM_ATOMS);
@@ -264,7 +270,7 @@ void OBProperty::set(Window win, Atoms atom, StringType type,
  * property did not exist on the window, or has a different type/size format
  * than the user tried to retrieve.
  */
-bool OBProperty::get(Window win, Atom atom, Atom type,
+bool Property::get(Window win, Atom atom, Atom type,
                           unsigned long *nelements, unsigned char **value,
                           int size) const
 {
@@ -280,7 +286,7 @@ bool OBProperty::get(Window win, Atom atom, Atom type,
   bool ret = False;
 
   // try get the first element
-  result = XGetWindowProperty(OBDisplay::display, win, atom, 0l, 1l,
+  result = XGetWindowProperty(Display::display, win, atom, 0l, 1l,
                               False, AnyPropertyType, &ret_type, &ret_size,
                               nelements, &ret_bytes, &c_val);
   ret = (result == Success && ret_type == type && ret_size == size &&
@@ -298,7 +304,7 @@ bool OBProperty::get(Window win, Atom atom, Atom type,
       int remain = (ret_bytes - 1)/sizeof(long) + 1 + 1;
       if (remain > size/8 * (signed)maxread) // dont get more than the max
         remain = size/8 * (signed)maxread;
-      result = XGetWindowProperty(OBDisplay::display, win, atom, 0l,
+      result = XGetWindowProperty(Display::display, win, atom, 0l,
                                   remain, False, type, &ret_type, &ret_size,
                                   nelements, &ret_bytes, &c_val);
       ret = (result == Success && ret_type == type && ret_size == size &&
@@ -323,7 +329,7 @@ bool OBProperty::get(Window win, Atom atom, Atom type,
 /*
  * Gets a 32-bit property's value from a window.
  */
-bool OBProperty::get(Window win, Atoms atom, Atoms type,
+bool Property::get(Window win, Atoms atom, Atoms type,
                           unsigned long *nelements,
                           unsigned long **value) const
 {
@@ -337,7 +343,7 @@ bool OBProperty::get(Window win, Atoms atom, Atoms type,
 /*
  * Gets a single 32-bit property's value from a window.
  */
-bool OBProperty::get(Window win, Atoms atom, Atoms type,
+bool Property::get(Window win, Atoms atom, Atoms type,
                      unsigned long *value) const
 {
   assert(atom >= 0 && atom < NUM_ATOMS);
@@ -356,7 +362,7 @@ bool OBProperty::get(Window win, Atoms atom, Atoms type,
 /*
  * Gets an string property's value from a window.
  */
-bool OBProperty::get(Window win, Atoms atom, StringType type,
+bool Property::get(Window win, Atoms atom, StringType type,
                      std::string *value) const
 {
   unsigned long n = 1;
@@ -369,7 +375,7 @@ bool OBProperty::get(Window win, Atoms atom, StringType type,
 }
 
 
-bool OBProperty::get(Window win, Atoms atom, StringType type,
+bool Property::get(Window win, Atoms atom, StringType type,
                      unsigned long *nelements, StringVect *strings) const
 {
   assert(atom >= 0 && atom < NUM_ATOMS);
@@ -413,10 +419,10 @@ bool OBProperty::get(Window win, Atoms atom, StringType type,
 /*
  * Removes a property entirely from a window.
  */
-void OBProperty::erase(Window win, Atoms atom) const
+void Property::erase(Window win, Atoms atom) const
 {
   assert(atom >= 0 && atom < NUM_ATOMS);
-  XDeleteProperty(OBDisplay::display, win, _atoms[atom]);
+  XDeleteProperty(Display::display, win, _atoms[atom]);
 }
 
 }
This page took 0.027889 seconds and 4 git commands to generate.