--- a/ui/motif/list.c Sat Dec 13 12:11:40 2025 +0100 +++ b/ui/motif/list.c Sat Dec 13 12:19:55 2025 +0100 @@ -95,6 +95,8 @@ listview->onselection = args->onselection; listview->onselectiondata = args->onselectiondata; + char **static_elements = args->static_elements; + size_t static_nelm = args->static_nelm; if(var) { UiList *list = var->value; list->obj = listview; @@ -102,6 +104,21 @@ list->getselection = ui_listview_getselection; list->setselection = ui_listview_setselection; ui_listview_update(list, 0); + } else if(static_elements && static_nelm > 0) { + XmStringTable items = calloc(static_nelm, sizeof(XmString)); + for(int i=0;i<static_nelm;i++) { + items[i] = XmStringCreateLocalized(static_elements[i]); + } + XtVaSetValues( + listview->widget, + XmNitems, items, + XmNitemCount, + static_nelm, + NULL); + for (int i=0;i<static_nelm;i++) { + XmStringFree(items[i]); + } + free(items); } XtAddCallback( @@ -316,6 +333,8 @@ listview->onselection = args->onselection; listview->onselectiondata = args->onselectiondata; + char **static_elements = args->static_elements; + size_t static_nelm = args->static_nelm; if(var) { UiList *list = var->value; list->obj = listview; @@ -323,6 +342,21 @@ list->getselection = ui_dropdown_getselection; list->setselection = ui_dropdown_setselection; ui_listview_update(list, 0); + } else if(static_elements && static_nelm > 0) { + XmStringTable items = calloc(static_nelm, sizeof(XmString)); + for(int i=0;i<static_nelm;i++) { + items[i] = XmStringCreateLocalized(static_elements[i]); + } + XtVaSetValues( + listview->widget, + XmNitems, items, + XmNitemCount, + static_nelm, + NULL); + for (int i=0;i<static_nelm;i++) { + XmStringFree(items[i]); + } + free(items); } XtAddCallback(