Projekt GNOME vydal verzi knihovny Libadwaita 1.2, která zahrnuje sadu komponent pro stylové uspořádání uživatelského rozhraní v souladu s doporučeními GNOME HIG (Human Interface Guidelines). Knihovna obsahuje hotové widgety a objekty pro vývoj aplikací, které odpovídají celkovému stylu GNOME a jejichž rozhraní se může adaptivně přizpůsobovat obrazovkám jakékoli 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 komponenty používané v GNOME tématu Adwaita, které byly vyčleněny z GTK do samostatné knihovny. Vyčlenění vizuálních prvků GNOME do samostatné knihovny umožňuje rozvíjet nezbytné změny pro GNOME odděleně od GTK, což dává vývojářům GTK možnost soustředit se na základní funkce a vývojářům GNOME rychleji a flexibilněji prosazovat potřebné změny stylu, aniž by to mělo vliv na samotný GTK.
Knihovna obsahuje standardní widgety pokrývající různé prvky rozhraní, jako jsou seznamy, panely, editační bloky, tlačítka, záložky, vyhledávací formuláře, dialogová okna atd. Navrhované widgety umožňují vytvářet univerzální rozhraní, která přirozeně fungují jak na velkých obrazovkách PC a notebooků, tak na malých dotykových obrazovkách smartphonů. Rozhraní aplikací se dynamicky mění v závislosti na velikosti obrazovky a dostupných vstupních zařízeních. Knihovna také zahrnuje sadu stylů Adwaita, které přizpůsobují vzhled v souladu s doporučeními GNOME, aniž by byla potřeba manuální adaptace.
Hlavní změny v libadwaita 1.2:
- Přidán widget Adw.EntryRow, určený pro použití jako prvek seznamů. Widget poskytuje pole pro vstup a nadpis s možností připojení dalších widgetů před a za polem pro vstup (například tlačítka pro potvrzení vstupu nebo indikátor, že data lze upravovat). Dále je k dispozici varianta Adw.PasswordEntryRow, určená pro zadávání hesel.

- Přidán widget Adw.MessageDialog pro zobrazení dialogu s zprávou nebo dotazem. Widget je rozšířenou náhradou Gtk.MessageDialog, která může přizpůsobit uspořádání prvků velikosti okna. Například v širokých oknech mohou být tlačítka zobrazena v jednom řádku, zatímco v úzkých se rozdělí do několika sloupců. Dalším rozdílem je, že widget není potomkem GtkDialog a poskytuje zcela nové API, které není vázáno na předdefinované typy tlačítek GtkResponseType (v Adw.MessageDialog se zpracování všech akcí provádí aplikací), což usnadňuje vkládání dalších widgetů pomocí vlastnosti extra-child a poskytuje samostatné styly pro nadpis a hlavní text.

- Přidán widget Adw.AboutWindow pro zobrazení okna s informacemi o programu. Widget nahrazuje Gtk.AboutDialog a liší se použitím adaptivního uspořádání prvků a rozšířenými pomocnými sekcemi, jako je seznam změn, okno s poděkováním, informace o licencích třetích komponent a odkazy na informační zdroje a údaje pro usnadnění ladění.


- Byly rozšířeny možnosti widgetů Adw.TabView a Adw.TabBar, ve kterých byl přepracován mechanismus zpracování klávesových zkratek, aby se vyřešil problém s kombinacemi, které se kříží s GTK4 (například Ctrl+Tab). V nové verzi je také navržena vlastnost pro nastavení kontextových nápověd pro indikátory a tlačítka záložek.
- Byla přidána třída Adw.PropertyAnimationTarget pro zjednodušení animace vlastností objektů.
- Styl panelu záložek (Adw.TabBar) byl výrazně změněn — aktivní záložka je více zvýrazněna a kontrastnost prvků se zvýšila v tmavém provedení.


- Výška vertikálních děličů byla snížena, což umožnilo v panelu s nadpisem a vyhledávacím polem zbavit se rušivých světlých hranic ve prospěch tmavých hranic definovaných pomocí @headerbar_shade_color, a přidat pozadí, které ladí s panely nahoře.
- Třída stylu „.large-title“ byla označena za zastaralou, namísto které by se mělo používat „.title-1“.
- Byly sníženy okraje v widgetu Adw.ActionRow, aby se jeho vzhled přiblížil panelům a widgetu Adw.EntryRow.
- Ve widgetech Gtk.Actionbar a Adw.ViewSwitcherBar byly použity stejné styly, které se aplikují na panely s nadpisem, vyhledáváním a záložkami.

Zdroj: opennet.ru







