24 lines
1.1 KiB
Swift
24 lines
1.1 KiB
Swift
import Carbon.HIToolbox
|
|
|
|
/// A recorded global keyboard shortcut: a virtual key code plus Carbon-style modifier flags.
|
|
struct HotKeyCombo: Codable, Equatable {
|
|
var keyCode: UInt32
|
|
var carbonModifiers: UInt32
|
|
|
|
var displayString: String {
|
|
var symbol = ""
|
|
if carbonModifiers & UInt32(controlKey) != 0 { symbol += "\u{2303}" }
|
|
if carbonModifiers & UInt32(optionKey) != 0 { symbol += "\u{2325}" }
|
|
if carbonModifiers & UInt32(shiftKey) != 0 { symbol += "\u{21E7}" }
|
|
if carbonModifiers & UInt32(cmdKey) != 0 { symbol += "\u{2318}" }
|
|
symbol += KeyCodeSymbols.symbol(for: keyCode)
|
|
return symbol
|
|
}
|
|
|
|
static let defaultModifiers = UInt32(cmdKey) | UInt32(optionKey) | UInt32(shiftKey)
|
|
|
|
static let defaultFullScreen = HotKeyCombo(keyCode: UInt32(kVK_ANSI_3), carbonModifiers: defaultModifiers)
|
|
static let defaultWindow = HotKeyCombo(keyCode: UInt32(kVK_ANSI_4), carbonModifiers: defaultModifiers)
|
|
static let defaultRegion = HotKeyCombo(keyCode: UInt32(kVK_ANSI_5), carbonModifiers: defaultModifiers)
|
|
}
|