Das GNOME-Projekt hat die Bibliothek Libadwaita 1.2 veröffentlicht, die eine Reihe von Komponenten fĂŒr die BenutzeroberflĂ€chen-Gestaltung gemÀà den GNOME HIG (Human Interface Guidelines) umfasst. Die Bibliothek beinhaltet fertige Widgets und Objekte zum Erstellen von Anwendungen, die dem allgemeinen GNOME-Stil entsprechen und deren BenutzeroberflĂ€chen sich an verschiedene BildschirmgröĂen anpassen können. Der Code der Bibliothek ist in C geschrieben und wird unter der LGPL 2.1+ Lizenz vertrieben.

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.
Die HauptÀnderungen in libadwaita 1.2:
- Ein neuer Widget Adw.EntryRow wurde hinzugefĂŒgt, der als Listenelement verwendet werden kann. Der Widget bietet ein Eingabefeld und einen Titel mit der Möglichkeit, zusĂ€tzliche Widgets vor und nach dem Eingabefeld anzufĂŒgen (zum Beispiel BestĂ€tigungsbuttons oder einen Indikator dafĂŒr, dass die Daten bearbeitbar sind). ZusĂ€tzlich gibt es die Variante Adw.PasswordEntryRow, die fĂŒr die Eingabe von Passwörtern ausgelegt ist.

- Ein neuer Widget Adw.MessageDialog wurde hinzugefĂŒgt, um einen Dialog mit einer Nachricht oder Frage anzuzeigen. Der Widget ist ein erweiteter Ersatz fĂŒr Gtk.MessageDialog, der die Anordnung der Elemente an die FenstergröĂe anpassen kann. Beispielsweise können in breiten Fenstern die Buttons in einer Zeile angezeigt werden, wĂ€hrend in schmalen Fenstern mehrere Spalten gebildet werden. Ein weiteres Merkmal ist, dass der Widget keine Unterklasse von GtkDialog ist und eine völlig neue API bietet, die nicht an vordefinierte Button-Typen von GtkResponseType gebunden ist (in Adw.MessageDialog wird die Verarbeitung aller Aktionen von der Anwendung durchgefĂŒhrt), wodurch das Einbetten anderer Widgets ĂŒber die Eigenschaft extra-child vereinfacht wird und separate Stile fĂŒr den Titel und den Haupttext bereitgestellt werden.

- Ein neuer Widget Adw.AboutWindow wurde hinzugefĂŒgt, um ein Fenster mit Informationen ĂŒber das Programm anzuzeigen. Der Widget ersetzt Gtk.AboutDialog und zeichnet sich durch die Verwendung einer adaptiven Anordnung der Elemente sowie erweiterten Hilfssektionen aus, wie etwa einer ĂnderungsĂŒbersicht, einem Dankeschön-Fenster, Informationen zu Lizenzen von Drittanbieter-Komponenten, Links zu Informationsressourcen und Daten zur Vereinfachung von Debugging.


- Die Möglichkeiten der Widgets Adw.TabView und Adw.TabBar wurden erweitert, wobei der Mechanismus zur Verarbeitung von Tastenkombinationen ĂŒberarbeitet wurde, um Probleme mit Kombinationen zu lösen, die mit GTK4-Handlern in Konflikt stehen (z. B. Strg+Tab). In der neuen Version wurde auch eine Eigenschaft hinzugefĂŒgt, um Tooltips fĂŒr Indikatoren und Registerkarten zu setzen.
- Die Klasse Adw.PropertyAnimationTarget wurde hinzugefĂŒgt, um die Animation von Eigenschaften von Objekten zu vereinfachen.
- Der Stil der Registerkartenleiste (Adw.TabBar) wurde erheblich geĂ€ndert â die aktive Registerkarte wird deutlicher hervorgehoben und die Kontrastierung der Elemente in der dunklen Designvariante wurde erhöht.


- Die Höhe der vertikalen Trennlinien wurde verringert, was es ermöglichte, in der Leiste mit Titel und Suchzeile störende helle Grenzen durch dunkle Grenzen zu ersetzen, die mit @headerbar_shade_color definiert werden, und einen Hintergrundstil hinzuzufĂŒgen, der mit den Titelleisten harmoniert.
- Die Stilklasse â.large-titleâ wurde als veraltet erklĂ€rt, stattdessen sollte â.title-1â verwendet werden.
- Die AbstÀnde im Widget Adw.ActionRow wurden verringert, um das Erscheinungsbild nÀher an die Leisten und das Widget Adw.EntryRow zu bringen.
- In den Widgets Gtk.Actionbar und Adw.ViewSwitcherBar wurden dieselben Stile verwendet, die auch in den Kopfzeilen, Suchleisten und Registerkarten angewendet werden.

Quelle: opennet.ru







