13#include <Carbon/Carbon.h>
107 void setGroup(int32_t group);
110 void handleModifierKey(
void *target, uint32_t virtualKey,
KeyID id,
bool down,
KeyModifierMask newMask);
122 static KeyButton mapVirtualKeyToKeyButton(uint32_t keyCode);
126 static uint32_t mapKeyButtonToVirtualKey(
KeyButton keyButton);
133 kern_return_t postHIDVirtualKey(uint8_t virtualKeyCode,
bool postDown);
136 CGEventFlags getKeyboardEventFlags()
const;
137 CGEventFlags getDeviceDependedFlags()
const;
139 void setKeyboardModifiers(CGKeyCode virtualKey,
bool keyDown);
141 void postKeyboardKey(CGKeyCode virtualKey,
bool keyDown);
153 using GroupMap = std::map<CFDataRef, int32_t>;
154 using VirtualKeyMap = std::map<uint32_t, KeyID>;
156 VirtualKeyMap m_virtualKeyMap;
157 mutable uint32_t m_deadKeyState;
161 bool m_controlPressed;
167 bool m_shiftRightPressed;
168 bool m_controlRightPressed;
169 bool m_altRightPressed;
170 bool m_superRightPressed;
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
std::unique_ptr< const __CFArray, CFDeallocator > AutoCFArray
Definition OSXAutoTypes.h:13
Event queue interface.
Definition IEventQueue.h:29
std::set< KeyButton > KeyButtonSet
Definition IKeyState.h:51
Definition IOSXKeyResource.h:15
KeyState(IEventQueue *events, std::vector< std::string > layouts, bool isLangSyncEnabled)
Definition KeyState.cpp:643
deskflow::KeyMap::Keystroke Keystroke
Definition KeyState.h:81
int32_t pollActiveGroup() const override
Get the active keyboard layout from OS.
Definition OSXKeyState.cpp:473
~OSXKeyState() override=default
OSXKeyState(IEventQueue *events, std::vector< std::string > layouts, bool isLangSyncEnabled)
Definition OSXKeyState.cpp:218
void getKeyMap(deskflow::KeyMap &keyMap) override
Get the keyboard map.
Definition OSXKeyState.cpp:508
KeyButton mapKeyFromEvent(KeyIDs &ids, KeyModifierMask *maskOut, CGEventRef event) const
Map key event to keys.
Definition OSXKeyState.cpp:303
std::vector< KeyID > KeyIDs
Definition OSXKeyState.h:27
KeyModifierMask pollActiveModifiers() const override
Get the active modifiers from OS.
Definition OSXKeyState.cpp:442
void fakeKey(const Keystroke &keystroke) override
Fake a key event.
Definition OSXKeyState.cpp:678
CGEventFlags getModifierStateAsOSXFlags() const
Definition OSXKeyState.cpp:415
bool mapDeskflowHotKeyToMac(KeyID key, KeyModifierMask mask, uint32_t &macVirtualKey, uint32_t &macModifierMask) const
Map key and mask to native values.
Definition OSXKeyState.cpp:862
KeyModifierMask mapModifiersFromOSX(uint32_t mask) const
Convert OS X modifier mask to deskflow mask.
Definition OSXKeyState.cpp:252
bool fakeMediaKey(KeyID id) override
Fake a media key.
Definition OSXKeyState.cpp:410
bool fakeCtrlAltDel() override
Fake ctrl+alt+del.
Definition OSXKeyState.cpp:404
KeyModifierMask mapModifiersToCarbon(uint32_t mask) const
Convert CG flags-style modifier mask to old-style Carbon.
Definition OSXKeyState.cpp:278
void pollPressedKeys(KeyButtonSet &pressedKeys) const override
Get the keys currently pressed from OS.
Definition OSXKeyState.cpp:494
void handleModifierKeys(void *target, KeyModifierMask oldMask, KeyModifierMask newMask)
Handle modifier key change.
Definition OSXKeyState.cpp:897
Key map.
Definition KeyMap.h:24