X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fmenu.h;h=591dfb65eb67df1b3f0d824c2f79dfaccc08d828;hb=0fb1d4d5079d96c857990b27f1d005568817c0f9;hp=f66e423e9ce0ac3a3360f59fffb1baf1f45a6e1a;hpb=3905872982478e4e0ae05f4ce114a8025a2389ee;p=chaz%2Fopenbox diff --git a/openbox/menu.h b/openbox/menu.h index f66e423e..591dfb65 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 */ @@ -165,7 +172,10 @@ 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);