--- a/make/vs/testapp/main.c Sun Oct 01 09:23:47 2023 +0200 +++ b/make/vs/testapp/main.c Sun Oct 01 12:08:09 2023 +0200 @@ -34,14 +34,33 @@ #include <ui/ui.h> +typedef struct WindowData { + UiInteger* check; + UiInteger* toggle; +} WindowData; void action1(UiEvent* event, void* data) { char* action = data; - printf("data: %s!\n", data); + + WindowData* wdata = event->window; + int64_t is_checked = wdata->check->get(wdata->check); + + printf("data: %s %d\n", data, is_checked); +} + +void action_set_checkbox(UiEvent* event, void* data) { + char* action = data; + + WindowData* wdata = event->window; + wdata->check->set(wdata->check, 1); } void application_startup(UiEvent* event, void* data) { UiObject* obj = ui_window("Test", NULL); + WindowData* wdata = ui_malloc(obj->ctx, sizeof(WindowData)); + obj->window = wdata; + wdata->check = ui_int_new(obj->ctx, "check"); + wdata->toggle = ui_int_new(obj->ctx, "toggle"); UI_GRID_SP(obj, 10, 5, 20) { ui_button(obj, .label="Button1", .onclick=action1, .onclickdata="action1"); @@ -53,7 +72,11 @@ ui_button(obj, .label="Button5", .onclick=action1, .onclickdata="action5", .colspan=2); ui_newline(obj); - ui_button(obj, .label="Very Long Button Label Text ____________ Test", .onclick=action1, .onclickdata="test"); + ui_button(obj, .label="Very Long Button Label Text ____________ Test", .onclick=action_set_checkbox); + ui_newline(obj); + + ui_checkbox(obj, .label = "Option 1", .value = wdata->check); + ui_togglebutton(obj, .label = "Option 2", .value = wdata->toggle); } ui_show(obj);