35 void ui_menu(char *label) { |
35 void ui_menu(char *label) { |
36 UImenu(label); |
36 UImenu(label); |
37 } |
37 } |
38 |
38 |
39 void ui_submenu(char *label) { |
39 void ui_submenu(char *label) { |
40 |
40 UIsubmenu(label); |
41 } |
41 } |
42 |
42 |
43 void ui_submenu_end() { |
43 void ui_submenu_end() { |
44 |
44 UIsubmenu_end(); |
45 } |
45 } |
46 |
46 |
47 void ui_menuitem(char *label, ui_callback f, void *userdata) { |
47 void ui_menuitem(char *label, ui_callback f, void *userdata) { |
48 UImenuitem(label, f, userdata); |
48 ui_callback cb = NULL; |
|
49 void *e = NULL; |
|
50 if (f) { |
|
51 UiEventData *event = malloc(sizeof(UiEventData)); |
|
52 event->obj = NULL; |
|
53 event->user_data = userdata; |
|
54 event->callback = f; |
|
55 event->value = 0; |
|
56 cb = (ui_callback)ui_menu_callback; |
|
57 e = event; |
|
58 } |
|
59 |
|
60 UImenuitem(label, cb, e); |
49 } |
61 } |
|
62 |
|
63 |
|
64 void ui_menu_callback(UiObject *obj, UiEventData *e) { |
|
65 UiEvent event; |
|
66 event.obj = obj; |
|
67 event.window = obj->window; |
|
68 event.intval = 0; |
|
69 event.eventdata = NULL; |
|
70 event.document = obj->ctx->document; |
|
71 e->callback(&event, e->user_data); |
|
72 } |