Zpět na projekty
TUIX v0.5Beta

Naposledy aktualizováno: 2026-05-20

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 engine.init() zavolejte builders.register_standard(), abyste zaregistrovali všechny vestavěné buildry. Konstanty builderů jsou bytes odpovídající nativním názvům builderů, například builders.TEXT nebo builders.GRID.

Vytvoření widgetu

uid = objects.create_object(
    builders.BUTTON,
    '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.
Interactive controlsBUTTON, CHOICE, INPUT, CHECKBOX, MENUWidgety s podporou klávesnice a myši a query/take API pro stav.
DrawingCANVASAPI pro ruční kreslení pixelů a primitiv.
Viewport widgetsSCROLL_CONTAINER, LISTVIEW, TEXTAREAWidgety vlastnící scroll offsety, velikost obsahu a clipping.
Layout parentsROW, COLUMN, SPLITPANE, 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 obsluhuje frame loop. Kompatibilní feed_input funkce stále existují pro starší kód, ale běžné v0.5 použití spustí input.listen(), podle potřeby nastaví focus a volá engine.main_loop().

Snapshoty

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