diff --git a/MTMR/AppleScriptTouchBarItem.swift b/MTMR/AppleScriptTouchBarItem.swift index a379a45..ac66db7 100644 --- a/MTMR/AppleScriptTouchBarItem.swift +++ b/MTMR/AppleScriptTouchBarItem.swift @@ -14,6 +14,7 @@ class AppleScriptTouchBarItem: CustomButtonTouchBarItem { return } self.script = script + button.bezelColor = .clear DispatchQueue.main.async { var error: NSDictionary? guard script.compileAndReturnError(&error) else { diff --git a/MTMR/CustomButtonTouchBarItem.swift b/MTMR/CustomButtonTouchBarItem.swift index 300e8fe..c090e8f 100644 --- a/MTMR/CustomButtonTouchBarItem.swift +++ b/MTMR/CustomButtonTouchBarItem.swift @@ -22,13 +22,7 @@ class CustomButtonTouchBarItem: NSCustomTouchBarItem, NSGestureRecognizerDelegat super.init(identifier: identifier) button = NSButton(title: title, target: self, action: nil) - - button.cell = CustomButtonCell(backgroundColor: bezelColor!) - button.cell?.title = title button.title = title - - button.bezelStyle = .rounded - button.bezelColor = bezelColor self.view = button longClick = NSPressGestureRecognizer(target: self, action: #selector(handleGestureLong)) @@ -87,31 +81,6 @@ class CustomButtonTouchBarItem: NSCustomTouchBarItem, NSGestureRecognizerDelegat } } -class CustomButtonCell: NSButtonCell { - init(backgroundColor: NSColor) { - super.init(textCell: "") - if backgroundColor != .clear { - self.isBordered = true - self.backgroundColor = backgroundColor - } else { - self.isBordered = false - } - } - - override func highlight(_ flag: Bool, withFrame cellFrame: NSRect, in controlView: NSView) { - if flag { - self.isBordered = true - } else { - self.isBordered = false - } - super.highlight(flag, withFrame: cellFrame, in: controlView) - } - - required init(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } -} - extension NSButton { var title: String { get { diff --git a/MTMR/ItemsParsing.swift b/MTMR/ItemsParsing.swift index b564cd3..dec4a91 100644 --- a/MTMR/ItemsParsing.swift +++ b/MTMR/ItemsParsing.swift @@ -388,6 +388,7 @@ enum GeneralParameter { case width(_: CGFloat) case image(source: SourceProtocol) case align(_: Align) + case bordered(_: Bool) } struct GeneralParameters: Decodable { @@ -397,6 +398,7 @@ struct GeneralParameters: Decodable { case width case image case align + case bordered } init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) @@ -409,6 +411,9 @@ struct GeneralParameters: Decodable { } let align = try container.decodeIfPresent(Align.self, forKey: .align) ?? .center result[.align] = .align(align) + if let borderedFlag = try container.decodeIfPresent(Bool.self, forKey: .bordered) { + result[.bordered] = .bordered(borderedFlag) + } parameters = result } } diff --git a/MTMR/TouchBarController.swift b/MTMR/TouchBarController.swift index a3b28ca..f356397 100644 --- a/MTMR/TouchBarController.swift +++ b/MTMR/TouchBarController.swift @@ -219,6 +219,10 @@ class TouchBarController: NSObject, NSTouchBarDelegate { button.cell?.image = source.image button.bezelColor = .clear } + if case .bordered(let bordered)? = item.additionalParameters[.bordered], let item = barItem as? CustomButtonTouchBarItem { + item.button.isBordered = bordered + item.button.bezelStyle = bordered ? .rounded : .inline + } return barItem } diff --git a/MTMR/Widgets/TimeTouchBarItem.swift b/MTMR/Widgets/TimeTouchBarItem.swift index 7178dd6..21d98d3 100644 --- a/MTMR/Widgets/TimeTouchBarItem.swift +++ b/MTMR/Widgets/TimeTouchBarItem.swift @@ -10,6 +10,7 @@ class TimeTouchBarItem: CustomButtonTouchBarItem { super.init(identifier: identifier, title: " ", onTap: onTap, onLongTap: onLongTap) timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateTime), userInfo: nil, repeats: true) self.view = button + button.bezelColor = .clear updateTime() }