A GTK 3.99.0 megjelenése a GTK 4 tervezett funkcionalitásának befejezését jelentette

közzétett a keret végső kísérleti kiadása GTK 3.99.0, amely a GTK 4-hez tervezett összes funkciót megvalósítja. A GTK 4 ágat egy új fejlesztési folyamat részeként fejlesztik, amely megpróbálja az alkalmazásfejlesztők számára stabil és több évre támogatott API-t biztosítani, amelyet anélkül, hogy félnünk kell félévente írjuk át az alkalmazásokat, mert az API-módosításokhoz a következő GTK-ágban. A GTK 4 megjelenését az év vége előtt tervezik.

A leginkább jelentős változtatások в GTK 4 megjegyzés:

  • Elemek elrendezésének módszere megszorítások alapján (kényszerű elrendezés), amelyben a gyermekelemek helyét és méretét a szegélyek távolsága és más elemek mérete alapján határozzák meg.
  • A Vulkan grafikus API-n alapuló megjelenítő, amely árnyékolókat valósít meg a GTK widgetekben használt sok erőforrás-igényes CSS-elemhez.
  • integráció GSK (GTK Scene Kit), amely képes grafikus jelenetek megjelenítésére OpenGL és Vulkan segítségével.
  • A renderelés szervezése átdolgozásra került - a pufferbe történő kimenet helyett a render csomópontokon alapuló modellt alkalmazzák, amelyben a kimenet magas szintű műveletek fa formájában van elrendezve, amelyet a GPU az OpenGL segítségével hatékonyan dolgoz fel. és Vulkan.
  • alapok a bemeneti fókusz változtatások rugalmas kezeléséhez.
  • Modernizált eseménykézbesítési modell, amely kiküszöböli az alablakok szükségességét a bemeneti események irányításakor. Az új modell megvalósításának szükségessége az animációs effektusok aktívabb használatához kapcsolódik, amelyek megjelenítését a látható elemek elrendezésének megváltoztatása és ennek megfelelően alablak nélkül kell elvégezni.
  • A GDK API-t újratervezték, szem előtt tartva a Wayland protokollt és a kapcsolódó koncepciókat. Az X11-re és a Wayland-alapú szolgáltatásokra átkerültek külön backendek.
  • Az API jelentős tisztítása megtörtént, beleértve a GtkMenu, GtkMenuBar és GtkToolbar osztályok eltávolítását, a GMenu és a felugró menükön alapuló opciók javára.
  • A GtkTextView és más beviteli widgetek beépített visszavonási veremmel rendelkeznek.
  • Új GtkNative osztály került hozzáadásra azokhoz a widgetekhez, amelyek saját megjelenítési felülettel rendelkeznek, és az első szinten külön is működhetnek anélkül, hogy a szülő widgetekhez lennének kötve.
  • Új widgetek kerültek hozzáadásra, köztük a GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView és egy Emoji kijelző widget.
  • A widgetek fejlesztéséhez egy új GtkLayoutManager objektumot vezetnek be az elemek elrendezését a látható terület méretétől függően vezérlő rendszer megvalósításával. A GtkLayoutManager lecseréli a gyermektulajdonságokat a GTK-tárolókban, például a GtkBoxban és a GtkGridben.
  • Az eseménykezelés egyszerűsödött, és már csak bevitelre használható. A fennmaradó eseményeket külön jelek helyettesítik, például a kimeneti események helyett a „GdkSurface::render” jelet javasoljuk, és a konfigurációs események helyett a „GdkSurface::size-changed” kerül felajánlásra.
  • Új absztrakciós réteg, GdkPaintable került hozzáadásra, amely olyan objektumokat képvisel, amelyek bárhová, bármilyen méretben megrajzolhatók, az elrendezési rétegek rendezése nélkül.
  • A Broadway háttérprogramot átírták, hogy lehetővé tegye a GTK-könyvtár kimenetének megjelenítését egy webböngésző ablakban.
  • A Drag-and-Drop műveletek végrehajtásához társított API-t újratervezték, beleértve a javasolt különálló GdkDrag és GdkDrop objektumokat.

Fejlesztések az előző tesztkiadáshoz képest:

  • A fogyatékkal élők számára készült akadálymentesítési API régi megvalósítását eltávolítottuk, helyette a specifikáció alapján egy új verzió került. ARIA és a GtkAccessible widget.
  • Hozzáadott támogatás a szerkeszthető címkékhez (GtkEditableLabel).
  • Új listamodelleket javasoltak a könyvjelzők (GtkBookmarkList), karakterláncok (GtkStringList) és kiválasztási blokkok (GtkBitset) megjelenítésére.
  • A GtkTreeView widget képes cellákat szerkeszteni.
  • A görgetés megvalósítása javult a GtkGridView és GtkListView verziókban, hozzáadták az automatikus görgetés és az automatikus bővítés támogatását.
  • A GtkWidget jelentősen felgyorsítja a különféle műveletek feldolgozását.
  • A növekményes görgetés és szűrés támogatása hozzáadva a GtkFilterListModelhez és a GtkSortListModelhez.
  • Az Inspector hozzáadta a listamodellek vizsgálatának támogatását és az objektumok közötti közvetlen navigálás lehetőségét.
  • A GDK-ban elmentették a görgetési előzményeket, megtisztították a GdkDevice API-t, és leállították az eszközök master és slave szétválasztását.
  • Új GDK-háttér a macOS számára.
  • Egy új GDK-megjelenítési háttérrendszer, amely a SZÖG, közbenső rétegek az OpenGL ES hívások OpenGL-re, Direct3D 9/11-re, Desktop GL-re és Vulkan-ra való lefordításához.

Forrás: opennet.ru

Hozzászólás