improve table columnsize handling (Cocoa)

Sun, 24 Aug 2025 10:15:41 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 24 Aug 2025 10:15:41 +0200
changeset 716
99386f34efc9
parent 715
2082c80fb010
child 717
c35b2f18841c

improve table columnsize handling (Cocoa)

make/xcode/toolkit/toolkit/main.m file | annotate | diff | comparison | revisions
ui/cocoa/list.m file | annotate | diff | comparison | revisions
--- a/make/xcode/toolkit/toolkit/main.m	Sun Aug 24 09:31:09 2025 +0200
+++ b/make/xcode/toolkit/toolkit/main.m	Sun Aug 24 10:15:41 2025 +0200
@@ -89,8 +89,8 @@
     MyDocument *doc = create_doc();
     ui_attach_document(obj->ctx, doc);
     
-    UiModel *model = ui_model(obj->ctx, UI_STRING, "Column 1", UI_STRING, "Column 2", UI_STRING, "Column 3", -1);
-    
+    UiModel *model = ui_model(obj->ctx, UI_STRING, "Column 0", UI_STRING, "Column 1", UI_STRING, "Column 2", -1);
+    model->columnsize[1] = -1;
     ui_grid(obj, .columnspacing = 10, .rowspacing = 10) {
         ui_table(obj, .fill = UI_ON, .varname = "list1", .model = model, .getvalue = table_getvalue, .onactivate = action_list_activate, .onselection = action_list_selection, .multiselection = TRUE);
     }
--- a/ui/cocoa/list.m	Sun Aug 24 09:31:09 2025 +0200
+++ b/ui/cocoa/list.m	Sun Aug 24 10:15:41 2025 +0200
@@ -119,6 +119,7 @@
     
     NSTableView *tableview = [[NSTableView alloc] init];
     tableview.autoresizingMask = NSViewWidthSizable;
+    tableview.columnAutoresizingStyle = NSTableViewSequentialColumnAutoresizingStyle;
     
     if(args->multiselection) {
         tableview.allowsMultipleSelection = YES;
@@ -140,8 +141,11 @@
             NSString *identifier = [[NSString alloc] initWithUTF8String:title];
             NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:identifier];
             column.title = identifier;
+            column.resizingMask = NSTableColumnUserResizingMask;
             if(width > 0) {
                 column.width = width;
+            } else if(width < 0) {
+                column.resizingMask = NSTableColumnAutoresizingMask | NSTableColumnUserResizingMask;
             }
             if(type >= UI_ICON) {
                 // TODO

mercurial