diff options
Diffstat (limited to 'Liquid Glass Bezel/BBObjectCell.m')
| -rw-r--r-- | Liquid Glass Bezel/BBObjectCell.m | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/Liquid Glass Bezel/BBObjectCell.m b/Liquid Glass Bezel/BBObjectCell.m index 7bf1b3c..a060598 100644 --- a/Liquid Glass Bezel/BBObjectCell.m +++ b/Liquid Glass Bezel/BBObjectCell.m @@ -14,13 +14,20 @@ NSColor *strokeColor = [NSColor clearColor]; if (isFirstResponder) { - fillColor = [NSColor selectedTextBackgroundColor]; + // Use QSAppearance1A (accent color) from UserDefaults instead of selectedTextBackgroundColor + fillColor = [[NSUserDefaults standardUserDefaults] colorForKey:@"QSAppearance1A"]; + if (!fillColor) { + // Fallback to system color if preference not set + fillColor = [NSColor selectedTextBackgroundColor]; + } } else { fillColor = [NSColor clearColor]; } if (dropTarget) { - fillColor = [NSColor controlAccentColor]; + // Use QSAppearance1A (accent color) from UserDefaults instead of controlAccentColor + NSColor *userAccentColor = [[NSUserDefaults standardUserDefaults] colorForKey:@"QSAppearance1A"]; + fillColor = userAccentColor ? userAccentColor : [NSColor controlAccentColor]; } [fillColor setFill]; @@ -68,7 +75,16 @@ } BOOL useAlternateColor = [controlView isKindOfClass:[NSTableView class]] && [(NSTableView *)controlView isRowSelected:[(NSTableView *)controlView rowAtPoint:cellFrame.origin]]; - NSColor *mainColor = (textColor ? textColor : (useAlternateColor ? [NSColor alternateSelectedControlTextColor] : [NSColor controlTextColor])); + NSColor *mainColor; + + BOOL shouldApplyTint = [[NSUserDefaults standardUserDefaults] boolForKey:@"QSLiquidGlassBezelApplyTint"]; + NSColor *userTextColor = shouldApplyTint ? [[NSUserDefaults standardUserDefaults] colorForKey:@"QSAppearance1T"] : [NSColor textColor]; + if (userTextColor) { + mainColor = userTextColor; + } else { + // Fallback to system colors if QSAppearance1T preference not set + mainColor = useAlternateColor ? [NSColor alternateSelectedControlTextColor] : [NSColor controlTextColor]; + } NSColor *fadedColor = [mainColor colorWithAlphaComponent:0.50]; NSRect textDrawRect = [self titleRectForBounds:cellFrame]; @@ -149,7 +165,12 @@ CGContextSetBlendMode(context, kCGBlendModeNormal); [find drawInRect:findImageRect fromRect:rectFromSize([find size]) operation:NSCompositingOperationSourceOver fraction:1]; CGContextSetBlendMode(context, kCGBlendModeSourceIn); - CGContextSetFillColorWithColor(context, [[NSColor textColor] CGColor]); + // Use QSAppearance1T (text color) from UserDefaults if tinting is enabled, otherwise use textColor + BOOL shouldApplyTint = [[NSUserDefaults standardUserDefaults] boolForKey:@"QSLiquidGlassBezelApplyTint"]; + NSColor *userTextColor = shouldApplyTint ? [[NSUserDefaults standardUserDefaults] colorForKey:@"QSAppearance1T"] : [NSColor textColor]; + NSColor *iconTextColor; + iconTextColor = userTextColor ? userTextColor : [NSColor textColor]; + CGContextSetFillColorWithColor(context, [iconTextColor CGColor]); CGContextFillRect(context, findImageRect); CGContextEndTransparencyLayer(context); @@ -169,7 +190,10 @@ } else if ([[image name] isEqualToString: @"Object"]) { iconName = @"cube.transparent"; - iconConfig = [NSImageSymbolConfiguration configurationWithHierarchicalColor:[NSColor controlAccentColor]]; + // Use QSAppearance1A (accent color) from UserDefaults instead of controlAccentColor + NSColor *userAccentColor = [[NSUserDefaults standardUserDefaults] colorForKey:@"QSAppearance1A"]; + NSColor *iconAccentColor = userAccentColor ? userAccentColor : [NSColor controlAccentColor]; + iconConfig = [NSImageSymbolConfiguration configurationWithHierarchicalColor:iconAccentColor]; } else if ([[image name] isEqualToString: @"ContactAddress"]) { iconName = @"mappin.circle"; @@ -195,7 +219,16 @@ NSImage *newIcon = [NSImage imageWithSystemSymbolName:iconName accessibilityDescription:[image name]]; if (iconConfig == nil) { - NSArray *colors = [NSArray arrayWithObjects:[NSColor textColor], [NSColor controlAccentColor], nil]; + // Use QSAppearance1T (text color) and QSAppearance1A (accent color) from UserDefaults + BOOL shouldApplyTint = [[NSUserDefaults standardUserDefaults] boolForKey:@"QSLiquidGlassBezelApplyTint"]; + + NSColor *userTextColor = shouldApplyTint ? [[NSUserDefaults standardUserDefaults] colorForKey:@"QSAppearance1T"] : [NSColor textColor]; + NSColor *userAccentColor = [[NSUserDefaults standardUserDefaults] colorForKey:@"QSAppearance1A"]; + + NSColor *iconTextColor = userTextColor ? userTextColor : [NSColor textColor]; + NSColor *iconAccentColor = userAccentColor ? userAccentColor : [NSColor controlAccentColor]; + + NSArray *colors = [NSArray arrayWithObjects:iconTextColor, iconAccentColor, nil]; iconConfig = [NSImageSymbolConfiguration configurationWithPaletteColors:colors]; } |