]> Dogcows Code - chaz/openbox/blobdiff - openbox/menu.h
update openbox to use the current parser interface in libobt
[chaz/openbox] / openbox / menu.h
index 9fc84bb8706f3916d97dc7ddbd93e53bdc7cb8d7..d759a993309b953234cea5ec798686874a1daf27 100644 (file)
 #ifndef __menu_h
 #define __menu_h
 
-#include "action.h"
 #include "window.h"
 #include "geom.h"
 #include "render/render.h"
-#include "parser/parse.h"
+#include "obt/parse.h"
 
 #include <glib.h>
 
@@ -42,7 +41,9 @@ typedef void (*ObMenuHideFunc)(struct _ObMenuFrame *frame, gpointer data);
 typedef gboolean (*ObMenuUpdateFunc)(struct _ObMenuFrame *frame,
                                      gpointer data);
 typedef void (*ObMenuExecuteFunc)(struct _ObMenuEntry *entry,
-                                  guint state, gpointer data, Time time);
+                                  struct _ObMenuFrame *frame,
+                                  struct _ObClient *client,
+                                  guint state, gpointer data);
 typedef void (*ObMenuDestroyFunc)(struct _ObMenu *menu, gpointer data);
 /*! @param x is the mouse x coordinate. on return it should be the x coordinate
              for the menu
@@ -50,7 +51,7 @@ typedef void (*ObMenuDestroyFunc)(struct _ObMenu *menu, gpointer data);
              for the menu
 */
 typedef void (*ObMenuPlaceFunc)(struct _ObMenuFrame *frame, gint *x, gint *y,
-                                gint button, gpointer data);
+                                gboolean mouse, gpointer data);
 
 struct _ObMenu
 {
@@ -63,6 +64,8 @@ struct _ObMenu
     gunichar shortcut;
     /*! The shortcut's position in the string */
     guint shortcut_position;
+    /*! If the shortcut was specified by & and should always be drawn */
+    gboolean shortcut_always_show;
 
     /*! If the shortcut key should be shown in menu entries even when it
       is the first character in the string */
@@ -104,6 +107,8 @@ struct _ObNormalMenuEntry {
     gunichar shortcut;
     /*! The shortcut's position in the string */
     guint shortcut_position;
+    /*! If the shortcut was specified by & and should always be drawn */
+    gboolean shortcut_always_show;
 
     /* state */
     gboolean enabled;
@@ -114,6 +119,7 @@ struct _ObNormalMenuEntry {
     /* Icon shit */
     gint icon_width;
     gint icon_height;
+    gint icon_alpha;
     RrPixel32 *icon_data;
 
     /* Mask icon */
@@ -122,6 +128,8 @@ struct _ObNormalMenuEntry {
     RrColor *mask_selected_color;
     RrColor *mask_disabled_color;
     RrColor *mask_disabled_selected_color;
+
+    gpointer data;
 };
 
 struct _ObSubmenuMenuEntry {
@@ -156,19 +164,20 @@ void menu_shutdown(gboolean reconfig);
 void menu_entry_ref(ObMenuEntry *self);
 void menu_entry_unref(ObMenuEntry *self);
 
-/*! @param allow_shortcut this should be false when the label is coming from
-           outside data like window or desktop titles */
 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,
+void menu_show(gchar *name, gint x, gint y, gboolean mouse,
                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);
This page took 0.024688 seconds and 4 git commands to generate.