Проект GNOME опубликовал выпуск библиотеки Libadwaita 1.3, включающей набор компонентов для стилевого оформления интерфейса пользователя, соответствующего рекомендациям GNOME HIG (Human Interface Guidelines). Библиотека включает в себя готовые виджеты и объекты для построения приложений, соответствующих общему стилю GNOME, интерфейс которых может адаптивно подстраиваться под экраны любого размера. Код библиотеки написан на языке Си и распространяется под лицензией LGPL 2.1+.
Библиотека libadwaita используется в сочетании с GTK4 и включает компоненты используемой в GNOME темы оформления Adwaita, которые были вынесены из GTK в отдельную библиотеку. Вынос элементов визуального оформления GNOME в отдельную библиотеку позволяет развивать необходимые для GNOME изменения отдельно от GTK, что даёт возможность разработчикам GTK сосредоточиться на базовых вещах, а разработчикам GNOME более быстро и гибко продвигать необходимые для себя изменения стилевого оформления, не затрагивая сам GTK.
В библиотеку входят типовые виджеты, охватывающих различные элементы интерфейса, такие как списки, панели, блоки редактирования, кнопки, вкладки, формы поиска, диалоговые окна и т.п. Предложенные виджеты позволяют создавать универсальные интерфейсы, которые органично функционируют как на крупных экранах ПК и ноутбуков, так и на небольших сенсорных экранах смартфонов. Интерфейс приложений динамически меняется в зависимости от размера экрана и доступных устройств ввода. Библиотека также включает набор стилей Adwaita, приводящих внешний вид в соответствие с рекомендациями GNOME, без необходимости выполнения ручной адаптации.
Основные изменения в libadwaita 1.3:
Библиотека libadwaita используется в сочетании с GTK4 и включает компоненты используемой в GNOME темы оформления Adwaita, которые были вынесены из GTK в отдельную библиотеку. Вынос элементов визуального оформления GNOME в отдельную библиотеку позволяет развивать необходимые для GNOME изменения отдельно от GTK, что даёт возможность разработчикам GTK сосредоточиться на базовых вещах, а разработчикам GNOME более быстро и гибко продвигать необходимые для себя изменения стилевого оформления, не затрагивая сам GTK.
В библиотеку входят типовые виджеты, охватывающих различные элементы интерфейса, такие как списки, панели, блоки редактирования, кнопки, вкладки, формы поиска, диалоговые окна и т.п. Предложенные виджеты позволяют создавать универсальные интерфейсы, которые органично функционируют как на крупных экранах ПК и ноутбуков, так и на небольших сенсорных экранах смартфонов. Интерфейс приложений динамически меняется в зависимости от размера экрана и доступных устройств ввода. Библиотека также включает набор стилей Adwaita, приводящих внешний вид в соответствие с рекомендациями GNOME, без необходимости выполнения ручной адаптации.
Основные изменения в libadwaita 1.3:
- Реализован виджет AdwBanner, который можно использовать вместо GTK-виджета GtkInfoBar для отображения окон-баннеров, содержащих заголовок и одну необязательную кнопку. Содержимое виджета трансформируется в зависимости от размера, а при показе и скрытии может применяться анимация.
- Добавлен виджет AdwTabOverview, предназначенный для наглядного обзора вкладок или страниц, показываемых при помощи класса AdwTabView. Новый виджет можно использовать для организации работы с вкладками на мобильных устройствах без создания собственной реализации переключателя.
- Добавлен виджет AdwTabButton для отображения кнопок с информацией о числе открытых вкладок в AdwTabView, которые могут использоваться на мобильном устройстве для открытия режима обзора вкладок.
- Для виджетов AdwViewStack, AdwTabView и AdwEntryRow реализована поддержка средств для людей с ограниченными возможностями.
- В класс AdwAnimation добавлено свойство для игнорирования отключения анимации в системных настройках.
- В классе AdwActionRow появилась возможность выделения субтитров.
- В класс AdwExpanderRow добавлены свойства title-lines и subtitle-lines.
- В класс AdwEntryRow по аналогии с GtkEntry добавлен метод grab_focus_without_selecting().
- В класс AdwMessageDialog по аналогии с GtkAlertDialog добавлен метод async choose().
- В класс AdwTabBar добавлены вызовы API, связанные с интерфейсом drag-n-drop.
- В классе AdwAvatar обеспечено корректное масштабирование изображений.
- Добавлена возможность использования тёмного стиля и высококонтрастного режима при работе на платформе Windows.
- Выделенные элементы списков и сеток теперь подсвечиваются цветом, применяемым для выделения активных элементов (accent).