GNOME طرز جي انٽرفيس ٺاهڻ لاءِ Libadwaita 1.5 لائبريري جو رليز

GNOME پروجيڪٽ Libadwaita 1.5 جو رليز شايع ڪيو آهي، جنهن ۾ يوزر انٽرفيس اسٽائلنگ لاءِ اجزاء جو هڪ سيٽ شامل آهي جيڪو GNOME HIG (Human Interface Guidelines) جي پيروي ڪري ٿو. لائبريريءَ ۾ تيار ٿيل ويجيٽس ۽ شيون شامل آهن ايپليڪيشنن جي تعمير لاءِ جيڪي عام GNOME طرز سان مطابقت رکن ٿيون، جنهن جو انٽرفيس ڪنهن به سائيز جي اسڪرينن سان ترتيب ڏئي سگهجي ٿو. لائبريري ڪوڊ C ۾ لکيل آهي ۽ LGPL 2.1+ لائسنس تحت ورهايو ويو آهي.

libadwaita لائبريري کي GTK4 سان گڏ استعمال ڪيو ويو آهي ۽ GNOME ۾ استعمال ٿيل Adwaita موضوع جا حصا شامل آهن، جيڪي GTK کان ٻاهر هڪ الڳ لائبريري ۾ منتقل ڪيا ويا آهن. GNOME اسٽائلنگ عناصر کي الڳ لائبريري ۾ منتقل ڪرڻ جي اجازت ڏئي ٿي GNOME-مخصوص تبديلين کي GTK کان الڳ طور تي، GTK ڊولپرز کي بنيادي شين تي ڌيان ڏيڻ جي اجازت ڏئي ٿي ۽ GNOME ڊولپرز کي وڌيڪ جلدي ۽ لچڪدار انداز ۾ اڳتي وڌڻ جي اسٽائلنگ تبديلين کي اڳتي وڌائڻ جي اجازت ڏئي ٿو جيڪي پاڻ GTK کي متاثر ڪرڻ کان سواء.

لائبريري ۾ معياري ويجيٽس شامل آهن جيڪي مختلف انٽرفيس عناصر کي ڍڪيندا آهن، جهڙوڪ لسٽون، پينل، ايڊيٽنگ بلاڪ، بٽڻ، ٽيب، سرچ فارم، ڊائلاگ باڪس وغيره. تجويز ڪيل ويجيٽس توهان کي آفاقي انٽرفيس ٺاهڻ جي اجازت ڏين ٿيون جيڪي ڪم ڪن ٿيون بغير ڪنهن ڪم جي ٻنهي وڏن پي سي ۽ ليپ ٽاپ اسڪرين تي، ۽ سمارٽ فونز جي ننڍي ٽچ اسڪرين تي. ايپليڪيشن انٽرفيس کي متحرڪ طور تي تبديل ڪري ٿو اسڪرين جي سائيز ۽ دستياب ان پٽ ڊوائيسز تي منحصر ڪري ٿو. لائبريري ۾ Adwaita طرزن جو هڪ سيٽ پڻ شامل آهي جيڪو ظاهري طور تي GNOME جي هدايتن جي مطابق آڻيندو آهي بغير دستي موافقت جي ضرورت جي.

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

جو ذريعو: opennet.ru

تبصرو شامل ڪريو