diff options
Diffstat (limited to 'src/xatom.hh')
| -rw-r--r-- | src/xatom.hh | 219 |
1 files changed, 0 insertions, 219 deletions
diff --git a/src/xatom.hh b/src/xatom.hh deleted file mode 100644 index 0b5ec435..00000000 --- a/src/xatom.hh +++ /dev/null @@ -1,219 +0,0 @@ -// XAtom.h for Openbox -#ifndef __XAtom_h -#define __XAtom_h - -/*! @file xatom.hh - @brief Provides access to atoms on the display -*/ - -extern "C" { -#include <X11/Xlib.h> -#include <X11/Xatom.h> - -#include <assert.h> -} - -#include <vector> -#include <string> - -#include "otk/screeninfo.hh" - -namespace ob { - -class XAtom { -public: - enum Atoms { - // types - cardinal, - window, - pixmap, - atom, - string, - utf8_string, - -#ifdef HAVE_GETPID - blackbox_pid, -#endif // HAVE_GETPID - - // window hints - wm_colormap_windows, - wm_protocols, - wm_state, - wm_delete_window, - wm_take_focus, - wm_change_state, - wm_name, - wm_icon_name, - wm_class, - motif_wm_hints, - blackbox_attributes, - blackbox_change_attributes, - blackbox_hints, - - // blackbox-protocol atoms (wm -> client) - blackbox_structure_messages, - blackbox_notify_startup, - blackbox_notify_window_add, - blackbox_notify_window_del, - blackbox_notify_window_focus, - blackbox_notify_current_workspace, - blackbox_notify_workspace_count, - blackbox_notify_window_raise, - blackbox_notify_window_lower, - // blackbox-protocol atoms (client -> wm) - blackbox_change_workspace, - blackbox_change_window_focus, - blackbox_cycle_window_focus, - - openbox_show_root_menu, - openbox_show_workspace_menu, - - // NETWM atoms - // root window properties - net_supported, - net_client_list, - net_client_list_stacking, - net_number_of_desktops, - net_desktop_geometry, - net_desktop_viewport, - net_current_desktop, - net_desktop_names, - net_active_window, - net_workarea, - net_supporting_wm_check, -// net_virtual_roots, - // root window messages - net_close_window, - net_wm_moveresize, - // application window properties -// net_properties, - net_wm_name, - net_wm_visible_name, - net_wm_icon_name, - net_wm_visible_icon_name, - net_wm_desktop, - net_wm_window_type, - net_wm_state, - net_wm_strut, -// net_wm_icon_geometry, -// net_wm_icon, -// net_wm_pid, -// net_wm_handled_icons, - net_wm_allowed_actions, - // application protocols -// net_wm_ping, - - net_wm_window_type_desktop, - net_wm_window_type_dock, - net_wm_window_type_toolbar, - net_wm_window_type_menu, - net_wm_window_type_utility, - net_wm_window_type_splash, - net_wm_window_type_dialog, - net_wm_window_type_normal, - - net_wm_moveresize_size_topleft, - net_wm_moveresize_size_topright, - net_wm_moveresize_size_bottomleft, - net_wm_moveresize_size_bottomright, - net_wm_moveresize_move, - - net_wm_action_move, - net_wm_action_resize, - net_wm_action_shade, - net_wm_action_maximize_horz, - net_wm_action_maximize_vert, - net_wm_action_change_desktop, - net_wm_action_close, - - net_wm_state_modal, - net_wm_state_maximized_vert, - net_wm_state_maximized_horz, - net_wm_state_shaded, - net_wm_state_skip_taskbar, - net_wm_state_skip_pager, - net_wm_state_hidden, - net_wm_state_fullscreen, - - kde_net_system_tray_windows, - kde_net_wm_system_tray_window_for, - kde_net_wm_window_type_override, - - // constant for how many atoms exist in the enumerator - NUM_ATOMS - }; - - enum StringType { - ansi, - utf8, - NUM_STRING_TYPE - }; - -private: - typedef std::vector<Window> SupportWindows; - - Display *_display; - // windows used to specify support for NETWM - SupportWindows _support_windows; - Atom _atoms[NUM_ATOMS]; - - Atom create(const char *name) const; - - void setValue(Window win, Atom atom, Atom type, unsigned char *data, - int size, int nelements, bool append) const; - bool getValue(Window win, Atom atom, Atom type, - unsigned long &nelements, unsigned char **value, - int size) const; - - // no copying!! - XAtom(const XAtom &); - XAtom& operator=(const XAtom&); - -public: - typedef std::vector<std::string> StringVect; - - XAtom(Display *d); - virtual ~XAtom(); - - // setup support on a screen, each screen should call this once in its - // constructor. - void setSupported(const otk::ScreenInfo *screen); - - void setValue(Window win, Atoms atom, Atoms type, unsigned long value) const; - void setValue(Window win, Atoms atom, Atoms type, - unsigned long value[], int elements) const; - void setValue(Window win, Atoms atom, StringType type, - const std::string &value) const; - void setValue(Window win, Atoms atom, StringType type, - const StringVect &strings) const; - - // the 'value' is allocated inside the function and - // delete [] value needs to be called when you are done with it. - // the 'value' array returned is null terminated, and has 'nelements' - // elements in it plus the null. - // nelements must be set to the maximum number of elements to read from - // the property. - bool getValue(Window win, Atoms atom, Atoms type, - unsigned long &nelements, unsigned long **value) const; - bool getValue(Window win, Atoms atom, Atoms type, unsigned long &value) const; - bool getValue(Window win, Atoms atom, StringType type, - std::string &value) const; - bool getValue(Window win, Atoms atom, StringType type, - unsigned long &nelements, StringVect &strings) const; - - void eraseValue(Window win, Atoms atom) const; - - // sends a client message a window - void sendClientMessage(Window target, Atoms type, Window about, - long data = 0, long data1 = 0, long data2 = 0, - long data3 = 0, long data4 = 0) const; - - // temporary function!! remove when not used in blackbox.hh anymore!! - inline Atom getAtom(Atoms a) - { assert(a >= 0 && a < NUM_ATOMS); Atom ret = _atoms[a]; - assert(ret != 0); return ret; } -}; - -} - -#endif // __XAtom_h |
