Zpět na projekty
TUIX v0.5Beta

Naposledy aktualizováno: 2026-05-20

Zpracování vstupu

TUIX zachytává události klávesnice a myši v nativním listener vlákně a vystavuje je jako snapshoty. Frame loop směruje snapshoty na fokusovaný, zachycený, modální nebo hitmapou vybraný widget.

Spuštění a zastavení

from tuix.core import input

input.listen()
# run engine.main_loop()
input.stop()

Snapshoty

FunkceChování
input.get_snapshot()Vrátí a spotřebuje další snapshot.
input.peek_snapshot()Vrátí poslední snapshot bez spotřebování čekajících událostí, pokud je to podporováno.

Tvar snapshotu

  • InputSnapshot vystavuje term_x, term_y, keyboard, mouse, consumed_keyboard a consumed_mouse.
  • Klávesnicové události vystavují pole jako btn, code, scancode, modifiers, pressed, repeat a has_event.
  • Události myši vystavují event, btn, buttons_held, col, row a has_event.

Pořadí routování

Routování ve v0.5 bere v úvahu modální stav, zachycení myši, vlastnictví viewportu, hitmap picking, focus a obecnou obsluhu myši. To je důležité pro drag-heavy widgety a scrollovatelné kontejnery, kde se viditelný cíl obsahu může lišit od původní pozice bufferu.

Zachycení myši

from tuix.core import engine

engine.mouse_capture_begin(uid)
active_uid = engine.get_mouse_capture_uid()
engine.mouse_capture_end(uid)