Das GNOME-Projekt hat die Version 1.8 der Libadwaita-Bibliothek veröffentlicht, die eine Reihe von Komponenten fĂŒr das Design von BenutzeroberflĂ€chen gemÀà den GNOME HIG (Human Interface Guidelines) umfasst. Die Bibliothek enthĂ€lt fertige Widgets und Objekte zur Erstellung von Anwendungen, die dem allgemeinen GNOME-Stil entsprechen und deren BenutzeroberflĂ€chen sich an Bildschirme jeder GröĂe anpassen können. Der Code der Bibliothek ist in C geschrieben und wird unter der LGPL 2.1+-Lizenz verbreitet.
Die libadwaita-Bibliothek wird zusammen mit GTK4 verwendet und beinhaltet Komponenten des GNOME-Themes Adwaita, die aus GTK in eine separate Bibliothek ausgelagert wurden. Die Auslagerung visueller Elemente von GNOME in eine separate Bibliothek ermöglicht es, notwendige Ănderungen fĂŒr GNOME unabhĂ€ngig von GTK zu entwickeln. Dies gibt den GTK-Entwicklern die Möglichkeit, sich auf die Grundfunktionen zu konzentrieren, wĂ€hrend die GNOME-Entwickler erforderliche Anpassungen der Gestaltung schneller und flexibler vorantreiben können, ohne die GTK-Bibliothek selbst zu betreffen.
Die Bibliothek enthĂ€lt standardisierte Widgets, die verschiedene Elemente der BenutzeroberflĂ€che abdecken, wie Listen, Panels, Bearbeitungsblöcke, Buttons, Tabs, Suchformulare, Dialogfenster usw. Die angebotenen Widgets ermöglichen die Erstellung universeller OberflĂ€chen, die sowohl auf groĂen Bildschirmen von PCs und Laptops als auch auf kleinen Touchscreens von Smartphones gleichmĂ€Ăig funktionieren. Die BenutzeroberflĂ€che der Anwendungen passt sich dynamisch an die BildschirmgröĂe und die verfĂŒgbaren EingabegerĂ€te an. Die Bibliothek umfasst auĂerdem ein Set von Adwaita-Stilen, die das Aussehen gemÀà den Empfehlungen von GNOME anpassen, ohne dass eine manuelle Anpassung erforderlich ist.

In der neuen Version:
- Anstelle der in GTK 4.18 als veraltet erklĂ€rten GtkShortcutsWindow-Klasse wurde in Libadwaita die neue Klasse AdwShortcutsDialog implementiert, die einen Dialog zur Navigation durch verfĂŒgbare Tastenkombinationen bereitstellt. Die neue Implementierung zeichnet sich durch eine vollstĂ€ndige Ăberarbeitung und Vereinfachung der Logik zur Trennung in Abschnitte und Gruppen aus. Entwicklern steht eine minimierte API zur VerfĂŒgung, und die Struktur sowie der Inhalt des Dialogs werden mithilfe von UI-Dateien definiert.
Anstelle von GtkShortcutLabel wird eine neue Klasse namens AwsShortcutLabel zur Darstellung von Elementen vorgeschlagen, die keine Informationen zu Bildschirmgesten und die Integration von Piktogrammen unterstĂŒtzt, da deren Verwendung zu Verwirrung fĂŒhrte und limitiert war (zum Beispiel wurden Piktogramme nur in der Anwendung gnome-games zur Kennzeichnung von Gamepad-Tasten verwendet).

- Es wurde die Möglichkeit hinzugefĂŒgt, CSS-Medienabfragen zur Bestimmung von Stilen fĂŒr dunkles und helles Design sowie fĂŒr die normale und kontrastreiche Darstellung desselben Elements zu verwenden. Die SchriftgröĂen fĂŒr Inhalte (Adwaita Sans 12pt) und BenutzeroberflĂ€che (Adwaita Sans 11pt) wurden getrennt. Eine Stilklasse â.documentâ wurde hinzugefĂŒgt, die fĂŒr eine bessere Lesbarkeit die Schriftart Adwaita Sans 12pt und einen erhöhten Zeilenabstand verwendet. Der Zeilenabstand in der Stilklasse â.bodyâ wurde erhöht, die jetzt standardmĂ€Ăig in einigen integrierten Widgets angewendet wird.

- Die Klasse AdwPreferencesGroup kann jetzt mit Listmodellen ĂŒber die Methode adw_preferences_group_bind_model() verwendet werden. Zudem wurde die Möglichkeit hinzugefĂŒgt, in der inneren Liste auch Zeilen hinzuzufĂŒgen, die nicht zur Klasse AdwPreferencesRow gehören.
- Im AdwPreferencesPage-Klassen ist es erlaubt, Gruppen an beliebiger Stelle einzufĂŒgen und nicht nur am Ende der Seite.
- In den Klassen AdwPreferencesGroup und AdwPreferencesPage wurden die Methoden adw_preferences_page_get_group() und adw_preferences_group_get_row() hinzugefĂŒgt, um Gruppen und Zeilen zu inspizieren.
- In der Klasse AdwWrapBox wurde die Methode adw_wrap_box_remove_all() hinzugefĂŒgt, um alle untergeordneten Elemente zu entfernen.
- FĂŒr untergeordnete Elemente der Klasse GtkFlowBox wurden standardmĂ€Ăig Stile fĂŒr die Hervorhebung beim Mouseover und die Aktivierung des Elements bereitgestellt.
- In der Klasse AdwHeaderBar wurde die UnterstĂŒtzung fĂŒr native Fenstersteuerelemente in macOS implementiert.
- Zur Verbesserung der Leistung wurde die Verwendung von Schatten fĂŒr Fenster, Dialoge und Popups reduziert.
Quelle: opennet.ru


