Fri, 10 Oct 2025 09:05:11 +0200
use NSVisualEffectView for the sidebar (Cocoa)
| make/xcode/toolkit/toolkit/main.m | file | annotate | diff | comparison | revisions | |
| ui/cocoa/MainWindow.m | file | annotate | diff | comparison | revisions |
--- a/make/xcode/toolkit/toolkit/main.m Tue Oct 07 15:42:18 2025 +0200 +++ b/make/xcode/toolkit/toolkit/main.m Fri Oct 10 09:05:11 2025 +0200 @@ -108,8 +108,8 @@ ui_sidebar(obj) { ui_vbox(obj, .margin = 0, .fill = TRUE) { - //ui_button(obj, .label = "Button"); - ui_textarea(obj, .varname = "text", .fill = TRUE); + ui_button(obj, .label = "Button"); + //ui_textarea(obj, .varname = "text", .fill = TRUE); } }
--- a/ui/cocoa/MainWindow.m Tue Oct 07 15:42:18 2025 +0200 +++ b/ui/cocoa/MainWindow.m Fri Oct 10 09:05:11 2025 +0200 @@ -31,6 +31,7 @@ #import "GridLayout.h" #import "BoxContainer.h" #import "../common/object.h" +#import "../ui/properties.h" #import <objc/runtime.h> #import "EventData.h" @@ -84,7 +85,21 @@ if(hasSidebar) { // add the sidebar - _sidebar = [[NSView alloc]initWithFrame:NSMakeRect(0,0,0,0)]; + const char *sidebarMaterialProperty = ui_get_property("ui.cocoa.sidebar.usematerial"); + BOOL useMaterial = YES; + if(sidebarMaterialProperty && (sidebarMaterialProperty[0] == 'f' || sidebarMaterialProperty[0] == 'F')) { + useMaterial = NO; + } + + if(useMaterial) { + NSVisualEffectView *v = [[NSVisualEffectView alloc] initWithFrame:NSMakeRect(0,0,0,0)]; + v.material = NSVisualEffectMaterialSidebar; + v.blendingMode = NSVisualEffectBlendingModeBehindWindow; + v.state = NSVisualEffectStateActive; + _sidebar = v; + } else { + _sidebar = [[NSView alloc]initWithFrame:NSMakeRect(0,0,0,0)]; + } _sidebar.translatesAutoresizingMaskIntoConstraints = NO; [splitview addArrangedSubview:_sidebar]; [_sidebar.widthAnchor constraintGreaterThanOrEqualToConstant:250].active = YES;