Zpět na projekty
TUIX v0.5Beta

Naposledy aktualizováno: 2026-05-20

Widget Dialog

Dialog je vestavěný modální UI widget ve v0.5. Může vlastnit tělo, připojovat child widgety, kreslit backdrop, zachytit focus přes modální stav scény a vystavit spotřebovatelný close-request příznak.

Vytvoření Dialogu

uid = objects.create_object(builders.DIALOG, 'Main', 0.7, 0.5, 0.2, 0.15)
dialog = objects.get_object_by_uid(uid)

objects.tuix_dialog_set_title(dialog, 'Confirm')
objects.tuix_dialog_set_body_size(dialog, 48, 12)
objects.tuix_dialog_set_padding(dialog, 2, 1, 2, 1)
objects.tuix_dialog_set_close_on_esc(dialog, True)
objects.tuix_dialog_set_close_on_backdrop(dialog, True)
objects.tuix_dialog_activate(dialog, 'Main')

Child widgety

Child widgety v těle dialogu vytvářejte přes tuix_dialog_add_object(...) nebo připojte existující child UID. Děti dialogu se účastní stejné bufferové hierarchie a modálního routování vstupu.

button_uid = objects.tuix_dialog_add_object(dialog, 'Main', builders.BUTTON, 0.4, 0.12)
button = objects.get_object_by_uid(button_uid)
objects.tuix_button_set_label(button, 'OK')

API funkce

FunkcePopis
tuix_dialog_attach_child(obj, scene_name, child_uid)Připojí existující dítě.
tuix_dialog_detach_child(obj, scene_name, child_uid)Odpojí dítě.
tuix_dialog_add_object(obj, scene_name, builder_name, width_mod, height_mod)Vytvoří dítě v těle dialogu.
tuix_dialog_set_title(obj, title)Nastaví titulek.
tuix_dialog_set_body_size(obj, width, height)Nastaví velikost těla v buňkách terminálu.
tuix_dialog_set_padding(obj, left, top, right, bottom)Nastaví padding těla.
tuix_dialog_set_close_on_esc(obj, enabled)Povolí požadavek zavření na Escape.
tuix_dialog_set_close_on_backdrop(obj, enabled)Povolí požadavek zavření při kliknutí na backdrop.
tuix_dialog_set_colors(obj, backdrop_r, backdrop_g, backdrop_b, border_r, border_g, border_b, body_r, body_g, body_b)Nastaví barvy backdropu, okraje a těla.
tuix_dialog_activate(obj, scene_name)Aktivuje modální stav.
tuix_dialog_deactivate(obj, scene_name)Deaktivuje modální stav.
tuix_dialog_take_close_requested(obj)Vrátí a spotřebuje close-request stav.

Pattern zavření

while running:
    engine.main_loop()
    if objects.tuix_dialog_take_close_requested(dialog):
        objects.tuix_dialog_deactivate(dialog, 'Main')
        break