include imlib2 as a dep of obrender in the pkg-config file if it's using it
[dana/openbox.git] / openbox / prop.h
index f8b44a7..7164567 100644 (file)
@@ -53,7 +53,9 @@ typedef struct Atoms {
     Atom wm_client_machine;
     Atom wm_command;
     Atom wm_client_leader;
+    Atom wm_transient_for;
     Atom motif_wm_hints;
+    Atom motif_wm_info;
 
     /* SM atoms */
     Atom sm_client_id;
@@ -62,7 +64,7 @@ typedef struct Atoms {
 
     /* Atoms that are used inside messages - these don't go in net_supported */
 
-    Atom net_wm_moveresize_size_topleft; 
+    Atom net_wm_moveresize_size_topleft;
     Atom net_wm_moveresize_size_top;
     Atom net_wm_moveresize_size_topright;
     Atom net_wm_moveresize_size_right;
@@ -86,6 +88,10 @@ typedef struct Atoms {
     Atom net_wm_bottomright;
     Atom net_wm_bottomleft;
 
+    /* types that we use but don't support */
+
+    Atom net_wm_window_type_popup_menu;
+
     /* Everything below here must go in net_supported on the root window */
 
     /* root window properties */
@@ -108,6 +114,8 @@ typedef struct Atoms {
     Atom net_close_window;
     Atom net_wm_moveresize;
     Atom net_moveresize_window;
+    Atom net_request_frame_extents;
+    Atom net_restack_window;
 
     /* helpful hints to apps that aren't used for anything */
     Atom net_wm_full_placement;
@@ -127,14 +135,14 @@ typedef struct Atoms {
     Atom net_wm_strut_partial;
     Atom net_wm_icon;
     Atom net_wm_icon_geometry;
-/*  Atom net_wm_pid; */
+    Atom net_wm_pid;
     Atom net_wm_allowed_actions;
     Atom net_wm_user_time;
-    Atom net_wm_user_time_window;
+/*  Atom net_wm_user_time_window; */
     Atom net_frame_extents;
 
     /* application protocols */
-/*  Atom net_wm_ping; */
+    Atom net_wm_ping;
 #ifdef SYNC
     Atom net_wm_sync_request;
     Atom net_wm_sync_request_counter;
@@ -153,11 +161,14 @@ typedef struct Atoms {
     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;
     Atom net_wm_action_change_desktop;
     Atom net_wm_action_close;
+    Atom net_wm_action_above;
+    Atom net_wm_action_below;
 
     Atom net_wm_state_modal;
 /*    Atom net_wm_state_sticky;*/
@@ -184,13 +195,20 @@ typedef struct Atoms {
 */
 
     /* Openbox specific atoms */
-     
-    Atom openbox_wm_state_undecorated;
-    Atom openbox_pid;
-    Atom openbox_config;
-    Atom openbox_control;
+
+    Atom ob_wm_action_undecorate;
+    Atom ob_wm_state_undecorated;
+    Atom openbox_pid; /* this is depreecated in favour of ob_control */
+    Atom ob_theme;
+    Atom ob_config_file;
+    Atom ob_control;
+    Atom ob_version;
+    Atom ob_app_role;
+    Atom ob_app_name;
+    Atom ob_app_class;
+    Atom ob_app_type;
 } Atoms;
-Atoms prop_atoms;
+extern Atoms prop_atoms;
 
 void prop_startup();
 
@@ -212,6 +230,9 @@ void prop_erase(Window win, Atom prop);
 
 void prop_message(Window about, Atom messagetype, glong data0, glong data1,
                   glong data2, glong data3, glong mask);
+void prop_message_to(Window to, Window about, Atom messagetype,
+                     glong data0, glong data1, glong data2,
+                     glong data3, glong data4, glong mask);
 
 #define PROP_GET32(win, prop, type, ret) \
     (prop_get32(win, prop_atoms.prop, prop_atoms.type, ret))
@@ -238,4 +259,9 @@ void prop_message(Window about, Atom messagetype, glong data0, glong data1,
   (prop_message(about, prop_atoms.msgtype, data0, data1, data2, data3, \
                 SubstructureNotifyMask | SubstructureRedirectMask))
 
+#define PROP_MSG_TO(to, about, msgtype, data0, data1, data2, data3, data4, \
+                    mask) \
+    (prop_message_to(to, about, prop_atoms.msgtype,                        \
+                     data0, data1, data2, data3, data4, mask))
+
 #endif