aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Liquid Glass Bezel/BBLiquidGlassBezelInterface.m46
-rw-r--r--Liquid Glass Bezel/BBObjectCell.m45
2 files changed, 83 insertions, 8 deletions
diff --git a/Liquid Glass Bezel/BBLiquidGlassBezelInterface.m b/Liquid Glass Bezel/BBLiquidGlassBezelInterface.m
index 335eacd..1df5f7e 100644
--- a/Liquid Glass Bezel/BBLiquidGlassBezelInterface.m
+++ b/Liquid Glass Bezel/BBLiquidGlassBezelInterface.m
@@ -7,6 +7,13 @@
@implementation BBLiquidGlassBezelInterface
+- (void)dealloc {
+ // Remove KVO observers
+ [[NSUserDefaults standardUserDefaults] removeObserver:self forKeyPath:@"QSLiquidGlassBezelApplyTint"];
+ [[NSUserDefaults standardUserDefaults] removeObserver:self forKeyPath:@"QSAppearance1A"];
+ [[NSUserDefaults standardUserDefaults] removeObserver:self forKeyPath:@"QSAppearance1T"];
+}
+
- (id)init {
return [self initWithWindowNibName:@"BBLiquidGlassBezelInterface"];
}
@@ -42,17 +49,52 @@
[theCell setFont:[NSFont systemFontOfSize:11 weight:NSFontWeightLight]];
[theCell setCellRadiusFactor:32];
- [theCell setHighlightColor:[NSColor colorWithRed:1 green:1 blue:1 alpha:.15]];
- [theCell setTextColor:[NSColor textColor]];
+ BOOL shouldApplyTint = [[NSUserDefaults standardUserDefaults] boolForKey:@"QSLiquidGlassBezelApplyTint"];
+ NSColor *userHighlightColor = [[NSUserDefaults standardUserDefaults] colorForKey:@"QSAppearance1A"];
+ NSColor *userTextColor = shouldApplyTint ? [[NSUserDefaults standardUserDefaults] colorForKey:@"QSAppearance1T"] : [NSColor textColor];
+
+ [theCell setHighlightColor: userHighlightColor ? userHighlightColor : [NSColor colorWithRed:1 green:1 blue:1 alpha:.15]];
+ [theCell setTextColor: userTextColor ? userTextColor : [NSColor textColor]];
[theCell setShowDetails:NO];
[theCell setState:NSControlStateValueOn];
[theCell setIconSize:QSSize128];
[theCell setImagePosition:NSImageAbove];
+
+
}
+ // Add KVO observers for preference changes
+ [[NSUserDefaults standardUserDefaults] addObserver:self forKeyPath:@"QSLiquidGlassBezelApplyTint" options:NSKeyValueObservingOptionNew context:nil];
+ [[NSUserDefaults standardUserDefaults] addObserver:self forKeyPath:@"QSAppearance1A" options:NSKeyValueObservingOptionNew context:nil];
+ [[NSUserDefaults standardUserDefaults] addObserver:self forKeyPath:@"QSAppearance1T" options:NSKeyValueObservingOptionNew context:nil];
+
[self contractWindow:nil];
}
+- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
+ [self updateColors];
+}
+
+- (void)updateColors {
+ NSArray *theControls = [NSArray arrayWithObjects:dSelector, aSelector, iSelector, nil];
+BOOL shouldApplyTint = [[NSUserDefaults standardUserDefaults] boolForKey:@"QSLiquidGlassBezelApplyTint"];
+NSColor *userHighlightColor = [[NSUserDefaults standardUserDefaults] colorForKey:@"QSAppearance1A"];
+NSColor *userTextColor = shouldApplyTint ? [[NSUserDefaults standardUserDefaults] colorForKey:@"QSAppearance1T"] : [NSColor textColor];
+ for(QSSearchObjectView *theControl in theControls) {
+ QSObjectCell *theCell = [theControl cell];
+ [theCell setHighlightColor: userHighlightColor ? userHighlightColor : [NSColor colorWithRed:1 green:1 blue:1 alpha:.15]];
+ [theCell setTextColor: userTextColor ? userTextColor : [NSColor textColor]];
+
+ @try {
+ [theCell setValue:@(NO) forKey:@"stylesLoaded"];
+ } @catch (NSException *exception) {
+ // We couldn't update. Ignore for now.p
+ }
+
+ [theControl setNeedsDisplay:YES];
+ }
+}
+
- (NSSize) maxIconSize {
return QSSize32;
}
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];
}