TUIX v0.6Beta
Input API
Modul tuix.core.input řídí nativní listener a vystavuje spotřebovávající, nespotřebovávající snapshoty a syntetickou injektáž kláves. Vestavěné widgety dostávají vstup automaticky přes core.main_loop().
| Metoda | Jak ji použít | Proč existuje |
|---|---|---|
| input.tuix_input_start() -> None | Spustí nativní listener vlákno na pozadí. | Zachytává raw události klávesnice a myši z terminálu do vláknově bezpečného kruhového bufferu. |
| input.tuix_input_stop() -> None | Zastaví nativní listener vlákno na pozadí. | Ukončí listener vstupu při ukončování aplikace. |
| input.tuix_input_get_snapshot() -> InputSnapshot | Spotřebuje a vrátí další input snapshot z fronty. | Posouvá frontu vstupu během frame smyčky. |
| input.tuix_input_peek_snapshot() -> InputSnapshot | Nahlédne na poslední input snapshot bez spotřebování událostí ve frontě. | Diagnostická a prediktivní kontrola vstupu. |
| input.tuix_input_inject_key(key: int, ctrl: int = 0, alt: int = 0, shift: int = 0, event_type: int = 1, payload_utf8: bytes = b'') -> None | Vloží syntetickou klávesovou událost do nativní fronty vstupu. | Programová automatizace, obsluha klávesových zkratek a unit testování. |
Tvar snapshotu
- InputSnapshot: term_x, term_y, keyboard, mouse, consumed_keyboard, consumed_mouse.
- KeyboardKey: btn, code, scancode, modifiers, pressed, repeat, has_event, payload_utf8 (128bajtový UTF-8 payload pro grafémové clustery a textový vstup).
- MouseKey: event, btn, buttons_held, col, row, has_event.
Pattern použití
input.listen()
try:
while running:
core.main_loop()
latest = input.peek_snapshot() # optional diagnostics
finally:
input.stop()