ui/ui/menu.h

branch
newapi
changeset 208
f632bc0589ab
parent 207
93b9f502cb88
child 229
a952760955b4
equal deleted inserted replaced
207:93b9f502cb88 208:f632bc0589ab
33 33
34 #ifdef __cplusplus 34 #ifdef __cplusplus
35 extern "C" { 35 extern "C" {
36 #endif 36 #endif
37 37
38 /*
39 * application menu functions
40 */
41 UIEXPORT void ui_menu(char *label);
42 UIEXPORT void ui_submenu(char *label); // deprecated
43 UIEXPORT void ui_submenu_end(); // deprecated
44 38
45 UIEXPORT void ui_menuitem(char *label, ui_callback f, void *userdata); 39 typedef struct UiMenuItemArgs {
40 const char* label;
41 const char* stockid;
42 const char* icon;
43
44 ui_callback onclick;
45 void* onclickdata;
46
47 const int* groups;
48 } UiMenuItemArgs;
49
50 typedef struct UiMenuToggleItemArgs {
51 const char* label;
52 const char* stockid;
53 const char* icon;
54
55 const char* varname;
56 ui_callback onchange;
57 void* onchangedata;
58
59 const int* groups;
60 } UiMenuToggleItemArgs;
61
62 typedef struct UiMenuItemListArgs {
63 const char* varname;
64 ui_callback onselect;
65 void* onselectdata;
66 } UiMenuItemListArgs;
67
68 #define ui_menu(label) for(ui_menu_create(label);ui_menu_is_open();ui_menu_close())
69
70 #define ui_menuitem(...) ui_menuitem_create((UiMenuItemArgs){ __VA_ARGS__ })
71 #define ui_menu_toggleitem(...) ui_menu_toggleitem_create((UiMenuToggleItemArgs){ __VA_ARGS__ })
72 #define ui_menu_radioitem(...) ui_menu_radioitem_create((UiMenuToggleItemArgs){ __VA_ARGS__ })
73
74 UIEXPORT void ui_menu_create(const char* label);
75 UIEXPORT void ui_menuitem_create(UiMenuItemArgs args);
76 UIEXPORT void ui_menu_toggleitem_create(UiMenuToggleItemArgs args);
77 UIEXPORT void ui_menu_radioitem_create(UiMenuToggleItemArgs args);
78
79 UIEXPORT void ui_menuseparator();
80
81 UIEXPORT void ui_menu_itemlist_create(UiMenuItemListArgs args);
82 UIEXPORT void ui_menu_toggleitemlist_create(UiMenuItemListArgs args);
83 UIEXPORT void ui_menu_radioitemlist_create(UiMenuItemListArgs args);
84
85 UIEXPORT void ui_menu_deprecated(char *label);
86 UIEXPORT void ui_submenu_deprecated(char *label); // deprecated
87 UIEXPORT void ui_submenu_end_deprecated(); // deprecated
88
89 UIEXPORT void ui_menuitem_deprecated(char *label, ui_callback f, void *userdata);
46 UIEXPORT void ui_menuitem_st(char *stockid, ui_callback f, void *userdata); 90 UIEXPORT void ui_menuitem_st(char *stockid, ui_callback f, void *userdata);
47 UIEXPORT void ui_menuitem_gr(char *label, ui_callback f, void *userdata, ...); 91 UIEXPORT void ui_menuitem_gr(char *label, ui_callback f, void *userdata, ...);
48 UIEXPORT void ui_menuitem_stgr(char *stockid, ui_callback f, void *userdata, ...); 92 UIEXPORT void ui_menuitem_stgr(char *stockid, ui_callback f, void *userdata, ...);
49 93
50 UIEXPORT void ui_menuseparator();
51 94
52 UIEXPORT void ui_checkitem(char *label, ui_callback f, void *userdata); 95 UIEXPORT void ui_checkitem_deprecated(char *label, ui_callback f, void *userdata);
53 UIEXPORT void ui_checkitem_nv(char *label, char *vname); 96 UIEXPORT void ui_checkitem_nv_deprecated(char *label, char *vname);
54 97
55 UIEXPORT void ui_menuitem_list(UiList *items, ui_callback f, void *userdata); 98 UIEXPORT void ui_menuitem_list_deprecated(UiList *items, ui_callback f, void *userdata);
56 99
57 UIEXPORT void ui_menu_end(void); 100 UIEXPORT void ui_menu_end(void);
58 101
59 /* 102 /*
60 * widget menu functions 103 * widget menu functions

mercurial