lëshimi përfundimtar eksperimental i kornizës , në të cilin janë realizuar të gjitha mundësitë e planifikuara për GTK 4. Dega GTK 4 po zhvillohet brenda një procesi të ri zhvillimi, i cili përpiqet të ofrojë zhvilluesve të aplikacioneve një API të qëndrueshëm dhe të mbështetur për disa vjet, që mund të përdoret pa frikën se çdo gjashtë muaj do të nevojitet riformatimi i aplikacioneve për shkak të ndryshimeve në API në një degë të re GTK. Lëshimi i GTK 4 planifikohet të publikohet deri në fund të vitit.
Nga më në mund të theksohet:
- Metoda e vendosjes së elementeve mbi bazën e kufizimeve (), ku pozita dhe madhësia e elementeve të fëmijëve përcaktohen duke u mbështetur në distancën nga kufijtë dhe madhësinë e elementeve të tjerë.
- Moduli i vizatimit mbi bazë të API-së grafike Vulkan, në të cilin janë realizuar shader për shumë elemente CSS që kërkojnë burime të mëdha, të përdorura në widgetet GTK.
- Integrimi (GTK Scene Kit) me mundësi për vizatimin e skenave grafike përmes OpenGL dhe Vulkan.
- Krijimi i ri i vizatimit - në vend të daljes në një bufër tani aplikohet një model mbi bazën e nyjave të vizatimit (render nodes), ku ndalja kompozohet në formën e një peme të operacioneve të larta, që përpunohen në mënyrë efektive nga GPU me ndihmën e OpenGL dhe Vulkan.
- për përpunimin e fleksibilizuar të ndryshimit të fokusit të hyrjes.
- Modeli i modernizuar i shpërndarjes së ngjarjeve, i cili lejon të hiqet nevoja për subwindow gjatë mapeve të ngjarjeve të hyrjes. Nevoja për të zbatuar një model të ri lidhet me përdorimin më aktiv të efekteve të animacionit, vizatimi i të cilëve duhet të kryhet pa ndryshimin e vendosjes së elementeve të dukshme dhe, për pasojë, pa subwindow.
- API i GDK është rishikuar me fokus në përdorimin e protokollit Wayland dhe koncepteve që lidhen me të. Mundësitë që lidhen me X11 dhe Wayland janë zhvendosur në .
- Një pastrim i madh i API është kryer, duke përfshirë heqjen e klasave GtkMenu, GtkMenuBar dhe GtkToolbar, në vend të cilave janë propozuar GMenu dhe variante të bazuara në menu të dalshme (popover).
- Në GtkTextView dhe widgetet e tjera të hyrjes është integruar një grumbull për rikthimin e ndryshimeve (undo).
- Klasë e re GtkNative për widgetet që kanë sipërfaqen e vet të paraqitjes dhe që mund të funksionojnë në mënyrë të pavarur në nivelin e parë, pa u lidhur me widgetet prind.
- Widgetet e reja janë shtuar, duke përfshirë GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView, si dhe një widget për tregimin e Emoji.
- Për zhvillimin e widgeteve është prezantuar objekti i ri GtkLayoutManager me një sistem të realizuar për menaxhimin e vendosjes së elementeve në varësi të madhësisë së zonës së dukshme. GtkLayoutManager zëvendësoi pronat e fëmijëve në konteinerët GTK, si GtkBox dhe GtkGrid.
- Përpunimi i ngjarjeve është thjeshtuar, të cilat tani përdoren vetëm për hyrje. Ngjarjet e tjera janë zëvendësuar me sinjale të veçanta, për shembull, në vend të ngjarjeve të daljes është propozuar sinjali 'GdkSurface::render', në vend të ngjarjeve të vendosjes - 'GdkSurface::size-changed'.
- Një nivel i ri abstraksioni GdkPaintable është shtuar, që paraqet objekte që mund të vizatohen kudo me çdo madhësi, pa pasur nevojë për grupimin e shtresave të vendosjes.
- Backend-i Broadway është rishkruar, i cili lejon vizatimin e daljes së bibliotekës GTK në një dritare web-browsere.
- API i lidhur me kryerjen e operacioneve Drag-and-Drop është rishikuar, duke përfshirë propozimin e objekteve të veçanta GdkDrag dhe GdkDrop.
Përmirësime krahasuar me lëshimin e kaluara testim:
- Implementimi i vjetër i Accessibility API për persona me aftësi të kufizuara është hequr, në vend të tij është propozuar një variant i ri mbi bazën e specifikimit dhe widgetit GtkAccessible.
- Ka mbështetje për etiketat që mund të redaktohen (GtkEditableLabel).
- Modelet e reja të listave për paraqitjen e shënimeve (GtkBookmarkList), zinxhirëve (GtkStringList) dhe bllokave të zgjedhjes (GtkBitset) janë propozuar.
- Në widgetin GtkTreeView është implementuar mundësia për të redaktuar qeliza.
- Në GtkGridView dhe GtkListView është përmirësuar implementimi i rrotullimit, është shtuar mbështetje për auto-rrotullim dhe auto-zbërthim.
- Në GtkWidget është përshpejtuar ndjeshëm përpunimi i veprimeve të ndryshme.
- Në GtkFilterListModel dhe GtkSortListModel është shtuar mbështetje për rrotullimin dhe filtrimin inkremental.
- Në Inspector është shtuar mbështetje për inspektimin e modeleve të listave dhe mundësinë e navigimit të drejtpërdrejtë midis objekteve.
- Në GDK është siguruar ruajtja e historikut të rrotullimit, është kryer një pastrim i API-së GdkDevice, është ndalur ndarja e pajisjeve në master dhe slave.
- Një backend i ri GDK për macOS është shtuar.
- Për Windows është propozuar një backend i ri GDK për vizatimin mbi bazën e , për të translatuar thirrjet OpenGL ES në OpenGL, Direct3D 9/11, Desktop GL dhe Vulkan.
Burimi: opennet.ru
