Uveden je Blueprint, novi jezik korisničkog interfejsa za GTK

James Westman, programer aplikacije GNOME Maps, predstavio je novi jezik za označavanje, Blueprint, za izgradnju interfejsa koristeći GTK biblioteku. Kod kompajlera za pretvaranje oznake Blueprint u GTK korisničke datoteke napisan je u Pythonu i distribuira se pod licencom LGPLv3.

Razlog za kreiranje projekta je vezivanje ui-fajlova opisa interfejsa koji se koriste u GTK za XML format, koji je preopterećen i nije pogodan za ručno pisanje ili uređivanje markupa. Blueprint format se odlikuje vizualnom prezentacijom informacija i, zahvaljujući svojoj čitljivoj sintaksi, omogućava da se bez upotrebe specijaliziranih uređivača vizualnog sučelja pri kreiranju, uređivanju i evaluaciji promjena u elementima sučelja.

Istovremeno, Blueprint ne zahtijeva nikakve izmjene GTK-a, u potpunosti ponavlja GTK widget model i pozicioniran je kao dodatak koji kompajlira oznake u standardni XML format za GtkBuilder. Funkcionalnost Blueprint-a je potpuno ista kao GtkBuilder, samo je način na koji su informacije predstavljene drugačiji. Da prevedete projekat u Blueprint, samo dodajte poziv blueprint-kompajleru u skriptu izgradnje bez promene koda. koristeći GTK 4.0; template MyAppWindow : Gtk.ApplicationWindow { title: _("Naslov moje aplikacije"); [titlebar] HeaderBar header_bar {} Label { styles ["heading"] label: _("Zdravo, svijet!"); } }

Uveden je Blueprint, novi jezik korisničkog interfejsa za GTK

Pored kompajlera za standardni GTK XML format, u razvoju je i dodatak sa podrškom za Blueprint za integrisano razvojno okruženje GNOME Builder. Za Blueprint se razvija poseban LSP (Language Server Protocol) server, koji se može koristiti za isticanje, analizu grešaka, hintovanje i dovršavanje koda u uređivačima koda koji podržavaju LSP, uključujući Visual Studio Code.

Planovi razvoja Blueprint-a uključuju dodavanje reaktivnih programskih elemenata u oznaku, implementirano korišćenjem klase Gtk.Expression koja se nalazi u GTK4. Predložena metoda je poznatija JavaScript programerima web interfejsa i omogućava vam da postignete automatsku sinhronizaciju prikaza interfejsa sa pridruženim modelom podataka, bez potrebe za prisilnim ažuriranjem korisničkog interfejsa nakon svake promene podataka.

izvor: opennet.ru

Dodajte komentar