Zpět na projekty
TUIX v0.6Beta

Naposledy aktualizováno: 2026-08-14

Reference Python API

Tato reference dokumentuje stabilní veřejný wrapper povrch v tuix.core pro v0.6 napříč 13 modulárními balíčky, zrcadlícími hierarchii C hlaviček a původní konvenci pojmenování `tuix_system_action`.

Import pattern

from tuix.core import (
    core,
    scene,
    object as objects,
    buffer,
    content_builder,
    command_buffer,
    compositor,
    event,
    input,
    renderer,
    sub_cycles,
    tuix,
    viewport,
)

Společné konvence

  • Názvy scén, builderů, labely a titulky přijímají bytes nebo str (bytes jsou preferovány pro nativní C výkon).
  • Znakové argumenty přijímají jednobajtové bytes, UTF-8 řetězce nebo integer kódové body.
  • Metody pro manipulaci s widgety přijímají `obj_ptr`. Získejte jej jednou přes `objects.get_object_by_uid(uid)` a znovu používejte.
  • Nativní settery vrací TUIX_RC_OK (0) při úspěchu a záporný chybový kód TUIX_RC_* při chybě. Snapshot gettery vrací dict nebo None.
  • Všechny nativní funkce jsou sjednoceny na kanonické pojmenování `tuix_system_action` napříč C i Python wrappery.

Mapa pokrytí (13 modulárních balíčků)

Balíček moduluDokumentovaný povrch a klíčové funkceSekce dokumentace
tuix.core.coreŽivotní cyklus jádra (`tuix_core_init`, `tuix_core_shutdown`), hlavní smyčka (`tuix_core_loop_run`), mutex synchronizace, statistiky a zachycení myši.Public API -> Core & Probing
tuix.core.tuixProbing schopností terminálu (`tuix_terminal_probe`), politiky (`tuix_terminal_select_policy`), klasifikace kódových bodů Unicode a sound bridge.Public API -> Core & Probing
tuix.core.sceneAlokace scén (`tuix_scene_init`), výběr (`tuix_scene_select`), směrování fokusu, modální překryvy, transakce a kompaktace pixelů.Public API -> Scenes API
tuix.core.bufferHierarchie stromu bufferů (`tuix_buffer_set_parent`), z-index, layout sloty, grid placement, dirty značení a metriky obrazovky.Public API -> Buffers API
tuix.core.content_builderRegistr standardních builderů (`tuix_builder_register_standard`), kanonické konstanty builderů, layout/grid konstanty a odregistrování.Public API -> Builders
tuix.core.objectAlokace životního cyklu objektů (`create_object`, `create_object_ex`, `get_object_by_uid`, `tuix_object_free_ptr`) a inspekce snapshotů.Public API -> Objects API
tuix.core.inputVlákno listeneru vstupu (`tuix_input_start`, `tuix_input_stop`), čtení fronty snapshotů (`tuix_input_get_snapshot`) a injektování syntetických kláves.Public API -> Input API
tuix.core.viewportVirtuální rozměry obsahu (`tuix_object_get_viewport_content_size`), posuny scrollování (`tuix_object_get_viewport_offset`) a vnitřní okraje.Core Concepts -> Viewports & Virtual Space
tuix.core.command_bufferDávkové vykonávání binárních opkódů (`tuix_command_buffer_execute`) a atomické commity na hranici snímků (`tuix_batch_global_commit`).Advanced -> Internal & Advanced APIs
tuix.core.compositorNativní kompozitní průchod (`tuix_compositor_compose_scene`), generování hitmapy, cachování průchodů a řešení geometrie.Advanced -> Internal & Advanced APIs
tuix.core.rendererPřímé streamování ANSI výstupu (`tuix_renderer_stream`), handly nativních bufferů, vykreslování binárních patchů a statistiky.Advanced -> Internal & Advanced APIs
tuix.core.eventVláknově bezpečný flush fronty nativních událostí (`tuix_event_commit_python`) a dispečink do Pythonu.Advanced -> Internal & Advanced APIs
tuix.core.sub_cyclesDetailní registrace sub-cyclů (`tuix_sub_cycle_init`) a animační smyčky.Advanced -> Internal & Advanced APIs

Typická startovací sekvence

from tuix.core import core, scene, object as objects, content_builder, input, tuix

# 1. Prepare terminal and probe environment
tuix.tuix_terminal_prepare()
tuix.tuix_terminal_probe()
tuix.tuix_terminal_select_policy()

# 2. Initialize native core engine and builders
core.tuix_core_init()
content_builder.tuix_builder_register_standard()

# 3. Create scene and start input listener
scene.tuix_scene_init(b'Main')
scene.tuix_scene_select(b'Main')
input.tuix_input_start()

# 4. Create UI widgets
uid = objects.create_object(content_builder.TEXT, b'Main', 0.5, 0.1, 0.1, 0.1)
obj = objects.get_object_by_uid(uid)
objects.tuix_text_set_text(obj, 'Ready')

# 5. Main loop
while running:
    core.tuix_core_loop_run()

# 6. Teardown
input.tuix_input_stop()
core.tuix_core_shutdown()
tuix.tuix_terminal_restore()