Zpět na projekty
TUIX v0.4Beta

Naposledy aktualizováno: 2026-05-20

API sestavovačů

Modul builders (tuix.core.builders) poskytuje konstanty pro vestavěné typy widgetů a helpery pro registraci. Ve v0.4 builderech navíc probíhá nativní zpracování vstupu přes callbacky.

builders.register_standard()

from tuix.core import builders

result = builders.register_standard()

Zaregistruje všechny vestavěné sestavovače widgetů v enginu. Musí být voláno po engine.init() a před vytvořením jakýchkoli widgetů. Ve v0.4 jsou tyto builderey vstupně-aware a integrují se s automatickým zpracováním vstupu ve frame loopu.

Návratová hodnotaPopis
int0 při úspěchu, -1 při neúspěchu

Konstanty sestavovačů

Tyto bajtové řetězce určují typy widgetů při volání objects.create_object():

KonstantaHodnotaTyp widgetu
builders.PROGRESSBARb"ProgressBarBuilder"Horizontální plnící pruh s vlastními znaky a barvami
builders.CHOICEb"ChoiceBuilder"Seznamové menu ovládané klávesnicí
builders.INPUTb"InputBuilder"Jednořádkový textový vstup s podporou placeholderu
builders.CANVASb"CanvasBuilder"Volná kreslicí plocha pro pixely, čáry, obdélníky, kruhy, text a sprity
builders.TEXTb"TextBuilder"Vložený text s průběžnou aktualizací fg/bg barev
builders.BOXb"BoxBuilder"Rámovaný kontejner s titulkem a ovládáním barev
builders.DIVIDERb"DividerBuilder"Horizontální nebo vertikální oddělovač s vlastním symbolem a barvou
builders.BADGEb"BadgeBuilder"Kompaktní štítek s paletou popředí/pozadí
builders.BUTTONb"ButtonBuilder"Klikatelné tlačítko aktivovatelné klávesnicí
builders.ICONb"IconBuilder"Vycentrovaný symbol/ikona s nastavitelnými barvami
builders.TAGb"TagBuilder"Štítek ve stylu chipu s nastavitelnými závorkami
builders.STATUSb"StatusBuilder"Widget pro zobrazení stavu IDLE/OK/WARN/ERROR
builders.MENUb"MenuBuilder"Interaktivní menu s výběrem klávesnicí a myší
builders.SCROLL_CONTAINERb"ScrollContainerBuilder"Posuvné okno nad virtuálním obsahem

Použití

from tuix.core import builders, objects

# Create a mix of built-in widget types
text_uid = objects.create_object(builders.TEXT, b"main", 0.3, 0.1, 0.0, 0.0)
box_uid = objects.create_object(builders.BOX, b"main", 0.4, 0.3, 0.1, 0.1)
button_uid = objects.create_object(builders.BUTTON, b"main", 0.2, 0.1, 0.5, 0.1)
menu_uid = objects.create_object(builders.MENU, b"main", 0.3, 0.4, 0.1, 0.5)
scroll_uid = objects.create_object(builders.SCROLL_CONTAINER, b"main", 0.5, 0.5, 0.4, 0.3)

Vnitřnosti sestavovačů

Každý sestavovač je C struktura (TuixBuilder) s metadaty a pěti ukazateli na callbacky:

CallbackÚčel
create_stateAlokuje a inicializuje stav widgetu
destroy_stateUvolní stav widgetu
handler_funcLogika aktualizace na snímek, včetně nativního zpracování vstupu
build_contentVykreslí stav widgetu do pixelového bufferu
on_resizeVolitelné: volá se při změně rozměrů terminálu
Vstupní model ve v0.4Ruční volání jako objects.tuix_choice_feed_input() a objects.tuix_input_feed_input() jsou kvůli kompatibilitě stále dostupná, ale standardní flow ve v0.4 je automatické zpracování vstupu přes builder callbacky a routování fokusu přes hitmapu.

Sestavovače se vyhledávají podle jména lineárním průchodem (tuix_get_builder_by_name). Při malé pevné sadě vestavěných sestavovačů je to prakticky O(1).