Add keyboard/rebindOnMappingNotify option
[dana/openbox.git] / openbox / config.h
index 5c18ad3..96a66cf 100644 (file)
@@ -27,7 +27,7 @@
 #include "geom.h"
 #include "moveresize.h"
 #include "obrender/render.h"
-#include "obt/parse.h"
+#include "obt/xml.h"
 
 #include <glib.h>
 
@@ -38,16 +38,25 @@ struct _ObAppSettings
     GPatternSpec *class;
     GPatternSpec *name;
     GPatternSpec *role;
+    GPatternSpec *group_class;
+    GPatternSpec *group_name;
+    GPatternSpec *title;
     ObClientType  type;
 
     GravityPoint position;
     gboolean pos_given;
     gboolean pos_force;
 
+    gint width_num;
+    gint width_denom;
+    gint height_num;
+    gint height_denom;
+
     guint desktop;
     gint shade;
     gint decor;
     gint focus;
+    ObPlaceMonitor monitor_type;
     gint monitor;
     gint iconic;
     gint skip_pager;
@@ -170,6 +179,8 @@ extern guint config_desktop_popup_time;
 extern guint config_keyboard_reset_keycode;
 /*! The modifiers of the key combo which resets the keybaord chains */
 extern guint config_keyboard_reset_state;
+/*! Reload the keyboard bindings when the mapping changes */
+extern gboolean config_keyboard_rebind_on_mapping_notify;
 
 /*! Number of pixels a drag must go before being considered a drag */
 extern gint config_mouse_threshold;
@@ -179,6 +190,9 @@ extern gint config_mouse_dclicktime;
 /*! Number of milliseconds that the mouse has to be on the screen edge before
   a screen edge event is triggered */
 extern gint config_mouse_screenedgetime;
+/*! When TRUE, the mouse is warped to the other side of the desktop after
+  switching desktops from bumping the screen edge */
+extern gboolean config_mouse_screenedgewarp;
 
 /*! Number of pixels to resist while crossing another window's edge */
 extern gint config_resist_win;
@@ -191,16 +205,18 @@ extern guint    config_menu_hide_delay;
 extern gboolean config_menu_middle;
 /*! Delay before opening a submenu in milliseconds */
 extern guint    config_submenu_show_delay;
-/*! Show icons in client_list_menu */
-extern gboolean config_menu_client_list_icons;
+/*! Delay before closing a submenu in milliseconds */
+extern guint    config_submenu_hide_delay;
 /*! Show manage desktops in client_list_menu */
 extern gboolean config_menu_manage_desktops;
+/*! Load & show icons in user-defined menus */
+extern gboolean config_menu_show_icons;
 /*! User-specified menu files */
 extern GSList *config_menu_files;
 /*! Per app settings */
 extern GSList *config_per_app_settings;
 
-void config_startup(ObtParseInst *i);
+void config_startup(ObtXmlInst *i);
 void config_shutdown(void);
 
 /*! Create an ObAppSettings structure with the default values */
@@ -209,5 +225,10 @@ ObAppSettings* config_create_app_settings(void);
   src. */
 void config_app_settings_copy_non_defaults(const ObAppSettings *src,
                                            ObAppSettings *dest);
+/*! Parses an x geometry style position, with some extensions like ratios
+  and percentages */
+void config_parse_gravity_coord(xmlNodePtr node, GravityCoord *c);
+/*! Parses a rational number or percentage into num and denom */
+void config_parse_relative_number(gchar *s, gint *num, gint *denom);
 
 #endif