Projekti GNOME publikoi versionin e bibliotekës Libadwaita 1.8, që përfshin një grup komponentesh për stilimin e ndërfaqeve të përdoruesit, në përputhje me rekomandimet e GNOME HIG (Udhëzimet për Ndërfaqen e Njeriut). Biblioteka përfshin widget dhe objekte të gatshme për ndërtimin e aplikacioneve që ndjekin stilin e përgjithshëm të GNOME, me ndërfaqe që mund të përshtaten me ekranet e çdo madhësie. Kodi i bibliotekës është shkruar në gjuhën C dhe shpërndahet nën licencën LGPL 2.1+.
Biblioteka libadwaita përdoret së bashku me GTK4 dhe përfshin komponentët e temës Adwaita të përdorur në GNOME, të cilat janë shpërndarë nga GTK në një bibliotekë të veçantë. Shkëputja e elementeve vizuale të GNOME në një bibliotekë të veçantë lejon zhvillimin e ndryshimeve të nevojshme për GNOME ndaras nga GTK, duke i dhënë mundësi zhvilluesve të GTK të përqendrohen në bazat, ndërsa zhvilluesit e GNOME të avancojnë më shpejt dhe më fleksibël ndryshimet e nevojshme në stilizim, pa prekur vetë GTK.
Biblioteka përfshin widget-e standarde që mbulojnë elemente të ndryshme të ndërfaqes, si lista, panelet, blloqet e redaktimit, butonat, skedat, format e kërkimit, kutitë e dialogut dhe të tjerë. Widget-et e ofruara lejojnë krijimin e ndërfaqeve universale që funksionojnë natyrshëm si në ekranet e mëdha të PC-ve dhe laptopëve, ashtu edhe në ekranet e vogla me prekje të smartphone-ve. Ndërfaqja e aplikacioneve ndryshon dinamike në varësi të madhësisë së ekranit dhe pajisjeve të disponueshme të hyrjes. Biblioteka gjithashtu përfshin një grup stilesh Adwaita, që e sjell pamjen në përputhje me rekomandimet e GNOME, pa pasur nevojë për adaptim manual.

Në këtë version të ri:
- Në vend të klasës GtkShortcutsWindow, e cila është shpallur e vjetruar në GTK 4.18, në Libadwaita është implementuar klasa e re AdwShortcutsDialog me realizimin e dialogut për navigimin në kombinimet e mundshme të çelësve. Kjo implementim është karakterizuar nga një riparim i plotë dhe thjeshtim i logjikës së ndarjes në seksione dhe grupe. Programuesi ofrohet një API minimal, ndërsa struktura dhe përmbajtja e dialogut përcaktohen duke përdorur skedarët UI.
Në vend të GtkShortcutLabel për paraqitjen e elementeve, është propozuar klasa e re AwsShortcutLabel, e cila nuk mbështet përcaktimin e informacionit për gjeste dhe integrimin e ikonave, pasi përdorimi i tyre krijonte konfuzion dhe kishte kufizime (p.sh., ikonat përdorej vetëm në aplikacionin gnome-games për të shënuar butonat e gamepad-eve).

- ĂshtĂ« shtuar mundĂ«sia e pĂ«rdorimit tĂ« media-query CSS pĂ«r tĂ« pĂ«rcaktuar stilin e dizenjove tĂ« errĂ«t dhe tĂ« ndriçuar, si dhe njĂ« paraqitje normale dhe kontrastante tĂ« tĂ« njĂ«jtit element. JanĂ« ndarĂ« madhĂ«sitĂ« e shkronjave pĂ«r pĂ«rmbajtjen (Adwaita Sans 12pt) dhe ndĂ«rfaqen (Adwaita Sans 11pt). ĂshtĂ« shtuar klasa stili «.document» nĂ« tĂ« cilĂ«n pĂ«r lexueshmĂ«ri mĂ« tĂ« mirĂ« pĂ«rdoret shkronja Adwaita Sans 12pt dhe Ă«shtĂ« rritur distanca midis rreshtave. ĂshtĂ« rritur distanca midis rreshtave nĂ« klasĂ«n stili «.body», e cila tani aplikohet si standard nĂ« disa widget standarde.

- Ka lejuar përdorimin e klasës AdwPreferencesGroup me modelet e listave përmes metodës adw_preferences_group_bind_model(). Gjithashtu është shtuar mundësia për të shtuar në listën e brendshme rreshta që nuk janë të klasës AdwPreferencesRow.
- Në klasën AdwPreferencesPage është lejuar vendosja e grupeve në çdo vend, dhe jo vetëm në fund të faqes.
- Në klasat AdwPreferencesGroup dhe AdwPreferencesPage janë shtuar metodat adw_preferences_page_get_group() dhe adw_preferences_group_get_row() për inspektimin e grupeve dhe rreshtave.
- Në klasën AdwWrapBox është shtuar metoda adw_wrap_box_remove_all() për të fshirë të gjitha elementet fëmijë.
- Për elementet fëmijë të klasës GtkFlowBox janë ofruar si standart stile për theksimin e hover-it mbi element dhe aktivizimin e elementit.
- Në klasën AdwHeaderBar është arritur mbështetje për elementet native të menaxhimit të dritareve në macOS.
- Për të përmirësuar performancën, është reduktuar përdorimi i hijeshave për dritaret, dialogët dhe dritaret dalëse.
Burimi: opennet.ru


