make/vs/testapp/main.c

branch
newapi
changeset 196
320d85f3cd14
parent 195
0f2e69873875
child 197
8a82ebe23822
--- a/make/vs/testapp/main.c	Mon Oct 02 10:10:09 2023 +0200
+++ b/make/vs/testapp/main.c	Mon Oct 02 19:31:06 2023 +0200
@@ -40,6 +40,7 @@
     UiInteger* radio;
     UiString* text;
     UiString* password;
+    UiList* list;
 } WindowData;
 
 void action1(UiEvent* event, void* data) {
@@ -67,6 +68,24 @@
     printf("onchange: %d\n", event->intval);
 }
 
+void action_listselection_changed(UiEvent* event, void* data) {
+    printf("selection changed\n");
+    UiListSelection* sel = event->eventdata;
+    for (int i = 0; i < sel->count; i++) {
+        int row = sel->rows[i];
+        printf("row: %d\n", row);
+    }
+}
+
+void action_onactivate(UiEvent* event, void* Data) {
+    printf("activate\n");
+    UiListSelection* sel = event->eventdata;
+    for (int i = 0; i < sel->count; i++) {
+        int row = sel->rows[i];
+        printf("row: %d\n", row);
+    }
+}
+
 void application_startup(UiEvent* event, void* data) {
     UiObject* obj = ui_window("Test", NULL);
     WindowData* wdata = ui_malloc(obj->ctx, sizeof(WindowData));
@@ -76,6 +95,14 @@
     wdata->radio = ui_int_new(obj->ctx, "radio");
     wdata->text = ui_string_new(obj->ctx, "text");
     wdata->password = ui_string_new(obj->ctx, "password");
+    wdata->list = ui_list_new(obj->ctx, "list");
+
+    ui_list_append(wdata->list, "Hello");
+    ui_list_append(wdata->list, "World");
+    ui_list_append(wdata->list, "Item3");
+    ui_list_append(wdata->list, "Item4");
+    ui_list_append(wdata->list, "Item5");
+    ui_list_append(wdata->list, "Item6");
 
     ui_scrolledwindow0(obj) {
         ui_grid(obj, .margin = 10, .columnspacing = 5, .rowspacing = 20) {
@@ -114,11 +141,15 @@
             }
             ui_newline(obj);
 
-            ui_expander(obj, .label = "Expand", .colspan = 3, .margin = 10, .spacing = 5, .isexpanded = true) {
+            /*
+            ui_expander(obj, .label = "Expand", .colspan = 3, .margin = 10, .spacing = 5, .isexpanded = false) {
                 ui_button(obj, .label = "Button1", .onclick = action1, .onclickdata = "action1");
                 ui_button(obj, .label = "Button1", .onclick = action1, .onclickdata = "action1");
                 ui_button(obj, .label = "Button1", .onclick = action1, .onclickdata = "action1");
             }
+            */
+
+            ui_listview(obj, .list = wdata->list, .hexpand = true, .vexpand = true, .multiselection = true, .onselection= action_listselection_changed, .onactivate= action_onactivate);
         }
     }   
 

mercurial