X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fprop.h;h=f4d7f8b63c6933135b1c9397ac48a396e77850ab;hb=e5d6a552a46bce27cbe25c92023094b44c9a8284;hp=2ed9f5591e717675022271ac85ee91552d3df314;hpb=7886b797a36f5a035a75a19424e0b3cf7825baf8;p=chaz%2Fopenbox diff --git a/openbox/prop.h b/openbox/prop.h index 2ed9f559..f4d7f8b6 100644 --- a/openbox/prop.h +++ b/openbox/prop.h @@ -1,3 +1,22 @@ +/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*- + + prop.h for the Openbox window manager + Copyright (c) 2006 Mikael Magnusson + Copyright (c) 2003-2007 Dana Jansens + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + See the COPYING file for a copy of the GNU General Public License. +*/ + #ifndef __atoms_h #define __atoms_h @@ -17,6 +36,9 @@ typedef struct Atoms { Atom string; /*!< The atom which represents ascii strings */ Atom utf8; /*!< The atom which represents utf8-encoded strings */ + /* selection stuff */ + Atom manager; + /* window hints */ Atom wm_colormap_windows; Atom wm_protocols; @@ -28,10 +50,16 @@ typedef struct Atoms { Atom wm_icon_name; Atom wm_class; Atom wm_window_role; + Atom wm_client_machine; Atom motif_wm_hints; + /* SM atoms */ + Atom sm_client_id; + /* NETWM atoms */ - + + Atom net_wm_full_placement; + /* root window properties */ Atom net_supported; Atom net_client_list; @@ -49,6 +77,11 @@ typedef struct Atoms { /* root window messages */ Atom net_close_window; Atom net_wm_moveresize; + Atom net_moveresize_window; + + /* startup-notification extension */ + Atom net_startup_id; + /* application window properties */ Atom net_wm_name; Atom net_wm_visible_name; @@ -58,11 +91,19 @@ typedef struct Atoms { Atom net_wm_window_type; Atom net_wm_state; Atom net_wm_strut; + Atom net_wm_strut_partial; Atom net_wm_icon; /* Atom net_wm_pid; */ Atom net_wm_allowed_actions; + Atom net_wm_user_time; + Atom net_frame_extents; + /* application protocols */ -/* Atom Atom net_wm_ping; */ +/* Atom net_wm_ping; */ +#ifdef SYNC + Atom net_wm_sync_request; + Atom net_wm_sync_request_counter; +#endif Atom net_wm_window_type_desktop; Atom net_wm_window_type_dock; @@ -84,12 +125,12 @@ typedef struct Atoms { Atom net_wm_moveresize_move; Atom net_wm_moveresize_size_keyboard; Atom net_wm_moveresize_move_keyboard; + Atom net_wm_moveresize_cancel; Atom net_wm_action_move; Atom net_wm_action_resize; Atom net_wm_action_minimize; Atom net_wm_action_shade; - Atom net_wm_action_stick; Atom net_wm_action_maximize_horz; Atom net_wm_action_maximize_vert; Atom net_wm_action_fullscreen; @@ -107,6 +148,7 @@ typedef struct Atoms { Atom net_wm_state_fullscreen; Atom net_wm_state_above; Atom net_wm_state_below; + Atom net_wm_state_demands_attention; Atom net_wm_state_add; Atom net_wm_state_remove; @@ -121,19 +163,18 @@ typedef struct Atoms { /* Extra atoms */ - Atom kde_net_system_tray_windows; - Atom kde_net_wm_system_tray_window_for; + Atom kde_wm_change_state; Atom kde_net_wm_window_type_override; - Atom kwm_win_icon; - Atom rootpmapid; Atom esetrootid; /* Openbox specific atoms */ Atom openbox_pid; - Atom openbox_premax; + Atom openbox_rc; + Atom ob_wm_state_undecorated; + Atom ob_control; } Atoms; Atoms prop_atoms; @@ -142,21 +183,21 @@ void prop_startup(); gboolean prop_get32(Window win, Atom prop, Atom type, guint32 *ret); gboolean prop_get_array32(Window win, Atom prop, Atom type, guint32 **ret, guint *nret); -gboolean prop_get_string_locale(Window win, Atom prop, char **ret); -gboolean prop_get_string_utf8(Window win, Atom prop, char **ret); -gboolean prop_get_strings_locale(Window win, Atom prop, char ***ret); -gboolean prop_get_strings_utf8(Window win, Atom prop, char ***ret); +gboolean prop_get_string_locale(Window win, Atom prop, gchar **ret); +gboolean prop_get_string_utf8(Window win, Atom prop, gchar **ret); +gboolean prop_get_strings_locale(Window win, Atom prop, gchar ***ret); +gboolean prop_get_strings_utf8(Window win, Atom prop, gchar ***ret); -void prop_set32(Window win, Atom prop, Atom type, guint32 val); -void prop_set_array32(Window win, Atom prop, Atom type, guint32 *val, +void prop_set32(Window win, Atom prop, Atom type, gulong val); +void prop_set_array32(Window win, Atom prop, Atom type, gulong *val, guint num); -void prop_set_string_utf8(Window win, Atom prop, char *val); -void prop_set_strings_utf8(Window win, Atom prop, char **strs); +void prop_set_string_utf8(Window win, Atom prop, const gchar *val); +void prop_set_strings_utf8(Window win, Atom prop, gchar **strs); void prop_erase(Window win, Atom prop); -void prop_message(Window about, Atom messagetype, long data0, long data1, - long data2, long data3); +void prop_message(Window about, Atom messagetype, glong data0, glong data1, + glong data2, glong data3, glong mask); #define PROP_GET32(win, prop, type, ret) \ (prop_get32(win, prop_atoms.prop, prop_atoms.type, ret)) @@ -180,6 +221,7 @@ void prop_message(Window about, Atom messagetype, long data0, long data1, #define PROP_ERASE(win, prop) prop_erase(win, prop_atoms.prop) #define PROP_MSG(about, msgtype, data0, data1, data2, data3) \ - (prop_message(about, prop_atoms.msgtype, data0, data1, data2, data3)) + (prop_message(about, prop_atoms.msgtype, data0, data1, data2, data3, \ + SubstructureNotifyMask | SubstructureRedirectMask)) #endif