Zpět na projekty
TUIX v0.6Beta

Naposledy aktualizováno: 2026-08-14

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().

MetodaJak ji použítProč existuje
input.tuix_input_start() -> NoneSpustí 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() -> NoneZastaví nativní listener vlákno na pozadí.Ukončí listener vstupu při ukončování aplikace.
input.tuix_input_get_snapshot() -> InputSnapshotSpotřebuje a vrátí další input snapshot z fronty.Posouvá frontu vstupu během frame smyčky.
input.tuix_input_peek_snapshot() -> InputSnapshotNahlé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'') -> NoneVloží 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()