Rilascio della libreria Libadwaita 1.8 per la creazione di interfacce in stile GNOME

Il progetto GNOME ha pubblicato il rilascio della libreria Libadwaita 1.8, che include un insieme di componenti per la progettazione dell'interfaccia utente, in linea con le raccomandazioni GNOME HIG (Human Interface Guidelines). La libreria comprende widget e oggetti pronti per la costruzione di applicazioni che rispettano lo stile generale di GNOME, le cui interfacce possono adattarsi dinamicamente a schermi di qualsiasi dimensione. Il codice della libreria è scritto in C e 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.

Rilascio della libreria Libadwaita 1.8 per la creazione di interfacce in stile GNOME

Nella nuova versione:

  • In sostituzione della classe GtkShortcutsWindow, dichiarata obsoleta in GTK 4.18, è stato implementato in Libadwaita un nuovo classe AdwShortcutsDialog con un dialogo per la navigazione tra le combinazioni di tasti disponibili. La nuova implementazione presenta una riprogettazione completa e semplificazione logica della suddivisione in sezioni e gruppi. Ai programmatori viene fornito un API minima e i file UI vengono utilizzati per definire la struttura e il contenuto del dialogo.

    Invece di GtkShortcutLabel, per la visualizzazione degli elementi è stata proposta una nuova classe AwsShortcutLabel, che non supporta l'indicazione delle informazioni sui gesti su schermo e l'integrazione delle icone, poiché il loro utilizzo ha portato a confusione e l'applicazione era limitata (ad esempio, le icone venivano utilizzate solo nell'applicazione gnome-games per indicare i pulsanti dei gamepad).

    Rilascio della libreria Libadwaita 1.8 per la creazione di interfacce in stile GNOME
  • È stata aggiunta la possibilità di utilizzare media query CSS per definire gli stili della modalità scura e chiara, così come una presentazione normale e a contrasto dello stesso elemento. Le dimensioni dei caratteri per i contenuti (Adwaita Sans 12pt) e per l'interfaccia (Adwaita Sans 11pt) sono state separate. È stata aggiunta una classe di stile ".document" in cui, per una migliore leggibilità, viene utilizzato il carattere Adwaita Sans 12pt con un interlinea ampliato. È stato aumentato l'interlinea nella classe di stile ".body", che ora viene applicata per default in alcuni widget standard.
    Rilascio della libreria Libadwaita 1.8 per la creazione di interfacce in stile GNOME
  • La classe AdwPreferencesGroup può essere utilizzata con modelli di elenco tramite il metodo adw_preferences_group_bind_model(). È stata inoltre aggiunta la possibilità di aggiungere all'elenco interno righe che non sono della classe AdwPreferencesRow.
  • Nella classe AdwPreferencesPage è consentito inserire gruppi in qualsiasi punto, e non solo alla fine della pagina.
  • Nelle classi AdwPreferencesGroup e AdwPreferencesPage sono stati aggiunti i metodi adw_preferences_page_get_group() e adw_preferences_group_get_row() per ispezionare gruppi e righe.
  • Nella classe AdwWrapBox è stato aggiunto il metodo adw_wrap_box_remove_all() per rimuovere tutti gli elementi figli.
  • Per gli elementi figli della classe GtkFlowBox sono stati forniti stili per evidenziare il passaggio del mouse sull'elemento e attivare l'elemento.
  • Nella classe AdwHeaderBar è stato implementato il supporto per i controlli della finestra nativi su macOS.
  • Per migliorare le prestazioni, è stata ridotta l'uso delle ombre per finestre, dialoghi e finestre popup.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster