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

Il progetto GNOME ha pubblicato la versione della libreria Libadwaita 1.5, che comprende un insieme di componenti per la progettazione dell'interfaccia utente, in conformità con le raccomandazioni delle GNOME HIG (Human Interface Guidelines). La libreria include widget e oggetti pronti all'uso per la creazione di applicazioni che rispettano lo stile generale di GNOME, il cui interfaccia può adattarsi a schermi di qualsiasi dimensione. Il codice della libreria è scritto in linguaggio C ed è distribuito con la 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.5 per la creazione di interfacce in stile GNOME

La principale novità di libadwaita 1.5 è stata la ristrutturazione dei widget adattabili per la creazione di finestre di dialogo che si adattano alle dimensioni dell'area visibile. A differenza delle finestre di dialogo tradizionali, che vengono posizionate in finestre separate, i nuovi dialoghi vengono generati sul lato client, disegnati all'interno delle finestre esistenti e non possono uscire dai bordi della finestra parent. Questo approccio semplifica la creazione di dialoghi universali, combinabili con interfacce per sistemi mobili e desktop, e offre ulteriori possibilità di gestione dei dialoghi (ad esempio, non è necessario monitorare l'uscita dal bordo della finestra, è possibile scegliere il comportamento dei pulsanti di chiusura, si garantisce l’estensione automatica a schermo intero nelle versioni mobili delle applicazioni, e si tiene conto dello stile della finestra attuale, non del sistema, durante l'oscuramento del dialogo).

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

In futuro si prevede di implementare un ulteriore tipo di questi dialoghi, legati non alle finestre, ma alle schede all'interno della finestra, che potrebbe essere richiesto in applicazioni come i browser, affinché i dialoghi legati alla scheda non sovrappongano la finestra principale quando si passa da una scheda all'altra.

Per i dispositivi mobili è stata implementata la supporto per il posizionamento dei dialoghi in forma di fogli, fissati nella parte inferiore dello schermo (bottom sheets), anziché centrati. I dialoghi ancorati nella parte inferiore alleggeriscono la confusione degli utenti con la chiusura delle finestre: in questi dialoghi, parte della finestra parent rimane visibile e i pulsanti di chiusura della finestra parent e del dialogo stesso sono chiaramente separati, quindi ora è difficile confonderli.

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

La gestione dei nuovi dialoghi avviene tramite la classe AdwDialog, il cui utilizzo, nella maggior parte delle situazioni, è simile a quello della classe GtkWindow, con differenze che riguardano le operazioni di visualizzazione e chiusura. Ad esempio, la proprietà «:transient-for» è stata sostituita da un parametro nella funzione adw_dialog_present(), è stato aggiunto un nuovo segnale «::close-attempt» e modificata la gestione del parametro «:can-close». Invece delle classi AdwPreferencesWindow, AdwAboutWindow e AdwMessageDialog, con i nuovi dialoghi è consigliato utilizzare le classi AdwPreferencesDialog, AdwAboutDialog e AdwAlertDialog.

I dialoghi che non hanno una finestra genitore continueranno a essere gestiti come finestre separate. Anche i dialoghi le cui finestre genitore non possono essere utilizzate per la visualizzazione, ad esempio se non consentono di ridimensionare o se non dispongono delle classi AdwWindow e AdwApplicationWindow, funzioneranno come finestre.

Modifiche non correlate alla riprogettazione dei dialoghi in Libadwaita 1.5:

  • Nella classe AdwEntryRow è stata aggiunta la proprietà «:text-length» per limitare la lunghezza del testo nel campo di input.
  • Nella classe AdwMessageDialog è stato aggiunto il metodo remove_response().
  • Nella classe AdwBreakpointBin, che consente di modificare l'interfaccia utente in base alle dimensioni della finestra, è stata aggiunta la possibilità di rimuovere programmaticamente i punti di interruzione.
  • Nella classe AdwSwipeTracker è stata aggiunta un'opzione «:allow-window-handle» che consente lo scorrimento sopra la barra superiore (utilizzato in fogli ancorati al margine inferiore).
  • Incrementata la luminosità dei colori utilizzati per l'ombreggiatura delle finestre in modalità scura.

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