Projekti GNOME publikoi versionin e bibliotekës Libadwaita 1.5, e cila përfshin një set komponentësh për stilimin e ndërfaqes së përdoruesit, në përputhje me rekomandimet GNOME HIG (Human Interface Guidelines). Biblioteka përfshin widget-e dhe objekte të gatshme për krijimin e aplikacioneve që i përmbahen stilit të përgjithshëm të GNOME, dhe ndërfaqja e tyre mund të përshtatet në mënyrë adaptuese për ekrane të ç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.

Ndryshimi kryesor në libadwaita 1.5 ishte ristrukturimi i widget-eve adaptuese për krijimin e dritareve të dialogut që përshtaten me madhësinë e zonës së dukshme. Ndryshe nga dritaret e dialogut tradicionale që vendosen në dritare të veçanta, dialogët e rinj formohen në anën e klientit, vizatohen brenda dritareve ekzistuese dhe nuk mund të dalin përtej dritares prindore. Ky qasje e thjeshton krijimin e dialogëve universalë që kombinohen me ndërfaqet për sistemet mobile dhe desktop, dhe gjithashtu ofron mundësi shtesë për menaxhimin e dialogëve (p.sh., nuk është e nevojshme të monitorohet dalja jashtë dritares, mund të zgjidhet sjellja për lidhësit e mbylljes, sigurohet hapja automatike për të gjithë ekranin në versionet mobile të aplikacioneve, merren parasysh stili i dritares aktuale dhe jo i sistemit, gjatë errësirizimit të dialogut).


Në të ardhmen, planifikohet të realizohet një variant tjetër i tillë i dialogëve, të lidhur jo me dritaret, por me skedat brenda dritares, çka mund të kërkohet në aplikacione të tilla si shfletues, për të siguruar që dialogët e lidhur me skedat të mos mbulojnë dritaren kryesore gjatë kalimit ndërmjet skedave.
PĂ«r pajisjet mobile Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r vendosjen e dialogĂ«ve nĂ« formĂ«n e fletĂ«ve tĂ« ngjitura nĂ« pjesĂ«n e poshtme tĂ« ekranit (bottom sheets), dhe jo nĂ« formĂ«n e fletĂ«ve tĂ« qendruar nĂ« qendĂ«r. DialogĂ«t e ngjitur nĂ« pjesĂ«n e poshtme e heqin konfuzionin pĂ«r pĂ«rdoruesit gjatĂ« mbylljes sĂ« dritareve â nĂ« kĂ«to dialogĂ« njĂ« pjesĂ« e dritares prindore mbetet e dukshme dhe lidhĂ«sit e mbylljes sĂ« dritares prindore dhe tĂ« dialogut janĂ« qartĂ« tĂ« ndara, kĂ«shtu qĂ« tani Ă«shtĂ« e vĂ«shtirĂ« t'i ngatĂ«rrosh.

Menaxhimi i dialogëve të rinj bëhet me klasën AdwDialog, dhe puna me të në shumicën e situatave është e ngjashme me përdorimin e klasës GtkWindow, dhe ndryshimet lidhen me operacionet e shfaqjes dhe mbylljes. Për shembull, prona ':transient-for' është zëvendësuar me një parametr në funksionin adw_dialog_present(), është shtuar një sinjal i ri '::close-attempt', dhe është ndryshuar trajtimi i parametrave ':can-close'. Në vend të klasave AdwPreferencesWindow, AdwAboutWindow dhe AdwMessageDialog, me dialogët e rinj propozohet të përdoren klasat AdwPreferencesDialog, AdwAboutDialog dhe AdwAlertDialog.
Dialogët që nuk kanë dritare prindore do të menaxhohen ende si dritare të veçanta. Si dritare do të funksionojnë gjithashtu dialogët, për të cilët dritaret prindore nuk mund të përdoren për vendosjen e dialogëve, p.sh., nëse ato nuk lejojnë ndryshimin e madhësisë ose për to mungojnë klasat AdwWindow dhe AdwApplicationWindow.
Ndryshime që nuk lidhen me ristrukturimin e dialogëve në Libadwaita 1.5:
- Klasës AdwEntryRow i është shtuar prona ':text-length' për të kufizuar madhësinë e tekstit në fushën e inputit.
- Klasës AdwMessageDialog i është shtuar metoda remove_response().
- Klasës AdwBreakpointBin, e cila lejon ndryshimin e ndërfaqes së përdoruesit në mënyrë të rastësishme në varësi të madhësisë së dritares, i është shtuar mundësia për fshirjen programore të pikave të ndërprerjes.
- Klasës AdwSwipeTracker i është shtuar flamuri ':allow-window-handle', i cili lejon kalimin mbi panelin e sipërm (përdoret në fletët e ngjitura në fundin e ekranit).
- ĂshtĂ« rritur ndriçimi i ngjyrave qĂ« pĂ«rdoren pĂ«r errĂ«simin e dritareve gjatĂ« stilit tĂ« errĂ«t.
Burimi: opennet.ru
