Projekt GNOME opublikował wydanie biblioteki Libadwaita 1.2, która zawiera zestaw komponentów do stylizacji interfejsu użytkownika zgodnie z wytycznymi GNOME HIG (Human Interface Guidelines). Biblioteka obejmuje gotowe widżety i obiekty do budowy aplikacji, które są zgodne z ogólnym stylem GNOME i mogą adaptacyjnie dostosowywać się do ekranów o dowolnych rozmiarach. Kod biblioteki jest napisany w języku C i jest rozpowszechniany na licencji LGPL 2.1+.

Biblioteka libadwaita jest używana w połączeniu z GTK4 i zawiera komponenty wykorzystywane w GNOME motywie Adwaita, które zostały przeniesione z GTK do osobnej biblioteki. Przeniesienie elementów wizualnych GNOME do osobnej biblioteki pozwala rozwijać zmiany niezbędne dla GNOME niezależnie od GTK, co umożliwia programistom GTK skoncentrowanie się na podstawowych kwestiach, a programistom GNOME szybsze i bardziej elastyczne wprowadzanie potrzebnych zmian w stylizacji bez wpływania na samo GTK.
Biblioteka zawiera typowe widżety obejmujące różne elementy interfejsu, takie jak listy, panele, pola edycji, przyciski, zakładki, formularze wyszukiwania, okna dialogowe itp. Proponowane widżety pozwalają na tworzenie uniwersalnych interfejsów, które sprawnie działają zarówno na dużych ekranach komputerów i laptopów, jak i na małych ekranach dotykowych smartfonów. Interfejs aplikacji dynamicznie zmienia się w zależności od rozmiaru ekranu i dostępnych urządzeń wejściowych. Biblioteka zawiera również zestaw stylów Adwaita, które dostosowują wygląd do wytycznych GNOME, bez konieczności ręcznej adaptacji.
Główne zmiany w libadwaita 1.2:
- Dodano widżet Adw.EntryRow, przeznaczony do stosowania jako element list. Widżet oferuje pole wejściowe i tytuł z możliwością dołączenia dodatkowych widżetów przed i po polu wejściowym (na przykład, przyciski potwierdzenia lub wskaźnik, że dane mogą być edytowane). Dodatkowo dostępna jest wersja Adw.PasswordEntryRow, przeznaczona do wprowadzania haseł.

- Dodano widżet Adw.MessageDialog do wyświetlania dialogu z wiadomością lub pytaniem. Widżet jest rozszerzoną wersją Gtk.MessageDialog, która może dostosować układ elementów do rozmiaru okna. Na przykład w szerszych oknach przyciski mogą być wyświetlane w jednej linii, a w wąskich - dzielić się na kilka kolumn. Inną różnicą jest to, że widżet nie jest podklasą GtkDialog i oferuje zupełnie nowe API, niezwiązane z predefiniowanymi typami przycisków GtkResponseType (w Adw.MessageDialog obsługa wszystkich działań jest wykonywana przez aplikację), co upraszcza osadzanie innych widżetów za pomocą właściwości extra-child i zapewnia oddzielne style dla nagłówka i głównego tekstu.

- Dodano widżet Adw.AboutWindow do wyświetlania okna z informacjami o programie. Widżet zastępuje Gtk.AboutDialog i różni się zastosowaniem adaptacyjnego układu elementów oraz rozszerzonymi sekcjami pomocniczymi, takimi jak lista zmian, okno z podziękowaniami, informacje o licencjach komponentów zewnętrznych, linki do zasobów informacyjnych i dane ułatwiające debugowanie.


- Rozszerzono możliwości widżetów Adw.TabView i Adw.TabBar, w których przetworzono mechanizm obsługi skrótów klawiszowych, aby rozwiązać problem z działaniem kombinacji, które kolidują z obsługą GTK4 (na przykład Ctrl+Tab). W nowej wersji zaproponowano również właściwość do ustawienia podpowiedzi dla wskaźników i przycisków zakładek.
- Dodano klasę Adw.PropertyAnimationTarget do uproszczenia animowania właściwości obiektów.
- Zmieniono styl panelu zakładek (Adw.TabBar) - aktywna zakładka jest bardziej wyraźnie wyróżniona, a kontrast elementów w wersji z ciemnym motywem został zwiększony.


- Zredukowano wysokość pionowych separatorów, co pozwoliło w panelu z nagłówkiem i paskiem wyszukiwania pozbyć się rozpraszających jasnych krawędzi na rzecz ciemnych krawędzi, określonych za pomocą @headerbar_shade_color, oraz dodać styl tła, który harmonizuje z panelami w nagłówku.
- Zdeklasowano styl klasy „.large-title”, który należy zastąpić „.title-1”.
- Zredukowano odstępy w widżecie Adw.ActionRow, aby przybliżyć jego wygląd do paneli i widżetu Adw.EntryRow.
- W widżetach Gtk.Actionbar i Adw.ViewSwitcherBar zastosowano te same style, które stosowane są w panelach nagłówka, wyszukiwania i zakładek.

Źródło: opennet.ru







