GNOME スタイルのインターフェースを作成するための Libadwaita 1.5 ライブラリのリリース

GNOME プロジェクトは、Libadwaita 1.5 のリリースを公開しました。これには、GNOME HIG (ヒューマン インターフェイス ガイドライン) に準拠したユーザー インターフェイス スタイル用のコンポーネントのセットが含まれています。 このライブラリには、一般的な GNOME スタイルに準拠したアプリケーションを構築するための既製のウィジェットとオブジェクトが含まれており、そのインターフェイスはあらゆるサイズの画面に適応して調整できます。 ライブラリ コードは C で書かれており、LGPL 2.1+ ライセンスに基づいて配布されます。

libadwaita ライブラリは GTK4 と組み合わせて使用​​され、GNOME で使用される Adwaita テーマのコンポーネントが含まれています。これらは GTK から別のライブラリに移動されました。 GNOME スタイル要素を別のライブラリに移動すると、GNOME 固有の変更を GTK とは別に開発できるようになり、GTK 開発者はコア部分に集中でき、GNOME 開発者は GTK 自体に影響を与えることなく、必要なスタイル変更をより迅速かつ柔軟に進めることができます。

ライブラリには、リスト、パネル、編集ブロック、ボタン、タブ、検索フォーム、ダイアログ ボックスなど、さまざまなインターフェイス要素をカバーする標準ウィジェットが含まれています。 提案されたウィジェットを使用すると、PC やラップトップの大きな画面とスマートフォンの小さなタッチ スクリーンの両方でシームレスに機能するユニバーサル インターフェイスを作成できます。 アプリケーション インターフェイスは、画面サイズと利用可能な入力デバイスに応じて動的に変化します。 このライブラリには、手動で調整することなく外観を GNOME ガイドラインに一致させる一連の Adwaita スタイルも含まれています。

GNOME スタイルのインターフェースを作成するための Libadwaita 1.5 ライブラリのリリース

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

GNOME スタイルのインターフェースを作成するための Libadwaita 1.5 ライブラリのリリースGNOME スタイルのインターフェースを作成するための Libadwaita 1.5 ライブラリのリリース

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

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

GNOME スタイルのインターフェースを作成するための Libadwaita 1.5 ライブラリのリリース

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

出所: オープンネット.ru

コメントを追加します