# HG changeset patch # User Olaf Wintermann # Date 1765639587 -3600 # Node ID b58ad5b65c1b71c6a91b09804061dcea6745dd9d # Parent 2cfd243dc8b0ece107809ebfcaa2dd50fc354122 implement static_elements arg for the listview (Cocoa) diff -r 2cfd243dc8b0 -r b58ad5b65c1b ui/cocoa/ListDataSource.h --- a/ui/cocoa/ListDataSource.h Sat Dec 13 16:07:34 2025 +0100 +++ b/ui/cocoa/ListDataSource.h Sat Dec 13 16:26:27 2025 +0100 @@ -40,3 +40,11 @@ - (id) init:(NSArray*) columns var:(UiVar*)var getvalue:(ui_getvaluefunc2) getvaluefunc getvaluedata:(void*)userdata; @end + +@interface ArrayDataSource : NSObject + +@property NSMutableArray *data; + +- (id)init:(char**)elements size:(size_t)nelm; + +@end diff -r 2cfd243dc8b0 -r b58ad5b65c1b ui/cocoa/ListDataSource.m --- a/ui/cocoa/ListDataSource.m Sat Dec 13 16:07:34 2025 +0100 +++ b/ui/cocoa/ListDataSource.m Sat Dec 13 16:26:27 2025 +0100 @@ -114,3 +114,27 @@ } @end + +@implementation ArrayDataSource + +- (id)init:(char**)elements size:(size_t)nelm { + _data = [[NSMutableArray alloc]init]; + for(int i=0;istatic_elements; + size_t static_nelm = args->static_nelm; UiVar *var = uic_widget_var(obj->ctx, obj->ctx, args->list, args->varname, UI_VAR_LIST); if(var) { UiList *list = var->value; @@ -112,6 +114,15 @@ [tableview reloadData]; objc_setAssociatedObject(tableview, "ui_datasource", dataSource, OBJC_ASSOCIATION_RETAIN); + } else if(static_elements && static_nelm) { + NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:@"column"]; + [tableview addTableColumn:column]; + + ArrayDataSource *dataSource = [[ArrayDataSource alloc]init:static_elements size:static_nelm]; + tableview.dataSource = dataSource; + [tableview reloadData]; + + objc_setAssociatedObject(tableview, "ui_datasource", dataSource, OBJC_ASSOCIATION_RETAIN); } return (__bridge void*)scrollview;