13#include <Carbon/Carbon.h>
105 bool getGroups(AutoCFArray &)
const;
108 void setGroup(int32_t group);
111 void handleModifierKey(
void *target, uint32_t virtualKey,
KeyID id,
bool down,
KeyModifierMask newMask);
123 static KeyButton mapVirtualKeyToKeyButton(uint32_t keyCode);
127 static uint32_t mapKeyButtonToVirtualKey(
KeyButton keyButton);
134 kern_return_t postHIDVirtualKey(uint8_t virtualKeyCode,
bool postDown);
137 CGEventFlags getKeyboardEventFlags()
const;
138 CGEventFlags getDeviceDependedFlags()
const;
140 void setKeyboardModifiers(CGKeyCode virtualKey,
bool keyDown);
142 void postKeyboardKey(CGKeyCode virtualKey,
bool keyDown);
154 using GroupMap = std::map<CFDataRef, int32_t>;
155 using VirtualKeyMap = std::map<uint32_t, KeyID>;
157 VirtualKeyMap m_virtualKeyMap;
158 mutable uint32_t m_deadKeyState;
159 AutoCFArray m_groups{
nullptr, CFRelease};
162 bool m_controlPressed;
int key
Definition KeySequence.cpp:15
uint32_t KeyID
Key ID.
Definition KeyTypes.h:22
uint16_t KeyButton
Key Code.
Definition KeyTypes.h:35
uint32_t KeyModifierMask
Modifier key mask.
Definition KeyTypes.h:45
Event queue interface.
Definition IEventQueue.h:32
std::set< KeyButton > KeyButtonSet
Definition IKeyState.h:52
Definition IOSXKeyResource.h:12
KeyState(IEventQueue *events, std::vector< std::string > layouts, bool isLangSyncEnabled)
Definition KeyState.cpp:645
deskflow::KeyMap::Keystroke Keystroke
Definition KeyState.h:81
int32_t pollActiveGroup() const override
Get the active keyboard layout from OS.
Definition OSXKeyState.cpp:428
~OSXKeyState() override=default
OSXKeyState(IEventQueue *events, std::vector< std::string > layouts, bool isLangSyncEnabled)
Definition OSXKeyState.cpp:182
void getKeyMap(deskflow::KeyMap &keyMap) override
Get the keyboard map.
Definition OSXKeyState.cpp:457
KeyButton mapKeyFromEvent(KeyIDs &ids, KeyModifierMask *maskOut, CGEventRef event) const
Map key event to keys.
Definition OSXKeyState.cpp:263
std::vector< KeyID > KeyIDs
Definition OSXKeyState.h:28
KeyModifierMask pollActiveModifiers() const override
Get the active modifiers from OS.
Definition OSXKeyState.cpp:397
void fakeKey(const Keystroke &keystroke) override
Fake a key event.
Definition OSXKeyState.cpp:594
CGEventFlags getModifierStateAsOSXFlags() const
Definition OSXKeyState.cpp:370
bool mapDeskflowHotKeyToMac(KeyID key, KeyModifierMask mask, uint32_t &macVirtualKey, uint32_t &macModifierMask) const
Map key and mask to native values.
Definition OSXKeyState.cpp:778
KeyModifierMask mapModifiersFromOSX(uint32_t mask) const
Convert OS X modifier mask to deskflow mask.
Definition OSXKeyState.cpp:212
bool fakeMediaKey(KeyID id) override
Fake a media key.
Definition OSXKeyState.cpp:365
bool fakeCtrlAltDel() override
Fake ctrl+alt+del.
Definition OSXKeyState.cpp:359
KeyModifierMask mapModifiersToCarbon(uint32_t mask) const
Convert CG flags-style modifier mask to old-style Carbon.
Definition OSXKeyState.cpp:238
void pollPressedKeys(KeyButtonSet &pressedKeys) const override
Get the keys currently pressed from OS.
Definition OSXKeyState.cpp:443
void handleModifierKeys(void *target, KeyModifierMask oldMask, KeyModifierMask newMask)
Handle modifier key change.
Definition OSXKeyState.cpp:813
Key map.
Definition KeyMap.h:24