Lansarea bibliotecii Libadwaita 1.5 pentru crearea de interfețe în stil GNOME

Proiectul GNOME a publicat lansarea Libadwaita 1.5, care include un set de componente pentru stilul interfeței cu utilizatorul care urmează GNOME HIG (Linii directoare pentru interfața umană). Biblioteca include widget-uri și obiecte gata făcute pentru construirea de aplicații care respectă stilul general GNOME, a căror interfață poate fi ajustată adaptiv la ecrane de orice dimensiune. Codul bibliotecii este scris în C și este distribuit sub licența LGPL 2.1+.

Biblioteca libadwaita este folosită împreună cu GTK4 și include componente ale temei Adwaita utilizate în GNOME, care au fost mutate din GTK într-o bibliotecă separată. Mutarea elementelor de stil GNOME într-o bibliotecă separată permite ca modificările specifice GNOME să fie dezvoltate separat de GTK, permițând dezvoltatorilor GTK să se concentreze asupra lucrurilor de bază și dezvoltatorilor GNOME să promoveze mai rapid și mai flexibil modificările de stil pe care le doresc, fără a afecta GTK în sine.

Biblioteca include widget-uri standard care acoperă diverse elemente de interfață, cum ar fi liste, panouri, blocuri de editare, butoane, file, formulare de căutare, casete de dialog etc. Widgeturile propuse vă permit să creați interfețe universale care funcționează perfect atât pe ecrane mari de computere și laptopuri, cât și pe ecrane tactile mici ale smartphone-urilor. Interfața aplicației se modifică dinamic în funcție de dimensiunea ecranului și de dispozitivele de intrare disponibile. Biblioteca include, de asemenea, un set de stiluri Adwaita care aduc aspectul și senzația ghidurilor GNOME fără a fi nevoie de personalizare manuală.

Lansarea bibliotecii Libadwaita 1.5 pentru crearea de interfețe în stil GNOME

Principala schimbare în libadwaita 1.5 a fost reelaborarea widget-urilor adaptive pentru a crea casete de dialog care se ajustează la dimensiunea zonei vizibile. Spre deosebire de dialogurile tradiționale, care sunt găzduite în ferestre separate, dialogurile noi sunt redate pe partea clientului, redate în interiorul ferestrelor existente și nu se pot extinde dincolo de fereastra părinte. Această abordare simplifică crearea de dialoguri universale care pot fi combinate cu interfețe pentru sistemele mobile și desktop și oferă, de asemenea, opțiuni suplimentare pentru gestionarea dialogurilor (de exemplu, nu este nevoie să monitorizați pentru ieșirea de la marginea ferestrei, puteți alege comportamentul butoanele de închidere, extinderea automată la ecran complet este furnizată în versiunile mobile ale aplicațiilor, stilul ferestrei curente, nu sistemul, este luat în considerare la estomparea dialogului).

Lansarea bibliotecii Libadwaita 1.5 pentru crearea de interfețe în stil GNOMELansarea bibliotecii Libadwaita 1.5 pentru crearea de interfețe în stil GNOME

În viitor, este planificată implementarea unei alte versiuni a unor astfel de dialoguri, legate nu de ferestre, ci de file din interiorul ferestrei, care ar putea fi necesare în aplicații precum browsere, astfel încât dialogurile asociate cu o filă să nu se suprapună cu fereastra principală atunci când comutarea între file.

Pentru dispozitivele mobile, a fost implementat suport pentru plasarea dialogurilor sub formă de foi andocate în partea de jos a ecranului (coli de jos), mai degrabă decât sub formă de foi aliniate la centru. Dialogurile atașate la partea de jos salvează utilizatorii de confuzie cu închiderea ferestrelor - în astfel de dialoguri, o parte a ferestrei părinte rămâne vizibilă, iar butoanele pentru închiderea ferestrei părinte și dialogul în sine sunt clar separate, așa că acum este dificil să le confundați.

Lansarea bibliotecii Libadwaita 1.5 pentru crearea de interfețe în stil GNOME

Noile dialoguri sunt gestionate folosind clasa AdwDialog, care în majoritatea situațiilor este similară cu utilizarea clasei GtkWindow, diferențele fiind operațiile de afișare și de închidere. De exemplu, proprietatea „:transient-for” a fost înlocuită cu un parametru în funcția adw_dialog_present(), a fost adăugat un nou semnal „::close-attempt” și procesarea parametrului „:can-close” a fost schimbată . În loc de clasele AdwPreferencesWindow, AdwAboutWindow și AdwMessageDialog, se propune utilizarea claselor AdwPreferencesDialog, AdwAboutDialog și AdwAlertDialog cu dialoguri noi.

Dialogurile care nu au o fereastră părinte vor fi tratate în continuare ca ferestre separate. Dialogurile ale căror ferestre părinte nu pot fi folosite pentru a găzdui dialoguri vor funcționa și ca ferestre, de exemplu, dacă nu permit redimensionarea sau nu au clasele AdwWindow și AdwApplicationWindow pentru ele.

Modificări care nu sunt legate de reelaborarea dialogului în Libadwaita 1.5:

  • S-a adăugat proprietatea „:text-length” la clasa AdwEntryRow pentru a limita dimensiunea textului în câmpul de introducere.
  • S-a adăugat metoda remove_response() la clasa AdwMessageDialog.
  • Capacitatea de a elimina prin programare punctele de întrerupere a fost adăugată clasei AdwBreakpointBin, care vă permite să schimbați interfața cu utilizatorul în orice mod, în funcție de dimensiunea ferestrei.
  • S-a adăugat indicatorul „:allow-window-handle” la clasa AdwSwipeTracker pentru a permite glisarea în partea de sus a barei de sus (utilizată în foile atașate la marginea de jos).
  • A crescut luminozitatea culorilor folosite la umbrirea ferestrelor într-un stil de design întunecat.

Sursa: opennet.ru

Adauga un comentariu