ProyΓ©k GNOME parantos nyebarkeun sΓ©krΓ©si Libadwaita 1.2, anu kalebet sakumpulan komponΓ©n pikeun gaya antarmuka pangguna anu nuturkeun GNOME HIG (Pedoman Antarmuka Manusa). Perpustakaan ngawengku widget siap-dijieun jeung objΓ©k pikeun ngawangun aplikasi nu sasuai jeung gaya GNOME umum, antarbeungeut nu bisa adaptively disaluyukeun kana layar sagala ukuran. Kode perpustakaan ditulis dina C sarta disebarkeun dina LGPL 2.1+ lisΓ©nsi.
Perpustakaan libadwaita dianggo babarengan sareng GTK4 sareng kalebet komponΓ©n tΓ©ma Adwaita anu dianggo dina GNOME, anu parantos dikaluarkeun tina GTK kana perpustakaan anu misah. Mindahkeun elemen gaya GNOME kana perpustakaan anu misah ngamungkinkeun parobihan khusus GNOME dikembangkeun sacara misah ti GTK, ngamungkinkeun pamekar GTK fokus kana barang inti sareng pamekar GNOME pikeun langkung gancang sareng fleksibel nyorong parobihan gaya anu dipikahoyong tanpa mangaruhan GTK sorangan.
Perpustakaan ngawengku widget standar ngawengku rupa elemen panganteur, kayaning daptar, panels, blok Γ©ditan, tombol, tab, formulir pilarian, kotak dialog, jsb. Widget anu diusulkeun ngamungkinkeun anjeun nyiptakeun antarmuka universal anu fungsina lancar dina layar PC sareng laptop ageung, sareng dina layar toΓ©l leutik smartphone. Antarbeungeut aplikasi robih sacara dinamis gumantung kana ukuran layar sareng alat input anu sayogi. Perpustakaan ogΓ© nyertakeun sakumpulan gaya Adwaita anu ngajantenkeun penampilan saluyu sareng pedoman GNOME tanpa peryogi adaptasi manual.
Parobihan utama dina 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