Projek GNOME telah menerbitkan keluaran Libadwaita 1.2, yang merangkumi satu set komponen untuk penggayaan antara muka pengguna yang mengikut GNOME HIG (Garis Panduan Antaramuka Manusia). Pustaka termasuk widget dan objek siap sedia untuk membina aplikasi yang mematuhi gaya GNOME umum, antara muka yang boleh disesuaikan secara adaptif ke skrin dalam sebarang saiz. Kod perpustakaan ditulis dalam C dan diedarkan di bawah lesen LGPL 2.1+.
Pustaka libadwaita digunakan bersama dengan GTK4 dan termasuk komponen tema Adwaita yang digunakan dalam GNOME, yang telah dialihkan keluar daripada GTK ke pustaka yang berasingan. Memindahkan elemen penggayaan GNOME ke dalam pustaka berasingan membolehkan perubahan khusus GNOME dibangunkan secara berasingan daripada GTK, membolehkan pembangun GTK menumpukan perhatian pada bahan teras dan pembangun GNOME untuk lebih cepat dan fleksibel mendorong perubahan penggayaan ke hadapan yang mereka inginkan tanpa menjejaskan GTK itu sendiri.
Pustaka termasuk widget standard yang meliputi pelbagai elemen antara muka, seperti senarai, panel, blok penyuntingan, butang, tab, borang carian, kotak dialog, dsb. Widget yang dicadangkan membolehkan anda mencipta antara muka sejagat yang berfungsi dengan lancar pada skrin PC dan komputer riba yang besar serta pada skrin sentuh kecil telefon pintar. Antara muka aplikasi berubah secara dinamik bergantung pada saiz skrin dan peranti input yang tersedia. Perpustakaan ini juga termasuk satu set gaya Adwaita yang membawa penampilan selaras dengan garis panduan GNOME tanpa memerlukan penyesuaian manual.
Perubahan besar dalam 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 ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΡΠ΅ ΠΆΠ΅ ΡΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΠΏΠ°Π½Π΅Π»ΡΡ
Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΏΠΎΠΈΡΠΊΠ° ΠΈ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ.
Sumber: opennet.ru