Útgáfa af Libadwaita 1.5 bókasafninu til að búa til GNOME-stíl viðmót

GNOME verkefnið hefur gefið út útgáfu Libadwaita 1.5, sem inniheldur sett af íhlutum fyrir notendaviðmótsstíl sem fylgir GNOME HIG (Human Interface Guidelines). Bókasafnið inniheldur tilbúnar græjur og hluti til að byggja upp forrit sem eru í samræmi við almenna GNOME stíl, viðmótið sem hægt er að aðlaga að skjáum af hvaða stærð sem er. Bókasafnskóðinn er skrifaður í C ​​og er dreift undir LGPL 2.1+ leyfinu.

Libadwaita bókasafnið er notað í tengslum við GTK4 og inniheldur hluti af Adwaita þemanu sem notað er í GNOME, sem hefur verið flutt út úr GTK í sérstakt bókasafn. Með því að færa GNOME stílþætti í sérstakt bókasafn er hægt að þróa GNOME sérstakar breytingar aðskildar frá GTK, sem gerir GTK forriturum kleift að einbeita sér að kjarnaefninu og GNOME forriturum að hraðar og sveigjanlega ýta fram stílbreytingum sem þeir vilja án þess að hafa áhrif á GTK sjálft.

Bókasafnið inniheldur staðlaðar græjur sem ná yfir ýmsa viðmótsþætti, svo sem lista, spjöld, klippikubba, hnappa, flipa, leitareyðublöð, glugga osfrv. Fyrirhugaðar græjur gera þér kleift að búa til alhliða viðmót sem virka óaðfinnanlega bæði á stórum tölvu- og fartölvuskjám og á litlum snertiskjáum snjallsíma. Forritsviðmótið breytist kraftmikið eftir skjástærð og tiltækum inntakstækjum. Bókasafnið inniheldur einnig sett af Adwaita stílum sem færa útlitið í samræmi við GNOME leiðbeiningar án þess að þörf sé á handvirkri aðlögun.

Útgáfa af Libadwaita 1.5 bókasafninu til að búa til GNOME-stíl viðmót

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

Útgáfa af Libadwaita 1.5 bókasafninu til að búa til GNOME-stíl viðmótÚtgáfa af Libadwaita 1.5 bókasafninu til að búa til GNOME-stíl viðmót

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

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

Útgáfa af Libadwaita 1.5 bókasafninu til að búa til GNOME-stíl viðmót

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

Heimild: opennet.ru

Bæta við athugasemd