Das GNOME-Projekt hat die Version 1.2 der Bibliothek Libadwaita veröffentlicht, die eine Reihe von Komponenten fĂŒr die Gestaltung von BenutzeroberflĂ€chen gemÀà den Empfehlungen der GNOME HIG (Human Interface Guidelines) umfasst. Die Bibliothek beinhaltet vorgefertigte Widgets und Objekte zur Erstellung von Anwendungen, die den allgemeinen GNOME-Stil befolgen und deren OberflĂ€chen sich an Bildschirme unterschiedlicher 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.
HauptÀnderungen in libadwaita 1.2:
- Ein neuer Widget Adw.EntryRow wurde hinzugefĂŒgt, der als Element in Listen verwendet werden kann. Dieses Widget bietet ein Eingabefeld und einen Titel mit der Möglichkeit, zusĂ€tzliche Widgets vor und nach dem Eingabefeld anzuhĂ€ngen (z.B. BestĂ€tigungsschaltflĂ€chen oder einen Indikator, dass die Daten bearbeitet werden können). AuĂerdem ist eine Variante Adw.PasswordEntryRow verfĂŒgbar, die fĂŒr die Eingabe von Passwörtern ausgelegt ist.

- Das Adw.MessageDialog-Widget wurde hinzugefĂŒgt, um Dialoge mit Nachrichten oder Fragen anzuzeigen. Dieses Widget ist eine erweiterte Alternative zu Gtk.MessageDialog, die die Anordnung der Elemente an die FenstergröĂe anpassen kann. Beispielsweise können in breiten Fenstern die SchaltflĂ€chen in einer Reihe angezeigt werden, wĂ€hrend sie in schmalen Fenstern auf mehrere Spalten aufgeteilt werden. Ein weiteres Unterscheidungsmerkmal ist, dass das Widget keine Unterklasse von GtkDialog ist und eine vollstĂ€ndig neue API bereitstellt, die nicht an die vordefinierten SchaltflĂ€chentypen GtkResponseType gebunden ist (in Adw.MessageDialog wird die Verarbeitung aller Aktionen von der Anwendung ĂŒbernommen), was die Einbettung anderer Widgets ĂŒber die Eigenschaft extra-child vereinfacht und separate Stile fĂŒr den Titel und den Haupttext bietet.

- Das Adw.AboutWindow-Widget wurde hinzugefĂŒgt, um ein Fenster mit Informationen ĂŒber die Anwendung anzuzeigen. Dieses Widget ersetzt Gtk.AboutDialog und zeichnet sich durch die Verwendung adaptiver Anordnungselemente und erweiterte Hilfssektionen aus, wie z.B. eine Ănderungsprotokoll, ein Danksagungsfeld, Informationen zu Lizenzvereinbarungen Dritter, Links zu Informationsressourcen und Daten zur erleichterten Fehlersuche.


- Die Funktionen der Widgets Adw.TabView und Adw.TabBar wurden erweitert, wobei die Verarbeitung von Tastenkombinationen ĂŒberarbeitet wurde, um Probleme im Zusammenhang mit Kombinationen, die mit GTK4-Handlern ĂŒberlappen (z. B. Ctrl+Tab), zu lösen. In der neuen Version wurde zudem eine Eigenschaft zur Festlegung von Tooltipps fĂŒr Indikatoren und Registerkartenknöpfe eingefĂŒhrt.
- Die Klasse Adw.PropertyAnimationTarget wurde hinzugefĂŒgt, um die Animation von Eigenschaften von Objekten zu erleichtern.
- Der Stil der Registerkartenleiste (Adw.TabBar) wurde erheblich verĂ€ndert â die aktive Registerkarte wird deutlicher hervorgehoben und die Kontraste der Elemente im Design fĂŒr dunkle OberflĂ€chen wurden erhöht.


- Die Höhe der vertikalen Trennlinien wurde verringert, was es ermöglichte, in der Titel- und Suchleistenansicht störende helle Grenzen zugunsten von dunklen Grenzen, die durch @headerbar_shade_color festgelegt werden, zu entfernen und einen Hintergrundstil hinzuzufĂŒgen, der sich mit den oberen Panels kombiniert.
- 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 sein Erscheinungsbild nÀher an die Panels 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 Tabs Anwendung finden.

Quelle: opennet.ru







