ui/cocoa/list.m

changeset 117
b174e721663e
parent 115
e57ca2747782
equal deleted inserted replaced
116:376ef91111f6 117:b174e721663e
85 UiLayout layout = UI_INIT_LAYOUT(args); 85 UiLayout layout = UI_INIT_LAYOUT(args);
86 ui_container_add(obj, scrollview, &layout); 86 ui_container_add(obj, scrollview, &layout);
87 87
88 add_listdelegate(obj, tableview, args); 88 add_listdelegate(obj, tableview, args);
89 89
90 char **static_elements = args->static_elements;
91 size_t static_nelm = args->static_nelm;
90 UiVar *var = uic_widget_var(obj->ctx, obj->ctx, args->list, args->varname, UI_VAR_LIST); 92 UiVar *var = uic_widget_var(obj->ctx, obj->ctx, args->list, args->varname, UI_VAR_LIST);
91 if(var) { 93 if(var) {
92 UiList *list = var->value; 94 UiList *list = var->value;
93 bind_list_to_tableview(list, tableview); 95 bind_list_to_tableview(list, tableview);
94 96
106 NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:@"column"]; 108 NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:@"column"];
107 [tableview addTableColumn:column]; 109 [tableview addTableColumn:column];
108 110
109 ListDataSource *dataSource = [[ListDataSource alloc] init:tableview.tableColumns var:var getvalue:getvalue getvaluedata:getvaluedata]; 111 ListDataSource *dataSource = [[ListDataSource alloc] init:tableview.tableColumns var:var getvalue:getvalue getvaluedata:getvaluedata];
110 112
113 tableview.dataSource = dataSource;
114 [tableview reloadData];
115
116 objc_setAssociatedObject(tableview, "ui_datasource", dataSource, OBJC_ASSOCIATION_RETAIN);
117 } else if(static_elements && static_nelm) {
118 NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:@"column"];
119 [tableview addTableColumn:column];
120
121 ArrayDataSource *dataSource = [[ArrayDataSource alloc]init:static_elements size:static_nelm];
111 tableview.dataSource = dataSource; 122 tableview.dataSource = dataSource;
112 [tableview reloadData]; 123 [tableview reloadData];
113 124
114 objc_setAssociatedObject(tableview, "ui_datasource", dataSource, OBJC_ASSOCIATION_RETAIN); 125 objc_setAssociatedObject(tableview, "ui_datasource", dataSource, OBJC_ASSOCIATION_RETAIN);
115 } 126 }
395 size_t max = args->numsublists; 406 size_t max = args->numsublists;
396 if(max == 0) { 407 if(max == 0) {
397 max = INT_MAX; 408 max = INT_MAX;
398 } 409 }
399 410
400 CxList *sublists = cxArrayListCreate(a, NULL, sizeof(UiSubList), args->numsublists); 411 CxList *sublists = cxArrayListCreate(a, sizeof(UiSubList), args->numsublists);
401 sublists->collection.advanced_destructor = (cx_destructor_func2)sublist_free; 412 sublists->collection.advanced_destructor = (cx_destructor_func2)sublist_free;
402 413
403 for(int i=0;i<max;i++) { 414 for(int i=0;i<max;i++) {
404 UiSubList *sl = &args->sublists[i]; 415 UiSubList *sl = &args->sublists[i];
405 if(sl->value == NULL && sl->varname == NULL) { 416 if(sl->value == NULL && sl->varname == NULL) {

mercurial