A GNOME projekt kiadta a Libadwaita 1.8 könyvtárat, amely felhasználói felület stílusának testreszabásához szükséges összetevőket tartalmaz, összhangban a GNOME HIG (Human Interface Guidelines) ajánlásaival. A könyvtár előre elkészített widgeteket és objektumokat tartalmaz, amelyek lehetővé teszik, hogy a GNOME általános stílusának megfelelő alkalmazások épüljenek, és az interfész bármilyen méretű kijelzőhöz alkalmazkodjon. A könyvtár kódját C nyelven írták, és LGPL 2.1+ licenc alatt terjesztik.
A libadwaita könyvtár a GTK4-el együtt használatos, és tartalmazza a GNOME által használt Adwaita téma komponenseit, amelyeket a GTK-ból egy külön könyvtárba helyeztek át. A GNOME vizuális elemeinek külön könyvtárba való áthelyezése lehetővé teszi, hogy a GNOME-hoz szükséges változtatásokat függetlenül fejleszthessék a GTK-tól, ami lehetőséget ad a GTK fejlesztőinek, hogy a alapvető dolgokra összpontosítsanak, míg a GNOME fejlesztői gyorsabban és rugalmasabban előmozdíthassák a szükséges stílusváltoztatásokat anélkül, hogy magát a GTK-t érintenék.
A könyvtár tartalmaz tipikus widgeteket, amelyek különféle felületi elemeket ölelnek fel, például listákat, paneleket, szerkesztő blokkokat, gombokat, lapokat, kereső űrlapokat, párbeszédpanelek stb. A javasolt widgetek lehetővé teszik univerzális felületek létrehozását, amelyek zökkenőmentesen működnek nagy képernyős PC-ken és laptopokon, valamint kisméretű érintőképernyős okostelefonokon. Az alkalmazások felülete dinamikusan változik a képernyő mérete és az elérhető bemeneti eszközök szerint. A könyvtár emellett tartalmazza az Adwaita stílusok halmazát is, amelyek megjelenését a GNOME irányelveivel összhangba hozzák, kézi alkalmazkodás nélkül.

Az új verzióban:
- A GTK 4.18-ban elavultnak nyilvánított GtkShortcutsWindow osztály helyett a Libadwaita új AdwShortcutsDialog osztályt valósít meg, amely a rendelkezésre álló billentyűparancsok közötti navigációra szolgáló párbeszédpanelt biztosít. Az új megvalósítás teljesen átdolgozott és egyszerűsített logikával rendelkezik az szekciók és csoportok elválasztásához. A fejlesztők számára minimalista API áll rendelkezésre, és a párbeszédpanel szerkezetének és tartalmának meghatározására UI-fájlokat alkalmaznak.
A GtkShortcutLabel helyett egy új AwsShortcutLabel osztály javasolt a elemek bemutatására, amely nem támogatja a képernyőgombok és ikonok integrálásának információját, mivel ezek használata zavart okozott, és alkalmazásuk korlátozott volt (például az ikonok csak a gnome-games alkalmazásban használták a játékkonzol gombjainak jelölésére).

- CSS média lekérdezések használatának lehetősége került bevezetésre a sötét és világos stílusok, valamint az azonos elem normál és kontrasztos megjelenítésének meghatározására. Az elemek számára a betűméretek (Adwaita Sans 12pt) és a felhasználói felület (Adwaita Sans 11pt) el vannak választva. A „.document” stíluskategóriához hozzáadott betűtípus, amely az Adwaita Sans 12pt, jobb olvashatóság érdekében és megnövelt sortávolsággal rendelkezik. A „.body” stíluskategória sortávolsága is megnövekedett, amely most már alapértelmezettként használatos néhány standard widgetben.

- Az AdwPreferencesGroup osztályt engedélyezték lista modellekkel való használatra az adw_preferences_group_bind_model() metódus segítségével. Emellett lehetőség nyílik olyan sorok belső listához való hozzáadására, amelyek nem AdwPreferencesRow osztályúak.
- Az AdwPreferencesPage osztályban lehetőség van csoportok bármilyen helyen való beillesztésére, nem csak az oldal végén.
- Az AdwPreferencesGroup és AdwPreferencesPage osztályokhoz hozzáadták az adw_preferences_page_get_group() és adw_preferences_group_get_row() metódusokat a csoportok és sorok ellenőrzésére.
- Az AdwWrapBox osztályhoz hozzáadódott az adw_wrap_box_remove_all() metódus a gyermekelemek eltávolításához.
- A GtkFlowBox gyermekelemeihez alapértelmezés szerint stílusok vannak biztosítva az egérmutató elemre történő rámutatására és az elem aktiválására.
- Az AdwHeaderBar osztály támogatja az ablakkezelők natív vezérlőelemeit macOS rendszeren.
- A teljesítmény növelése érdekében csökkentették az árnyékok használatát az ablakok, párbeszédpanelek és felugró ablakok esetében.
Forrás: opennet.ru


