Source code for zelfred.events

# -*- coding: utf-8 -*-

"""
Keyboard events.
"""

import typing as T
import readchar


class Event:
    pass


class KeyPressedEvent(Event):
    def __init__(self, value):
        self.value = value


class RepaintEvent(Event):
    pass


[docs]class KeyEventGenerator: """ Capture keyboard event. """ def __init__( self, key_generator: T.Optional[T.Callable[[], str]] = None, ): self._key_generator = key_generator or readchar.readkey
[docs] def next(self) -> KeyPressedEvent: """ Return the next key pressed event. """ return KeyPressedEvent(value=self._key_generator())