Scaoileadh leabharlann Libadwaita 1.5 chun comhéadain ar stíl GNOME a chruthú

D'fhoilsigh Tionscadal GNOME scaoileadh leabharlann Libadwaita 1.5, a chuimsíonn sraith comhpháirteanna chun an comhéadan úsáideora a stíliú a chomhlíonann moltaí GNOME HIG (Treoirlínte Comhéadain Daonna). Áiríonn an leabharlann giuirléidí agus rudaí réamhdhéanta le haghaidh feidhmchláir tógála a chomhlíonann stíl ghinearálta GNOME, ar féidir lena gcomhéadan a oiriúnú go freagrach do scáileáin ar aon mhéid. Tá cód na leabharlainne scríofa i dteanga C agus dáilte faoin gceadúnas LGPL 2.1+.

Úsáidtear leabharlann libadwaita i gcomhar le GTK4 agus áirítear léi comhpháirteanna den chraiceann Adwaita a úsáidtear i GNOME a aistríodh as GTK go leabharlann ar leith. Nuair a bhogtar na amhairc GNOME isteach i leabharlann ar leith is féidir athruithe a theastaíonn ó GNOME a fhorbairt ar leithligh ó GTK, rud a ligeann d’fhorbróirí GTK díriú ar na bunghnéithe, agus d’fhorbróirí GNOME a gcuid athruithe stíle féin a bhrú níos tapúla agus níos solúbtha gan cur isteach ar GTK féin.

Áirítear sa leabharlann giuirléidí caighdeánacha a chlúdaíonn gnéithe comhéadan éagsúla, mar shampla liostaí, painéil, bloic eagarthóireachta, cnaipí, cluaisíní, foirmeacha cuardaigh, boscaí dialóige, etc. Ligeann na giuirléidí atá beartaithe duit comhéadain uilíocha a chruthú a fheidhmíonn gan uaim ar scáileáin mhóra ríomhairí pearsanta agus ríomhairí glúine, agus ar scáileáin tadhaill bheaga d’fhón cliste. Athraíonn comhéadan an fheidhmchláir go dinimiciúil ag brath ar mhéid an scáileáin agus ar na gléasanna ionchuir atá ar fáil. Áirítear sa leabharlann freisin sraith de stíleanna Adwaita a thugann cuma agus mothú do threoirlínte GNOME gan gá le saincheaptha láimhe.

Scaoileadh leabharlann Libadwaita 1.5 chun comhéadain ar stíl GNOME a chruthú

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

Scaoileadh leabharlann Libadwaita 1.5 chun comhéadain ar stíl GNOME a chruthúScaoileadh leabharlann Libadwaita 1.5 chun comhéadain ar stíl GNOME a chruthú

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

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

Scaoileadh leabharlann Libadwaita 1.5 chun comhéadain ar stíl GNOME a chruthú

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

Foinse: oscailtenet.ru

Add a comment