מעלדונג פון Libadwaita 1.5 ביבליאָטעק פֿאַר קריייטינג GNOME-נוסח ינטערפייסיז

די GNOME פּראָיעקט האט פארעפנטלעכט די מעלדונג פון Libadwaita 1.5, וואָס ינקלודז אַ סכום פון קאַמפּאָונאַנץ פֿאַר באַניצער צובינד סטילינג וואָס גייט די GNOME HIG (Human Interface Guidelines). די ביבליאָטעק כולל פאַרטיק ווידזשיץ און אַבדזשעקץ פֿאַר בנין אַפּלאַקיישאַנז וואָס נאָכקומען מיט די אַלגעמיינע GNOME סטיל, די צובינד פון וואָס קענען זיין אַדאַפּטיוולי אַדזשאַסטיד צו סקרינז פון קיין גרייס. דער ביבליאָטעק קאָד איז געשריבן אין C און איז פונאנדערגעטיילט אונטער די LGPL 2.1+ דערלויבעניש.

די ליבאַדוואַיטאַ ביבליאָטעק איז געניצט אין קאַנדזשאַנגקשאַן מיט GTK4 און כולל קאַמפּאָונאַנץ פון די אַדוואַיטאַ טעמע געניצט אין GNOME, וואָס זענען אריבערגעפארן פון GTK אין אַ באַזונדער ביבליאָטעק. מאָווינג GNOME סטילינג עלעמענטן אין אַ באַזונדער ביבליאָטעק אַלאַוז GNOME-ספּעציפיש ענדערונגען צו זיין דעוועלאָפּעד סעפּעראַטלי פֿון GTK, אַלאַוינג GTK דעוועלאָפּערס צו פאָקוס אויף די האַרץ שטאָפּן און GNOME דעוועלאָפּערס צו מער געשווינד און פלעקסאַבאַל שטופּן פאָרויס סטילינג ענדערונגען וואָס זיי ווילן אָן ווירקן GTK זיך.

די ביבליאָטעק כולל נאָרמאַל ווידזשיץ וואָס דעקן פאַרשידן צובינד עלעמענטן, אַזאַ ווי רשימות, פּאַנאַלז, עדיטינג בלאַקס, קנעפּלעך, טאַבס, זוכן פארמען, דיאַלאָג באָקסעס, עטק. די פארגעלייגט ווידזשיץ לאָזן איר צו שאַפֿן וניווערסאַל ינטערפייסיז וואָס פונקציאָנירן סימלאַס ביידע אויף גרויס פּיסי און לאַפּטאַפּ סקרינז, און אויף קליין פאַרבינדן סקרינז פון סמאַרטפאָנעס. די אַפּלאַקיישאַן צובינד ענדערונגען דינאַמיקאַללי דיפּענדינג אויף די פאַרשטעלן גרייס און בנימצא אַרייַנשרייַב דעוויסעס. די ביבליאָטעק אויך ינקלודז אַ גאַנג פון אַדוואַיטאַ סטיילז וואָס ברענגען די אויסזען אין שורה מיט GNOME גיידליינז אָן די נויט פֿאַר מאַנואַל אַדאַפּטיישאַן.

מעלדונג פון Libadwaita 1.5 ביבליאָטעק פֿאַר קריייטינג GNOME-נוסח ינטערפייסיז

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

מעלדונג פון Libadwaita 1.5 ביבליאָטעק פֿאַר קריייטינג GNOME-נוסח ינטערפייסיזמעלדונג פון Libadwaita 1.5 ביבליאָטעק פֿאַר קריייטינג GNOME-נוסח ינטערפייסיז

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

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

מעלדונג פון Libadwaita 1.5 ביבליאָטעק פֿאַר קריייטינג GNOME-נוסח ינטערפייסיז

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

מקור: opennet.ru

לייגן אַ באַמערקונג