36 Qt::KeyboardModifiers queryKeyboardModifiers()
const override;
37 QList<QKeyCombination> possibleKeyCombinations(
const QKeyEvent *event)
const override;
40 static Qt::KeyboardModifiers fromCocoaModifiers(NSEventModifierFlags cocoaModifiers);
41 static NSEventModifierFlags toCocoaModifiers(Qt::KeyboardModifiers);
43 static QChar toCocoaKey(Qt::Key key);
44 static Qt::Key fromCocoaKey(QChar keyCode);
46 static Qt::Key fromNSString(Qt::KeyboardModifiers qtMods, NSString *characters,
47 NSString *charactersIgnoringModifiers, QString &text);
49 static Qt::Key fromUIKitKey(NSString *keyCode);
50 static Qt::Key fromUIKitKey(UIKeyboardHIDUsage usage);
51 static Qt::KeyboardModifiers fromUIKitModifiers(ulong uikitModifiers);
52 static ulong toUIKitModifiers(Qt::KeyboardModifiers);
56 static constexpr int kNumModifierCombinations = 16;
57 struct KeyMap : std::array<
char32_t, kNumModifierCombinations>
63 KeyMap() : std::array<
char32_t, 16>{Qt::Key_unknown} {}
66 bool updateKeyboard();
68 using VirtualKeyCode =
unsigned short;
69 const KeyMap &keyMapForKey(VirtualKeyCode virtualKey)
const;
71 QCFType<TISInputSourceRef> m_currentInputSource =
nullptr;
73 enum { NullMode, UnicodeMode, OtherMode } m_keyboardMode = NullMode;
74 const UCKeyboardLayout *m_keyboardLayoutFormat =
nullptr;
75 KeyboardLayoutKind m_keyboardKind = kKLKCHRuchrKind;
77 mutable QHash<VirtualKeyCode, KeyMap> m_keyMap;