Tso tawm Libadwaita 1.5 lub tsev qiv ntawv rau tsim GNOME-style interfaces

GNOME Project tau tshaj tawm qhov kev tso tawm ntawm Libadwaita 1.5, uas suav nrog cov txheej txheem rau cov neeg siv interface styling uas ua raws li GNOME HIG (Human Interface Guidelines). Lub tsev qiv ntawv suav nrog cov widgets npaj tau thiab cov khoom siv rau kev tsim cov ntawv thov uas ua raws li GNOME style, lub interface uas tuaj yeem hloov kho rau cov ntxaij vab tshaus ntawm txhua qhov loj me. Lub tsev qiv ntawv code sau hauv C thiab muab faib raws li LGPL 2.1+ daim ntawv tso cai.

Lub tsev qiv ntawv libadwaita yog siv ua ke nrog GTK4 thiab suav nrog cov ntsiab lus ntawm Adwaita cov ntsiab lus siv hauv GNOME, uas tau tsiv tawm ntawm GTK mus rau hauv ib lub tsev qiv ntawv cais. Tsiv GNOME styling ntsiab lus mus rau hauv ib lub tsev qiv ntawv cais tso cai rau GNOME cov kev hloov pauv tshwj xeeb tsim los ntawm GTK, tso cai rau GTK cov neeg tsim khoom tsom mus rau cov khoom tseem ceeb thiab GNOME cov neeg tsim tawm kom nrawm dua thiab hloov pauv hloov pauv hloov lawv xav tau yam tsis muaj kev cuam tshuam rau GTK nws tus kheej.

Lub tsev qiv ntawv suav nrog cov txheej txheem widgets uas suav nrog ntau lub ntsiab lus sib txuas, xws li cov npe, vaj huam sib luag, kho cov blocks, cov nyees khawm, tabs, cov ntawv tshawb fawb, cov thawv sib tham, thiab lwm yam. Cov widgets tau thov tso cai rau koj los tsim universal interfaces uas ua haujlwm seamlessly ob qho tib si ntawm PC loj thiab laptop cov ntxaij vab tshaus, thiab ntawm cov ntxaij vab tshaus me me ntawm smartphones. Daim ntawv thov interface hloov dynamically nyob ntawm qhov screen loj thiab muaj cov khoom siv nkag. Lub tsev qiv ntawv kuj suav nrog cov txheej txheem ntawm Adwaita uas coj cov tsos rau hauv txoj kab nrog GNOME cov lus qhia yam tsis tas yuav tsum tau hloov kho phau ntawv.

Tso tawm Libadwaita 1.5 lub tsev qiv ntawv rau tsim GNOME-style interfaces

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π² libadwaita 1.5 стала ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² для создания Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½, ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΠΎΠ΄ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ области. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΊΠ½Π°Ρ…, Π½ΠΎΠ²Ρ‹Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΊΠΎΠ½ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², сочСтаСмых с интСрфСйсами для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… систСм, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности для управлСния Π΄ΠΈΠ°Π»ΠΎΠ³Π°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΎΠΊΠ½Π°, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ закрытия, обСспСчиваСтся автоматичСскоС Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π½Π° вСсь экран Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… вСрсиях ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, учитываСтся ΡΡ‚ΠΈΠ»ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΎΠΊΠ½Π°, Π° Π½Π΅ систСмы, ΠΏΡ€ΠΈ Π·Π°Ρ‚Π΅ΠΌΠ½Π΅Π½ΠΈΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³Π°).

Tso tawm Libadwaita 1.5 lub tsev qiv ntawv rau tsim GNOME-style interfacesTso tawm Libadwaita 1.5 lub tsev qiv ntawv rau tsim GNOME-style interfaces

Π’ дальнСйшСм планируСтся Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², привязанных Π½Π΅ ΠΊ ΠΎΠΊΠ½Π°ΠΌ, Π° ΠΊΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΊΠ½Π°, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вострСбовано Π² Ρ‚Π°ΠΊΠΈΡ… прилоТСниях, ΠΊΠ°ΠΊ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ связанныС со Π²ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°Π»ΠΈ основноС ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ.

Для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° размСщСния Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ΅ листов, Π·Π°ΠΊΡ€Π΅ΠΏΠ»Ρ‘Π½Π½Ρ‹Ρ… Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части экрана (bottom sheets), Π° Π½Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ΅ листов, Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ. ΠŸΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Ρ‘Π½Π½Ρ‹Π΅ ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΉ части Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ ΠΈΠ·Π±Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΡ‚ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ с Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ ΠΎΠΊΠΎΠ½ β€” Π² ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π΄ΠΈΠ°Π»ΠΎΠ³Π°Ρ… Ρ‡Π°ΡΡ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° остаётся Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ закрытия Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ самого Π΄ΠΈΠ°Π»ΠΎΠ³Π° явно Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹, поэтому ΠΈΡ… Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΡΠΏΡƒΡ‚Π°Ρ‚ΡŒ.

Tso tawm Libadwaita 1.5 lub tsev qiv ntawv rau tsim GNOME-style interfaces

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³Π°ΠΌΠΈ производится ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ класса AdwDialog, Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ситуаций ΠΏΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° использованиС класса GtkWindow, Π° различия сводятся ΠΊ опСрациям отобраТСния ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ. НапримСр, свойство Β«:transient-forΒ» Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ adw_dialog_present(), Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ сигнал Β«::close-attemptΒ», ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Β«:can-closeΒ». ВмСсто классов AdwPreferencesWindow, AdwAboutWindow ΠΈ AdwMessageDialog с Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³Π°ΠΌΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ классы AdwPreferencesDialog, AdwAboutDialog ΠΈ AdwAlertDialog.

Π”ΠΈΠ°Π»ΠΎΠ³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΊΠΎΠ½. Как ΠΎΠΊΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ, Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для размСщСния Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ»ΠΈ для Π½ΠΈΡ… ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ классы AdwWindow ΠΈ AdwApplicationWindow.

НС связанныС с ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ² измСнСния Π² Libadwaita 1.5:

  • Π’ класс AdwEntryRow Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ свойство Β«:text-lengthΒ» для ограничСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° тСкста Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°.
  • Π’ класс AdwMessageDialog Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ remove_response().
  • Π’ класс AdwBreakpointBin, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Π½ΡΡ‚ΡŒ интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π² зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠΊΠ½Π°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ удалСния Ρ‚ΠΎΡ‡Π΅ΠΊ останова.
  • Π’ класс AdwSwipeTracker Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ Β«:allow-window-handleΒ», Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ пролистываниС ΠΏΠΎΠ²Π΅Ρ€Ρ… Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² листах, ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Ρ‘Π½Π½Ρ‹Ρ… ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ ΠΊΡ€Π°ΡŽ).
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ€ΠΊΠΎΡΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ Π·Π°Ρ‚Π΅Π½Π΅Π½ΠΈΠΈ ΠΎΠΊΠΎΠ½ ΠΏΡ€ΠΈ Ρ‚Ρ‘ΠΌΠ½ΠΎΠΌ стилС оформлСния.

Tau qhov twg los: opennet.ru

Ntxiv ib saib