application/main.c

changeset 917
ca3918f9c96b
parent 902
6872b59217a7
child 919
d9018dcd4e2d
--- a/application/main.c	Wed Nov 19 09:20:18 2025 +0100
+++ b/application/main.c	Wed Nov 19 11:41:33 2025 +0100
@@ -1196,38 +1196,34 @@
     printf("button clicked\n");
 }
 
+typedef struct Person {
+    char *name;
+    char *email;
+} Person;
+
+Person person1 = { "Alice", "alice@localhost" };
+Person person2 = { "Bob", "bob@localhost" };
+
+void* person_getvalue(void *elm, int col) {
+    Person *p = (Person *) elm;
+    if (col == 0) {
+        return p->name;
+    } else {
+        return p->email;
+    }
+}
+
 void application_startup(UiEvent *event, void *data) {
 	UiObject *obj = ui_window("Test w32", NULL);
 
-    ui_grid(obj, .margin = 10, .columnspacing = 10, .rowspacing = 10, .fill = TRUE) {
-        ui_button(obj, .label = "Test", .hfill = TRUE, .hexpand = TRUE, .colspan = 3, .margin = 10);
-        ui_newline(obj);
-        ui_textfield(obj, .varname = "text1", .hfill = TRUE, .hexpand = TRUE, .colspan = 2);
-        ui_newline(obj);
-
-        ui_button(obj, .label = "Test 2-1");
-        ui_button(obj, .label = "Test 2-2");
-        ui_button(obj, .label = "Test 2-3");
-        ui_newline(obj);
-
-        ui_button(obj, .label = "Test 3XX", .colspan = 3, .fill = TRUE, .onclick = action_button);
-        ui_newline(obj);
+    UiList *list = ui_list_new(obj->ctx, "persons");
+    ui_list_append(list, &person1);
+    ui_list_append(list, &person2);
 
-        ui_button(obj, .label = "End");
-        ui_newline(obj);
-
-        ui_togglebutton(obj, .label = "Test");
-        ui_newline(obj);
-
-        ui_checkbox(obj, .label = "Checkbox");
-        ui_newline(obj);
-
-        ui_hbox(obj, .spacing = 10, .colspan = 3, .hexpand = TRUE, .hfill = TRUE) {
-            ui_radiobutton(obj, .label = "Option 1", .varname = "radio1");
-            ui_radiobutton(obj, .label = "Option 2", .varname = "radio1");
-            ui_radiobutton(obj, .label = "Option 3", .varname = "radio1");
-        }
-
+    ui_grid(obj, .margin = 10, .columnspacing = 10, .rowspacing = 10, .fill = TRUE) {
+        UiModel *model = ui_model(obj->ctx, UI_STRING, "Name", UI_STRING, "Email", -1);
+        ui_table(obj, .fill = TRUE, .varname = "persons", .model = model, .getvalue = person_getvalue);
+        ui_model_free(obj->ctx, model);
     }
 
 

mercurial