#include "menu.h"
static ui_menu_add_f createMenuItem[] = {
ui_add_menu,
ui_add_menu_item,
ui_add_menu_checkitem,
ui_add_menu_radioitem,
ui_add_menu_list,
ui_add_menu_checklist,
ui_add_menu_radiolist,
ui_add_menu_separator
};
HMENU ui_create_main_menu(UiObject *obj) {
UiMenu *menu = uic_get_menu_list();
if (!menu) {
return NULL;
}
HMENU hMenu = CreateMenu();
ui_add_menu(hMenu,
0, &menu->item, obj);
return hMenu;
}
void ui_add_menu(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
UiMenu *menu = (UiMenu*)item;
HMENU hMenu = CreatePopupMenu();
AppendMenu(parent,
MF_POPUP, (
UINT_PTR)hMenu, menu->label);
int i =
0;
UiMenuItemI *child = menu->items_begin;
while (child) {
createMenuItem[child->type](hMenu, i++, child, obj);
child = child->next;
}
}
void ui_add_menu_item(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
UiMenuItem *i = (UiMenuItem*)item;
AppendMenu(parent,
MF_STRING,
0, i->label);
}
void ui_add_menu_checkitem(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
}
void ui_add_menu_radioitem(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
}
void ui_add_menu_list(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
}
void ui_add_menu_checklist(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
}
void ui_add_menu_radiolist(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
}
void ui_add_menu_separator(
HMENU parent,
int pos, UiMenuItemI *item, UiObject *obj) {
}