Nakon četiri mjeseca razvoja, objavljen je GTK 4.6.0, višeplatformski alat za grafičko korisničko sučelje. GTK 4 se razvija u okviru novog razvojnog procesa koji ima za cilj pružiti programerima aplikacija stabilan i podržan API koji se može koristiti nekoliko godina bez straha od prerade aplikacija svakih šest mjeseci zbog promjena API-ja u najnovijoj GTK grani.
Neka od najznačajnijih poboljšanja u GTK 4.6 uključuju:
- Stari mehanizam za renderiranje temeljen na OpenGL-u uklonjen je i zamijenjen novim NGL-om, koji je bio zadani od GTK 4.2 i nudi poboljšane performanse. NGL je preimenovan u GL. Kod za učitavanje tekstura je prepisan, a poboljšana je i podrška za formate slika i prostore boja.
- Kod vezan za izračunavanje veličina elemenata i rasporeda widgeta značajno je prerađen. Prije su se svojstva GtkWidget::halign i GtkWidget::valign temeljila na zadanoj veličini widgeta prilikom postavljanja elemenata. To je moglo rezultirati time da elementi zauzimaju dodatni prostor kada se u načinu ispunjavanja navodi samo jedna veličina. GTK 4.6 sada podržava relativno mjerenje nedostajućih dimenzija (na primjer, ako je navedena širina, dostupna visina može se uzeti u obzir prilikom postavljanja), što omogućuje tanje widgete bez zauzimanja nepotrebnog prostora.


- GtkBox widget sada omogućuje izračun veličina pojedinačnih podređenih elemenata. Prije se prostor ravnomjerno raspoređivao među podređenim widgetima na temelju njihove zadane veličine, ali u GTK 4.6, stvarna veličina podređenog elementa sada se uzima u obzir prilikom renderiranja.
- GtkLabel widget podržava prelamanje teksta preko proizvoljnog broja redaka, omogućujući vam stvaranje uskih oznaka koje stanu unutar dostupnog vertikalnog prostora.
- Klasa GtkWindow sada podržava podešavanje minimalne veličine omjera slike, što vam omogućuje proizvoljno mijenjanje veličine prozora bez brige da će postati premalen. Dodano je svojstvo "Window.titlebar".
- Dodano je novo upozorenje za prijavu neusklađenosti veličina kada widget vrati netočnu veličinu. Gtk-CRITICAL **: 00:48:33.319: gtk_widget_measure: tvrdnja 'for_size >= minimalna nasuprotna veličina' nije uspjela: 23 >= 42
- Widget GtkTextView sada podržava desno poravnate i centrirane tabulatore. Transformacija teksta i visina retka sada su podržane. Poboljšano je pomicanje do određene oznake. Poboljšano je rukovanje poništavanjem. Riješeni su problemi s lijepljenjem teksta iz međuspremnika i odabirom lokacije za prikaz sučelja za umetanje emojija.
- Widget GtkMenuButton pruža mogućnost definiranja vlastitih podređenih elemenata.
- Predkompilacija predložaka je ubrzana u GtkBuilderu.
- Dodan je signal za aktivaciju widgeta GtkComboBox i GtkDropDown.
- Svojstvo show-arrow dodano je u GtkDropDown widget kako bi se kontroliralo prikazuje li se strelica.

- Dodan je atribut use-markup u GtkPopoverMenu kako bi se omogućila upotreba Pango oznaka u tekstu izbornika.
- Sustav stilova sada podržava CSS svojstva font-variant-caps za prikaz malih velikih slova i text-transform za transformaciju teksta.
- Dodano je sučelje GtkSymbolicPaintable za upravljanje bojom simboličnih ikona.
- Sučelje za inspekciju sada podržava operacije povlačenja i ispuštanja, prikazuje trenutni ulazni modul, prikazuje sadržaj međuspremnika, implementira graf za vizualizaciju gtk_widget_measure() i omogućuje zapisivanje događaja. Podrška za povlačenje i ispuštanje dodana je u uslužni program gtk4-node-editor.
- Za Wayland je implementirana postavka za aktiviranje načina visokog kontrasta. Dodana je podrška za protokol wl_seat v7.
- Dodana je postavka gtk-hint-font-metrics kako bi se renderiranje teksta približilo ponašanju GTK3.
- Za sustave temeljene na X11 dodana je podrška za geste upravljanja dodirnom plohom (pri korištenju XInput 2.4) i poboljšano je ponašanje povlačenja prozora za njihovu naslovnu traku.
- GDK biblioteka, koja pruža sloj između GTK-a i grafičkog podsustava, poboljšala je provjeru verzija OpenGL-a i OpenGL ES-a. Dodana je podrška za HSL prostor boja. Biblioteke libpng, libjpeg i libtiff sada se izravno koriste pri učitavanju tekstura i rukovanju formatima slika. EGL inicijalizacijski kod premješten je u frontend. Dodani su novi API-ji: gdk_texture_new_from_bytes, gdk_texture_new_from_filename, gdk_texture_download_float, gdk_texture_save_to_png_bytes, gdk_texture_save_to_tiff, gdk_texture_save_to_tiff_bytes i gdk_display_create_gl_context.
- Grana "master" u Git repozitoriju je preimenovana u "main".
Izvor: opennet.ru



