Add ForEach action which is like If but runs on all clients
[mikachu/openbox.git] / openbox / actions.h
index afcc96b..f8e1ba8 100644 (file)
@@ -19,6 +19,7 @@
 #include "misc.h"
 #include "frame.h"
 #include "obt/xml.h"
+#include "obt/keyboard.h"
 
 #include <glib.h>
 #include <X11/Xlib.h>
@@ -35,6 +36,7 @@ typedef void     (*ObActionsDataFreeFunc)(gpointer options);
 typedef gboolean (*ObActionsRunFunc)(ObActionsData *data,
                                      gpointer options);
 typedef gpointer (*ObActionsDataSetupFunc)(xmlNodePtr node);
+typedef void     (*ObActionsShutdownFunc)(void);
 
 /* functions for interactive actions */
 /* return TRUE if the action is going to be interactive, or false to change
@@ -42,9 +44,10 @@ typedef gpointer (*ObActionsDataSetupFunc)(xmlNodePtr node);
 typedef gboolean (*ObActionsIPreFunc)(guint initial_state, gpointer options);
 typedef void     (*ObActionsIPostFunc)(gpointer options);
 typedef gboolean (*ObActionsIInputFunc)(guint initial_state,
-                                                  XEvent *e,
-                                                  gpointer options,
-                                                  gboolean *used);
+                                        XEvent *e,
+                                        ObtIC *ic,
+                                        gpointer options,
+                                        gboolean *used);
 typedef void     (*ObActionsICancelFunc)(gpointer options);
 typedef gpointer (*ObActionsIDataSetupFunc)(xmlNodePtr node,
                                             ObActionsIPreFunc *pre,
@@ -77,6 +80,13 @@ gboolean actions_register(const gchar *name,
                           ObActionsDataFreeFunc free,
                           ObActionsRunFunc run);
 
+gboolean actions_set_shutdown(const gchar *name,
+                              ObActionsShutdownFunc shutdown);
+gboolean actions_set_modifies_focused_window(const gchar *name,
+                                             gboolean modifies);
+gboolean actions_set_can_stop(const gchar *name,
+                              gboolean modifies);
+
 ObActionsAct* actions_parse(xmlNodePtr node);
 ObActionsAct* actions_parse_string(const gchar *name);