Frigivelse af Libadwaita 1.5-biblioteket til at skabe grænseflader i GNOME-stil

GNOME-projektet har udgivet udgivelsen af ​​Libadwaita 1.5-biblioteket, som inkluderer et sæt komponenter til styling af brugergrænsefladen i overensstemmelse med GNOME HIG (Human Interface Guidelines) anbefalingerne. Biblioteket indeholder færdige widgets og objekter til at bygge applikationer, der overholder den generelle GNOME-stil, hvis grænseflade kan tilpasses responsivt til skærme af enhver størrelse. Bibliotekskoden er skrevet på C-sprog og distribueres under LGPL 2.1+-licensen.

Libadwaita-biblioteket bruges sammen med GTK4 og inkluderer komponenter af Adwaita-skindet, der bruges i GNOME, som er blevet flyttet ud af GTK til et separat bibliotek. Flytning af GNOME-visuel til et separat bibliotek gør det muligt for GNOME-nødvendige ændringer at blive udviklet separat fra GTK, hvilket giver GTK-udviklere mulighed for at fokusere på det grundlæggende, og GNOME-udviklere kan hurtigere og mere fleksibelt skubbe stilændringer til sig selv uden at påvirke GTK selv.

Biblioteket indeholder standardwidgets, der dækker forskellige grænsefladeelementer, såsom lister, paneler, redigeringsblokke, knapper, faner, søgeformularer, dialogbokse osv. De foreslåede widgets giver dig mulighed for at skabe universelle grænseflader, der fungerer problemfrit både på store skærme på pc'er og bærbare computere og på små berøringsskærme på smartphones. Applikationsgrænsefladen ændres dynamisk afhængigt af skærmstørrelsen og tilgængelige inputenheder. Biblioteket inkluderer også et sæt Adwaita-stile, der bringer udseendet og følelsen til GNOME-retningslinjer uden behov for manuel tilpasning.

Frigivelse af Libadwaita 1.5-biblioteket til at skabe grænseflader i GNOME-stil

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

Frigivelse af Libadwaita 1.5-biblioteket til at skabe grænseflader i GNOME-stilFrigivelse af Libadwaita 1.5-biblioteket til at skabe grænseflader i GNOME-stil

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

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

Frigivelse af Libadwaita 1.5-biblioteket til at skabe grænseflader i GNOME-stil

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

Kilde: opennet.ru

Tilføj en kommentar