X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Factions.h;h=f413ad8284386389015d07d43197a42ae8ad8e68;hb=af01da31502b20300222213e693457320e4158e4;hp=de86b9e1212ca82053295a34f9b43f4b4fde0d18;hpb=d18d9c9379e3387073fc9346e9857fdde077b985;p=chaz%2Fopenbox diff --git a/openbox/actions.h b/openbox/actions.h index de86b9e1..f413ad82 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,11 @@ 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); + ObActionsAct* actions_parse(xmlNodePtr node); ObActionsAct* actions_parse_string(const gchar *name);