diff --git a/hidden/AppDelegate.swift b/hidden/AppDelegate.swift index 4f5f21b..b19f8b2 100644 --- a/hidden/AppDelegate.swift +++ b/hidden/AppDelegate.swift @@ -50,7 +50,8 @@ class AppDelegate: NSObject, NSApplicationDelegate{ UserDefaults.Key.isAutoHide: true, UserDefaults.Key.numberOfSecondForAutoHide: 10.0, UserDefaults.Key.areSeparatorsHidden: false, - UserDefaults.Key.alwaysHiddenSectionEnabled: false + UserDefaults.Key.alwaysHiddenSectionEnabled: false, + UserDefaults.Key.useTransparentExpandIconEnabled: false ]) } diff --git a/hidden/Assets.xcassets/ic_expand_hidden.imageset/Contents.json b/hidden/Assets.xcassets/ic_expand_hidden.imageset/Contents.json new file mode 100644 index 0000000..ec6f860 --- /dev/null +++ b/hidden/Assets.xcassets/ic_expand_hidden.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ic_expand_hidden.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/hidden/Assets.xcassets/ic_expand_hidden.imageset/ic_expand_hidden.png b/hidden/Assets.xcassets/ic_expand_hidden.imageset/ic_expand_hidden.png new file mode 100644 index 0000000..6c42e21 Binary files /dev/null and b/hidden/Assets.xcassets/ic_expand_hidden.imageset/ic_expand_hidden.png differ diff --git a/hidden/Base.lproj/Main.storyboard b/hidden/Base.lproj/Main.storyboard index 53b9127..145ef45 100644 --- a/hidden/Base.lproj/Main.storyboard +++ b/hidden/Base.lproj/Main.storyboard @@ -1,8 +1,8 @@ - + - + @@ -417,9 +417,9 @@ - + - + @@ -433,7 +433,7 @@ between sections to configure Hidden Bar. - + @@ -441,7 +441,7 @@ between sections to configure Hidden Bar. - + @@ -449,7 +449,7 @@ between sections to configure Hidden Bar. - + @@ -570,7 +570,7 @@ between sections to configure Hidden Bar. - + @@ -579,7 +579,7 @@ between sections to configure Hidden Bar. - + @@ -588,7 +588,7 @@ between sections to configure Hidden Bar. - + @@ -614,7 +614,7 @@ between sections to configure Hidden Bar. - + @@ -622,13 +622,13 @@ between sections to configure Hidden Bar. - + - + + @@ -762,6 +772,7 @@ between sections to configure Hidden Bar. + @@ -769,10 +780,11 @@ between sections to configure Hidden Bar. + - + @@ -864,6 +876,7 @@ between sections to configure Hidden Bar. + diff --git a/hidden/Common/Assets.swift b/hidden/Common/Assets.swift index a64706c..ff25c4d 100644 --- a/hidden/Common/Assets.swift +++ b/hidden/Common/Assets.swift @@ -9,18 +9,21 @@ import AppKit struct Assets { + private static var expandIcon: String { Preferences.useTransparentExpandIconEnabled ? "ic_expand_hidden" : "ic_expand" } + private static var collapseIcon: String { "ic_collapse" } + static var expandImage: NSImage? { if (Constant.isUsingLTRLanguage) { - return NSImage(named: NSImage.Name("ic_expand")) + return NSImage(named: NSImage.Name(expandIcon)) } else { - return NSImage(named: NSImage.Name("ic_collapse")) + return NSImage(named: NSImage.Name(collapseIcon)) } } static var collapseImage: NSImage? { if (Constant.isUsingLTRLanguage) { - return NSImage(named: NSImage.Name("ic_collapse")) + return NSImage(named: NSImage.Name(collapseIcon)) } else { - return NSImage(named: NSImage.Name("ic_expand")) + return NSImage(named: NSImage.Name(expandIcon)) } } } diff --git a/hidden/Common/Preferences.swift b/hidden/Common/Preferences.swift index d69adb1..b7e9416 100644 --- a/hidden/Common/Preferences.swift +++ b/hidden/Common/Preferences.swift @@ -105,5 +105,16 @@ enum Preferences { } } + static var useTransparentExpandIconEnabled: Bool { + get { + UserDefaults.standard.bool(forKey: UserDefaults.Key.useTransparentExpandIconEnabled) + } + + set { + UserDefaults.standard.set(newValue, forKey: UserDefaults.Key.useTransparentExpandIconEnabled) + NotificationCenter.default.post(Notification(name: .transparentExpandIconToggle)) + } + } + } diff --git a/hidden/Extensions/Notification.Name+Extension.swift b/hidden/Extensions/Notification.Name+Extension.swift index 90dbcd5..006481b 100644 --- a/hidden/Extensions/Notification.Name+Extension.swift +++ b/hidden/Extensions/Notification.Name+Extension.swift @@ -12,4 +12,5 @@ extension Notification.Name { static let prefsChanged = Notification.Name("prefsChanged") static let alwayHideToggle = Notification.Name("alwayHideToggle") + static let transparentExpandIconToggle = Notification.Name("transparentExpandToggle") } diff --git a/hidden/Extensions/UserDefault+Extension.swift b/hidden/Extensions/UserDefault+Extension.swift index a870fab..865cd26 100644 --- a/hidden/Extensions/UserDefault+Extension.swift +++ b/hidden/Extensions/UserDefault+Extension.swift @@ -18,6 +18,7 @@ extension UserDefaults { static let areSeparatorsHidden = "areSeparatorsHidden" static let alwaysHiddenSectionEnabled = "alwaysHiddenSectionEnabled" static let useFullStatusBarOnExpandEnabled = "useFullStatusBarOnExpandEnabled" + static let useTransparentExpandIconEnabled = "useTransparentExpandIconEnabled" } open override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { diff --git a/hidden/Features/Preferences/PreferencesViewController.swift b/hidden/Features/Preferences/PreferencesViewController.swift index 1703cd2..39a2749 100644 --- a/hidden/Features/Preferences/PreferencesViewController.swift +++ b/hidden/Features/Preferences/PreferencesViewController.swift @@ -29,6 +29,7 @@ class PreferencesViewController: NSViewController { @IBOutlet weak var checkBoxKeepInDock: NSButton! @IBOutlet weak var checkBoxLogin: NSButton! @IBOutlet weak var checkBoxShowPreferences: NSButton! + @IBOutlet weak var checkBoxTransparentExpandIcon: NSButton! @IBOutlet weak var checkBoxShowAlwaysHiddenSection: NSButton! @IBOutlet weak var checkBoxUseFullStatusbar: NSButton! @@ -83,6 +84,10 @@ class PreferencesViewController: NSViewController { Preferences.useFullStatusBarOnExpandEnabled = sender.state == .on } + @IBAction func useTransparentExpandIconChanged(_ sender: NSButton) { + Preferences.useTransparentExpandIconEnabled = sender.state == .on + } + @IBAction func timePopupDidSelected(_ sender: NSPopUpButton) { let selectedIndex = sender.indexOfSelectedItem @@ -155,6 +160,7 @@ class PreferencesViewController: NSViewController { checkBoxLogin.state = Preferences.isAutoStart ? .on : .off checkBoxAutoHide.state = Preferences.isAutoHide ? .on : .off checkBoxShowPreferences.state = Preferences.isShowPreference ? .on : .off + checkBoxTransparentExpandIcon.state = Preferences.useTransparentExpandIconEnabled ? .on : .off checkBoxShowAlwaysHiddenSection.state = Preferences.alwaysHiddenSectionEnabled ? .on : .off timePopup.selectItem(at: SelectedSecond.secondToPossition(seconds: Preferences.numberOfSecondForAutoHide)) } diff --git a/hidden/Features/StatusBar/StatusBarController.swift b/hidden/Features/StatusBar/StatusBarController.swift index 3d67840..8cf688c 100644 --- a/hidden/Features/StatusBar/StatusBarController.swift +++ b/hidden/Features/StatusBar/StatusBarController.swift @@ -66,6 +66,7 @@ class StatusBarController { setupUI() setupAlwayHideStatusBar() + setupTransparentExpandIcon() DispatchQueue.main.asyncAfter(deadline: .now() + 1, execute: { self.collapseMenuBar() }) @@ -254,4 +255,14 @@ extension StatusBarController { self.btnAlwaysHidden = nil } } + + private func setupTransparentExpandIcon() { + NotificationCenter.default.addObserver(self, selector: #selector(toggleTransparentExpandIconIfNeeded), name: .transparentExpandIconToggle, object: nil) + } + @objc private func toggleTransparentExpandIconIfNeeded() { + guard self.isCollapsed else { return } + if let button = btnExpandCollapse.button { + button.image = Assets.expandImage + } + } }