Itusilẹ ti ile-ikawe Libadwaita 1.5 fun ṣiṣẹda awọn atọkun ara GNOME

Ise agbese GNOME ti ṣe atẹjade itusilẹ ti Libadwaita 1.5, eyiti o pẹlu akojọpọ awọn paati fun aṣa wiwo olumulo ti o tẹle GNOME HIG (Awọn Itọsọna Atọka Eniyan). Ile-ikawe naa pẹlu awọn ẹrọ ailorukọ ti a ti ṣetan ati awọn nkan fun kikọ awọn ohun elo ti o ni ibamu pẹlu ara GNOME gbogbogbo, wiwo eyiti o le ṣe atunṣe ni ibamu si awọn iboju ti iwọn eyikeyi. Koodu ile-ikawe ti kọ sinu C o si pin kaakiri labẹ iwe-aṣẹ LGPL 2.1+.

Ile-ikawe libadwaita jẹ lilo ni apapo pẹlu GTK4 ati pẹlu awọn paati ti akori Adwaita ti a lo ninu GNOME, eyiti o ti gbe jade ni GTK sinu ile-ikawe lọtọ. Gbigbe awọn eroja iselona GNOME sinu ile-ikawe lọtọ ngbanilaaye awọn ayipada kan pato GNOME lati ni idagbasoke lọtọ lati GTK, gbigba awọn oludasilẹ GTK lati dojukọ awọn nkan pataki ati awọn olupilẹṣẹ GNOME lati ni iyara diẹ sii ati ni irọrun Titari awọn ayipada aṣa iwaju ti wọn fẹ laisi ni ipa GTK funrararẹ.

Ile-ikawe naa pẹlu awọn ẹrọ ailorukọ boṣewa ti o bo ọpọlọpọ awọn eroja wiwo, gẹgẹbi awọn atokọ, awọn panẹli, awọn bulọọki ṣiṣatunṣe, awọn bọtini, awọn taabu, awọn fọọmu wiwa, awọn apoti ajọṣọ, ati bẹbẹ lọ. Awọn ẹrọ ailorukọ ti a dabaa gba ọ laaye lati ṣẹda awọn atọkun agbaye ti o ṣiṣẹ lainidi mejeeji lori PC nla ati awọn iboju kọnputa, ati lori awọn iboju ifọwọkan kekere ti awọn fonutologbolori. Ni wiwo ohun elo yipada ni agbara da lori iwọn iboju ati awọn ẹrọ titẹ sii ti o wa. Ile-ikawe naa tun pẹlu ṣeto ti awọn aza Adwaita ti o mu irisi wa si laini pẹlu awọn ilana GNOME laisi iwulo fun isọdi afọwọṣe.

Itusilẹ ti ile-ikawe Libadwaita 1.5 fun ṣiṣẹda awọn atọkun ara GNOME

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

Itusilẹ ti ile-ikawe Libadwaita 1.5 fun ṣiṣẹda awọn atọkun ara GNOMEItusilẹ ti ile-ikawe Libadwaita 1.5 fun ṣiṣẹda awọn atọkun ara GNOME

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

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

Itusilẹ ti ile-ikawe Libadwaita 1.5 fun ṣiṣẹda awọn atọkun ara 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», допускающий пролистывание поверх верхней панели (используется в листах, прикреплённых к нижнему краю).
  • Повышена яркость цветов, используемых при затенении окон при тёмном стиле оформления.

orisun: opennet.ru

Fi ọrọìwòye kun