Improve resizing with draggable and hotkeys
This commit is contained in:
@@ -3,7 +3,7 @@ import Carbon.HIToolbox
|
||||
|
||||
/// Serializable representation of a keyboard shortcut (modifier flags + key code).
|
||||
/// Stored in UserDefaults as a JSON string.
|
||||
struct HotkeyBinding: Codable, Equatable {
|
||||
struct HotkeyBinding: Codable, Equatable, Hashable {
|
||||
var modifiers: UInt // NSEvent.ModifierFlags.rawValue, masked to cmd/shift/ctrl/opt
|
||||
var keyCode: UInt16
|
||||
|
||||
@@ -89,4 +89,25 @@ struct HotkeyBinding: Codable, Equatable {
|
||||
static let cmdShiftRB = HotkeyBinding(modifiers: NSEvent.ModifierFlags([.command, .shift]).rawValue, keyCode: 30) // ]
|
||||
static let cmdShiftLB = HotkeyBinding(modifiers: NSEvent.ModifierFlags([.command, .shift]).rawValue, keyCode: 33) // [
|
||||
static let cmdD = HotkeyBinding(modifiers: NSEvent.ModifierFlags.command.rawValue, keyCode: 2)
|
||||
|
||||
static func cmdShiftDigit(_ digit: Int) -> HotkeyBinding? {
|
||||
guard let keyCode = keyCode(forDigit: digit) else { return nil }
|
||||
return HotkeyBinding(modifiers: NSEvent.ModifierFlags([.command, .shift]).rawValue, keyCode: keyCode)
|
||||
}
|
||||
|
||||
static func keyCode(forDigit digit: Int) -> UInt16? {
|
||||
switch digit {
|
||||
case 0: return 29
|
||||
case 1: return 18
|
||||
case 2: return 19
|
||||
case 3: return 20
|
||||
case 4: return 21
|
||||
case 5: return 23
|
||||
case 6: return 22
|
||||
case 7: return 26
|
||||
case 8: return 28
|
||||
case 9: return 25
|
||||
default: return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user