Predstavili sme Blueprint, nový jazyk používateľského rozhrania pre GTK

James Westman, vývojár aplikácie GNOME Maps, predstavil nový značkovací jazyk Blueprint, určený na vytváranie rozhraní pomocou knižnice GTK. Kód kompilátora na prevod značiek Blueprint do súborov používateľského rozhrania GTK je napísaný v jazyku Python a distribuovaný pod licenciou LGPLv3.

Dôvodom vytvorenia projektu je naviazanie súborov s popisom používateľského rozhrania používaných v GTK na formát XML, ktorý je preťažený a nie je vhodný na ručné písanie alebo úpravu značiek. Formát Blueprint sa vyznačuje prehľadnou prezentáciou informácií a vďaka čitateľnej syntaxi sa pri vytváraní, úprave a vyhodnocovaní zmien prvkov rozhrania zaobíde bez použitia špecializovaných editorov vizuálnych rozhraní.

Blueprint zároveň nevyžaduje zmeny v GTK, úplne replikuje model widgetu GTK a je umiestnený ako doplnok, ktorý kompiluje značky do štandardného formátu XML pre GtkBuilder. Funkcionalita Blueprint je plne konzistentná s GtkBuilderom, líši sa len spôsob prezentácie informácií. Ak chcete migrovať projekt do Blueprint, stačí pridať volanie blueprint-compiler do skriptu zostavenia bez zmeny kódu. pomocou Gtk 4.0; template MyAppWindow : Gtk.ApplicationWindow { title: _("My App Title"); [titlebar] HeaderBar header_bar {} Label { styles ["nadpis"] label: _("Ahoj, svet!"); } }

Predstavený Blueprint – nový jazyk na vytváranie používateľských rozhraní pre GTK

Okrem kompilátora do štandardného formátu GTK XML je vo vývoji aj plugin s podporou Blueprint pre integrované vývojové prostredie GNOME Builder. Pre Blueprint sa vyvíja samostatný LSP server (Language Server Protocol), ktorý je možné použiť na zvýrazňovanie, analýzu chýb, zobrazovanie tipov a dokončovanie kódu v editoroch kódu, ktoré podporujú LSP, vrátane Visual Studio Code.

Plány vývoja plánov zahŕňajú pridanie prvkov reaktívneho programovania k značeniu, implementované pomocou triedy Gtk.Expression poskytovanej v GTK4. Navrhovaná metóda je viac známa vývojárom webových rozhraní JavaScript a umožňuje automatickú synchronizáciu prezentácie rozhrania s pridruženým dátovým modelom bez nutnosti násilnej aktualizácie užívateľského rozhrania po každej zmene dát.

Zdroj: opennet.ru

Pridať komentár