TUIX v0.5Beta
Dialog Widget
Dialog is the built-in modal UI widget in v0.5. It can own a body, attach child widgets, draw a backdrop, trap focus through scene modal state, and expose a consumable close request flag.
Creating A Dialog
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 Widgets
Create child widgets inside the dialog body with tuix_dialog_add_object(...) or attach existing child UIDs. Dialog children participate in the same buffer hierarchy and modal input routing.
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 Functions
| Function | Description |
|---|---|
| tuix_dialog_attach_child(obj, scene_name, child_uid) | Attaches an existing child. |
| tuix_dialog_detach_child(obj, scene_name, child_uid) | Detaches a child. |
| tuix_dialog_add_object(obj, scene_name, builder_name, width_mod, height_mod) | Creates a child in the dialog body. |
| tuix_dialog_set_title(obj, title) | Sets title text. |
| tuix_dialog_set_body_size(obj, width, height) | Sets body size in terminal cells. |
| tuix_dialog_set_padding(obj, left, top, right, bottom) | Sets body padding. |
| tuix_dialog_set_close_on_esc(obj, enabled) | Enables close request on Escape. |
| tuix_dialog_set_close_on_backdrop(obj, enabled) | Enables close request on backdrop click. |
| tuix_dialog_set_colors(obj, backdrop_r, backdrop_g, backdrop_b, border_r, border_g, border_b, body_r, body_g, body_b) | Sets backdrop, border, and body colors. |
| tuix_dialog_activate(obj, scene_name) | Activates modal state. |
| tuix_dialog_deactivate(obj, scene_name) | Deactivates modal state. |
| tuix_dialog_take_close_requested(obj) | Returns and consumes close-request state. |
Close Pattern
while running:
engine.main_loop()
if objects.tuix_dialog_take_close_requested(dialog):
objects.tuix_dialog_deactivate(dialog, 'Main')
break