77 return m_keys[keyButton];
153 class ButtonToKeyLess
157 const deskflow::KeyMap::ButtonToKeyMap::value_type &a,
const deskflow::KeyMap::ButtonToKeyMap::value_type b
160 return (a.first < b.first);
173 void addAliasEntries();
176 void addKeypadEntries();
180 void addCombinationEntries();
183 void fakeKeys(
const Keystrokes &, uint32_t count);
186 void updateModifierKeyState(
KeyButton button,
const ModifierToKeys &oldModifiers,
const ModifierToKeys &newModifiers);
189 static void addActiveModifierCB(
KeyID id, int32_t group, deskflow::KeyMap::KeyItem &keyItem,
void *vcontext);
193 deskflow::KeyMap *m_keyMapPtr;
196 deskflow::KeyMap &m_keyMap;
202 ModifierToKeys m_activeModifiers;
222 IEventQueue *m_events;
224 bool m_isLangSyncEnabled;
int key
Definition KeySequence.cpp:15
uint32_t KeyID
Key ID.
Definition KeyTypes.h:21
uint16_t KeyButton
Key Code.
Definition KeyTypes.h:34
uint32_t KeyModifierMask
Modifier key mask.
Definition KeyTypes.h:44
Event queue interface.
Definition IEventQueue.h:29
std::set< KeyButton > KeyButtonSet
Definition IKeyState.h:52
IKeyState(const IEventQueue *events)
Definition IKeyState.cpp:17
static const auto s_numButtons
Definition IKeyState.h:27
KeyModifierMask getActiveModifiers() const override
Get the active modifiers.
Definition KeyState.cpp:968
void fakeAllKeysUp() override
Fake key releases for all fake pressed keys.
Definition KeyState.cpp:942
void setHalfDuplexMask(KeyModifierMask) override
Set half-duplex mask.
Definition KeyState.cpp:781
virtual void onKey(KeyButton button, bool down, KeyModifierMask newState)
Handle key event.
Definition KeyState.cpp:683
KeyModifierMask pollActiveModifiers() const override=0
Get the active modifiers from OS.
KeyState(IEventQueue *events, std::vector< std::string > layouts, bool isLangSyncEnabled)
Definition KeyState.cpp:643
virtual void getKeyMap(deskflow::KeyMap &keyMap)=0
Get the keyboard map.
virtual void sendKeyEvent(void *target, bool press, bool isAutoRepeat, KeyID key, KeyModifierMask mask, int32_t count, KeyButton button)
Post a key event.
Definition KeyState.cpp:705
bool fakeKeyUp(KeyButton button) override
Fake a key release.
Definition KeyState.cpp:899
int32_t getKeyState(KeyButton keyButton) const
Definition KeyState.h:75
KeyButton getButton(KeyID id, int32_t group) const
Get button for a KeyID.
Definition KeyState.cpp:996
virtual KeyModifierMask & getActiveModifiersRValue()
Get the active modifiers.
Definition KeyState.cpp:973
deskflow::KeyMap::Keystroke Keystroke
Definition KeyState.h:81
virtual bool isIgnoredKey(KeyID key, KeyModifierMask mask) const
Check if key is ignored.
Definition KeyState.cpp:983
virtual void fakeKey(const Keystroke &keystroke)=0
Fake a key event.
void pollPressedKeys(KeyButtonSet &pressedKeys) const override=0
Get the keys currently pressed from OS.
int32_t getEffectiveGroup(int32_t group, int32_t offset) const
Compute a group number.
Definition KeyState.cpp:978
int32_t pollActiveGroup() const override=0
Get the active keyboard layout from OS.
void updateKeyMap() override
Update the keyboard map.
Definition KeyState.h:55
void updateKeyState() override
Update the key state.
Definition KeyState.cpp:746
bool fakeKeyRepeat(KeyID id, KeyModifierMask mask, int32_t count, KeyButton button, const std::string &lang) override
Fake a key repeat.
Definition KeyState.cpp:842
bool fakeMediaKey(KeyID id) override
Fake a media key.
Definition KeyState.cpp:958
void fakeKeyDown(KeyID id, KeyModifierMask mask, KeyButton button, const std::string &lang) override
Fake a key press.
Definition KeyState.cpp:795
bool fakeCtrlAltDel() override=0
Fake ctrl+alt+del.
bool isKeyDown(KeyButton) const override
Test if key is pressed.
Definition KeyState.cpp:963
~KeyState() override
Definition KeyState.cpp:669
A keystroke.
Definition KeyMap.h:72
Key map.
Definition KeyMap.h:24
std::multimap< KeyModifierMask, KeyItem > ModifierToKeys
A mapping of a modifier to keys for that modifier.
Definition KeyMap.h:114
std::vector< Keystroke > Keystrokes
A sequence of keystrokes.
Definition KeyMap.h:111
int32_t m_activeGroup
Definition KeyState.h:142
ModifierToKeys & m_activeModifiers
Definition KeyState.h:144
KeyModifierMask m_mask
Definition KeyState.h:143
AddActiveModifierContext(int32_t group, KeyModifierMask mask, ModifierToKeys &activeModifiers)
Definition KeyState.cpp:1135