10 kuud pärast katseväljaannet , uus eksperimentaalne väljalase tulevase stabiilse GTK 4 versiooni jaoks. GTK 4 haru areneb uue arendusprotsessi raames, mille eesmärk on pakkuda rakenduste arendajatele stabiilset ja mitme aasta vältel toetatavat API-d, mida saab kasutada ilma mureta, et iga kuue kuu tagant tuleb API muutumise tõttu rakendust ümber teha. Enne GTK 4 täielikku stabiliseerumist soovitatakse kasutajatele pakutavaid rakendusi jätkuvalt koostada GTK .
Peamised GTK 3.96-s:
- API-s (GTK Stseeni Kit), mis hõlbustab graafiliste stseenide joonistamist OpenGL-i ja Vulkaniga, on tehtud vigu, mille tuvastamine on tänu uuele tõrkeotsingu tööriistale gtk4-node-editor, mis võimaldab laadida ja kuvada renderdamise sõlme serialiseeritud vormingus (mida saab salvestada GTK kontrollija inspektsioonirežiimis), ning võrrelda renderdamise tulemust erinevate tagapindade rakendamisel;
- 3D-transformatsioonide võimalused on viidud tasemele, mis võimaldab luua selliseid animatsiooni efekte nagu pöörlev kuub;
- Täielikult GDK-backend Broadway, mis on mõeldud GTK teegi väljundi joonistamiseks veebibrauseri aknas. Vana Broadway teostus ei sobinud GTK 4 pakutud joonistusmeetoditega (väljaandmine puhvri kaudu on asendatud sõlmede joonistamise mudeliga, kus väljund koostatakse kõrgetasemeliste toimingute puu kujul, mida GPU töötab tõhusalt OpenGL-i ja Vulkaniga).
Uus Broadway versioon teisendab joonistamise sõlmed DOM-sõlmedeks koos CSS-stiilidega, et esitada kasutajaliidese brauseris. Iga uus ekraani olek töödeldakse kui DOM-puu muutus eelneva oleku suhtes, mis võimaldab vähendada andmete mahtu, mis edastatakse kaugkliendile. 3D-transformatsioonid ja graafilised efektid realiseeritakse CSS omaduse transform kaudu; - GDK-s on jätkatud API-de rakendamist, mis on välja töötatud silmas pidades Waylandi protokolli kasutamist, ning API-de puhastamist, mis on seotud X11-ga, või nende jagamist eraldi X11 tagasisuunaga. On tehtud edusamme alampindade ja globaalsete koordinaatide kasutuse vähendamisel. GDK-st on eemaldatud GDK_SURFACE_SUBSURFACE tugi;
- Jätkatakse koodi refaktoreerimist, mis on seotud Drag-and-Drop operatsioonide täitmisega, sealhulgas on ettepanekud eraldi GdkDrag ja GdkDrop objektide loomiseks;
- Sündmuste töötlemine on lihtsustatud, neid kasutatakse nüüd ainult sisendi jaoks. Ülejäänud sündmused on asendatud eraldi signaalidega, näiteks väljundisündmuste asemel on ettepanek signaal "GdkSurface::render", seadistussündmuste asemel on "GdkSurface::size-changed", sobitussündmuste asemel on "GdkSurface::mapped", gdk_event_handler_set() asemel on "GdkSurface::event";
- GDK tagasisuunas Wayland lisati portaalliidese tugi GtkSettings seadete juurde pääsemiseks. Sisendimeetodite toetamiseks on ettepanek toetada protokolli text-input-unstable-v3 laiendust;
- Videte arendamiseks on saadaval uus objekt GtkLayoutManager, mis rakendab koostisosade paigutuse juhtimissüsteemi, sõltuvalt nähtava ala suurusest. GtkLayoutManager asendab GTK konteinerite, nagu GtkBox ja GtkGrid, laste omadusi. Pakutakse mitmeid valmis paigutusmenedžere: GtkBinLayout lihtsatele konteineritele, millel on üks alamkomponent, GtkBoxLayout lineaarsetele järjekorrale asetatud alamkomponentidele, GtkGridLayout alamkomponentide ruudustiku kohandamiseks, GtkFixedLayout vabaks positsioneerimiseks ja GtkCustomLayout traditsiooniliste elementide edastamiseks size_allocate töötlejatena.
- Widgetitesse GtkAssistant, GtkStack ja GtkNotebook on lisatud avalikult kättesaadavad objektid leheküljel ilmuvate alamkomponentide jaoks, millele on edastatud paigutusega (Layout) mitteseotud alandavad andmed. Kuna kõik olemasolevad laste omadused on muudetud tavaliseks omaduseks, on paigutuse omadused kas kantud leheküljel olevatesse objektidesse või eemaldatud GtkContainerist täielikult.
- GtkEntry põhifunktsionaalsus on viidud uude vidinasse GtkText, mis sisaldab ka täiendatud redigeerimisseadet GtkEditable. Kõik olemasolevad andmesisestuse alamklassid on ümber töötatud GtkEditable rakendusteks uue vidina GtkText põhjal;
- Uus vidin GtkPasswordEntry on lisatud paroolide sisestamise vormidele;
- GtkWidgetidesse on lisatud võimalus laste elementide muutmiseks lineaarsete transformatsioonimeetodite kaudu, mida saab määrata CSS-i või argumentide gtk_widget_allocate abil GskTransformis. Antud võimalust on juba rakendatud vidinas GtkFixed;
- Uued loendite mudelid: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel ja GtkSingleSelection. Tulevikus on plaanis lisada toetust loendite mudelitesse GtkListView-s;
- GtkBuilderisse on lisatud võimalus määrata objektide omadusi kohapeal (inline), asendades ID-viidatud omaduste kasutamise;
- gtk4-builder-toolis on lisatud käsk GTK 3 kasutajaliidesefailide konverteerimiseks GTK 4-ks;
- Mõningate kujundusteemade (key theme), vahekaartide menüüde (tabular menu) ja kombineeritud plokkide (combo box) tugi on lõpetatud. Vidin GtkInvisible on eemaldatud.
Allikas: opennet.ru
