Ħruġ tal-librerija Libadwaita 1.5 għall-ħolqien ta' interfaces ta' stil GNOME

Il-Proġett GNOME ippubblika r-rilaxx ta' Libadwaita 1.5, li jinkludi sett ta' komponenti għall-istil tal-interface tal-utent li jsegwi l-GNOME HIG (Linji Gwida tal-Interfaċċa Umana). Il-librerija tinkludi widgets lesti u oġġetti għall-bini ta 'applikazzjonijiet li jikkonformaw mal-istil ġenerali GNOME, li l-interface tagħhom jista' jiġi aġġustat b'mod adattiv għal skrins ta 'kull daqs. Il-kodiċi tal-librerija huwa miktub b'Ċ u huwa mqassam taħt il-liċenzja LGPL 2.1+.

Il-librerija libadwaita tintuża flimkien ma' GTK4 u tinkludi komponenti tat-tema Adwaita użati f'GNOME, li ġew imċaqalqa minn GTK għal librerija separata. Iċ-ċaqliq tal-elementi tal-istil GNOME f'librerija separata jippermetti li bidliet speċifiċi għal GNOME jiġu żviluppati separatament minn GTK, li jippermetti lill-iżviluppaturi GTK jiffokaw fuq l-affarijiet ewlenin u lill-iżviluppaturi GNOME biex jimbuttaw 'il quddiem il-bidliet tal-istil li jridu b'mod aktar mgħaġġel u flessibbli mingħajr ma jaffettwaw il-GTK innifsu.

Il-librerija tinkludi widgets standard li jkopru diversi elementi tal-interface, bħal listi, pannelli, blokki ta 'editjar, buttuni, tabs, formoli ta' tfittxija, kaxxi tad-djalogu, eċċ. Il-widgets proposti jippermettulek toħloq interfaces universali li jiffunzjonaw bla xkiel kemm fuq skrins kbar tal-PC u laptops, kif ukoll fuq touch screens żgħar ta 'smartphones. L-interface tal-applikazzjoni tinbidel b'mod dinamiku skont id-daqs tal-iskrin u l-apparati ta 'input disponibbli. Il-librerija tinkludi wkoll sett ta’ stili Adwaita li jġibu d-dehra f’konformità mal-linji gwida ta’ GNOME mingħajr il-ħtieġa ta’ adattament manwali.

Ħruġ tal-librerija Libadwaita 1.5 għall-ħolqien ta' interfaces ta' stil GNOME

Основным изменением в libadwaita 1.5 стала переработка адаптивных виджетов для создания диалоговых окон, подстраивающихся под размер видимой области. В отличие от традиционных диалогов, которые размещаются в отдельных окнах, новые диалоги формируются на стороне клиента, отрисовываются внутри существующих окон и не могут выходить за пределы родительского окна. Подобный подход упрощает создание универсальных диалогов, сочетаемых с интерфейсами для мобильных и настольных систем, а также предоставляет дополнительные возможности для управления диалогами (например, не нужно отслеживать выход за границу окна, можно выбирать поведение в отношении кнопок закрытия, обеспечивается автоматическое развёртывание на весь экран в мобильных версиях приложений, учитывается стиль текущего окна, а не системы, при затемнении диалога).

Ħruġ tal-librerija Libadwaita 1.5 għall-ħolqien ta' interfaces ta' stil GNOMEĦruġ tal-librerija Libadwaita 1.5 għall-ħolqien ta' interfaces ta' stil GNOME

В дальнейшем планируется реализовать ещё один вариант подобных диалогов, привязанных не к окнам, а ко вкладкам внутри окна, что может быть востребовано в таких приложениях, как браузеры для того, чтобы связанные со вкладкой диалоги не перекрывали основное окно при переключении между вкладками.

Для мобильных устройств реализована поддержка размещения диалогов в форме листов, закреплённых в нижней части экрана (bottom sheets), а не в форме листов, выровненных по центру. Прикреплённые к нижней части диалоги избавляют пользователей от путаницы с закрытием окон — в подобных диалогах часть родительского окна остаётся видимой и кнопки закрытия родительского окна и самого диалога явно разделены, поэтому их теперь трудно спутать.

Ħruġ tal-librerija Libadwaita 1.5 għall-ħolqien ta' interfaces ta' stil GNOME

Управление новыми диалогами производится при помощи класса 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», допускающий пролистывание поверх верхней панели (используется в листах, прикреплённых к нижнему краю).
  • Повышена яркость цветов, используемых при затенении окон при тёмном стиле оформления.

Sors: opennet.ru

Żid kumment