X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Factions.h;h=f8e1ba83c42d867b2ad6ad10df18b4096f7b7c65;hb=780b2428a2463f164608c498f7d2e586016b8e11;hp=de86b9e1212ca82053295a34f9b43f4b4fde0d18;hpb=d18d9c9379e3387073fc9346e9857fdde077b985;p=chaz%2Fopenbox diff --git a/openbox/actions.h b/openbox/actions.h index de86b9e1..f8e1ba83 100644 --- a/openbox/actions.h +++ b/openbox/actions.h @@ -18,7 +18,8 @@ #include "misc.h" #include "frame.h" -#include "obt/parse.h" +#include "obt/xml.h" +#include "obt/keyboard.h" #include #include @@ -35,14 +36,18 @@ 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 */ -typedef void (*ObActionsIPreFunc)(gpointer options); +/* return TRUE if the action is going to be interactive, or false to change + your mind and make it not */ +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, @@ -75,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);