Po štyroch rokoch vývoja konečne bolo oznámené vydanie novej pobočky GTK 4.0, ktorý sa vyvíja ako súčasť nového vývojového procesu, ktorý sa snaží poskytnúť vývojárom aplikácií niekoľko rokov stabilné a kompatibilné API, ktoré je možné používať bez obáv z nutnosti opakovaných aplikácií každých šesť mesiacov kvôli zmenám API v budúcom GTK. pobočka.
Pobočka GTK 4 bol vyhlásený za stabilný a bude sa používať v budúcej verzii GNOME 4.0. Zároveň bolo oznámené, že podpora pobočky GTK 2 bola ukončená o niekoľko dní, pre ktoré sa plánuje vydanie najnovšej verzie, zatiaľ čo podpora pobočky GTK 3 bude v dohľadnej budúcnosti pokračovať.
Hlavné nové funkcie GTK 4.0
Nájdeme to zo zmien, ktoré vyčnievajú z tejto novej vetvy bola implementovaná obmedzená metóda návrhu, v ktorých sa umiestnenie a veľkosť podradených prvkov určuje na základe vzdialenosti od okrajov a veľkosti ďalších prvkov.
okrem toho pridaný modul vykresľovania založený na grafickom API Vulkan, ktorá implementuje shadery pre mnoho prvkov CSS náročných na zdroje používaných v widgetoch GTK a GSK bol integrovaný (Sada scén GTK) so schopnosťami vykresľovania grafickej scény cez OpenGL a Vulkan.
Organizácia zastúpenia bola revidovaná: namiesto posielania do bufferu teraz sa používa model založený na vykresľovacích uzloch, kde je výstup organizovaný vo forme operačného stromu na vysokej úrovni, efektívne spracované GPU pomocou OpenGL a Vulkan.
To môžeme vidieť aj v GTK 4.0 navrhuje sa modernizovaný model poskytovania udalostí, čo umožňuje pri obchádzaní vstupných udalostí obísť podokno. Potreba implementácie nového modelu je spojená s aktívnejším využitím animačných efektov, ktoré je potrebné vykresliť bez zmeny rozloženia viditeľných prvkov a následne bez podokna.
GDK API preformulované tak, aby využívalo výhody protokolu Wayland a súvisiace pojmy. Funkcie súvisiace s X11 a Wayland boli presunuté do samostatných backendov a bolo urobené veľké vyčistenie API, vrátane odstránenia tried GtkMenu, GtkMenuBar a GtkToolbar, namiesto ktorých sú navrhnuté možnosti GMenu a popover.
Pokiaľ ide o vývoj widgetov, nový objekt GtkLayoutManager sa predstavuje s implementáciou riadiaceho systému na usporiadanie prvkov na základe veľkosti viditeľnej oblasti a tým, že GtkLayoutManager nahradil podradené vlastnosti v kontajneroch GTK, ako sú GtkBox a GtkGrid.
Z ďalších zmien, ktoré vynikajú:
- Pre widgety, ktoré majú vlastnú zobrazovaciu plochu a môžu pracovať samostatne na prvej úrovni, bez toho, aby boli prepojené s hlavnými widgetmi, bola pridaná nová trieda GtkNative.
- Boli pridané nové widgety vrátane GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView a tiež miniaplikácie na zobrazenie Emoji.
- Bola pridaná nová abstrakčná vrstva GdkPaintable, ktorá vykresľuje objekty, ktoré je možné kresliť kdekoľvek a v akejkoľvek veľkosti, bez toho, aby ste museli triediť návrhové vrstvy.
- Prepracovaný back-end Broadway umožňujúci vykreslenie výstupu knižnice GTK v okne webového prehliadača.
- API súvisiace s operáciami drag and drop bolo prepracované, vrátane navrhovaných samostatných objektov GdkDrag a GdkDrop.
- Predchádzajúca implementácia API prístupnosti pre ľudí so zdravotným postihnutím bola odstránená a bola navrhnutá nová verzia založená na špecifikácii ARIA a widgete GtkAccessible.
- Pridaná podpora pre upraviteľné štítky
- Miniaplikácia GtkTreeView implementuje schopnosť upravovať bunky.
- Pridaná podpora pre prírastkové posúvanie a filtrovanie do GtkFilterListModel a GtkSortListModel.
- Pridaný nový backend GDK pre macOS.
GtkTextView a ďalšie vstupné widgety majú zabudovaný zásobník na vrátenie späť. - Pre Windows je ponúkaný nový backend vykresľovania GDK založený na ANGLE, medzivrstva na preklad hovorov z OpenGL ES do OpenGL, Direct3D 9/11, Desktop GL a Vulkan.