1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-04-17 01:22:19 +03:00

hotkey: Make more of the windows methods abstract ones in parent

Without this mypy objects to calling them due to not being in the visible
AbstractKetkeyMgr type.
This commit is contained in:
Athanasius 2022-12-22 14:43:51 +00:00
parent 9e605d31c7
commit 3b0c7370cc
No known key found for this signature in database
GPG Key ID: 772697E181BB2767

@ -4,6 +4,7 @@
import abc
import sys
from abc import abstractmethod
from typing import Optional, Tuple, Union
class AbstractHotkeyMgr(abc.ABC):
@ -19,6 +20,41 @@ class AbstractHotkeyMgr(abc.ABC):
"""Unregister the hotkey handling."""
pass
@abstractmethod
def acquire_start(self) -> None:
"""Start acquiring hotkey state via polling."""
pass
@abstractmethod
def acquire_stop(self) -> None:
"""Stop acquiring hotkey state."""
pass
@abstractmethod
def fromevent(self, event) -> Optional[Union[bool, Tuple]]:
"""
Return configuration (keycode, modifiers) or None=clear or False=retain previous.
event.state is a pain - it shows the state of the modifiers *before* a modifier key was pressed.
event.state *does* differentiate between left and right Ctrl and Alt and between Return and Enter
by putting KF_EXTENDED in bit 18, but RegisterHotKey doesn't differentiate.
:param event: tk event ?
:return: False to retain previous, None to not use, else (keycode, modifiers)
"""
pass
@abstractmethod
def display(self, keycode: int, modifiers: int) -> str:
"""
Return displayable form of given hotkey + modifiers.
:param keycode:
:param modifiers:
:return: string form
"""
pass
@abstractmethod
def play_good(self) -> None:
"""Play the 'good' sound."""