Zpět na projekty
TUIX v0.6Beta

Naposledy aktualizováno: 2026-08-14

Widgety

Widgety jsou nativní buildry plus stav konkrétního objektu. Python vytváří objekty a volá typované setter/getter API; C builder vlastní per-frame zpracování událostí, layout, resize a generování pixelů.

Systém builderů

Po core.init() zavolejte content_builder.register_standard(), abyste zaregistrovali všechny vestavěné buildry pod namespace `tuix`. Konstanty builderů jsou bytes odpovídající nativním názvům builderů, například content_builder.TEXT nebo content_builder.GRID.

Vytvoření widgetu

uid = objects.create_object(
    content_builder.BUTTON,
    b'Main',
    0.25, 0.08,  # width_mod, height_mod
    0.1, 0.1     # margin_top_mod, margin_left_mod
)
button = objects.get_object_by_uid(uid)
objects.tuix_button_set_label(button, 'Run')

Proporcionální geometrie

U běžných objektů jsou width_mod, height_mod, margin_top_mod a margin_left_mod zlomky velikosti terminálu. U layout dětí mohou parent buildry přepsat finální obdélníky pomocí layout slotů, grid placementu a layout rect API.

Kategorie widgetů

KategorieBuildryPoznámky
Basic displayTEXT, BOX, DIVIDER, BADGE, TAG, STATUSŠtítky, rámy, oddělovače a jednoduchý stylovaný text citlivý na grafémy.
Interactive controlsBUTTON, CLICKABLE_TEXT, CHOICE, INPUT, CHECKBOX, MENUWidgety s podporou klávesnice a myši a query/take API pro stav.
DrawingCANVASAPI pro ruční kreslení pixelů, čar, obdélníků, kruhů, textu a spritů.
Viewport widgetsSCROLL_CONTAINER, LIST_VIEW, TEXT_AREAWidgety vlastnící scroll offsety, velikost obsahu a clipping.
Layout parentsROW, COLUMN, SPLIT_PANE, GRIDNativní kontejnery, které umisťují child buffery.
Modal UIDIALOGTělo dialogu, backdrop, zachycení fokusu a stav požadavku na zavření.

Zpracování vstupu

Vestavěné interaktivní widgety zpracovávají vstup z klávesnice a ukazatele během nativní frame smyčky. Aplikační logika čte a spotřebovává stav událostí widgetu pomocí jednorázových getterů (jako `tuix_button_take_pressed()`, `tuix_checkbox_take_changed()`, `tuix_choice_is_confirmed()`, `tuix_input_is_submitted()` nebo `tuix_listview_take_activated()`).

Snapshoty

Pro read-only inspekci používejte buffer.get_buffer_snapshot(...), buffer.get_buffer_snapshot_by_uid(...) a objects.get_object_snapshot_by_uid(...). Pro diagnostiku nespoléhejte na raw nativní ukazatele.