1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 #include <stdio.h>
30 #include <stdlib.h>
31 #include <unistd.h>
32
33 #include "menu.h"
34
35 void ui_menu(
char *label) {
36 UImenu(label);
37 }
38
39 void ui_submenu(
char *label) {
40 UIsubmenu(label);
41 }
42
43 void ui_submenu_end() {
44 UIsubmenu_end();
45 }
46
47 void ui_menuitem(
char *label, ui_callback f,
void *userdata) {
48 UIcallback 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 = (UIcallback)ui_obj_callback;
57 e = event;
58 }
59
60 UImenuitem(label, cb, e);
61 }
62
63
64 void ui_obj_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 }
73