application/main.c

changeset 503
fefdfe7b2fc5
parent 490
0206161e92d5
child 510
9f562a7de4a2
--- a/application/main.c	Tue Mar 18 17:47:40 2025 +0100
+++ b/application/main.c	Sun Mar 23 18:09:24 2025 +0100
@@ -35,6 +35,7 @@
 #include <cx/utils.h>
 
 #include "cx/string.h"
+#include "cx/list.h"
 
 #if !defined(UI_COCOA) && !defined(UI_MOTIF)
 
@@ -54,6 +55,7 @@
     UiList *srclist2;
     UiList *items;
     UiGeneric *web;
+    UiString *list_input;
 } MyDocument;
 
 MyDocument *doc1;
@@ -168,9 +170,9 @@
     ui_list_append(doc->list, "test2");
     ui_list_append(doc->list, "test3");
     doc->list2 = ui_list_new(docctx, "list2");
-    ui_list_append(doc->list2, "test1");
-    ui_list_append(doc->list2, "test2");
-    ui_list_append(doc->list2, "test3");
+    ui_list_append(doc->list2, strdup("test1"));
+    ui_list_append(doc->list2, strdup("test2"));
+    ui_list_append(doc->list2, strdup("test3"));
     doc->radio = ui_int_new(docctx, "radio");
     doc->tabview = ui_int_new(docctx, "tabview");
     doc->image = ui_generic_new(docctx, "image");
@@ -190,6 +192,8 @@
     
     doc->web = ui_generic_new(docctx, NULL);
     
+    doc->list_input = ui_string_new(docctx, "list_input");
+    
     //doc->text = ui_text_new(docctx, "text");
     return doc;
 }
@@ -348,6 +352,17 @@
     printf("dropdown[%d]: %s\n", event->intval, event->eventdata);
 }
 
+static void action_update_list(UiEvent *event, void *userdata) {
+    MyDocument *doc = event->document;
+    
+    char *newvalue = ui_get(doc->list_input);
+    CxList *list2 = doc->list2->data;
+    cxListRemove(list2, 1);
+    cxListInsert(list2, 1, strdup(newvalue));
+    
+    doc->list2->update(doc->list2, 1);
+}
+
 void application_startup(UiEvent *event, void *data) {
     // global list
     UiContext *global = ui_global_context();
@@ -436,6 +451,10 @@
             ui_table(obj, .model = model, .list = doc->list2, .colspan = 2, .fill = UI_ON, .contextmenu = menubuilder, .multiselection = TRUE,
                     .onactivate = action_table_activate, .onactivatedata = "activate",
                     .onselection = action_table_activate, .onselectiondata = "selection");
+            ui_hbox(obj, .fill = UI_OFF) {
+                ui_textfield(obj, .value = doc->list_input);
+                ui_button(obj, .label = "Update List Item 1", .onclick = action_update_list);
+            }
         }
         ui_tab(obj, "Tab 2") {
             ui_button(obj, .label = "Button 1 Start Thread", .onclick=action_start_thread);

mercurial