ui/motif/list.c

changeset 595
e62047c59658
parent 556
1a95de56dadc
child 639
55eb8a87d3e5
equal deleted inserted replaced
594:fc854e0ab924 595:e62047c59658
32 #include "container.h" 32 #include "container.h"
33 33
34 #include "list.h" 34 #include "list.h"
35 #include "../common/object.h" 35 #include "../common/object.h"
36 36
37 UIWIDGET ui_listview_create(UiObject* obj, UiListArgs args) { 37 UIWIDGET ui_listview_create(UiObject* obj, UiListArgs *args) {
38 Arg xargs[16]; 38 Arg xargs[16];
39 int n = 0; 39 int n = 0;
40 40
41 UiContainerPrivate *ctn = ui_obj_container(obj); 41 UiContainerPrivate *ctn = ui_obj_container(obj);
42 UI_APPLY_LAYOUT(ctn->layout, args); 42 UI_APPLY_LAYOUT(ctn->layout, args);
43 43
44 if(args.multiselection) { 44 if(args->multiselection) {
45 XtSetArg(xargs[n], XmNselectionPolicy, XmEXTENDED_SELECT); n++; 45 XtSetArg(xargs[n], XmNselectionPolicy, XmEXTENDED_SELECT); n++;
46 } else { 46 } else {
47 XtSetArg(xargs[n], XmNselectionPolicy, XmSINGLE_SELECT); n++; 47 XtSetArg(xargs[n], XmNselectionPolicy, XmSINGLE_SELECT); n++;
48 } 48 }
49 49
50 char *name = args.name ? (char*)args.name : "listview"; 50 char *name = args->name ? (char*)args->name : "listview";
51 Widget parent = ctn->prepare(ctn, xargs, &n); 51 Widget parent = ctn->prepare(ctn, xargs, &n);
52 Widget widget = XmCreateScrolledList(parent, name, xargs, n); 52 Widget widget = XmCreateScrolledList(parent, name, xargs, n);
53 XtManageChild(widget); 53 XtManageChild(widget);
54 54
55 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args.list, args.varname, UI_VAR_LIST); 55 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->list, args->varname, UI_VAR_LIST);
56 56
57 UiListView *listview = malloc(sizeof(UiListView)); 57 UiListView *listview = malloc(sizeof(UiListView));
58 memset(listview, 0, sizeof(UiListView)); 58 memset(listview, 0, sizeof(UiListView));
59 listview->obj = obj; 59 listview->obj = obj;
60 listview->widget = widget; 60 listview->widget = widget;
61 listview->getvalue = args.getvalue ? args.getvalue : ui_strmodel_getvalue; 61 listview->getvalue = args->getvalue ? args->getvalue : ui_strmodel_getvalue;
62 listview->var = var; 62 listview->var = var;
63 listview->onactivate = args.onactivate; 63 listview->onactivate = args->onactivate;
64 listview->onactivatedata = args.onactivatedata; 64 listview->onactivatedata = args->onactivatedata;
65 listview->onselection = args.onselection; 65 listview->onselection = args->onselection;
66 listview->onselectiondata = args.onselectiondata; 66 listview->onselectiondata = args->onselectiondata;
67 67
68 if(var) { 68 if(var) {
69 UiList *list = var->value; 69 UiList *list = var->value;
70 list->obj = listview; 70 list->obj = listview;
71 list->update = ui_listview_update; 71 list->update = ui_listview_update;
225 if(listview->onselection) { 225 if(listview->onselection) {
226 listview->onselection(&event, listview->onselectiondata); 226 listview->onselection(&event, listview->onselectiondata);
227 } 227 }
228 } 228 }
229 229
230 UIWIDGET ui_combobox_create(UiObject* obj, UiListArgs args) { 230 UIWIDGET ui_combobox_create(UiObject* obj, UiListArgs *args) {
231 Arg xargs[16]; 231 Arg xargs[16];
232 int n = 0; 232 int n = 0;
233 233
234 UiContainerPrivate *ctn = ui_obj_container(obj); 234 UiContainerPrivate *ctn = ui_obj_container(obj);
235 UI_APPLY_LAYOUT(ctn->layout, args); 235 UI_APPLY_LAYOUT(ctn->layout, args);
236 236
237 char *name = args.name ? (char*)args.name : "dropdown"; 237 char *name = args->name ? (char*)args->name : "dropdown";
238 Widget parent = ctn->prepare(ctn, xargs, &n); 238 Widget parent = ctn->prepare(ctn, xargs, &n);
239 Widget widget = XmCreateDropDownList(parent, name, xargs, n); 239 Widget widget = XmCreateDropDownList(parent, name, xargs, n);
240 XtManageChild(widget); 240 XtManageChild(widget);
241 241
242 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args.list, args.varname, UI_VAR_LIST); 242 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->list, args->varname, UI_VAR_LIST);
243 243
244 UiListView *listview = malloc(sizeof(UiListView)); 244 UiListView *listview = malloc(sizeof(UiListView));
245 memset(listview, 0, sizeof(UiListView)); 245 memset(listview, 0, sizeof(UiListView));
246 listview->obj = obj; 246 listview->obj = obj;
247 listview->widget = widget; 247 listview->widget = widget;
248 listview->getvalue = args.getvalue ? args.getvalue : ui_strmodel_getvalue; 248 listview->getvalue = args->getvalue ? args->getvalue : ui_strmodel_getvalue;
249 listview->var = var; 249 listview->var = var;
250 listview->onactivate = args.onactivate; 250 listview->onactivate = args->onactivate;
251 listview->onactivatedata = args.onactivatedata; 251 listview->onactivatedata = args->onactivatedata;
252 listview->onselection = args.onselection; 252 listview->onselection = args->onselection;
253 listview->onselectiondata = args.onselectiondata; 253 listview->onselectiondata = args->onselectiondata;
254 254
255 if(var) { 255 if(var) {
256 UiList *list = var->value; 256 UiList *list = var->value;
257 list->obj = listview; 257 list->obj = listview;
258 list->update = ui_listview_update; 258 list->update = ui_listview_update;

mercurial