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

La libreria libadwaita viene utilizzata in combinazione con GTK4 e comprende i componenti del tema Adwaita, utilizzato in GNOME, che sono stati estratti da GTK e resi disponibili in una libreria separata. Separare gli elementi di design di GNOME in una libreria dedicata consente di sviluppare le necessarie modifiche per GNOME in modo indipendente da GTK, permettendo così agli sviluppatori di GTK di concentrarsi sugli elementi fondamentali, mentre gli sviluppatori di GNOME possono promuovere più rapidamente e flessibilmente le modifiche di design necessarie senza influire su GTK.
La libreria include widget standard che coprono vari elementi dell'interfaccia, come elenchi, pannelli, blocchi di modifica, pulsanti, schede, moduli di ricerca, finestre di dialogo, ecc. I widget proposti consentono di creare interfacce versatili che funzionano in modo fluido sia su grandi schermi di PC e laptop che su piccoli schermi touch di smartphone. L'interfaccia delle applicazioni si adatta dinamicamente in base alle dimensioni dello schermo e ai dispositivi di input disponibili. La libreria include anche un set di stili Adwaita, che allineano l'aspetto alle linee guida GNOME, senza la necessità di adattamenti manuali.
Le principali novità in libadwaita 1.2:
- È stato aggiunto il widget Adw.EntryRow, progettato per l'utilizzo 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 possano essere modificati). È disponibile anche la variante Adw.PasswordEntryRow, progettata per l'inserimento di password.

- È stato aggiunto il widget Adw.MessageDialog per visualizzare un dialogo con un messaggio o una domanda. Il widget è una sostituzione avanzata di Gtk.MessageDialog, in grado di adattare il layout degli elementi alle dimensioni della finestra. Ad esempio, in finestre larghe i pulsanti possono essere mostrati in una sola riga, mentre in finestre strette si spezzano in più colonne. Un'altra differenza è che il widget non è una sottoclasse di GtkDialog e fornisce una nuova API completamente innovativa, non legata ai tipi di pulsanti predefiniti GtkResponseType (in Adw.MessageDialog, la gestione di tutte le azioni è svolta dall'applicazione), semplificando l'integrazione di altri widget tramite la proprietà extra-child e fornendo stili distinti per l'intestazione 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 sezioni di supporto estese, come un elenco delle modifiche, una finestra di ringraziamenti, informazioni sulle licenze dei componenti di terze parti, collegamenti a risorse informative e dati per semplificare il debug.


- Sono state ampliate le funzionalità dei widget Adw.TabView e Adw.TabBar, con una revisione del meccanismo di gestione delle scorciatoie da tastiera per risolvere i problemi con le combinazioni che si sovrappongono ai gestori di GTK4 (ad esempio, Ctrl+Tab). Nella nuova versione è stata anche proposta una proprietà per impostare suggerimenti a comparsa 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 notevolmente modificato: la scheda attiva è ora più evidenziata e il contrasto degli elementi nella versione per il tema scuro è stato aumentato.


- Ridotte le dimensioni dei divider verticali, permettendo di eliminare i bordi luminosi distraenti nella barra con il titolo e la stringa di ricerca a favore di bordi scuri definiti tramite @headerbar_shade_color, e aggiunto uno stile di sfondo che si abbina con i pannelli nel titolo.
- Il classe di stile «.large-title» è stata dichiarata obsoleta, è consigliato usare «.title-1» al suo posto.
- Ridotti i margini nel widget Adw.ActionRow per avvicinare il suo aspetto a quello dei pannelli e del widget Adw.EntryRow.
- Nei widget Gtk.Actionbar e Adw.ViewSwitcherBar sono stati utilizzati gli stessi stili delle barre del titolo, della ricerca e delle schede.

Fonte: opennet.ru







