TUIX v0.6Beta
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 modulu | Dokumentovaný povrch a klíčové funkce | Sekce 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.tuix | Probing 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.scene | Alokace 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.buffer | Hierarchie 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_builder | Registr standardních builderů (`tuix_builder_register_standard`), kanonické konstanty builderů, layout/grid konstanty a odregistrování. | Public API -> Builders |
| tuix.core.object | Alokace ž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.input | Vlá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.viewport | Virtuá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_buffer | Dá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.compositor | Nativní kompozitní průchod (`tuix_compositor_compose_scene`), generování hitmapy, cachování průchodů a řešení geometrie. | Advanced -> Internal & Advanced APIs |
| tuix.core.renderer | Pří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.event | Vlá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_cycles | Detailní 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()