From 664e86006c4994a65fb4b1c992e5e12aa9e69ab5 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Fri, 19 Aug 2022 09:02:18 +0800 Subject: [PATCH] Repo // Refactoring how tab icons are managed in PrefWindow / PrefUI. --- .../Modules/UIModules/PrefUI/ctlPrefUI.swift | 84 ++++++++++++------ .../Contents.json | 0 .../Experiences.png | Bin .../Experiences@2x.png | Bin Source/WindowControllers/ctlPrefWindow.swift | 38 ++------ 5 files changed, 60 insertions(+), 62 deletions(-) rename Source/Resources/Images/Images.xcassets/{PrefToolbar-Experiences.imageset => PrefToolbar-Experience.imageset}/Contents.json (100%) rename Source/Resources/Images/Images.xcassets/{PrefToolbar-Experiences.imageset => PrefToolbar-Experience.imageset}/Experiences.png (100%) rename Source/Resources/Images/Images.xcassets/{PrefToolbar-Experiences.imageset => PrefToolbar-Experience.imageset}/Experiences@2x.png (100%) diff --git a/Source/Modules/UIModules/PrefUI/ctlPrefUI.swift b/Source/Modules/UIModules/PrefUI/ctlPrefUI.swift index e78588e0..d9fbda91 100644 --- a/Source/Modules/UIModules/PrefUI/ctlPrefUI.swift +++ b/Source/Modules/UIModules/PrefUI/ctlPrefUI.swift @@ -9,68 +9,94 @@ import Cocoa import SwiftUI -@available(macOS 10.15, *) -class ctlPrefUI { - private(set) var tabImageGeneral: NSImage! = NSImage(named: "PrefToolbar-General") - private(set) var tabImageExperiences: NSImage! = NSImage(named: "PrefToolbar-Experiences") - private(set) var tabImageDictionary: NSImage! = NSImage(named: "PrefToolbar-Dictionary") - private(set) var tabImageKeyboard: NSImage! = NSImage(named: "PrefToolbar-Keyboard") - private(set) var tabImageDevZone: NSImage! = NSImage(named: "PrefToolbar-DevZone") - - init() { - if #available(macOS 11.0, *) { - tabImageGeneral = NSImage( +extension NSImage { + static var tabImageGeneral: NSImage! { + if #unavailable(macOS 11.0) { + return NSImage(named: "PrefToolbar-General") + } else { + return NSImage( systemSymbolName: "wrench.and.screwdriver.fill", accessibilityDescription: "General Preferences" ) - tabImageExperiences = NSImage( - systemSymbolName: "person.fill.questionmark", accessibilityDescription: "Experiences Preferences" - ) - tabImageDictionary = NSImage( - systemSymbolName: "character.book.closed.fill", accessibilityDescription: "Dictionary Preferences" - ) - tabImageKeyboard = NSImage( - systemSymbolName: "keyboard.macwindow", accessibilityDescription: "Keyboard Preferences" - ) - tabImageDevZone = NSImage( - systemSymbolName: "hand.raised.circle", accessibilityDescription: "DevZone Preferences" - ) } } + static var tabImageExperience: NSImage! { + if #unavailable(macOS 11.0) { + return NSImage(named: "PrefToolbar-Experience") + } else { + return NSImage( + systemSymbolName: "person.fill.questionmark", accessibilityDescription: "Experience Preferences" + ) + } + } + + static var tabImageDictionary: NSImage! { + if #unavailable(macOS 11.0) { + return NSImage(named: "PrefToolbar-Dictionary") + } else { + return NSImage( + systemSymbolName: "character.book.closed.fill", accessibilityDescription: "Dictionary Preferences" + ) + } + } + + static var tabImageKeyboard: NSImage! { + if #unavailable(macOS 11.0) { + return NSImage(named: "PrefToolbar-Keyboard") + } else { + return NSImage( + systemSymbolName: "keyboard.macwindow", accessibilityDescription: "Keyboard Preferences" + ) + } + } + + static var tabImageDevZone: NSImage! { + if #unavailable(macOS 11.0) { + return NSImage(named: "PrefToolbar-DevZone") + } else { + return NSImage( + systemSymbolName: "hand.raised.circle", accessibilityDescription: "DevZone Preferences" + ) + } + } +} + +@available(macOS 10.15, *) +class ctlPrefUI { lazy var controller = PreferencesWindowController( panes: [ Preferences.Pane( identifier: Preferences.PaneIdentifier(rawValue: "General"), title: NSLocalizedString("General", comment: ""), - toolbarIcon: tabImageGeneral + toolbarIcon: .tabImageGeneral ) { suiPrefPaneGeneral() }, Preferences.Pane( - identifier: Preferences.PaneIdentifier(rawValue: "Experiences"), + identifier: Preferences.PaneIdentifier(rawValue: "Experience"), title: NSLocalizedString("Experience", comment: ""), - toolbarIcon: tabImageExperiences + toolbarIcon: .tabImageExperience ) { suiPrefPaneExperience() }, Preferences.Pane( identifier: Preferences.PaneIdentifier(rawValue: "Dictionary"), title: NSLocalizedString("Dictionary", comment: ""), - toolbarIcon: tabImageDictionary + toolbarIcon: .tabImageDictionary ) { suiPrefPaneDictionary() }, Preferences.Pane( identifier: Preferences.PaneIdentifier(rawValue: "Keyboard"), title: NSLocalizedString("Keyboard", comment: ""), - toolbarIcon: tabImageKeyboard + toolbarIcon: .tabImageKeyboard ) { suiPrefPaneKeyboard() }, Preferences.Pane( identifier: Preferences.PaneIdentifier(rawValue: "DevZone"), title: NSLocalizedString("DevZone", comment: ""), - toolbarIcon: tabImageDevZone + toolbarIcon: .tabImageDevZone ) { suiPrefPaneDevZone() }, diff --git a/Source/Resources/Images/Images.xcassets/PrefToolbar-Experiences.imageset/Contents.json b/Source/Resources/Images/Images.xcassets/PrefToolbar-Experience.imageset/Contents.json similarity index 100% rename from Source/Resources/Images/Images.xcassets/PrefToolbar-Experiences.imageset/Contents.json rename to Source/Resources/Images/Images.xcassets/PrefToolbar-Experience.imageset/Contents.json diff --git a/Source/Resources/Images/Images.xcassets/PrefToolbar-Experiences.imageset/Experiences.png b/Source/Resources/Images/Images.xcassets/PrefToolbar-Experience.imageset/Experiences.png similarity index 100% rename from Source/Resources/Images/Images.xcassets/PrefToolbar-Experiences.imageset/Experiences.png rename to Source/Resources/Images/Images.xcassets/PrefToolbar-Experience.imageset/Experiences.png diff --git a/Source/Resources/Images/Images.xcassets/PrefToolbar-Experiences.imageset/Experiences@2x.png b/Source/Resources/Images/Images.xcassets/PrefToolbar-Experience.imageset/Experiences@2x.png similarity index 100% rename from Source/Resources/Images/Images.xcassets/PrefToolbar-Experiences.imageset/Experiences@2x.png rename to Source/Resources/Images/Images.xcassets/PrefToolbar-Experience.imageset/Experiences@2x.png diff --git a/Source/WindowControllers/ctlPrefWindow.swift b/Source/WindowControllers/ctlPrefWindow.swift index b3fc27f3..26decb55 100644 --- a/Source/WindowControllers/ctlPrefWindow.swift +++ b/Source/WindowControllers/ctlPrefWindow.swift @@ -389,59 +389,31 @@ extension ctlPrefWindow: NSToolbarDelegate { case .ofGeneral: let title = NSLocalizedString("General", comment: "") item.label = title - if #available(macOS 11.0, *) { - item.image = NSImage( - systemSymbolName: "wrench.and.screwdriver.fill", accessibilityDescription: "General Preferences" - ) - } else { - item.image = NSImage(named: "PrefToolbar-General") - } + item.image = .tabImageGeneral item.action = #selector(showGeneralView(_:)) case .ofExperience: let title = NSLocalizedString("Experience", comment: "") item.label = title - if #available(macOS 11.0, *) { - item.image = NSImage( - systemSymbolName: "person.fill.questionmark", accessibilityDescription: "Experiences Preferences" - ) - } else { - item.image = NSImage(named: "PrefToolbar-Experiences") - } + item.image = .tabImageExperience item.action = #selector(showExperienceView(_:)) case .ofDictionary: let title = NSLocalizedString("Dictionary", comment: "") item.label = title - if #available(macOS 11.0, *) { - item.image = NSImage( - systemSymbolName: "character.book.closed.fill", accessibilityDescription: "Dictionary Preferences" - ) - } else { - item.image = NSImage(named: "PrefToolbar-Dictionary") - } + item.image = .tabImageDictionary item.action = #selector(showDictionaryView(_:)) case .ofKeyboard: let title = NSLocalizedString("Keyboard", comment: "") item.label = title - if #available(macOS 11.0, *) { - item.image = NSImage(systemSymbolName: "keyboard.macwindow", accessibilityDescription: "Keyboard Preferences") - } else { - item.image = NSImage(named: "PrefToolbar-Keyboard") - } + item.image = .tabImageKeyboard item.action = #selector(showKeyboardView(_:)) case .ofDevZone: let title = NSLocalizedString("DevZone", comment: "") item.label = title - if #available(macOS 11.0, *) { - item.image = NSImage( - systemSymbolName: "hand.raised.circle", accessibilityDescription: "DevZone Preferences" - ) - } else { - item.image = NSImage(named: "PrefToolbar-DevZone") - } + item.image = .tabImageDevZone item.action = #selector(showDevZoneView(_:)) default: