Představil Blueprint, nový jazyk uživatelského rozhraní pro GTK

James Westman, vývojář aplikace Mapy GNOME, představil nový značkovací jazyk Blueprint, určený pro vytváření rozhraní pomocí knihovny GTK. Kód kompilátoru pro převod značek Blueprint do souborů uživatelského rozhraní GTK je napsán v Pythonu a distribuován pod licencí LGPLv3.

Důvodem pro vytvoření projektu je vazba souborů popisu uživatelského rozhraní používaných v GTK na formát XML, který je přetížený a není vhodný pro ruční psaní nebo úpravu značek. Formát Blueprint se vyznačuje přehlednou prezentací informací a díky své čitelné syntaxi se při vytváření, úpravách a vyhodnocování změn prvků rozhraní obejde bez použití specializovaných editorů vizuálního rozhraní.

Zároveň Blueprint nevyžaduje změny GTK, zcela replikuje model widgetu GTK a je umístěn jako doplněk, který kompiluje značky do standardního formátu XML pro GtkBuilder. Funkčnost Blueprintu je plně konzistentní s GtkBuilderem, liší se pouze způsob prezentace informací. Chcete-li migrovat projekt do Blueprint, stačí přidat volání blueprint-compiler do skriptu sestavení beze změny kódu. pomocí Gtk 4.0; šablona MyAppWindow : Gtk.ApplicationWindow { title: _("My App Title"); [titlebar] HeaderBar header_bar {} Label { styles ["nadpis"] label: _("Ahoj světe!"); } }

Představen Blueprint – nový jazyk pro vytváření uživatelských rozhraní pro GTK

Kromě kompilátoru do standardního formátu GTK XML je ve vývoji i plugin s podporou Blueprint pro integrované vývojové prostředí GNOME Builder. Pro Blueprint je vyvíjen samostatný LSP server (Language Server Protocol), který lze použít pro zvýrazňování, analýzu chyb, zobrazování tipů a doplňování kódu v editorech kódu, které podporují LSP, včetně Visual Studio Code.

Plány vývoje plánů zahrnují přidání prvků reaktivního programování do značek, implementovaných pomocí třídy Gtk.Expression poskytované v GTK4. Navržená metoda je více známá vývojářům webových rozhraní JavaScriptu a umožňuje automatickou synchronizaci prezentace rozhraní s přidruženým datovým modelem bez nutnosti násilné aktualizace uživatelského rozhraní po každé změně dat.

Zdroj: opennet.ru

Přidat komentář