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

Il progetto GNOME ha pubblicato il rilascio di Libadwaita 1.5, che include una serie di componenti per lo stile dell'interfaccia utente che segue GNOME HIG (Human Interface Guideline). La libreria include widget e oggetti già pronti per la creazione di applicazioni conformi allo stile generale GNOME, la cui interfaccia può essere adattata in modo adattivo a schermi di qualsiasi dimensione. Il codice della libreria è scritto in C ed è distribuito sotto la licenza LGPL 2.1+.

La libreria libadwaita viene utilizzata insieme a GTK4 e include componenti del tema Adwaita utilizzato in GNOME, che sono stati spostati da GTK in una libreria separata. Lo spostamento degli elementi di stile GNOME in una libreria separata consente di sviluppare modifiche specifiche di GNOME separatamente da GTK, consentendo agli sviluppatori GTK di concentrarsi sugli elementi principali e agli sviluppatori GNOME di portare avanti in modo più rapido e flessibile le modifiche di stile desiderate senza influenzare GTK stessa.

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 universali che funzionano perfettamente sia sui grandi schermi di PC e laptop, sia sui piccoli touch screen degli smartphone. L'interfaccia dell'applicazione cambia dinamicamente a seconda delle dimensioni dello schermo e dei dispositivi di input disponibili. La libreria include anche una serie di stili Adwaita che allineano l'aspetto alle linee guida GNOME senza la necessità di adattamenti manuali.

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

Il cambiamento principale in libadwaita 1.5 è stata la rielaborazione dei widget adattivi per creare finestre di dialogo che si adattano alla dimensione dell'area visibile. A differenza delle finestre di dialogo tradizionali, che sono ospitate in finestre separate, le nuove finestre di dialogo vengono renderizzate sul lato client, all'interno delle finestre esistenti e non possono estendersi oltre la finestra principale. Questo approccio semplifica la creazione di finestre di dialogo universali che possono essere combinate con interfacce per sistemi mobili e desktop e fornisce anche opzioni aggiuntive per la gestione delle finestre di dialogo (ad esempio, non è necessario monitorare l'uscita dal bordo della finestra, è possibile scegliere il comportamento di pulsanti di chiusura, l'espansione automatica a schermo intero è fornita nelle versioni mobili delle applicazioni, lo stile della finestra corrente, non il sistema, viene preso in considerazione quando si oscura la finestra di dialogo).

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

In futuro, si prevede di implementare un'altra versione di tali finestre di dialogo, collegata non a finestre, ma a schede all'interno della finestra, che potrebbe essere necessaria in applicazioni come i browser in modo che le finestre di dialogo associate a una scheda non si sovrappongano alla finestra principale quando passaggio da una scheda all'altra.

Per i dispositivi mobili, è stato implementato il supporto per posizionare le finestre di dialogo sotto forma di fogli ancorati nella parte inferiore dello schermo (fogli inferiori), anziché sotto forma di fogli allineati al centro. Le finestre di dialogo attaccate in basso evitano agli utenti di confondersi con la chiusura delle finestre: in tali finestre di dialogo, parte della finestra principale rimane visibile e i pulsanti per chiudere la finestra principale e la finestra di dialogo stessa sono chiaramente separati, quindi ora è difficile confonderli.

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

Le nuove finestre di dialogo vengono gestite utilizzando la classe AdwDialog, che nella maggior parte dei casi è simile all'utilizzo della classe GtkWindow, con le differenze nelle operazioni di visualizzazione e chiusura. Ad esempio, la proprietà “:transient-for” è stata sostituita con un parametro nella funzione adw_dialog_present(), è stato aggiunto un nuovo segnale “::close-attempt” e l'elaborazione del parametro “:can-close” è stata modificata . Al posto delle classi AdwPreferencesWindow, AdwAboutWindow e AdwMessageDialog, si propone di utilizzare le classi AdwPreferencesDialog, AdwAboutDialog e AdwAlertDialog con nuove finestre di dialogo.

Le finestre di dialogo che non hanno una finestra principale verranno comunque trattate come finestre separate. Le finestre di dialogo le cui finestre principali non possono essere utilizzate per ospitare finestre di dialogo funzioneranno anche come finestre, ad esempio, se non consentono il ridimensionamento o se non dispongono delle relative classi AdwWindow e AdwApplicationWindow.

Modifiche non correlate alla rielaborazione dei dialoghi in Libadwaita 1.5:

  • Aggiunta la proprietà ":text-length" alla classe AdwEntryRow per limitare la dimensione del testo nel campo di input.
  • Aggiunto il metodoremove_response() alla classe AdwMessageDialog.
  • Alla classe AdwBreakpointBin è stata aggiunta la possibilità di rimuovere punti di interruzione a livello di codice, che consente di modificare l'interfaccia utente in qualsiasi modo a seconda della dimensione della finestra.
  • Aggiunto il flag ":allow-window-handle" alla classe AdwSwipeTracker per consentire lo scorrimento sulla parte superiore della barra superiore (utilizzato nei fogli attaccati al bordo inferiore).
  • Aumentata la luminosità dei colori utilizzati quando si ombreggiano le finestre in uno stile di design scuro.

Fonte: opennet.ru

Aggiungi un commento