Vrystelling van die Libadwaita 1.5-biblioteek vir die skep van GNOME-styl-koppelvlakke

Die GNOME-projek het die vrystelling van die Libadwaita 1.5-biblioteek gepubliseer, wat 'n stel komponente insluit vir die stilering van die gebruikerskoppelvlak wat voldoen aan die GNOME HIG (Human Interface Guidelines) aanbevelings. Die biblioteek bevat klaargemaakte widgets en voorwerpe vir die bou van toepassings wat voldoen aan die algemene GNOME-styl, waarvan die koppelvlak reageerend kan aanpas by skerms van enige grootte. Die biblioteekkode is in C-taal geskryf en onder die LGPL 2.1+-lisensie versprei.

Die libadwaita-biblioteek word saam met GTK4 gebruik en bevat komponente van die Adwaita-vel wat in GNOME gebruik word, wat uit GTK na 'n aparte biblioteek geskuif is. Deur GNOME-visuele materiaal na 'n aparte biblioteek te skuif, kan GNOME-nodige veranderinge apart van GTK ontwikkel word, wat GTK-ontwikkelaars in staat stel om op die basiese beginsels te fokus, en GNOME-ontwikkelaars om stileringsveranderinge vir hulself vinniger en buigsaam te maak sonder om GTK self te beΓ―nvloed.

Die biblioteek bevat standaard widgets wat verskeie koppelvlakelemente dek, soos lyste, panele, redigeerblokke, knoppies, oortjies, soekvorms, dialoogkassies, ens. Die voorgestelde widgets laat jou toe om universele koppelvlakke te skep wat naatloos funksioneer op beide groot skerms van rekenaars en skootrekenaars, en op klein raakskerms van slimfone. Die toepassingskoppelvlak verander dinamies na gelang van die skermgrootte en beskikbare invoertoestelle. Die biblioteek bevat ook 'n stel Adwaita-style wat die voorkoms en gevoel na GNOME-riglyne bring sonder dat dit nodig is vir handmatige aanpassing.

Vrystelling van die Libadwaita 1.5-biblioteek vir die skep van GNOME-styl-koppelvlakke

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

Vrystelling van die Libadwaita 1.5-biblioteek vir die skep van GNOME-styl-koppelvlakkeVrystelling van die Libadwaita 1.5-biblioteek vir die skep van GNOME-styl-koppelvlakke

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

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

Vrystelling van die Libadwaita 1.5-biblioteek vir die skep van GNOME-styl-koppelvlakke

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³Π°ΠΌΠΈ производится ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ класса 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Β», Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ пролистываниС ΠΏΠΎΠ²Π΅Ρ€Ρ… Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² листах, ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Ρ‘Π½Π½Ρ‹Ρ… ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ ΠΊΡ€Π°ΡŽ).
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ€ΠΊΠΎΡΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ Π·Π°Ρ‚Π΅Π½Π΅Π½ΠΈΠΈ ΠΎΠΊΠΎΠ½ ΠΏΡ€ΠΈ Ρ‚Ρ‘ΠΌΠ½ΠΎΠΌ стилС оформлСния.

Bron: opennet.ru

Voeg 'n opmerking