diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-04-14 21:26:01 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-04-14 21:26:01 +0000 |
| commit | 3d6e0f941d36ff335ad13ecf83405a40775e4c04 (patch) | |
| tree | 7e855531c6f8690e0308f4ebd47aac546409f66f /openbox/menu.h | |
| parent | 677bc6ed2db3448bd2bee48fd4598079b27b18c1 (diff) | |
these menus should not be removed, they are good and will be used.
Diffstat (limited to 'openbox/menu.h')
| -rw-r--r-- | openbox/menu.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/openbox/menu.h b/openbox/menu.h new file mode 100644 index 00000000..b3e712c3 --- /dev/null +++ b/openbox/menu.h @@ -0,0 +1,67 @@ +#ifndef __menu_h +#define __menu_h + +#include "action.h" +#include <glib.h> + +typedef struct Menu { + char *label; + char *name; + + GList *entries; + /* GList *tail; */ + + /* ? */ + gboolean shown; + gboolean invalid; + + struct Menu *parent; + + /* waste o' pointers */ + void (*show)( /* some bummu */); + void (*hide)( /* some bummu */); + void (*update)( /* some bummu */); + void (*mouseover)( /* some bummu */); + void (*selected)( /* some bummu */); +} Menu; + +typedef enum MenuEntryRenderType { + MenuEntryRenderType_None = 0, + MenuEntryRenderType_Submenu = 1 << 0, + MenuEntryRenderType_Boolean = 1 << 1, + MenuEntryRenderType_Separator = 1 << 2, + + MenuEntryRenderType_Other = 1 << 7 +} MenuEntryRenderType; + + +typedef struct { + char *label; + Menu *parent; + + Action action; + + MenuEntryRenderType render_type; + gboolean enabled; + gboolean boolean_value; + gpointer render_data; /* where the engine can store anything it likes */ + + Menu *submenu; +} MenuEntry; + +Menu *menu_new(const char *label, const char *name, Menu *parent); +void menu_free(const char *name); + +MenuEntry *menu_entry_new_full(const char *label, Action *action, + const MenuEntryRenderType render_type, + gpointer render_data, gpointer submenu); + +#define menu_entry_new(label, action) \ + menu_entry_new(label, action, MenuEntryRenderType_None, NULL, NULL) + +void menu_entry_free(const MenuEntry *entry); + +void menu_entry_set_submenu(MenuEntry *entry, Menu *submenu); + +void menu_add_entry(Menu *menu, MenuEntry *entry); +#endif |
