Выпуск библиотеки Libadwaita 1.2 для создания интерфейсов в стиле GNOME

Проект GNOME опубликовал выпуск библиотеки Libadwaita 1.2, включающей набор компонентов для стилевого оформления интерфейса пользователя, соответствующего рекомендациям GNOME HIG (Human Interface Guidelines). Библиотека включает в себя готовые виджеты и объекты для построения приложений, соответствующих общему стилю GNOME, интерфейс которых может адаптивно подстраиваться под экраны любого размера. Код библиотеки написан на языке Си и распространяется под лицензией LGPL 2.1+.

Библиотека libadwaita используется в сочетании с GTK4 и включает компоненты используемой в GNOME темы оформления Adwaita, которые были вынесены из GTK в отдельную библиотеку. Вынос элементов визуального оформления GNOME в отдельную библиотеку позволяет развивать необходимые для GNOME изменения отдельно от GTK, что даёт возможность разработчикам GTK сосредоточиться на базовых вещах, а разработчикам GNOME более быстро и гибко продвигать необходимые для себя изменения стилевого оформления, не затрагивая сам GTK.

В библиотеку входят типовые виджеты, охватывающих различные элементы интерфейса, такие как списки, панели, блоки редактирования, кнопки, вкладки, формы поиска, диалоговые окна и т.п. Предложенные виджеты позволяют создавать универсальные интерфейсы, которые органично функционируют как на крупных экранах ПК и ноутбуков, так и на небольших сенсорных экранах смартфонов. Интерфейс приложений динамически меняется в зависимости от размера экрана и доступных устройств ввода. Библиотека также включает набор стилей Adwaita, приводящих внешний вид в соответствие с рекомендациями GNOME, без необходимости выполнения ручной адаптации.

Основные изменения в libadwaita 1.2:

  • Добавлен виджет Adw.EntryRow, предназначенный для использования в качестве элемента списков. Виджет предоставляет поле ввода и заголовок с возможностью прикрепления дополнительных виджетов перед и после поля ввода (например, кнопки подтверждения ввода или индикатор того, что данные можно редактировать).
    Дополнительно доступен вариант Adw.PasswordEntryRow, рассчитанный на ввод паролей.
  • Добавлен виджет Adw.MessageDialog для вывода диалога с сообщением или вопросом. Виждет является расширенной заменой Gtk.MessageDialog, которая может подстраивать компоновку элементов к размеру окна. Например, в широких окнах кнопки могут выводиться в одой строке, а в узких — разбиваться на несколько колонок. Другим отличием является то, что виджет не является дочерним классом GtkDialog и предоставляет полностью новый API, не привязанный к предопределённым типам кнопок GtkResponseType (в Adw.MessageDialog обработка всех действий выполняется приложением), упрощающий встраивание других виджетов при помощи свойства extra-child и предоставляющий отдельные стили для заголовка и основного текста.

  • Добавлен виджет Adw.AboutWindow для вывода окна с информацией о программе. Виджет заменяет Gtk.AboutDialog и отличается применением адаптивной компоновки элементов и расширенными вспомогательными секциями, такими как список изменений, окно с благодарностями, информация о лицензиях сторонних компонентов, ссылки на информационные ресурсы и данные для упрощения отладки.



  • Расширены возможности виджетов Adw.TabView и Adw.TabBar, в которых переработан механизм обработки горячих клавиш для решения проблемы с работой комбинаций, пересекающихся с обработчиками GTK4 (например, Ctrl+Tab). В новой версии также предложено свойство для установки всплывающих подсказок для индикаторов и кнопок вкладок.
  • Добавлен класс Adw.PropertyAnimationTarget для упрощения анимирования свойств объектов.
  • Значительно изменён стиль панели вкладок (Adw.TabBar) — более явно выделена активная вкладка и увеличена контрастность элементов в варианте для тёмного оформления.

  • Уменьшена высота вертикальных разделителей, что позволило в панели с заголовком и строкой поиска избавится от отвлекающих светлых границ в пользу тёмных границ, задаваемых при помощи @headerbar_shade_color, и добавить стиль фона, сочетающийся с панелями в заголовке.
  • Объявлен устаревшим класс стиля «.large-title», вместо которого следует использовать «.title-1».
  • Уменьшены отступы в виджете Adw.ActionRow для приближения его внешнего вида к панелям и виджету Adw.EntryRow.
  • В виджетах Gtk.Actionbar и Adw.ViewSwitcherBar использованы те же стили, что применяются в панелях заголовка, поиска и вкладок.

Источник: http://www.opennet.ru/opennews/art.shtml?num=57792