GTK 3.96, experimentálne vydanie GTK 4, publikované

10 mesiacov po z minulosti testovacie vydanie predložené GTK 3.96, nové experimentálne vydanie pripravovaného stabilného vydania GTK 4. Vetva GTK 4 sa vyvíja ako súčasť nového vývojového procesu, ktorý sa pokúša poskytnúť vývojárom aplikácií stabilné a podporované API na niekoľko rokov, ktoré je možné bez obáv používať nutnosti prepisovať aplikáciu každých šesť mesiacov kvôli zmene API v ďalšej vetve GTK. Kým GTK 4 nebude úplne stabilizovaný, odporúča sa, aby aplikácie ponúkané používateľom boli naďalej vytvárané pomocou pobočky GTK 3.24.

Hlavné zmeny v GTK 3.96:

  • V API GSK (GTK Scene Kit), ktorý poskytuje vykresľovanie grafických scén cez OpenGL a Vulkan, sa zapracovalo na chybách, ktoré sa dali ľahšie identifikovať vďaka novému nástroju na ladenie gtk4-node-editor, ktorý vám umožňuje načítať a zobraziť vykresľovací uzol v serializovanom formáte (možno uložiť v inšpekčnom režime GTK inšpektor) a tiež porovnať výsledky vykresľovania pri použití rôznych backendov;

    GTK 3.96, experimentálne vydanie GTK 4, publikované

  • Možnosti 3D transformácie sa dostali na úroveň, ktorá vám umožňuje vytvárať animačné efekty, ako je napríklad rotujúca kocka;

    GTK 3.96, experimentálne vydanie GTK 4, publikované

  • plne prepísané Broadway GDK backend navrhnutý na vykreslenie výstupu knižnice GTK v okne webového prehliadača. Stará Broadway implementácia nezapadala do metód vykresľovania navrhovaných v GTK 4 (namiesto výstupu do vyrovnávacej pamäte teraz používa model založený na vykresľovacích uzloch, kde sa výstup skladá vo forme stromu operácií na vysokej úrovni, efektívne spracované GPU pomocou OpenGL a Vulkan).
    Nová možnosť Broadway konvertuje vykresľovacie uzly na uzly DOM so štýlmi CSS na vykreslenie rozhrania v prehliadači. Každý nový stav obrazovky je spracovaný ako zmena v strome DOM v porovnaní s predchádzajúcim stavom, čo znižuje veľkosť údajov prenášaných na vzdialeného klienta. 3D transformácie a grafické efekty sú implementované prostredníctvom vlastnosti transformácie CSS;

  • GDK pokračuje v implementácii API navrhnutých s ohľadom na protokol Wayland a v čistení API na báze X11 alebo ich presúva do samostatného backendu X11. V práci na odklon od používania detských plôch a globálnych súradníc došlo k pokroku. Podpora pre GDK_SURFACE_SUBSURFACE bola z GDK odstránená;
  • Pokračovalo refaktorovanie kódu spojeného s vykonávaním operácií Drag-and-Drop, vrátane navrhovaných samostatných objektov GdkDrag a GdkDrop;
  • Spracovanie udalostí bolo zjednodušené a teraz sa používa iba na vstup. Zostávajúce udalosti sú nahradené samostatnými signálmi, napríklad namiesto výstupných udalostí je navrhnutý signál „GdkSurface::render“ namiesto konfiguračných udalostí - „GdkSurface::size-changed“, namiesto mapovacích udalostí - „GdkSurface: :mapped”, namiesto gdk_event_handler_set() - "GdkSurface::event";
  • Backend GDK pre Wayland pridal podporu pre portálové rozhranie na prístup k nastaveniam GtkSettings. Pre prácu s metódami vstupu bola navrhnutá podpora pre rozšírenie protokolu text-input-unstable-v3;
  • Pre vývoj widgetov sa zavádza nový objekt GtkLayoutManager s implementáciou systému riadenia rozloženia prvkov v závislosti od rozloženia viditeľnej oblasti. GtkLayoutManager nahrádza podradené vlastnosti v kontajneroch GTK, ako sú GtkBox a GtkGrid. Navrhuje sa niekoľko hotových správcov rozloženia: GtkBinLayout pre jednoduché kontajnery s jedným podriadeným prvkom, GtkBoxLayout pre lineárne zarovnané podradené prvky, GtkGridLayout pre zarovnanie podradených prvkov do mriežky, GtkFixedLayout pre ľubovoľné umiestnenie podradených prvkov, GtkCustomLayout pre preklad tradičných prvkov na základe size_allocate manipulátory;
  • Do miniaplikácií GtkAssistant, GtkStack a GtkNotebook boli pridané verejne prístupné objekty na zobrazenie stránok s podradenými prvkami, do ktorých sa prenášajú podradené vlastnosti týchto miniaplikácií, ktoré nesúvisia s rozložením. Keďže všetky existujúce podradené vlastnosti boli skonvertované na bežné vlastnosti, vlastnosti rozloženia alebo presunuté na objekty stránky, podpora podradených vlastností bola z GtkContainer úplne odstránená;
  • Základná funkcia GtkEntry bola presunutá do nového widgetu GtkText, ktorý tiež obsahuje vylepšené rozhranie na úpravu GtkEditable. Všetky existujúce podtriedy vstupu dát boli prerobené ako implementácie GtkEditable založené na novom widgete GtkText;
  • Pridaný nový widget GtkPasswordEntry pre formuláre na zadávanie hesla;
  • GtkWidgets pridal možnosť transformovať podradené prvky pomocou metód lineárnej transformácie špecifikovaných prostredníctvom CSS alebo argumentu gtk_widget_allocate do GskTransform. Špecifikovaná funkcia je už použitá v miniaplikácii GtkFixed;
  • Boli pridané nové modely generovania zoznamov: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel a GtkSingleSelection. V budúcnosti plánujeme pridať podporu pre zoznamové modely do GtkListView;
  • GtkBuilder pridal možnosť nastaviť vlastnosti objektu lokálne (inline), namiesto použitia odkazov podľa identifikátora;
  • Pridaný príkaz do nástroja gtk4-builder-tool na konverziu súborov používateľského rozhrania z GTK 3 na GTK 4;
  • Podpora kľúčových tém, tabuľkových ponúk a rozbaľovacích polí bola ukončená. Miniaplikácia GtkInvisible bola odstránená.

    Zdroj: opennet.ru

Pridať komentár