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

Projekt GNOME vydal verzi knihovny Libadwaita 1.5, která zahrnuje sadu komponent pro stylování uživatelského rozhraní v souladu s doporučeními GNOME HIG (Human Interface Guidelines). Knihovna zahrnuje připravené widgety a objekty pro vývoj aplikací, které odpovídají celkovému stylu GNOME, jehož rozhraní se může adaptivně přizpůsobit 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.

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

Hlavní změnou v libadwaita 1.5 byla 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 dialogů, které se umísťují do samostatných oken, se nové dialogy formují na straně klienta, kreslí se uvnitř stávajících oken a nemohou přesáhnout hranice rodičovského okna. Tento přístup usnadňuje vytváření univerzálních dialogů, které se hodí k rozhraním pro mobilní a desktopové systémy, a navíc poskytuje další možnosti správy dialogů (například není nutné sledovat překročení hranice okna, je možné vybírat chování týkající se tlačítek pro zavření, zajišťuje se automatické rozšíření na celou obrazovku v mobilních verzích aplikací, zohledňuje se styl aktuálního okna namísto systému při ztmavení dialogu).

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

V budoucnu se plánuje realizovat další variantu podobných dialogů, která budou spojena nikoli s okny, ale s kartami uvnitř okna, což může být žádáno v takových aplikacích, jako jsou prohlížeče, aby dialogy spojené s kartami nepřekrývaly hlavní okno při přepínání mezi kartami.

Pro mobilní zařízení byla implementována podpora umístění dialogů ve formě listů, připnutých na spodní část obrazovky (bottom sheets), nikoli ve formě listů zarovnaných na střed. Připnuté k dolní části dialogy zbavují uživatele zmatku při zavírání oken — v těchto dialogech zůstává část rodičovského okna viditelná a tlačítka pro zavření rodičovského okna a samotného dialogu jsou jasně oddělena, což je nyní obtížné zaměnit.

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

Správa nových dialogů se provádí pomocí třídy AdwDialog, jejíž používání je většinou podobné používání třídy GtkWindow, přičemž rozdíly se soustředí na operace zobrazení a zavření. Například vlastnost „:transient-for“ byla nahrazena parametrem ve funkci adw_dialog_present(), a byl přidán nový signál „::close-attempt“, změněno zpracování parametru „:can-close“. Místo tříd AdwPreferencesWindow, AdwAboutWindow a AdwMessageDialog byly navrženy třídy AdwPreferencesDialog, AdwAboutDialog a AdwAlertDialog.

Dialogy, které nemají rodičovské okno, budou nadále zpracovány jako samostatná okna. Dialogy, jejichž rodičovská okna nemohou být použita pro umístění dialogů, například pokud nedovolují změnu velikosti nebo pro ně neexistují třídy AdwWindow a AdwApplicationWindow, budou fungovat také jako okna.

Související s přepracováním dialogů změny v Libadwaita 1.5:

  • Do třídy AdwEntryRow byla přidána vlastnost „:text-length“ pro omezení délky textu v textovém poli.
  • Do třídy AdwMessageDialog byla přidána metoda remove_response().
  • Do třídy AdwBreakpointBin, která umožňuje měnit uživatelské rozhraní jakýmkoli způsobem v závislosti na velikosti okna, byla přidána možnost programového odstranění zlomových bodů.
  • Do třídy AdwSwipeTracker byl přidán příznak „:allow-window-handle“, který umožňuje posouvání nad horním panelem (používá se v listech připevněných k dolnímu okraji).
  • Zvýšena jasnost barev používaných při zatemňování oken ve tmavém stylu.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster