ProHoster > Log > Internett-nyheter > Utgivelsen av GTK 3.99.0 markerte fullføringen av funksjonaliteten som var planlagt for GTK 4
Utgivelsen av GTK 3.99.0 markerte fullføringen av funksjonaliteten som var planlagt for GTK 4
publisert endelig eksperimentell utgivelse av rammeverket GTK 3.99.0, som implementerer alle funksjonene som er planlagt for GTK 4. GTK 4-grenen utvikles som en del av en ny utviklingsprosess som forsøker å gi applikasjonsutviklere et stabilt og støttet API i flere år som kan brukes uten frykt for å måtte omskriv applikasjoner hver sjette måned fordi for API-endringer i neste GTK-gren. GTK 4 er planlagt utgitt før slutten av året.
Metode for å legge ut elementer basert på begrensninger (begrensningsoppsett), der plasseringen og størrelsen på underordnede elementer bestemmes basert på avstanden til grensene og størrelsen på andre elementer.
En renderer basert på Vulkan graphics API som implementerer shaders for mange av de ressurskrevende CSS-elementene som brukes i GTK-widgets.
integrering GSK (GTK Scene Kit) med muligheten til å gjengi grafiske scener via OpenGL og Vulkan.
Organiseringen av gjengivelsen har blitt revidert - i stedet for utdata til en buffer, brukes nå en modell basert på gjengivelsesnoder, der utdataene er ordnet i form av et tre med operasjoner på høyt nivå, effektivt behandlet av GPU ved bruk av OpenGL og Vulkan.
midler for fleksibel håndtering av inputfokusendringer.
En modernisert hendelsesleveringsmodell som eliminerer behovet for undervinduer ved ruting av inputhendelser. Behovet for å implementere en ny modell er forbundet med en mer aktiv bruk av animasjonseffekter, hvis gjengivelse bør gjøres uten å endre utformingen av synlige elementer og følgelig uten et undervindu.
GDK API har blitt redesignet med tanke på å bruke Wayland-protokollen og relaterte konsepter. X11 og Wayland-baserte funksjoner er flyttet til separate backends.
En større opprydding av API har blitt utført, inkludert fjerning av klassene GtkMenu, GtkMenuBar og GtkToolbar, til fordel for GMenu og alternativer basert på popover-menyer.
GtkTextView og andre inndatawidgeter har en innebygd angrestabel.
Lagt til en ny GtkNative-klasse for widgets som har sin egen skjermoverflate og kan fungere separat på første nivå, uten å være knyttet til overordnede widgets.
Nye widgeter er lagt til, inkludert GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView og en Emoji-skjermwidget.
For utvikling av widgeter introduseres et nytt GtkLayoutManager-objekt med implementering av et system for å kontrollere utformingen av elementer avhengig av størrelsen på det synlige området. GtkLayoutManager erstatter underordnede egenskaper i GTK-beholdere som GtkBox og GtkGrid.
Hendelseshåndtering er forenklet og brukes nå kun til input. De resterende hendelsene erstattes med separate signaler, for eksempel, i stedet for utgangshendelser, foreslås "GdkSurface::render"-signalet, og i stedet for konfigurasjonshendelser tilbys "GdkSurface::size-changed".
Lagt til et nytt abstraksjonslag GdkPaintable, som representerer objekter som kan tegnes hvor som helst i alle størrelser, uten behov for å sortere layoutlag.
Broadway-backend har blitt omskrevet for å tillate utdata fra GTK-biblioteket å bli gjengitt i et nettleservindu.
API-en knyttet til å utføre Dra-og-slipp-operasjoner har blitt redesignet, inkludert de foreslåtte separate GdkDrag- og GdkDrop-objektene.
Forbedringer sammenlignet med forrige testutgivelse:
Den gamle implementeringen av Accessibility API for funksjonshemmede er fjernet, erstattet av en ny versjon basert på spesifikasjonen ARIA og GtkAccessible-widgeten.
Lagt til støtte for redigerbare etiketter (GtkEditableLabel).
Nye listemodeller er foreslått for visning av bokmerker (GtkBookmarkList), strenger (GtkStringList) og utvalgsblokker (GtkBitset).
GtkTreeView-widgeten har muligheten til å redigere celler.
Implementeringen av rulling er forbedret i GtkGridView og GtkListView, støtte for automatisk rulling og automatisk utvidelse er lagt til.
GtkWidget øker betydelig hastighet på behandlingen av ulike handlinger.
Lagt til støtte for inkrementell rulling og filtrering til GtkFilterListModel og GtkSortListModel.
Inspector har lagt til støtte for inspeksjon av listemodeller og muligheten til å navigere direkte mellom objekter.
I GDK har rullehistorikk blitt lagret, GdkDevice API er renset, og separasjonen av enheter i master og slave har blitt stoppet.
Lagt til en ny GDK-backend for macOS.
En ny GDK-gjengivelsesbackend basert på VINKEL, lag å oversette OpenGL ES-anrop til OpenGL, Direct3D 9/11, Desktop GL og Vulkan.