GTK 3.96, GTK 4-ren bertsio esperimentala argitaratua

10 hilabete geroago iraganekoa proba-oharra aurkeztu GTK 3.96, GTK 4-ren hurrengo bertsio egonkorraren bertsio esperimental berria. GTK 4 adarra garapen-prozesu berri baten barruan garatzen ari da, hainbat urtez aplikazio-garatzaileei beldurrik gabe erabil daitekeen API egonkor eta bateragarri bat eskaintzen saiatzen dena. aplikazioa sei hilean behin berridatzi behar izatearen hurrengo GTK adarrean APIa aldatzeko. GTK 4 guztiz egonkortu arte, erabiltzaileei eskaintzen zaizkien aplikazioak adar erabiliz eraikitzen jarraitzea gomendatzen da. GTK 3.24.

Nagusia aldaketak GTK 3.96-n:

  • APIan GSK (GTK Scene Kit), OpenGL eta Vulkan bidez eszena grafikoak errendatzen dituena, akatsen inguruan lan egin da, errazago identifikatzen direnak gtk4-node-editor berriari esker, kargatu eta bistaratzeko aukera ematen duena. errendatze-nodoa formatu serializatu batean (ikuskapen moduan gorde daiteke GTK inspector), eta errendatze-emaitzak ere alderatu backend desberdinak erabiltzean;

    GTK 3.96, GTK 4-ren bertsio esperimentala argitaratua

  • 3D eraldaketa gaitasunak animazio-efektuak sortzeko aukera ematen duen maila batera eraman dira, hala nola kubo birakaria;

    GTK 3.96, GTK 4-ren bertsio esperimentala argitaratua

  • guztiz berridatzi Broadway GDK backend GTK liburutegiaren irteera web arakatzailearen leiho batean errendatzeko diseinatua. Broadway-ren inplementazio zaharra ez zen sartzen GTK 4-n proposatutako errendatze-metodoetan (buffer batera atera beharrean, orain errendatze-nodoetan oinarritutako eredu bat erabiltzen du, non irteera goi-mailako eragiketen zuhaitz moduan osatuta dagoen). GPUak modu eraginkorrean prozesatu OpenGL eta Vulkan erabiliz).
    Broadway aukera berriak errendatzeko nodoak DOM nodo bihurtzen ditu CSS estiloekin interfazea arakatzailean errendatzeko. Pantaila-egoera berri bakoitza DOM zuhaitzaren aldaketa gisa prozesatzen da aurreko egoerarekin alderatuta, eta horrek urruneko bezeroari transmititutako datuen tamaina murrizten du. 3D transformazioak eta efektu grafikoak CSS transformazio propietatearen bidez ezartzen dira;

  • GDK-k Wayland protokoloa kontuan hartuta diseinatutako APIak inplementatzen jarraitzen du, eta X11n oinarritutako APIak garbitzen edo X11 backend bereizi batera eramaten jarraitzen du. Haurren gainazal eta koordenatu globalen erabileratik aldentzeko lanean aurrerapena dago. GDK_SURFACE_SUBSURFACE-ren laguntza kendu da GDK-tik;
  • Arrastatu eta Jaregin eragiketak egitearekin lotutako kodearen birfaktorizazioak jarraitu zuen, proposatutako GdkDrag eta GdkDrop objektu bereiziak barne;
  • Gertaeren kudeaketa erraztu egin da eta orain sarrerarako soilik erabiltzen da. Gainerako gertaerak seinale bereiziekin ordezkatzen dira, adibidez, irteerako gertaeren ordez, "GdkSurface::render" seinalea proposatzen da, konfigurazio gertaeren ordez - "GdkSurface::size-changed", gertaerak mapatu beharrean - "GdkSurface: :mapped", gdk_event_handler_set()-ren ordez - "GdkSurface::gertaera";
  • Wayland-eko GDK backend-ak GtkSettings ezarpenak atzitzeko atariko interfaze baterako laguntza gehitu du. Sarrera metodoekin lan egiteko, text-input-unstable-v3 protokoloaren luzapenerako euskarria proposatu da;
  • Widget-ak garatzeko, GtkLayoutManager objektu berri bat sartzen da ikusgai dagoen eremuaren diseinuaren arabera elementuen diseinua kontrolatzeko sistema bat ezarriz. GtkLayoutManager-ek umeen propietateak ordezkatzen ditu GTK edukiontzietan, hala nola GtkBox eta GtkGrid. Prestatutako hainbat diseinu-kudeatzaile proposatzen dira: GtkBinLayout elementu seme-alaba duten edukiontzi soiletarako, GtkBoxLayout linealki lerrokatuta dauden elementu semeetarako, GtkGridLayout elementu seme-alabak sareta batera lerrokatzeko, GtkFixedLayout elementu seme-alaben kokapen arbitrariorako, GtkCustomLayout translating_elementu tradizionaletan oinarrituta. kudeatzaileak;
  • Elementu umeen orrialdeak bistaratzeko publikoki irisgarriak diren objektuak gehitu dira GtkAssistant, GtkStack eta GtkNotebook widget-etan, eta horietara transferitzen dira widget hauen diseinuarekin erlazionatutako haurren propietateak. Lehendik dauden ume-propietate guztiak propietate arruntetara, diseinu-propietateetara bihurtu direnez edo orri-objektuetara eraman direnez, haurren propietateen euskarria erabat kendu da GtkContainer-etik;
  • GtkEntry funtzio nagusia GtkText widget berri batera eraman da, GtkEditable editatzeko interfaze hobetua ere barne hartzen duena. Dauden datuak sartzeko azpiklase guztiak GtkEditable inplementazio gisa biregin dira GtkText widget berrian oinarrituta;
  • Pasahitza sartzeko inprimakietarako GtkPasswordEntry widget berri bat gehitu da;
  • GtkWidgets-ek CSS edo gtk_widget_allocate argumentuaren bidez zehaztutako eraldaketa linealen metodoak erabiliz elementu seme-alabak eraldatzeko gaitasuna gehitu du GskTransform-i. Zehaztutako eginbidea dagoeneko aplikatuta dago GtkFixed widget-ean;
  • Zerrenda belaunaldiko eredu berriak gehitu dira: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel eta GtkSingleSelection. Etorkizunean zerrenda ereduetarako laguntza gehitzeko asmoa dugu GtkListView-n;
  • GtkBuilder-ek objektuen propietateak lokalean ezartzeko gaitasuna gehitu du (linean), identifikatzailearen arabera estekak erabili beharrean;
  • Komandoa gehitu da gtk4-builder-tool-ra GTK 3-tik GTK 4-ra UI fitxategiak bihurtzeko;
  • Funtsezko gaietarako, menu tabularretarako eta konbinazio-koadroetarako laguntza eten egin da. GtkInvisible widget-a kendu da.

    Iturria: opennet.ru

Gehitu iruzkin berria