Efter 10 mÄnader sedan testutgÄvan , den nya experimentella utgÄvan av den framtida stabila versionen GTK 4. GTK 4-grenen utvecklas inom ramen för en ny utvecklingsprocess som syftar till att ge applikationsutvecklare en stabil och lÄngsiktigt stödd API, som kan anvÀndas utan att oroa sig för att de mÄste göra om sin applikation varje halvt Är pÄ grund av API-förÀndringar i nÀsta GTK-gren. Tills GTK 4 Àr helt stabiliserad rekommenderas det att applikationer som erbjuds anvÀndare fortsÀtter att byggas med hjÀlp av grenen .
Huvud i GTK 3.96:
- I API (GTK Scene Kit), som tillhandahÄller rendering av grafiska scener via OpenGL och Vulkan, har det gjorts arbete för att ÄtgÀrda fel, vilket har blivit enklare tack vare det nya felsökningsverktyget gtk4-node-editor, som gör det möjligt att ladda och visa renderingens nod i ett serialiserat format (kan sparas i GTK-inspektörens inspektionslÀge), samt jÀmföra renderingens resultat nÀr olika backend anvÀnds;
- Möjligheterna för 3D-transformationer har nÄtt en nivÄ som möjliggör skapandet av animerade effekter som en snurrande kub;
- Helt GDK-backend Broadway, som Àr avsedd för att rendera GTK-bibliotekets utdata i ett webblÀsares fönster. Den gamla implementationen av Broadway passade inte in i de renderingmetoder som föreslogs i GTK 4 (istÀllet för att output gÄr till en buffert anvÀnds nu en nodbaserad renderingmodell, dÀr utdata sammansÀtts i form av ett trÀd av högre nivÄ operationer som effektivt hanteras av GPU:n med hjÀlp av OpenGL och Vulkan).
Den nya versionen av Broadway omvandlar renderingens noder till DOM-noder med CSS-stilar för att ge utseende i webblÀsaren. Varje nytt skÀrmlÀge hanteras som en förÀndring av DOM-trÀdet i förhÄllande till det föregÄende tillstÄndet, vilket minskar storleken pÄ de data som skickas till den fjÀrrklienten. 3D-transformationer och grafiska effekter implementeras genom CSS-egenskapen transform; - I GDK fortsÀtter implementeringen av API:er som utvecklats med tanke pÄ anvÀndning av Wayland-protokollet, och en rensning av API:er relaterade till X11 görs, eller sÄ flyttas de till en separat X11-backend. Framsteg noteras i arbetet för att fasa ut anvÀndningen av underordnade ytor och globala koordinater. Stödet för GDK_SURFACE_SUBSURFACE har tagits bort frÄn GDK;
- Refaktoriseringen av koden kopplad till Drag-and-Drop-operationer har fortsatts, inklusive förslaget att separata objekt GdkDrag och GdkDrop anvÀnds;
- HĂ€ndelsehanteringen har förenklats och anvĂ€nds nu bara för inmatning. Ăvriga hĂ€ndelser har ersatts med separata signaler, till exempel ersattes utdatahĂ€ndelser med signalen "GdkSurface::render", i stĂ€llet för konfigurationshĂ€ndelser â "GdkSurface::size-changed", i stĂ€llet för matchande hĂ€ndelser â "GdkSurface::mapped", i stĂ€llet för gdk_event_handler_set() â "GdkSurface::event";
- Stöd för portalgrÀnssnitt för att komma Ät GtkSettings har lagts till i GDK-backenden för Wayland. För att arbeta med inmatningsmetoder har stöd för protokollet text-input-unstable-v3 föreslagits;
- För utvecklingen av widgets har ett nytt objekt GtkLayoutManager presenterats med en implementering av ett system för hantering av layout beroende pÄ storleken pÄ det synliga omrÄdet. GtkLayoutManager har ersatt barnens egenskaper i GTK-containrar, sÄsom GtkBox och GtkGrid. Flera fÀrdiga layoutchefer föreslÄs: GtkBinLayout för enkla containrar med ett enda barn, GtkBoxLayout för linjÀrt justerade barn, GtkGridLayout för justering av barn i ett rutnÀt, GtkFixedLayout för godtycklig positionering av barn, GtkCustomLayout för översÀttning av traditionella element baserat pÄ storleksfördelare;
- I widgets GtkAssistant, GtkStack och GtkNotebook har offentligt tillgÀngliga objekt lagts till för sidvisning av barn, som har konverterats frÄn icke-layout (Layout) barnens egenskaper till vanliga egenskaper. Eftersom alla befintliga barnens egenskaper har omvandlats till vanliga egenskaper, antingen flyttats till sidobjekt eller lagts till, har stöd för barnens egenskaper helt tagits bort frÄn GtkContainer;
- Den grundlÀggande funktionen i GtkEntry har flyttats till den nya widgeten GtkText, som ocksÄ inkluderar det utökade redigeringsgrÀnssnittet GtkEditable. Alla befintliga underklasser för datainmatning har omarbetats som implementationer av GtkEditable baserat pÄ den nya widgeten GtkText;
- En ny widget GtkPasswordEntry för inmatningsformulÀr har lagts till;
- I GtkWidgets har möjligheten att transformera barn genom linjÀra transformationsmetoder, angivna via CSS eller argumentet gtk_widget_allocate i GskTransform, lagts till. Den angivna möjligheten har redan tillÀmpats i widgeten GtkFixed;
- Nya modeller för listformat har lagts till: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel och GtkSingleSelection. Stöd för listmodeller i GtkListView planeras att lÀggas till i framtiden;
- I GtkBuilder har möjligheten att ange egenskaper för objekt pÄ plats (inline) lagts till, istÀllet för att anvÀnda referenser via identifierare;
- I gtk4-builder-tool har ett kommando lagts till för att konvertera UI-filer frÄn GTK 3 till GTK 4;
- Stödet för nyckelteman (key theme), flikmenyer (tabular menu) och kombinerade block (combo box) har upphört. Widgeten GtkInvisible har tagits bort.
KĂ€lla: opennet.ru
