Проектът GNOME наскоро обяви пускането на библиотеката Libadwaita 1.3., който включва набор от компоненти за проектиране на потребителски интерфейс, който е съвместим с GNOME HIG (Указания за човешки интерфейс). Библиотеката включва готови за използване уиджети и обекти за създаване на приложения, които отговарят на общия стил на GNOME, чийто интерфейс може да се адаптира към всякакъв размер на екрана.
Библиотеката libadwaita се използва във връзка с GTK4 и включва компоненти на кожата на Adwaita, използвани в GNOME, които са преместени от GTK в отделна библиотека.
Преместването на изображения на GNOME в отделна библиотека позволява промените, необходими за GNOME, да бъдат разработени отделно от GTK, което позволява на разработчиците на GTK да се съсредоточат върху основите, а на разработчиците на GNOME да прокарат своите собствени промени в стила по-бързо и гъвкаво, без да засягат GTK.
Библиотеката включва стандартни уиджети, които обхващат различни елементи на интерфейса като списъци, панели, блокове за редактиране, бутони, раздели, форми за търсене, диалогови прозорци и др. Предложените джаджи ви позволяват да създавате универсални интерфейси, които работят гладко както на големи екрани на компютри и лаптопи, така и на малки сензорни екрани на смартфони.
Интерфейсът на приложението се променя динамично в зависимост от размера на екрана и наличните входни устройства. Библиотеката също така включва набор от стилове на Adwaita, които придават облика и усещането на указанията на GNOME без необходимост от ръчно персонализиране.
Основни нови характеристики на libadwaita 1.3
В тази нова версия, която е представена от Libadwaita 1.3, това беше внедрена джаджа AdwBanner, който може да се използва вместо уиджета GTK GtkInfoBar за показване на банерни прозорци, съдържащи заглавие и незадължителен бутон. Съдържанието на джаджата се трансформира въз основа на размера и може да се приложи анимация при показване и скриване.
В допълнение към това се подчертава и това Добавена е джаджа AdwTabOverview, проектирани за визуален преглед на раздели или страници които се показват с помощта на класа AdwTabView. Новата джаджа може да се използва за организиране на сърфиране с раздели на мобилни устройства, без да създавате свое собствено внедряване на превключвател.
По подразбиране избраният раздел има миниатюра на живо, а другите миниатюри са статични, но приложенията могат да изберат да използват живи миниатюри за конкретни страници. Те могат също така да контролират подравняването на миниатюрите, в случай че бъдат изрязани.
Също така се споменава, че е добавена джаджа AdwTabButton за показване на бутони с информация за броя на отворените раздели в AdwTabView, който може да се използва на мобилно устройство за отваряне на режим на сърфиране в раздели.
В допълнение към това приспособленията AdwViewStack, AdwTabView и AdwEntryRow вече поддържат инструменти за достъпност, плюс свойство е добавено към класа AdwAnimation за отмяна на деактивирането на анимации в системните настройки.
От останалите промени които се открояват от тази нова версия:
- Класът AdwActionRow вече има способността да избира субтитри.
- Свойствата на заглавните редове и редовете на субтитрите са добавени към класа AdwExpanderRow.
- Методът grab_focus_without_selecting() е добавен към класа AdwEntryRow по аналогия с GtkEntry.
- Методът async select() е добавен към класа AdwMessageDialog, подобно на GtkAlertDialog.
- Добавени API извиквания с плъзгане и пускане към класа AdwTabBar.
- Тъй като GTK вече позволява промяна на филтрирането на текстурата,
AdwAvatar
Правилно мащабира персонализираните изображения, така че да не изглеждат пикселирани, когато са намалени или замъглени, когато са увеличени. - Добавена е възможност за използване на тъмен стил и режим на висок контраст при работа на платформата Windows.
- Избраните елементи от списък и решетка вече са маркирани с цвета, използван за маркиране на активни елементи (акцент).
И накрая, ако сте се интересувам да научим повече за това, можете да проверите подробности в следващия линк. Също така си струва да се спомене, че кодът на библиотеката е написан на език C и се разпространява под лиценза LGPL 2.1+.