make/vs/testapp/main.c

branch
newapi
changeset 187
24ce2c326d85
parent 186
5db4979bf482
child 188
fbbae6738252
--- 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);

mercurial