Zpět na projekty
TUIX v0.2.1Beta

Naposledy aktualizováno: 2026-05-20

API scén

Modul scenes (tuix.core.scenes) spravuje životní cyklus scén, dotazy nad scénami a směrování fokusu mezi interaktivními widgety.

scenes.init_scene(name)

from tuix.core import scenes

result = scenes.init_scene(b"main")
ParametrTypPopis
namebytesUnikátní název scény
Návratová hodnotaPopis
int0 při úspěchu, 1 pokud název scény již existuje

Vytvoří novou scénu se zadaným názvem. Scény používají exponenciální růst pro interní pole bufferů (počáteční kapacita 4, zdvojnásobení při přetečení). Duplicitní názvy jsou odmítnuty.

scenes.free_scene(name)

scenes.free_scene(b"main")
ParametrTypPopis
namebytesNázev scény k odstranění

Zruší scénu a uvolní všechny její buffery a související paměť. Po tomto volání nelze scénu použít.

scenes.clear_scene(name)

scenes.clear_scene(b"main")
ParametrTypPopis
namebytesNázev scény k vyčištění

Uvolní všechny buffery ve scéně, ale ponechá strukturu scény alokovanou. Použijte to pro odstranění všech widgetů ze scény bez zrušení samotné scény. Po vyčištění lze do scény přidat nové widgety.

scenes.get_scene(name)

scene_ptr = scenes.get_scene(b"main")
ParametrTypPopis
namebytes | strNázev scény k vyhledání
Návratová hodnotaPopis
intAdresa nativního ukazatele na scénu (0 pokud nebyla nalezena)

scenes.get_scenes()

all_scenes = scenes.get_scenes()

Vrátí Python pohled na kolekci scén z nativní vrstvy, kterou zpřístupňuje Cython most.

scenes.set_focus(scene_name, uid)

scenes.set_focus(b"main", input_uid)
ParametrTypPopis
scene_namebytes | strCílová scéna
uidintUID widgetu, který má dostat fokus vstupu
Návratová hodnotaPopis
int0 při úspěchu, nenulová hodnota při chybě

Směrování fokusu je lokální pro scénu. Použijte to, když je v jedné scéně více interaktivních widgetů a vstup z klávesnice má zpracovat jen jeden z nich.

scenes.set_previous_focus(scene_name)

scenes.set_previous_focus(b"main")

Obnoví předchozí fokusovaný widget v dané scéně.

Příklad: přepínání scén

from tuix.core import scenes, registry

# Create scenes
scenes.init_scene(b"menu")
scenes.init_scene(b"form")

# ... create widgets and remember their UIDs ...
choice_uid = 101
input_uid = 102

# Start with menu scene
registry.registry.current_scene_name = b"menu"
scenes.set_focus(b"menu", choice_uid)

# Later switch focus to input widget
scenes.set_focus(b"menu", input_uid)

# Switch scene
registry.registry.current_scene_name = b"form"

# Restore prior focus in menu when returning
registry.registry.current_scene_name = b"menu"
scenes.set_previous_focus(b"menu")

# Clean up
scenes.free_scene(b"menu")
scenes.free_scene(b"form")