GTK 3.96, eksperimentell utgivelse av GTK 4, publisert

10 måneder etter av fortiden testutgivelse presentert GTK 3.96, en ny eksperimentell utgivelse av den kommende stabile utgivelsen av GTK 4. GTK 4-grenen utvikles som en del av en ny utviklingsprosess som forsøker å gi applikasjonsutviklere en stabil og støttet API i flere år som kan brukes uten frykt av å måtte omskrive applikasjonen hver sjette måned på grunn av endring av API i neste GTK-gren. Inntil GTK 4 er fullstendig stabilisert, anbefales det at applikasjoner som tilbys brukere fortsetter å bygges ved hjelp av grenen GTK 3.24.

Den viktigste endringer i GTK 3.96:

  • I API GSK (GTK Scene Kit), som gir gjengivelse av grafiske scener via OpenGL og Vulkan, har det blitt jobbet med feil, som har blitt lettere å identifisere takket være det nye feilsøkingsverktøyet gtk4-node-editor, som lar deg laste og vise gjengi node i et serialisert format (kan lagres i inspeksjonsmodus GTK-inspektør), og sammenligne også gjengivelsesresultatene når du bruker forskjellige backends;

    GTK 3.96, eksperimentell utgivelse av GTK 4, publisert

  • 3D-transformasjonsevner er brakt til et nivå som lar deg lage animasjonseffekter som en roterende kube;

    GTK 3.96, eksperimentell utgivelse av GTK 4, publisert

  • fullt omskrevet Broadway GDK-backend designet for å gjengi GTK-bibliotekutdata i et nettleservindu. Den gamle Broadway-implementeringen passet ikke inn i gjengivelsesmetodene foreslått i GTK 4 (i stedet for utdata til en buffer, bruker den nå en modell basert på gjengivelsesnoder, der utdataene er sammensatt i form av et tre med operasjoner på høyt nivå, effektivt behandlet av GPU ved bruk av OpenGL og Vulkan).
    Det nye Broadway-alternativet konverterer gjengivelsesnoder til DOM-noder med CSS-stiler for gjengivelse av grensesnittet i nettleseren. Hver ny skjermtilstand behandles som en endring i DOM-treet i forhold til den forrige tilstanden, noe som reduserer størrelsen på data som overføres til den eksterne klienten. 3D-transformasjoner og grafiske effekter implementeres gjennom CSS-transformasjonsegenskapen;

  • GDK fortsetter å implementere APIer designet med Wayland-protokollen i tankene, og rydde opp i X11-baserte APIer eller flytte dem til en egen X11-backend. Det er fremgang i arbeidet med å gå bort fra bruk av barneflater og globale koordinater. Støtte for GDK_SURFACE_SUBSURFACE er fjernet fra GDK;
  • Refaktorering av koden knyttet til å utføre Dra-og-slipp-operasjoner fortsatte, inkludert de foreslåtte separate GdkDrag- og GdkDrop-objektene;
  • 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 signalet "GdkSurface::render", i stedet for konfigurasjonshendelser - "GdkSurface::size-endret", i stedet for kartleggingshendelser - "GdkSurface: :mapped", i stedet for gdk_event_handler_set() - "GdkSurface::event";
  • GDK-backend for Wayland har lagt til støtte for et portalgrensesnitt for tilgang til GtkSettings-innstillinger. For å jobbe med inndatametoder er det foreslått støtte for tekst-input-unstable-v3-protokollutvidelsen;
  • For utvikling av widgets introduseres et nytt GtkLayoutManager-objekt med implementering av et system for å kontrollere utformingen av elementer avhengig av utformingen av det synlige området. GtkLayoutManager erstatter underordnede egenskaper i GTK-beholdere som GtkBox og GtkGrid. Flere ferdiglagde layoutadministratorer er foreslått: GtkBinLayout for enkle beholdere med ett underordnet element, GtkBoxLayout for lineært justerte underordnede elementer, GtkGridLayout for justering av underordnede elementer til et rutenett, GtkFixedLayout for vilkårlig posisjonering av underordnede elementer, GtkCustomLayout basert på translating_CustomLayout. behandlere;
  • Offentlig tilgjengelige objekter for sidevisning av underordnede elementer er lagt til GtkAssistant-, GtkStack- og GtkNotebook-widgetene, som de ikke-layout-relaterte underordnede egenskapene til disse widgetene overføres til. Siden alle eksisterende underordnede egenskaper har blitt konvertert til vanlige egenskaper, layoutegenskaper eller flyttet til sideobjekter, har støtte for underordnede egenskaper blitt fjernet helt fra GtkContainer;
  • Kjernefunksjonen for GtkEntry har blitt flyttet til en ny GtkText-widget, som også inkluderer et forbedret GtkEditable-redigeringsgrensesnitt. Alle eksisterende datainndataunderklasser har blitt omgjort som GtkEditable-implementeringer basert på den nye GtkText-widgeten;
  • Lagt til en ny GtkPasswordEntry-widget for passordregistreringsskjemaer;
  • GtkWidgets har lagt til muligheten til å transformere underordnede elementer ved å bruke lineære transformasjonsmetoder spesifisert via CSS eller gtk_widget_allocate-argumentet til GskTransform. Den angitte funksjonen er allerede brukt i GtkFixed-widgeten;
  • Nye listegenerasjonsmodeller er lagt til: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel og GtkSingleSelection. I fremtiden planlegger vi å legge til støtte for listemodeller til GtkListView;
  • GtkBuilder har lagt til muligheten til å sette objektegenskaper lokalt (inline), i stedet for å bruke lenker etter identifikator;
  • Lagt til kommando til gtk4-builder-tool for å konvertere UI-filer fra GTK 3 til GTK 4;
  • Støtte for nøkkeltemaer, tabellmenyer og kombinasjonsbokser er avviklet. GtkInvisible-widgeten er fjernet.

    Kilde: opennet.ru

Legg til en kommentar