Zpět na projekty
TUIX v0.5Beta

Naposledy aktualizováno: 2026-05-20

Přehled TUIX Core v0.5

TUIX je modulární terminálový UI engine inspirovaný webovými technologiemi. Nabízí komponentový model podobný DOM, systém vnořeného layoutu, viewport-aware pipeline pro vstup a renderování a bufferový renderer pro strukturovaná terminálová rozhraní.

Verze 0.5 zachovává nízkoúrovňové jádro C + Cython, ale zaměřuje se na kompozici a stabilitu: bezpečnější vlastnictví pixelů, zpevnění resize a teardown cest, nižší lock contention v renderovací cestě, row/column/split/grid layout buildry, viewport widgety, modální dialogy, transakce scén, bohatší snapshoty a zachycení myši.

Core vs frameworkTUIX Core záměrně vystavuje nízkoúrovňová primitiva. Pro vyšší aplikační framework použijte projekt tuixpy postavený nad core.

Architektura

Runtime je rozdělen do tří vrstev: nativní C engine pro buffery, layout, hitmapy, kompozici, diffing a terminálový výstup; Cython bridge pro rychlá volání bindingů; a Python moduly pro životní cyklus scén, tvorbu objektů, konfiguraci widgetů, snapshoty a řízení aplikace.

Každý snímek směruje vstup, vyřeší geometrii, nechá buildry aktualizovat stav a obsah, složí viditelné buffery a podle možností zapisuje jen rozdíly viditelné v terminálu.

Vestavěné typy widgetů

WidgetNázev builderuPopis
ProgressbarProgressBarBuilderVodorovný ukazatel průběhu s nastavitelnou hodnotou, znaky výplně/prázdna, barvami a volitelným procentem.
ChoiceChoiceBuilderSeznam voleb ovladatelný klávesnicí se stavem potvrzení.
InputInputBuilderJednořádkový textový vstup s placeholderem, pohybem kurzoru a stavem odeslání.
CanvasCanvasBuilderVolná kreslicí plocha pro pixely, primitiva, text, raw buffery a cachované sprity.
TextTextBuilderVložený text s runtime řízením barvy popředí a pozadí.
BoxBoxBuilderRámovaný kontejner s titulkem, okrajem a barvami pozadí.
DividerDividerBuilderVodorovný nebo svislý oddělovač s vlastním symbolem a barvou.
BadgeBadgeBuilderKompaktní štítek s paletou popředí/pozadí.
ButtonButtonBuilderKlikatelné a klávesnicí aktivovatelné tlačítko se spotřebovatelným stavem stisku.
TagTagBuilderŠtítek typu chip s nastavitelnými závorkami a barvami.
StatusStatusBuilderStavový štítek IDLE/OK/WARN/ERROR s nastavitelnou paletou.
MenuMenuBuilderInteraktivní menu s titulkem, výběrem položek a stavem aktivace.
ScrollContainerScrollContainerBuilderKontejner založený na viewportu s virtuální velikostí obsahu, offsety a helpery pro připojení dětí.
RowRowBuilderVodorovný stack layout parent s gapem, paddingem, justify, align a sloty dětí.
ColumnColumnBuilderSvislý stack layout parent používající stejné stack API jako Row.
SplitPaneSplitPaneBuilderDvou-panelový layout s orientací, rozdělením poměrem/pixely, velikostí dělítka a minimy panelů.
GridGridBuilderGrid layout s pevnými a váženými řádky/sloupci, gapy, paddingem a override umístění.
CheckboxCheckboxBuilderPřepínač s popiskem, checked/disabled stavem a spotřebovatelným příznakem změny.
ListViewListViewBuilderVirtuální seznam nad viewportem s výběrem a aktivací.
TextAreaTextAreaBuilderVíceřádkový editor nad viewportem s titulkem, placeholderem, textem a read-only režimem.
DialogDialogBuilderModální dialog s backdropem, zachycením fokusu, velikostí těla, paddingem, barvami a zavíráním.

Mapa modulů

ModulÚčel
tuix.core.engineŽivotní cyklus enginu, jedno-snímkový main loop, statistiky smyčky a zachycení myši.
tuix.core.scenesTvorba a výběr scén, focus, modální stav, transakce, statistiky a kompaktace.
tuix.core.registryUkazatel aktivní scény a zrcadlený nízkoúrovňový stav registry.
tuix.core.buildersKonstanty builderů, layout/grid konstanty a standardní registrace.
tuix.core.objectsTvorba objektů a runtime API pro widgety, layouty, viewporty a modály.
tuix.core.buffersHierarchie bufferů, z-index, layout sloty, grid placement, snapshoty a uvolňování.
tuix.core.inputInput listener a spotřebovávající/nespotřebovávající snapshoty.

Co je nového ve 0.5

  • Kontrakt vnořeného layoutu s TuixLayoutSlot, TuixLayoutRect, parent-first rebuildem podstromů a per-child slot/grid override.
  • Nové Row, Column, SplitPane a Grid buildry pro nativní kompozici layoutu.
  • Nové widgety Checkbox, ListView, TextArea a Dialog.
  • Scrollable kontejnery se nyní účastní viewport-aware geometrie, hitmapy, kompozitoru a routování vstupu.
  • Zpevnění vlastnictví bufferů pomocí pixels_owned, bezpečnější dočasné buffery z builderů, opravy resize a teardown cest.
  • Nižší lock contention v renderovací cestě díky spouštění builder callbacků mimo globální registry lock tam, kde to snapshoty a kopie umožňují.
  • Python bindingy nyní pokrývají výběr scén, transakce, aktivaci modálů, zachycení myši, layout/grid override, bohatší snapshoty a viewport/widget API.

Známá omezení

  • TUIX Core zůstává nízkoúrovňový engine, ne vysokoúrovňový aplikační framework.
  • Chybí vestavěný systém témat/stylů nad rámec stylování jednotlivých widgetů.
  • Hlavní smyčka je synchronní; integrace s async smyčkou není vestavěná.