Wprowadzono Blueprint, nowy język interfejsu użytkownika dla GTK

James Westman, twórca aplikacji GNOME Maps, wprowadził nowy język znaczników Blueprint, przeznaczony do budowania interfejsów z wykorzystaniem biblioteki GTK. Kod kompilatora do konwersji znaczników Blueprint na pliki interfejsu GTK jest napisany w języku Python i rozpowszechniany na licencji LGPLv3.

Powodem utworzenia projektu jest powiązanie plików opisu interfejsu UI używanych w GTK z formatem XML, który jest przeciążony i niewygodny do ręcznego pisania lub edytowania znaczników. Format Blueprint wyróżnia się przejrzystą prezentacją informacji, a dzięki czytelnej składni pozwala obejść się bez użycia specjalistycznych edytorów interfejsu wizualnego podczas tworzenia, edycji i oceny zmian w elementach interfejsu.

Jednocześnie Blueprint nie wymaga zmian w GTK, całkowicie replikuje model widżetu GTK i jest pozycjonowany jako dodatek, który kompiluje znaczniki do standardowego formatu XML dla GtkBuilder. Funkcjonalność Blueprint jest w pełni zgodna z GtkBuilder, różni się jedynie sposobem prezentacji informacji. Aby przeprowadzić migrację projektu do Blueprint, po prostu dodaj wywołanie kompilatora planu do skryptu kompilacji bez zmiany kodu. używając GTK 4.0; szablon MyAppWindow: Gtk.ApplicationWindow { tytuł: _("Tytuł mojej aplikacji"); [titlebar] HeaderBar header_bar {} Etykieta { style ["nagłówek"] etykieta: _("Witaj, świecie!"); } }

Wprowadzono Blueprint - nowy język do budowania interfejsów użytkownika dla GTK

Oprócz kompilatora do standardowego formatu GTK XML, w przygotowaniu jest także wtyczka obsługująca Blueprint dla zintegrowanego środowiska programistycznego GNOME Builder. Dla Blueprint opracowywany jest oddzielny serwer LSP (Language Server Protocol), który może być używany do podświetlania, analizy błędów, wyświetlania podpowiedzi i uzupełniania kodu w edytorach kodu obsługujących LSP, w tym w Visual Studio Code.

Plany rozwoju Blueprint obejmują dodanie do znaczników reaktywnych elementów programistycznych, zaimplementowanych przy użyciu klasy Gtk.Expression dostarczonej w GTK4. Proponowana metoda jest bardziej znana twórcom interfejsów internetowych JavaScript i pozwala na automatyczną synchronizację prezentacji interfejsu z powiązanym modelem danych, bez konieczności wymuszania aktualizacji interfejsu użytkownika po każdej zmianie danych.

Źródło: opennet.ru

Dodaj komentarz