X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fmenu.h;h=6288d870e9cd22ea66cf9725b5989e6f221e5223;hb=6a79805b7c4116ee6ced87e78fb488f3274098ef;hp=f66e423e9ce0ac3a3360f59fffb1baf1f45a6e1a;hpb=3905872982478e4e0ae05f4ce114a8025a2389ee;p=chaz%2Fopenbox diff --git a/openbox/menu.h b/openbox/menu.h index f66e423e..6288d870 100644 --- a/openbox/menu.h +++ b/openbox/menu.h @@ -37,9 +37,13 @@ typedef struct _ObNormalMenuEntry ObNormalMenuEntry; typedef struct _ObSubmenuMenuEntry ObSubmenuMenuEntry; typedef struct _ObSeparatorMenuEntry ObSeparatorMenuEntry; +typedef void (*ObMenuShowFunc)(struct _ObMenuFrame *frame, gpointer data); +typedef void (*ObMenuHideFunc)(struct _ObMenuFrame *frame, gpointer data); typedef gboolean (*ObMenuUpdateFunc)(struct _ObMenuFrame *frame, gpointer data); typedef void (*ObMenuExecuteFunc)(struct _ObMenuEntry *entry, + struct _ObMenuFrame *frame, + struct _ObClient *client, guint state, gpointer data, Time time); typedef void (*ObMenuDestroyFunc)(struct _ObMenu *menu, gpointer data); /*! @param x is the mouse x coordinate. on return it should be the x coordinate @@ -75,6 +79,8 @@ struct _ObMenu /* plugin data */ gpointer data; + ObMenuShowFunc show_func; + ObMenuHideFunc hide_func; ObMenuUpdateFunc update_func; ObMenuExecuteFunc execute_func; ObMenuDestroyFunc destroy_func; @@ -110,6 +116,7 @@ struct _ObNormalMenuEntry { /* Icon shit */ gint icon_width; gint icon_height; + gint icon_alpha; RrPixel32 *icon_data; /* Mask icon */ @@ -158,14 +165,19 @@ ObMenu* menu_new(const gchar *name, const gchar *title, gboolean allow_shortcut_selection, gpointer data); void menu_free(ObMenu *menu); -/* Repopulate a pipe-menu by running its command */ +/*! Repopulate a pipe-menu by running its command */ void menu_pipe_execute(ObMenu *self); +/*! Clear a pipe-menu's entries */ +void menu_clear_pipe_caches(); void menu_show_all_shortcuts(ObMenu *self, gboolean show); void menu_show(gchar *name, gint x, gint y, gint button, struct _ObClient *client); +gboolean menu_hide_delay_reached(); +void menu_set_show_func(ObMenu *menu, ObMenuShowFunc func); +void menu_set_hide_func(ObMenu *menu, ObMenuHideFunc func); void menu_set_update_func(ObMenu *menu, ObMenuUpdateFunc func); void menu_set_execute_func(ObMenu *menu, ObMenuExecuteFunc func); void menu_set_destroy_func(ObMenu *menu, ObMenuDestroyFunc func);