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 "menu.h"
30
31 static ui_menu_add_f createMenuItem[] = {
32 ui_add_menu,
33 ui_add_menu_item,
34 ui_add_menu_checkitem,
35 ui_add_menu_radioitem,
36 ui_add_menu_list,
37 ui_add_menu_checklist,
38 ui_add_menu_radiolist,
39 ui_add_menu_separator
40 };
41
42
43 HMENU ui_create_main_menu(UiObject *obj) {
44 UiMenu *menu = uic_get_menu_list();
45 if (!menu) {
46 return NULL;
47 }
48
49 HMENU hMenu = CreateMenu();
50 ui_add_menu(hMenu,
0, &menu->item, obj);
51
52
53
54 return hMenu;
55 }
56
57 void ui_add_menu(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
58 UiMenu *menu = (UiMenu*)item;
59 HMENU hMenu = CreatePopupMenu();
60 AppendMenu(parent,
MF_POPUP, (
UINT_PTR)hMenu, menu->label);
61
62 int i =
0;
63 UiMenuItemI *child = menu->items_begin;
64 while (child) {
65 createMenuItem[child->type](hMenu, i++, child, obj);
66 child = child->next;
67 }
68 }
69
70 void ui_add_menu_item(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
71 UiMenuItem *i = (UiMenuItem*)item;
72 AppendMenu(parent,
MF_STRING,
0, i->label);
73 }
74
75 void ui_add_menu_checkitem(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
76
77 }
78
79 void ui_add_menu_radioitem(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
80
81 }
82
83 void ui_add_menu_list(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
84
85 }
86
87 void ui_add_menu_checklist(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
88
89 }
90
91 void ui_add_menu_radiolist(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
92
93 }
94
95 void ui_add_menu_separator(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
96
97 }
98