from pykeymapper.events import VALUE
from pykeymapper.utils import push_key, write_event, make_key_event
[docs]class Modifier:
"""
Base class for modifiers.
"""
code = None
release_code = None
def __init__(self):
self.is_key_down = False
self.should_tap = True
self.unreleased_keys = set([])
[docs] def release_keys(self):
"""
Send key up event for all unreleased keys.
"""
for code in self.unreleased_keys:
write_event(make_key_event(code, VALUE.KEY_UP))
self.unreleased_keys.clear()
[docs] def is_modifier_key(self, input_event):
"""
Is a given input event the key that this modifier is controlled by.
Args:
input_event(InputEvent): the input event in question.
Returns:
bool:
"""
return input_event.code == self.code
[docs] def get_release_code(self):
"""
Get the key code to send when key in released.
Returns:
int:
"""
return self.release_code or self.code