Repo // Refactoring how tab icons are managed in PrefWindow / PrefUI.

This commit is contained in:
ShikiSuen 2022-08-19 09:02:18 +08:00
parent 31e715ba52
commit 664e86006c
5 changed files with 60 additions and 62 deletions

View File

@ -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()
},

View File

@ -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: