U Prughjettu GNOME hà publicatu a liberazione di Libadwaita 1.2, chì include un inseme di cumpunenti per u stilu di l'interfaccia d'utilizatore chì seguita u GNOME HIG (Guida di l'interfaccia umana). A biblioteca include widgets pronti è oggetti per a custruzione di l'applicazioni chì cumplenu cù u stilu generale di GNOME, l'interfaccia di quale pò esse adattatu adattatu à schermi di ogni dimensione. U codice di a biblioteca hè scrittu in C è hè distribuitu sottu a licenza LGPL 2.1+.
A biblioteca libadwaita hè aduprata in cunjunzione cù GTK4 è include cumpunenti di u tema Adwaita utilizatu in GNOME, chì sò stati spustati da GTK in una biblioteca separata. Spostà elementi di stile di GNOME in una biblioteca separata permette à i cambiamenti specifichi di GNOME esse sviluppati separatamente da GTK, chì permette à i sviluppatori di GTK di fucalizza nantu à e cose core è i sviluppatori di GNOME per spinghje più rapidamente è in modu flessibile i cambiamenti di stile chì volenu senza affettà GTK stessu.
A biblioteca include widgets standard chì coprenu diversi elementi di l'interfaccia, cum'è liste, pannelli, blocchi di editazione, buttoni, tabulazioni, forme di ricerca, scatuli di dialogu, etc. I widgets pruposti permettenu di creà interfacce universali chì funzionanu perfettamente sia in grandi schermi di PC è laptop, sia in picculi schermi tattili di smartphones. L'interfaccia di l'applicazione cambia dinamicamente secondu a dimensione di u screnu è i dispositi di input dispunibili. A biblioteca include ancu un inseme di stili Adwaita chì portanu l'apparenza in linea cù e linee di GNOME senza bisognu di adattazione manuale.
I cambiamenti maiΓ² in libadwaita 1.2:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π²ΠΈΠ΄ΠΆΠ΅Ρ Adw.EntryRow, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠΎΠ². ΠΠΈΠ΄ΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ). ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π²Π°ΡΠΈΠ°Π½Ρ Adw.PasswordEntryRow, ΡΠ°ΡΡΡΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Π²Π²ΠΎΠ΄ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π²ΠΈΠ΄ΠΆΠ΅Ρ Adw.MessageDialog Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π΄ΠΈΠ°Π»ΠΎΠ³Π° Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ. ΠΠΈΠΆΠ΄Π΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Gtk.MessageDialog, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΎΠΊΠ½Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠΈΡΠΎΠΊΠΈΡ
ΠΎΠΊΠ½Π°Ρ
ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΎΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, Π° Π² ΡΠ·ΠΊΠΈΡ
β ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. ΠΡΡΠ³ΠΈΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ GtkDialog ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½ΠΎΠ²ΡΠΉ API, Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΠΊ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ ΡΠΈΠΏΠ°ΠΌ ΠΊΠ½ΠΎΠΏΠΎΠΊ GtkResponseType (Π² Adw.MessageDialog ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²ΡΠ΅Ρ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ), ΡΠΏΡΠΎΡΠ°ΡΡΠΈΠΉ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΡ
Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° extra-child ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈ Π΄Π»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π²ΠΈΠ΄ΠΆΠ΅Ρ Adw.AboutWindow Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΎΠΊΠ½Π° Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΠΈΠ΄ΠΆΠ΅Ρ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Gtk.AboutDialog ΠΈ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΊΡΠΈΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΠΊΠ½ΠΎ Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΡΠΌΠΈ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΡ
ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
- Π Π°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² Adw.TabView ΠΈ Adw.TabBar, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π³ΠΎΡΡΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠ°Π±ΠΎΡΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ, ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΠΈΡ ΡΡ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ GTK4 (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ctrl+Tab). Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΎΠΊ Π΄Π»Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠ»Π°ΡΡ Adw.PropertyAnimationTarget Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
- ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½ ΡΡΠΈΠ»Ρ ΠΏΠ°Π½Π΅Π»ΠΈ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ (Adw.TabBar) β Π±ΠΎΠ»Π΅Π΅ ΡΠ²Π½ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½Π° Π°ΠΊΡΠΈΠ²Π½Π°Ρ Π²ΠΊΠ»Π°Π΄ΠΊΠ° ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ.
- Π£ΠΌΠ΅Π½ΡΡΠ΅Π½Π° Π²ΡΡΠΎΡΠ° Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π² ΠΏΠ°Π½Π΅Π»ΠΈ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ ΠΈ ΡΡΡΠΎΠΊΠΎΠΉ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΠ·Π±Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΎΡΠ²Π»Π΅ΠΊΠ°ΡΡΠΈΡ ΡΠ²Π΅ΡΠ»ΡΡ Π³ΡΠ°Π½ΠΈΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΡΡΠΌΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ @headerbar_shade_color, ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΈΠ»Ρ ΡΠΎΠ½Π°, ΡΠΎΡΠ΅ΡΠ°ΡΡΠΈΠΉΡΡ Ρ ΠΏΠ°Π½Π΅Π»ΡΠΌΠΈ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅.
- ΠΠ±ΡΡΠ²Π»Π΅Π½ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ ΠΊΠ»Π°ΡΡ ΡΡΠΈΠ»Ρ Β«.large-titleΒ», Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Β«.title-1Β».
- Π£ΠΌΠ΅Π½ΡΡΠ΅Π½Ρ ΠΎΡΡΡΡΠΏΡ Π² Π²ΠΈΠ΄ΠΆΠ΅ΡΠ΅ Adw.ActionRow Π΄Π»Ρ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΡ Π΅Π³ΠΎ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π° ΠΊ ΠΏΠ°Π½Π΅Π»ΡΠΌ ΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ Adw.EntryRow.
- Π Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°Ρ
Gtk.Actionbar ΠΈ Adw.ViewSwitcherBar ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΡΠ΅ ΠΆΠ΅ ΡΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΠΏΠ°Π½Π΅Π»ΡΡ
Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΏΠΎΠΈΡΠΊΠ° ΠΈ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ.
Source: opennet.ru