87 |
89 |
88 menu->label = label; |
90 menu->label = label; |
89 menu->items_begin = NULL; |
91 menu->items_begin = NULL; |
90 menu->items_end = NULL; |
92 menu->items_end = NULL; |
91 menu->parent = NULL; |
93 menu->parent = NULL; |
|
94 |
|
95 menu->end = 0; |
92 |
96 |
93 // add submenu to current menu |
97 // add submenu to current menu |
94 add_item((UiMenuItemI*)menu); |
98 add_item((UiMenuItemI*)menu); |
95 |
99 |
96 // set the submenu to current menu |
100 // set the submenu to current menu |
97 cxListInsert(current, 0, menu); |
101 uic_add_menu_to_stack(menu); |
98 } |
102 } |
99 |
103 |
100 void ui_submenu_end() { |
104 void ui_submenu_end() { |
101 if(current->size < 2) { |
105 if(current->size < 2) { |
102 return; |
106 return; |
103 } |
107 } |
|
108 cxListRemove(current, 0); |
|
109 } |
|
110 |
|
111 UIEXPORT void ui_menu_end(void) { |
104 cxListRemove(current, 0); |
112 cxListRemove(current, 0); |
105 } |
113 } |
106 |
114 |
107 void ui_menuitem(char *label, ui_callback f, void *userdata) { |
115 void ui_menuitem(char *label, ui_callback f, void *userdata) { |
108 ui_menuitem_gr(label, f, userdata, -1); |
116 ui_menuitem_gr(label, f, userdata, -1); |
246 item->varname = varname; |
254 item->varname = varname; |
247 |
255 |
248 add_item((UiMenuItemI*)item); |
256 add_item((UiMenuItemI*)item); |
249 } |
257 } |
250 |
258 |
251 |
259 void uic_add_menu_to_stack(UiMenu* menu) { |
|
260 cxListInsert(current, 0, menu); |
|
261 } |
252 |
262 |
253 UiMenu* uic_get_menu_list(void) { |
263 UiMenu* uic_get_menu_list(void) { |
254 return menus_begin; |
264 return menus_begin; |
255 } |
265 } |
256 |
266 |
|
267 |
|
268 |
|
269 |
|
270 UIEXPORT void ui_menu_close(void) { |
|
271 UiMenu* menu = cxListAt(current, 0); |
|
272 menu->end = 1; |
|
273 } |
|
274 |
|
275 UIEXPORT int ui_menu_is_open(void) { |
|
276 UiMenu* menu = cxListAt(current, 0); |
|
277 if (menu->end) { |
|
278 ui_menu_end(); |
|
279 return 0; |
|
280 } |
|
281 return 1; |
|
282 } |