TUIX v0.5Beta
Input API
Modul input řídí nativní listener a vystavuje spotřebovávající i nespotřebovávající snapshoty. Vestavěné widgety obvykle dostávají vstup přes engine.main_loop(), ne přes ruční feed volání.
| Metoda | Jak ji použít | Proč existuje |
|---|---|---|
| input.listen() -> None | Spusťte před interaktivními smyčkami vyžadujícími klávesnici nebo myš. | Spustí nativní listener, který dodává input snapshoty frame loopu. |
| input.stop() -> None | Zastavte při úklidu před engine.shutdown(). | Zastaví listener vlákno a uvolní terminálový input režim. |
| input.get_snapshot() -> InputSnapshot | Použijte jen tehdy, když záměrně chcete ručně spotřebovat další snapshot. | Poskytuje nízkoúrovňové explicitní čtení vstupu pro vlastní control flow. |
| input.peek_snapshot() -> InputSnapshot | Použijte pro diagnostiku nebo nespotřebovávající inspekci posledního vstupu. | Umožňuje nástrojům číst vstup bez kradení událostí builder routování. |
Tvar snapshotu
- InputSnapshot: term_x, term_y, keyboard, mouse, consumed_keyboard, consumed_mouse.
- KeyboardKey: btn, code, scancode, modifiers, pressed, repeat, has_event.
- MouseKey: event, btn, buttons_held, col, row, has_event.
Pattern použití
input.listen()
try:
while running:
engine.main_loop()
latest = input.peek_snapshot() # optional diagnostics
finally:
input.stop()