Die vrystelling van GTK 3.99.0 was die voltooiing van funksies wat beplan is vir GTK 4

gepubliseer finale eksperimentele vrystelling van die raamwerk GTK 3.99.0, wat al die funksies wat vir GTK 4 beplan is, implementeer. Die GTK 4-tak word ontwikkel as deel van 'n nuwe ontwikkelingsproses wat poog om toepassingsontwikkelaars vir 'n paar jaar van 'n stabiele en ondersteunde API te voorsien wat gebruik kan word sonder die vrees dat dit nodig is herskryf aansoeke elke ses maande, want vir API veranderinge in die volgende GTK tak. GTK 4 word beplan om voor die einde van die jaar vrygestel te word.

Van die meeste betekenisvol veranderinge Π² GTK 4 jy kan daarop let:

  • Metode vir die uitleg van elemente gebaseer op beperkings (beperking uitleg), waarin die ligging en grootte van kinderelemente bepaal word op grond van die afstand na die grense en die grootte van ander elemente.
  • 'n Vervaardiger gebaseer op die Vulkan-grafiese API wat shaders implementeer vir baie van die hulpbron-intensiewe CSS-elemente wat in GTK-legstukke gebruik word.
  • integrasie GSK (GTK Scene Kit) met die vermoΓ« om grafiese tonele via OpenGL en Vulkan weer te gee.
  • Die organisasie van lewering is hersien - in plaas van uitset na 'n buffer, word 'n model wat gebaseer is op lewering nodusse nou gebruik, waarin die uitset gerangskik is in die vorm van 'n boom van hoΓ«vlak bewerkings, doeltreffend verwerk deur die GPU met behulp van OpenGL en Vulkan.
  • fondse vir buigsame hantering van insetfokusveranderinge.
  • 'n Gemoderniseerde gebeurtenisafleweringsmodel wat die behoefte aan subvensters uitskakel wanneer invoergebeurtenisse gelei word. Die behoefte om 'n nuwe model te implementeer word geassosieer met 'n meer aktiewe gebruik van animasie-effekte, waarvan die weergawe gedoen moet word sonder om die uitleg van sigbare elemente te verander en dienooreenkomstig sonder 'n subvenster.
  • Die GDK API is herontwerp met die oog op die gebruik van die Wayland-protokol en verwante konsepte. X11 en Wayland-gebaseerde kenmerke is geskuif na aparte agterkant.
  • 'n Groot opruiming van die API is uitgevoer, insluitend die verwydering van die GtkMenu-, GtkMenuBar- en GtkToolbar-klasse, ten gunste van GMenu en opsies gebaseer op opspringkieslyste.
  • GtkTextView en ander invoerlegstukke het 'n ingeboude ontdoenstapel.
  • Het 'n nuwe GtkNative-klas bygevoeg vir legstukke wat hul eie vertoonoppervlak het en afsonderlik op die eerste vlak kan werk, sonder om aan ouerlegstukke gekoppel te wees.
  • Nuwe widgets is bygevoeg, insluitend GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView en 'n Emoji-vertoonlegstuk.
  • Vir die ontwikkeling van widgets word 'n nuwe GtkLayoutManager-objek bekendgestel met die implementering van 'n stelsel vir die beheer van die uitleg van elemente, afhangende van die grootte van die sigbare area. GtkLayoutManager vervang kindereienskappe in GTK-houers soos GtkBox en GtkGrid.
  • Gebeurtenishantering is vereenvoudig en word nou slegs vir insette gebruik. Die oorblywende gebeurtenisse word met aparte seine vervang, byvoorbeeld, in plaas van uitsetgebeurtenisse, word die "GdkSurface::render"-sein voorgestel, en in plaas van konfigurasiegebeurtenisse, word "GdkSurface::size-changed" aangebied.
  • Het 'n nuwe abstraksielaag GdkPaintable bygevoeg, wat voorwerpe verteenwoordig wat enige plek in enige grootte geteken kan word, sonder dat dit nodig is om uitleglae te sorteer.
  • Die Broadway-agterkant is herskryf sodat die uitvoer van die GTK-biblioteek in 'n webblaaiervenster gelewer kan word.
  • Die API wat verband hou met die uitvoering van Sleep-en-Drop-bewerkings is herontwerp, insluitend die voorgestelde afsonderlike GdkDrag- en GdkDrop-voorwerpe.

Verbeterings in vergelyking met die vorige toetsvrystelling:

  • Die ou implementering van die Toeganklikheid API vir mense met gestremdhede is verwyder, vervang deur 'n nuwe weergawe gebaseer op die spesifikasie ARIA en die GtkAccessible-legstuk.
  • Bygevoeg ondersteuning vir bewerkbare etikette (GtkEditableLabel).
  • Nuwe lysmodelle is voorgestel vir die vertoon van boekmerke (GtkBookmarkList), stringe (GtkStringList) en seleksieblokke (GtkBitset).
  • Die GtkTreeView-legstuk het die vermoΓ« om selle te wysig.
  • Die implementering van blaai is verbeter in GtkGridView en GtkListView en ondersteuning vir outo-blaai en outo-uitbreiding is bygevoeg.
  • GtkWidget versnel die verwerking van verskeie aksies aansienlik.
  • Bygevoeg ondersteuning vir inkrementele blaai en filtering by GtkFilterListModel en GtkSortListModel.
  • Inspector het ondersteuning bygevoeg vir die inspeksie van lysmodelle en die vermoΓ« om direk tussen voorwerpe te navigeer.
  • In GDK is blaaigeskiedenis gestoor, die GdkDevice API is skoongemaak, en die skeiding van toestelle in meester en slaaf is gestop.
  • Bygevoeg 'n nuwe GDK backend vir macOS.
  • 'n Nuwe GDK-weergawe agterkant gebaseer op HOEK, tussenlae om OpenGL ES-oproepe te vertaal na OpenGL, Direct3D 9/11, Desktop GL en Vulkan.

Bron: opennet.ru

Voeg 'n opmerking