Vydání knihovny Libadwaita 1.5 pro vytváření rozhraní ve stylu GNOME

Projekt GNOME zveřejnil vydání Libadwaita 1.5, které obsahuje sadu komponent pro stylování uživatelského rozhraní, které se řídí GNOME HIG (Human Interface Guidelines). Knihovna obsahuje hotové widgety a objekty pro vytváření aplikací, které odpovídají obecnému stylu GNOME, jejichž rozhraní lze adaptivně přizpůsobit obrazovkám libovolné velikosti. Kód knihovny je napsán v jazyce C a je distribuován pod licencí LGPL 2.1+.

Knihovna libadwaita se používá ve spojení s GTK4 a zahrnuje součásti tématu Adwaita používané v GNOME, které byly přesunuty z GTK do samostatné knihovny. Přesunutí prvků stylů GNOME do samostatné knihovny umožňuje, aby byly změny specifické pro GNOME vyvíjeny odděleně od GTK, což vývojářům GTK umožňuje soustředit se na základní věci a vývojářům GNOME rychleji a flexibilněji prosazovat změny stylů, které chtějí, aniž by to ovlivnilo samotné GTK.

Knihovna obsahuje standardní widgety pokrývající různé prvky rozhraní, jako jsou seznamy, panely, editační bloky, tlačítka, karty, vyhledávací formuláře, dialogová okna atd. Navrhované widgety vám umožňují vytvářet univerzální rozhraní, která bezproblémově fungují jak na velkých obrazovkách PC a notebooků, tak na malých dotykových obrazovkách smartphonů. Rozhraní aplikace se dynamicky mění v závislosti na velikosti obrazovky a dostupných vstupních zařízeních. Knihovna také obsahuje sadu stylů Adwaita, které přizpůsobují vzhled pokynům GNOME bez nutnosti ruční úpravy.

Vydání knihovny Libadwaita 1.5 pro vytváření rozhraní ve stylu GNOME

Hlavní změnou v libadwaita 1.5 bylo přepracování adaptivních widgetů pro vytváření dialogových oken, která se přizpůsobují velikosti viditelné oblasti. Na rozdíl od tradičních dialogových oken, která jsou umístěna v samostatných oknech, se nová dialogová okna vykreslují na straně klienta, vykreslují se uvnitř stávajících oken a nemohou přesahovat nadřazené okno. Tento přístup zjednodušuje vytváření univerzálních dialogů, které lze kombinovat s rozhraními pro mobilní a desktopové systémy, a také poskytuje další možnosti pro správu dialogů (není například potřeba hlídat opuštění okraje okna, můžete si zvolit chování tlačítka zavřít, v mobilních verzích aplikací je zajištěno automatické rozbalení na celou obrazovku, při ztmavení dialogu se zohledňuje styl aktuálního okna, nikoli systém).

Vydání knihovny Libadwaita 1.5 pro vytváření rozhraní ve stylu GNOMEVydání knihovny Libadwaita 1.5 pro vytváření rozhraní ve stylu GNOME

V budoucnu se plánuje implementace další verze takových dialogů, které nebudou propojeny s okny, ale se záložkami uvnitř okna, což může být potřeba v aplikacích, jako jsou prohlížeče, aby dialogy spojené s záložkou nepřekrývaly hlavní okno, když přepínání mezi kartami.

Pro mobilní zařízení byla implementována podpora pro umístění dialogů ve formě listů ukotvených ve spodní části obrazovky (spodní listy), spíše než ve formě listů zarovnaných na střed. Zespodu připojená dialogová okna zachraňují uživatele před zmatky se zavíráním oken – v takových dialozích zůstává viditelná část nadřazeného okna a tlačítka pro zavření nadřazeného okna a dialogu samotného jsou jasně oddělena, takže je nyní lze jen těžko splést.

Vydání knihovny Libadwaita 1.5 pro vytváření rozhraní ve stylu GNOME

Nová dialogová okna jsou spravována pomocí třídy AdwDialog, která je ve většině situací podobná použití třídy GtkWindow, s rozdílem v operacích zobrazení a zavření. Například vlastnost „:transient-for“ byla nahrazena parametrem ve funkci adw_dialog_present(), byl přidán nový signál „::close-attempt“ a bylo změněno zpracování parametru „:can-close“. . Místo tříd AdwPreferencesWindow, AdwAboutWindow a AdwMessageDialog se navrhuje použít třídy AdwPreferencesDialog, AdwAboutDialog a AdwAlertDialog s novými dialogy.

Dialogy, které nemají nadřazené okno, budou stále považovány za samostatná okna. Dialogy, jejichž nadřazená okna nelze použít k hostování dialogů, budou také fungovat jako okna, například pokud neumožňují změnu velikosti nebo pro ně nemají třídy AdwWindow a AdwApplicationWindow.

Změny nesouvisející s přepracováním dialogu v Libadwaita 1.5:

  • Do třídy AdwEntryRow byla přidána vlastnost ":text-length", která omezuje velikost textu ve vstupním poli.
  • Do třídy AdwMessageDialog přidána metoda remove_response().
  • Do třídy AdwBreakpointBin byla přidána možnost programově odstraňovat zarážky, která umožňuje libovolným způsobem měnit uživatelské rozhraní v závislosti na velikosti okna.
  • Do třídy AdwSwipeTracker byl přidán příznak „:allow-window-handle“, který umožňuje přejíždění přes horní lištu (používá se v listech připojených ke spodnímu okraji).
  • Zvýšení jasu barev použitých při zastínění oken v tmavém designovém stylu.

Zdroj: opennet.ru

Přidat komentář