Il progetto GNOME ha pubblicato la versione 1.2 della libreria Libadwaita, che include un insieme di componenti per la progettazione dell'interfaccia utente in conformità con le linee guida GNOME HIG (Human Interface Guidelines). La libreria include widget e oggetti pronti per la creazione di applicazioni che seguono lo stile generale di GNOME, e la cui interfaccia può adattarsi a schermi di qualsiasi dimensione. Il codice della libreria è scritto in C ed è distribuito con licenza LGPL 2.1+.

La libreria libadwaita è utilizzata insieme a GTK4 e include i componenti del tema Adwaita utilizzato in GNOME, che sono stati estratti da GTK in una libreria separata. L'estrazione degli elementi visivi di GNOME in una libreria separata consente di sviluppare le modifiche necessarie per GNOME separatamente da GTK, dando ai sviluppatori di GTK la possibilità di concentrarsi su questioni di base e ai sviluppatori di GNOME di promuovere più rapidamente e agilmente le modifiche stilistiche necessarie, senza influenzare GTK stesso.
La libreria include widget standard che coprono vari elementi dell'interfaccia, come elenchi, pannelli, blocchi di editing, pulsanti, schede, moduli di ricerca, finestre di dialogo e altro. I widget proposti consentono di creare interfacce universali, che funzionano bene sia su grandi schermi di PC e laptop, sia su piccoli schermi touch di smartphone. L'interfaccia delle applicazioni cambia dinamicamente a seconda delle dimensioni dello schermo e dei dispositivi di input disponibili. La libreria include anche un insieme di stili Adwaita, che allineano l'aspetto alle raccomandazioni di GNOME, senza necessità di eseguire adattamenti manuali.
Principali novità in libadwaita 1.2:
- È stato aggiunto il widget Adw.EntryRow, progettato per essere utilizzato come elemento delle liste. Il widget fornisce un campo di input e un'intestazione con la possibilità di allegare widget aggiuntivi prima e dopo il campo di input (ad esempio, pulsanti per confermare l'input o indicatori che i dati possono essere modificati). È disponibile anche una variante Adw.PasswordEntryRow, destinata all'immissione di password.

- È stato aggiunto il widget Adw.MessageDialog per visualizzare un dialogo con un messaggio o una domanda. Il widget è un'alternativa avanzata a Gtk.MessageDialog, capace di adattare il layout degli elementi alle dimensioni della finestra. Ad esempio, in finestre ampie, i pulsanti possono essere visualizzati su una sola riga, mentre in quelle strette possono essere suddivisi in più colonne. Un'altra differenza è che il widget non è una sottoclasse di GtkDialog e fornisce un API completamente nuovo, non vincolato ai tipi di pulsanti predefiniti GtkResponseType (in Adw.MessageDialog la gestione di tutte le azioni è effettuata dall'applicazione), semplificando l'integrazione di altri widget tramite la proprietà extra-child e offrendo stili separati per il titolo e il testo principale.

- È stato aggiunto il widget Adw.AboutWindow per visualizzare una finestra con informazioni sul programma. Il widget sostituisce Gtk.AboutDialog e si distingue per l'uso di un layout adattivo degli elementi e per sezioni di supporto ampliate, come il registro delle modifiche, una finestra di ringraziamenti, informazioni sulle licenze dei componenti di terze parti, link a risorse informative e dati per facilitare il debug.


- Le funzionalità dei widget Adw.TabView e Adw.TabBar sono state ampliate, con un meccanismo di gestione delle scorciatoie da tastiera rielaborato per risolvere i problemi con le combinazioni che interferiscono con i gestori di GTK4 (ad esempio, Ctrl+Tab). Nella nuova versione è stato anche introdotto un attributo per impostare suggerimenti popup per gli indicatori e i pulsanti delle schede.
- È stata aggiunta la classe Adw.PropertyAnimationTarget per semplificare l'animazione delle proprietà degli oggetti.
- Lo stile della barra delle schede (Adw.TabBar) è stato significativamente modificato: la scheda attiva è ora più evidenziata e il contrasto degli elementi è stato aumentato nella variante per il tema scuro.


- Altezza dei divisori verticali ridotta, permettendo di eliminare i bordi chiari distraenti in favore dei bordi scuri definiti tramite @headerbar_shade_color, e aggiungere uno stile di sfondo che si integra con le barre del titolo.
- La classe di stile «.large-title» è stata dichiarata obsoleta, utilizzando invece «.title-1».
- Sono stati ridotti i margini nel widget Adw.ActionRow per avvicinarne l'aspetto a quello delle barre e del widget Adw.EntryRow.
- Negli widget Gtk.Actionbar e Adw.ViewSwitcherBar sono stati utilizzati gli stessi stili applicati nelle barre del titolo, ricerca e schede.

Fonte: opennet.ru







