Lëshimi i bibliotekës Libadwaita 1.5 për krijimin e ndërfaqeve të stilit GNOME

Projekti GNOME ka publikuar lëshimin e Libadwaita 1.5, i cili përfshin një grup përbërësish për stilimin e ndërfaqes së përdoruesit që ndjek GNOME HIG (Udhëzimet e Ndërfaqes Njerëzore). Biblioteka përfshin miniaplikacione të gatshme dhe objekte për ndërtimin e aplikacioneve që përputhen me stilin e përgjithshëm GNOME, ndërfaqja e të cilave mund të përshtatet në mënyrë të përshtatshme për ekranet e çdo madhësie. Kodi i bibliotekës është shkruar në C dhe shpërndahet nën licencën LGPL 2.1+.

Biblioteka libadwaita përdoret në lidhje me GTK4 dhe përfshin përbërës të temës Adwaita të përdorura në GNOME, të cilat janë zhvendosur nga GTK në një bibliotekë të veçantë. Zhvendosja e elementeve të stilimit të GNOME në një bibliotekë të veçantë lejon që ndryshimet specifike të GNOME të zhvillohen veçmas nga GTK, duke i lejuar zhvilluesit e GTK të fokusohen në gjërat thelbësore dhe zhvilluesit e GNOME të shtyjnë më shpejt dhe më fleksibël ndryshimet e stilimit që dëshirojnë pa ndikuar vetë GTK.

Biblioteka përfshin pajisje standarde që mbulojnë elementë të ndryshëm të ndërfaqes, të tilla si lista, panele, blloqe redaktimi, butona, skeda, formularë kërkimi, kuti dialogu, etj. Miniaplikacionet e propozuara ju lejojnë të krijoni ndërfaqe universale që funksionojnë pa probleme si në ekranet e mëdha të kompjuterëve dhe laptopëve, ashtu edhe në ekranet e vogla me prekje të telefonave inteligjentë. Ndërfaqja e aplikacionit ndryshon në mënyrë dinamike në varësi të madhësisë së ekranit dhe pajisjeve hyrëse të disponueshme. Biblioteka përfshin gjithashtu një grup stilesh Adwaita që sjellin pamjen në përputhje me udhëzimet e GNOME pa pasur nevojë për përshtatje manuale.

Lëshimi i bibliotekës Libadwaita 1.5 për krijimin e ndërfaqeve të stilit GNOME

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

Lëshimi i bibliotekës Libadwaita 1.5 për krijimin e ndërfaqeve të stilit GNOMELëshimi i bibliotekës Libadwaita 1.5 për krijimin e ndërfaqeve të stilit GNOME

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

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

Lëshimi i bibliotekës Libadwaita 1.5 për krijimin e ndërfaqeve të stilit 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», допускающий пролистывание поверх верхней панели (используется в листах, прикреплённых к нижнему краю).
  • Повышена яркость цветов, используемых при затенении окон при тёмном стиле оформления.

Burimi: opennet.ru

Shto një koment