ui/motif/list.c

changeset 996
61b811c4705f
parent 969
7385c26d998d
child 999
15c2d9823185
equal deleted inserted replaced
995:2f811eae2424 996:61b811c4705f
93 listview->onactivate = args->onactivate; 93 listview->onactivate = args->onactivate;
94 listview->onactivatedata = args->onactivatedata; 94 listview->onactivatedata = args->onactivatedata;
95 listview->onselection = args->onselection; 95 listview->onselection = args->onselection;
96 listview->onselectiondata = args->onselectiondata; 96 listview->onselectiondata = args->onselectiondata;
97 97
98 char **static_elements = args->static_elements;
99 size_t static_nelm = args->static_nelm;
98 if(var) { 100 if(var) {
99 UiList *list = var->value; 101 UiList *list = var->value;
100 list->obj = listview; 102 list->obj = listview;
101 list->update = ui_listview_update; 103 list->update = ui_listview_update;
102 list->getselection = ui_listview_getselection; 104 list->getselection = ui_listview_getselection;
103 list->setselection = ui_listview_setselection; 105 list->setselection = ui_listview_setselection;
104 ui_listview_update(list, 0); 106 ui_listview_update(list, 0);
107 } else if(static_elements && static_nelm > 0) {
108 XmStringTable items = calloc(static_nelm, sizeof(XmString));
109 for(int i=0;i<static_nelm;i++) {
110 items[i] = XmStringCreateLocalized(static_elements[i]);
111 }
112 XtVaSetValues(
113 listview->widget,
114 XmNitems, items,
115 XmNitemCount,
116 static_nelm,
117 NULL);
118 for (int i=0;i<static_nelm;i++) {
119 XmStringFree(items[i]);
120 }
121 free(items);
105 } 122 }
106 123
107 XtAddCallback( 124 XtAddCallback(
108 widget, 125 widget,
109 XmNdestroyCallback, 126 XmNdestroyCallback,
314 listview->onactivate = args->onactivate; 331 listview->onactivate = args->onactivate;
315 listview->onactivatedata = args->onactivatedata; 332 listview->onactivatedata = args->onactivatedata;
316 listview->onselection = args->onselection; 333 listview->onselection = args->onselection;
317 listview->onselectiondata = args->onselectiondata; 334 listview->onselectiondata = args->onselectiondata;
318 335
336 char **static_elements = args->static_elements;
337 size_t static_nelm = args->static_nelm;
319 if(var) { 338 if(var) {
320 UiList *list = var->value; 339 UiList *list = var->value;
321 list->obj = listview; 340 list->obj = listview;
322 list->update = ui_listview_update; 341 list->update = ui_listview_update;
323 list->getselection = ui_dropdown_getselection; 342 list->getselection = ui_dropdown_getselection;
324 list->setselection = ui_dropdown_setselection; 343 list->setselection = ui_dropdown_setselection;
325 ui_listview_update(list, 0); 344 ui_listview_update(list, 0);
345 } else if(static_elements && static_nelm > 0) {
346 XmStringTable items = calloc(static_nelm, sizeof(XmString));
347 for(int i=0;i<static_nelm;i++) {
348 items[i] = XmStringCreateLocalized(static_elements[i]);
349 }
350 XtVaSetValues(
351 listview->widget,
352 XmNitems, items,
353 XmNitemCount,
354 static_nelm,
355 NULL);
356 for (int i=0;i<static_nelm;i++) {
357 XmStringFree(items[i]);
358 }
359 free(items);
326 } 360 }
327 361
328 XtAddCallback( 362 XtAddCallback(
329 widget, 363 widget,
330 XmNdestroyCallback, 364 XmNdestroyCallback,

mercurial