Das GNOME-Projekt hat die Version 1.8 der Bibliothek Libadwaita veröffentlicht, die eine Reihe von Komponenten fĂŒr die stilistische Gestaltung von BenutzeroberflĂ€chen gemÀà den GNOME HIG (Human Interface Guidelines) umfasst. Die Bibliothek enthĂ€lt fertige Widgets und Objekte zum Erstellen von Anwendungen, die dem allgemeinen GNOME-Stil entsprechen und dessen BenutzeroberflĂ€che sich adaptiv an Bildschirme jeder GröĂe anpassen kann. Der Code der Bibliothek ist in C geschrieben und steht unter der Lizenz LGPL 2.1+.
Die Bibliothek libadwaita wird zusammen mit GTK4 verwendet und umfasst Komponenten des in GNOME genutzten Adwaita-Thema, die aus GTK in eine separate Bibliothek ausgelagert wurden. Die Auslagerung der visuellen Elemente von GNOME in eine separate Bibliothek ermöglicht es, notwendige Ănderungen fĂŒr GNOME unabhĂ€ngig von GTK zu entwickeln, was den GTK-Entwicklern die Konzentration auf grundlegende Aspekte ermöglicht, wĂ€hrend den GNOME-Entwicklern ein schnellerer und flexiblerer Fortschritt bei den benötigten Ănderungen der stilistischen Gestaltung ermöglicht wird, ohne GTK selbst zu beeintrĂ€chtigen.
Die Bibliothek umfasst Standard-Widgets, die verschiedene Interface-Elemente abdecken, wie Listen, Panels, Bearbeitungsfelder, SchaltflĂ€chen, Tabs, Suchformulare, Dialogfenster usw. Die angebotenen Widgets ermöglichen die Erstellung vielseitiger OberflĂ€chen, die sowohl auf groĂen Bildschirmen von PCs und Laptops als auch auf kleinen Touchscreens von Smartphones harmonisch funktionieren. Die BenutzeroberflĂ€che von Anwendungen Ă€ndert sich dynamisch in AbhĂ€ngigkeit von der BildschirmgröĂe und den verfĂŒgbaren EingabegerĂ€ten. Die Bibliothek umfasst auch einen Satz von Adwaita-Stilen, die das Erscheinungsbild gemÀà den Empfehlungen von GNOME anpassen, ohne manuelle Anpassungen vornehmen zu mĂŒssen.

In der neuen Version:
- An die in GTK 4.18 als veraltet erklĂ€rte Klasse GtkShortcutsWindow wurde in Libadwaita die neue Klasse AdwShortcutsDialog eingefĂŒhrt, die einen Dialog zur Navigation durch verfĂŒgbare Tastenkombinationen implementiert. Die neue Implementierung zeichnet sich durch eine vollstĂ€ndige Ăberarbeitung und Vereinfachung der Logik zur Aufteilung in Abschnitte und Gruppen aus. Entwicklern wird eine minimale API zur VerfĂŒgung gestellt, und die Struktur sowie der Inhalt des Dialogs basieren auf UI-Dateien.
Anstelle von GtkShortcutLabel wurde eine neue Klasse AwsShortcutLabel zur Darstellung von Elementen vorgeschlagen, die keine Informationen zu Bildschirmgesten unterstĂŒtzt und keine Ikons integriert, da deren Verwendung zu Verwirrung fĂŒhrte und eingeschrĂ€nkt war (zum Beispiel wurden Ikons nur in der Anwendung gnome-games zur Kennzeichnung von Gamepad-Tasten verwendet).

- Es wurde die Möglichkeit hinzugefĂŒgt, CSS-Medienabfragen zu verwenden, um Stile fĂŒr dunkle und helle Gestaltung sowie einfache und kontrastreiche Darstellungen desselben Elements zu definieren. Die SchriftgröĂen fĂŒr Inhalte (Adwaita Sans 12pt) und die BenutzeroberflĂ€che (Adwaita Sans 11pt) wurden getrennt. Eine Stilklasse â.documentâ wurde hinzugefĂŒgt, in der zur besseren Lesbarkeit die Schriftart Adwaita Sans 12pt und ein gröĂerer Zeilenabstand verwendet werden. Der Zeilenabstand in der Stilklasse â.bodyâ wurde erhöht, die nun standardmĂ€Ăig in einigen integrierten Widgets angewendet wird.

- Die Klasse AdwPreferencesGroup darf mit Listenmodellen ĂŒber die Methode adw_preferences_group_bind_model() verwendet werden. AuĂerdem wurde die Möglichkeit hinzugefĂŒgt, Zeichenfolgen in die interne Liste einzufĂŒgen, die keine Klasse von AdwPreferencesRow sind.
- In der Klasse AdwPreferencesPage ist es erlaubt, Gruppen an beliebiger Stelle einzufĂŒgen und nicht nur am Ende der Seite.
- In die Klassen AdwPreferencesGroup und AdwPreferencesPage wurden die Methoden adw_preferences_page_get_group() und adw_preferences_group_get_row() eingefĂŒgt, um Gruppen und Zeilen zu inspizieren.
- Die Klasse AdwWrapBox hat die Methode adw_wrap_box_remove_all() zur Entfernung aller untergeordneten Elemente erhalten.
- FĂŒr die untergeordneten Elemente der Klasse GtkFlowBox sind standardmĂ€Ăig Stile vorhanden, um Hover-Effekte und die Aktivierung von Elementen zu ermöglichen.
- In der Klasse AdwHeaderBar wird die UnterstĂŒtzung fĂŒr native Fenstersteuerelemente in macOS realisiert.
- Zur Steigerung der Leistung wurde die Verwendung von Schatten fĂŒr Fenster, Dialoge und Popup-Fenster reduziert.
Quelle: opennet.ru


