--- a/application/main.c Sun Jan 25 16:27:12 2026 +0100 +++ b/application/main.c Tue Jan 27 12:23:40 2026 +0100 @@ -1238,6 +1238,8 @@ #ifdef UI_WIN32 +static UiList *menu_list; + static void action_button(UiEvent *event, void *data) { printf("button clicked\n"); } @@ -1301,12 +1303,23 @@ ui_show(obj); } +void action_menu_item(UiEvent *event, void *userdata) { + printf("menu item clicked\n"); +} + int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { //int main() { ui_init("app1", 0, NULL); + menu_list = ui_list_new(ui_global_context(), "menulist"); + ui_list_append(menu_list, "List Item 0"); + ui_list_append(menu_list, "List Item 1"); + ui_list_append(menu_list, "List Item 2"); + ui_list_append(menu_list, "List Item 3"); + ui_list_append(menu_list, "List Item 4"); + ui_menu("File") { - ui_menuitem("Open"); + ui_menuitem("Open", .onclick = action_menu_item); ui_menu_toggleitem("Test"); ui_menuseparator(); ui_menu_radioitem(.label = "Option 1", .varname = "radio"); @@ -1316,6 +1329,13 @@ ui_menuseparator(); ui_menuitem("Close"); } + ui_menu("Test") { + ui_menuitem("Item 0"); + ui_menuseparator(); + ui_menu_itemlist(.varname = "menulist"); + ui_menuseparator(); + ui_menuitem("Item X"); + } ui_onstartup(application_startup, NULL);