Files
ggbond268--mactools/Plugins/DisplayBrightness/Sources/DisplayBrightnessShortcutPreferences.swift
wehub-resource-sync 1d1286fadb
Build / Build and test (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:18:38 +08:00

54 lines
1.7 KiB
Swift

import Combine
import Foundation
import MacToolsPluginKit
@MainActor
final class DisplayBrightnessShortcutPreferences: ObservableObject {
enum TargetMode: String, CaseIterable, Identifiable {
case followsMouse
case allDisplays
var id: String { rawValue }
func title(localization: PluginLocalization) -> String {
switch self {
case .followsMouse:
localization.string("settings.shortcutTarget.followsMouse", defaultValue: "跟随鼠标")
case .allDisplays:
localization.string("settings.shortcutTarget.allDisplays", defaultValue: "所有显示器")
}
}
func description(localization: PluginLocalization) -> String {
switch self {
case .followsMouse:
localization.string(
"settings.shortcutTarget.followsMouseDescription",
defaultValue: "只调整光标所在屏幕。"
)
case .allDisplays:
localization.string(
"settings.shortcutTarget.allDisplaysDescription",
defaultValue: "同步调整所有可控显示器。"
)
}
}
}
@Published var targetMode: TargetMode {
didSet { storage.set(targetMode.rawValue, forKey: Keys.targetMode) }
}
private let storage: PluginStorage
private enum Keys {
static let targetMode = "shortcutTargetMode"
}
init(storage: PluginStorage) {
self.storage = storage
self.targetMode = TargetMode(rawValue: storage.string(forKey: Keys.targetMode) ?? "")
?? .followsMouse
}
}