typedef void(*menu_controller_mouseover)(ObMenuEntry *self, gboolean enter);
extern GHashTable *menu_hash;
-extern GSList *menu_visible;
+extern GList *menu_visible;
struct _ObMenu
{
RrAppearance *a_hilite;
gint y;
gint min_w;
-};
+} MenuEntry;
+
+typedef struct PluginMenuCreateData{
+ xmlDocPtr doc;
+ xmlNodePtr node;
+ ObMenu *parent;
+} PluginMenuCreateData;
+
void menu_startup();
void menu_shutdown();
void menu_add_entry(ObMenu *menu, ObMenuEntry *entry);
ObMenuEntry *menu_find_entry(ObMenu *menu, Window win);
+ObMenuEntry *menu_find_entry_by_submenu(ObMenu *menu, ObMenu *submenu);
ObMenuEntry *menu_find_entry_by_pos(ObMenu *menu, int x, int y);
void menu_entry_render(ObMenuEntry *self);
void menu_render(ObMenu *self);
void menu_render_full(ObMenu *self);
+/*so plugins can call it? */
+void parse_menu_full(xmlDocPtr doc, xmlNodePtr node, void *data, gboolean new);
void menu_control_mouseover(ObMenuEntry *entry, gboolean enter);
+ObMenuEntry *menu_control_keyboard_nav(ObMenuEntry *over, ObKey key);
#endif