From 03c6d0e40ac02fa89a1c2b746a1c00d28c08dfb2 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Tue, 24 Jan 2023 13:01:19 +0800 Subject: [PATCH] NSEvent // Add some bools for identifying JIS keycodes. --- .../Sources/CocoaExtension/CocoaExtension_NSEvent.swift | 6 ++++++ .../Sources/Shared/Protocols/InputSignalProtocol.swift | 2 ++ 2 files changed, 8 insertions(+) diff --git a/Packages/vChewing_CocoaExtension/Sources/CocoaExtension/CocoaExtension_NSEvent.swift b/Packages/vChewing_CocoaExtension/Sources/CocoaExtension/CocoaExtension_NSEvent.swift index 504589bf..b9279546 100644 --- a/Packages/vChewing_CocoaExtension/Sources/CocoaExtension/CocoaExtension_NSEvent.swift +++ b/Packages/vChewing_CocoaExtension/Sources/CocoaExtension/CocoaExtension_NSEvent.swift @@ -122,6 +122,8 @@ extension NSEvent { } /// 單獨用 flags 來判定數字小鍵盤輸入的方法已經失效了,所以必須再增補用 KeyCode 判定的方法。 + public var isJISAlphanumericalKey: Bool { KeyCode(rawValue: keyCode) == KeyCode.kJISAlphanumericalKey } + public var isJISKanaSwappingKey: Bool { KeyCode(rawValue: keyCode) == KeyCode.kJISKanaSwappingKey } public var isNumericPadKey: Bool { arrNumpadKeyCodes.contains(keyCode) } public var isMainAreaNumKey: Bool { arrMainAreaNumKey.contains(keyCode) } public var isShiftHold: Bool { modifierFlags.contains([.shift]) } @@ -216,14 +218,18 @@ public enum KeyCode: UInt16 { case kF18 = 79 case kF19 = 80 case kF20 = 90 + case kYen = 93 case kSymbolMenuPhysicalKeyJIS = 94 // vChewing Specific (JIS) + case kJISNumPadComma = 95 case kF5 = 96 case kF6 = 97 case kF7 = 98 case kF3 = 99 case kF8 = 100 case kF9 = 101 + case kJISAlphanumericalKey = 102 case kF11 = 103 + case kJISKanaSwappingKey = 104 case kF13 = 105 // PrtSc case kF16 = 106 case kF14 = 107 diff --git a/Packages/vChewing_Shared/Sources/Shared/Protocols/InputSignalProtocol.swift b/Packages/vChewing_Shared/Sources/Shared/Protocols/InputSignalProtocol.swift index 1eada955..c382d641 100644 --- a/Packages/vChewing_Shared/Sources/Shared/Protocols/InputSignalProtocol.swift +++ b/Packages/vChewing_Shared/Sources/Shared/Protocols/InputSignalProtocol.swift @@ -26,6 +26,8 @@ public protocol InputSignalProtocol { var isInvalid: Bool { get } var isKeyCodeBlacklisted: Bool { get } var isReservedKey: Bool { get } + var isJISAlphanumericalKey: Bool { get } + var isJISKanaSwappingKey: Bool { get } var isNumericPadKey: Bool { get } var isMainAreaNumKey: Bool { get } var isShiftHold: Bool { get }