35 Qt::KeyboardModifiers queryKeyboardModifiers()
const override;
36 QList<QKeyCombination> possibleKeyCombinations(
const QKeyEvent *event)
const override;
39 static Qt::KeyboardModifiers fromCocoaModifiers(NSEventModifierFlags cocoaModifiers);
40 static NSEventModifierFlags toCocoaModifiers(Qt::KeyboardModifiers);
42 static QChar toCocoaKey(Qt::Key key);
43 static Qt::Key fromCocoaKey(QChar keyCode);
45 static Qt::Key fromNSString(Qt::KeyboardModifiers qtMods, NSString *characters,
46 NSString *charactersIgnoringModifiers, QString &text);
48 static Qt::Key fromUIKitKey(NSString *keyCode);
49 static Qt::KeyboardModifiers fromUIKitModifiers(ulong uikitModifiers);
50 static ulong toUIKitModifiers(Qt::KeyboardModifiers);
54 static constexpr int kNumModifierCombinations = 16;
55 struct KeyMap : std::array<
char32_t, kNumModifierCombinations>
61 KeyMap() : std::array<
char32_t, 16>{Qt::Key_unknown} {}
64 bool updateKeyboard();
66 using VirtualKeyCode =
unsigned short;
67 const KeyMap &keyMapForKey(VirtualKeyCode virtualKey)
const;
69 QCFType<TISInputSourceRef> m_currentInputSource =
nullptr;
71 enum { NullMode, UnicodeMode, OtherMode } m_keyboardMode = NullMode;
72 const UCKeyboardLayout *m_keyboardLayoutFormat =
nullptr;
73 KeyboardLayoutKind m_keyboardKind = kKLKCHRuchrKind;
75 mutable QHash<VirtualKeyCode, KeyMap> m_keyMap;