TUIX v0.5Beta
API scén
Modul scenes vlastní lifecycle scén, výběr, focus, modální stav, transakce, statistiky a kompaktaci.
| Metoda | Jak ji použít | Proč existuje |
|---|---|---|
| scenes.init_scene(name: bytes | str) -> int | Vytvořte každou pojmenovanou obrazovku před přidáním objektů. | Alokuje kontejner scény pro buffery, focus, modální stav a statistiky. |
| scenes.free_scene(name: bytes | str) -> None | Volejte, když scéna už není potřeba. | Odstraní scénu a uvolní její nativní prostředky. |
| scenes.clear_scene(name: bytes | str) -> None | Použijte pro odstranění všech bufferů při zachování názvu scény. | Resetuje obsah scény bez zničení objektu scény. |
| scenes.get_scene(name: bytes | str) -> int | Používejte jen pro pokročilou diagnostiku vyžadující hodnotu nativního pointeru. | Poskytuje únikovou cestu pro nízkoúrovňové integrace. |
| scenes.get_scenes() -> list | Čtěte při tvorbě přepínačů scén nebo debugování lifecycle. | Hlásí registrované názvy scén. |
| scenes.select_scene(name: bytes | str) -> int | Přepne aktivní renderování a cíl vstupu na scénu. | Dělá přepínání scén explicitní a omezuje přímou mutaci registry. |
| scenes.set_focus(scene_name: bytes | str, uid: int) -> int | Nastavte klávesnicový focus, než očekáváte obsluhu kláves widgetem. | Odděluje routování klávesnice od vizuálního hitmap pickingu. |
| scenes.set_previous_focus(scene_name: bytes | str) -> int | Obnovte focus po dočasných ovládacích prvcích nebo modálech. | Drží historii fokusu ve scéně místo duplikace v aplikaci. |
| scenes.activate_modal(scene_name: bytes | str, uid: int) -> int | Aktivujte UID dialogu nebo modálního kontejneru. | Omezí routování vstupu a fokusu na aktivní modální flow. |
| scenes.deactivate_modal(scene_name: bytes | str, uid: int) -> int | Volejte, když se modal zavře nebo má uvolnit focus. | Obnoví běžné routování scény po modální interakci. |
| scenes.get_active_modal(scene_name: bytes | str) -> int | Zkontrolujte, zda scéna právě má aktivní modální UID. | Podporuje diagnostiku modalu a koordinaci na úrovni aplikace. |
| scenes.begin_transaction(scene_name: bytes | str) -> int | Spusťte před dávkou souvisejících aktualizací widgetů. | Seskupuje změny stavu, aby je scéna mohla potvrdit koherentně. |
| scenes.commit_transaction(scene_name: bytes | str) -> int | Volejte po dokončení dávky aktualizací. | Ukončí fázi seskupených aktualizací před dalšími snímky. |
| scenes.get_scene_stats(scene_name: bytes | str) -> dict | None | Čtěte periodicky pro diagnostiku, paměťová rozhodnutí nebo dashboardy. | Bezpečně vystavuje počet bufferů, focus, aktivitu a odhady paměti. |
| scenes.compact_scene_pixels(scene_name: bytes | str) -> int | Volejte, když má scéna uvolnit kompaktovatelné pixelové úložiště. | Umožňuje aplikacím získat paměť zpět bez zničení scény. |
| scenes.compact_cold_scenes(cold_frames: int, min_pixel_bytes: int, keep_active_scene: bool = True) -> int | Spouštějte jako údržbu pro neaktivní scény nad paměťovým prahem. | Implementuje data-first úklid paměti podle stáří a pixelových bajtů. |
Klíče statistik
get_scene_stats() při podpoře vrací dict. Očekávané klíče zahrnují buffer_count, active, current_focus, last_active_frame, last_compacted_frame, pixel_bytes a approx_heap_bytes.
Příklad modalu
dialog_uid = objects.create_object(builders.DIALOG, 'Main', 0.7, 0.5, 0.2, 0.15)
dialog = objects.get_object_by_uid(dialog_uid)
objects.tuix_dialog_activate(dialog, 'Main')
while running:
engine.main_loop()
if objects.tuix_dialog_take_close_requested(dialog):
objects.tuix_dialog_deactivate(dialog, 'Main')
break