ui/win32/list.c

changeset 997
287b20e2a564
parent 980
39cb60b6a81b
child 998
55508508ba4d
--- a/ui/win32/list.c	Sat Dec 13 12:19:55 2025 +0100
+++ b/ui/win32/list.c	Sat Dec 13 12:37:41 2025 +0100
@@ -170,6 +170,19 @@
         list->setselection = ui_listview_setselection;
 
         ui_listview_update(list, -1);
+    } else if (!table && args->static_elements && args->static_nelm > 0) {
+        char **static_elements = args->static_elements;
+        size_t static_nelm = args->static_nelm;
+        LVITEM item;
+        item.mask = LVIF_TEXT;
+        item.iSubItem = 0;
+        for (int i=0;i<static_nelm;i++) {
+            item.iItem = i;
+            item.pszText = static_elements[i];
+            ListView_InsertItem(hwnd, &item);
+        }
+        listview->getvalue = strmodel_getvalue;
+        listview->getvaluedata = NULL;
     }
 
     return (W32Widget*)listview;
@@ -387,9 +400,16 @@
         list->setselection = ui_dropdown_setselection;
 
         ui_dropdown_update(list, -1);
+    } else if (args->static_elements && args->static_nelm > 0) {
+        char **static_elements = args->static_elements;
+        size_t static_nelm = args->static_nelm;
+        for (int i=0;i<static_nelm;i++) {
+            SendMessage(hwnd, CB_ADDSTRING, 0, (LPARAM)static_elements[i]);
+        }
+        dropdown->getvalue = strmodel_getvalue;
+        dropdown->getvaluedata = NULL;
     }
 
-
     return (W32Widget*)dropdown;
 }
 

mercurial