GTK 3.96, lëshimi eksperimental i GTK 4, i publikuar

10 muaj pas të së shkuarës lëshimi i testit prezantuar GTK 3.96, një version i ri eksperimental i versionit të ardhshëm të qëndrueshëm të GTK 4. Dega GTK 4 po zhvillohet si pjesë e një procesi të ri zhvillimi që përpiqet t'u sigurojë zhvilluesve të aplikacioneve një API të qëndrueshme dhe të mbështetur për disa vite që mund të përdoret pa frikë duhet të rishkruhet aplikacioni çdo gjashtë muaj për shkak të ndryshimit të API-së në degën e ardhshme të GTK. Derisa GTK 4 të stabilizohet plotësisht, rekomandohet që aplikacionet e ofruara për përdoruesit të vazhdojnë të ndërtohen duke përdorur degën GTK 3.24.

Kryesore Ndryshimet në GTK 3.96:

  • Në API GSK (GTK Scene Kit), i cili siguron paraqitjen e skenave grafike përmes OpenGL dhe Vulkan, është punuar për gabimet, të cilat janë bërë më të lehta për t'u identifikuar falë mjetit të ri të korrigjimit gtk4-node-editor, i cili ju lejon të ngarkoni dhe shfaqni nyja e paraqitjes në një format të serializuar (mund të ruhet në modalitetin e inspektimit inspektori GTK), dhe gjithashtu krahasoni rezultatet e paraqitjes kur përdorni backend të ndryshëm;

    GTK 3.96, lëshimi eksperimental i GTK 4, i publikuar

  • Aftësitë e transformimit 3D janë sjellë në një nivel që ju lejon të krijoni efekte animacioni, si p.sh. një kub rrotullues;

    GTK 3.96, lëshimi eksperimental i GTK 4, i publikuar

  • plotësisht rishkruar Mbështetja e Broadway GDK e krijuar për të dhënë daljen e bibliotekës GTK në një dritare të shfletuesit të internetit. Implementimi i vjetër i Broadway nuk përshtatej në metodat e renderimit të propozuara në GTK 4 (në vend të daljes në një tampon, ai tani përdor një model të bazuar në nyjet e renderimit, ku dalja përbëhet në formën e një peme të operacioneve të nivelit të lartë, përpunohet në mënyrë efikase nga GPU duke përdorur OpenGL dhe Vulkan).
    Opsioni i ri i Broadway konverton nyjet e renderit në nyje DOM me stile CSS për paraqitjen e ndërfaqes në shfletues. Çdo gjendje e re e ekranit përpunohet si një ndryshim në pemën DOM në lidhje me gjendjen e mëparshme, gjë që zvogëlon madhësinë e të dhënave të transmetuara te klienti në distancë. Transformimet 3D dhe efektet grafike zbatohen përmes vetive të transformimit CSS;

  • GDK vazhdon të implementojë API-të e dizajnuara duke pasur parasysh protokollin Wayland dhe të pastrojë API-të e bazuara në X11 ose t'i zhvendosë ato në një prapavijë të veçantë X11. Ka përparim në punën për t'u larguar nga përdorimi i sipërfaqeve të fëmijëve dhe koordinatave globale. Mbështetja për GDK_SURFACE_SUBSURFACE është hequr nga GDK;
  • Rifaktorimi i kodit të lidhur me kryerjen e operacioneve Drag-and-Drop vazhdoi, duke përfshirë objektet e propozuara të veçanta GdkDrag dhe GdkDrop;
  • Trajtimi i ngjarjeve është thjeshtuar dhe tani përdoret vetëm për të dhëna. Ngjarjet e mbetura zëvendësohen me sinjale të veçanta, për shembull, në vend të ngjarjeve në dalje, propozohet sinjali "GdkSurface::render", në vend të ngjarjeve të konfigurimit - "GdkSurface::size-changed", në vend të ngjarjeve të hartës - "GdkSurface: :mapped”, në vend të gdk_event_handler_set() - "GdkSurface::event";
  • Mbështetja e GDK për Wayland ka shtuar mbështetje për një ndërfaqe portal për të hyrë në cilësimet e GtkSettings. Për të punuar me metodat e hyrjes, është propozuar mbështetje për zgjerimin e protokollit text-input-unstable-v3;
  • Për zhvillimin e miniaplikacioneve, prezantohet një objekt i ri GtkLayoutManager me zbatimin e një sistemi për kontrollin e paraqitjes së elementeve në varësi të paraqitjes së zonës së dukshme. GtkLayoutManager zëvendëson vetitë e fëmijëve në kontejnerët GTK si GtkBox dhe GtkGrid. Propozohen disa menaxherë të gatshëm të paraqitjes: GtkBinLayout për kontejnerë të thjeshtë me një element fëmijëror, GtkBoxLayout për elementët fëmijë të rreshtuar në mënyrë lineare, GtkGridLayout për rreshtimin e elementeve fëmijë në një rrjet, GtkFixedLayout për pozicionimin arbitrar të elementeve të fëmijëve, Gtk për elementet tradicionale të bazuara në madhësinë e madhësisë_GtkCustomLayout mbajtësit;
  • Objektet e aksesueshme publikisht për shfaqjen e faqeve të elementeve fëmijë janë shtuar në miniaplikacionet GtkAssistant, GtkStack dhe GtkNotebook, tek të cilët transferohen vetitë e fëmijëve që nuk lidhen me Layout të këtyre miniaplikacioneve. Meqenëse të gjitha vetitë ekzistuese të fëmijës janë konvertuar në vetitë e rregullta, vetitë e paraqitjes ose janë zhvendosur në objektet e faqes, mbështetja për veçoritë e fëmijëve është hequr tërësisht nga GtkContainer;
  • Funksionaliteti kryesor GtkEntry është zhvendosur në një miniaplikacion të ri GtkText, i cili gjithashtu përfshin një ndërfaqe të përmirësuar të redaktimit GtkEditable. Të gjitha nënklasat ekzistuese të futjes së të dhënave janë ribërë si zbatime të GtkEditable bazuar në miniaplikacionin e ri GtkText;
  • U shtua një miniaplikacion i ri GtkPasswordEntry për format e futjes së fjalëkalimit;
  • GtkWidgets ka shtuar aftësinë për të transformuar elementët fëmijë duke përdorur metodat lineare të transformimit të specifikuara nëpërmjet CSS ose argumentit gtk_widget_allocate në GskTransform. Veçoria e specifikuar tashmë është aplikuar në miniaplikacionin GtkFixed;
  • Janë shtuar modelet e reja të gjenerimit të listës: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel dhe GtkSingleSelection. Në të ardhmen ne planifikojmë të shtojmë mbështetje për modelet e listave në GtkListView;
  • GtkBuilder ka shtuar aftësinë për të vendosur vetitë e objektit në nivel lokal (inline), në vend që të përdorë lidhjet sipas identifikuesit;
  • U shtua komanda te gtk4-builder-tool për të konvertuar skedarët UI nga GTK 3 në GTK 4;
  • Mbështetja për temat kryesore, menutë tabelare dhe kutitë e kombinuara është ndërprerë. Miniaplikacioni GtkInvisible është hequr.

    Burimi: opennet.ru

Shto një koment