GTK 3.96, eksperimenta eldono de GTK 4, publikigita

10 monatojn poste de la pasinteco testa liberigo prezentita GTK 3.96, nova eksperimenta eldono de la venonta stabila eldono de GTK 4. La branĉo GTK 4 estas disvolvita kiel parto de nova evoluprocezo kiu provas provizi aplikaĵprogramistojn per stabila kaj subtenata API dum pluraj jaroj, kiu povas esti uzata sen la timo. de devi reverki la aplikaĵon ĉiujn ses monatojn pro ŝanĝi API en la venonta GTK-filio. Ĝis GTK 4 estas plene stabiligita, oni rekomendas, ke aplikaĵoj ofertitaj al uzantoj daŭre estas konstruitaj uzante la branĉon. GTK 3.24.

Ĉefa ŝanĝi en GTK 3.96:

  • En la API GSK (GTK Scene Kit), kiu disponigas bildigon de grafikaj scenoj per OpenGL kaj Vulkan, oni laboras pri eraroj, kiuj fariĝis pli facile identigeblaj danke al la nova sencimiga ilo gtk4-node-editor, kiu ebligas al vi ŝargi kaj montri la bildiga nodo en seriigita formato (povas esti konservita en inspekta reĝimo GTK-inspektisto), kaj ankaŭ komparu la bildigajn rezultojn kiam vi uzas malsamajn backends;

    GTK 3.96, eksperimenta eldono de GTK 4, publikigita

  • 3D-transformaj kapabloj estis alportitaj al nivelo, kiu ebligas al vi krei animaciajn efikojn kiel rotacianta kubo;

    GTK 3.96, eksperimenta eldono de GTK 4, publikigita

  • Tute reverkita Broadway GDK-backend desegnita por bildigi GTK-bibliotekan eligon en retumila fenestro. La malnova Broadway-efektivigo ne kongruis kun la bildigaj metodoj proponitaj en GTK 4 (anstataŭ eligo al bufro, ĝi nun uzas modelon bazitan sur bildigaj nodoj, kie la eligo estas kunmetita en la formo de arbo de altnivelaj operacioj, efike prilaborita de la GPU uzante OpenGL kaj Vulkan).
    La nova Broadway-opcio konvertas bildigajn nodojn en DOM-nodojn kun CSS-stiloj por bildigi la interfacon en la retumilo. Ĉiu nova ekranŝtato estas prilaborita kiel ŝanĝo en la DOM-arbo relative al la antaŭa stato, kiu reduktas la grandecon de datumoj transdonitaj al la fora kliento. 3D transformoj kaj grafikaj efikoj estas efektivigitaj per la CSS-transformposedaĵo;

  • GDK daŭre efektivigas API-ojn dizajnitajn kun la Wayland-protokolo en menso, kaj purigas X11-bazitajn API-ojn aŭ movas ilin al aparta X11-backend. Estas progreso en la laboro por malproksimiĝi de la uzo de infanaj surfacoj kaj tutmondaj koordinatoj. Subteno por GDK_SURFACE_SUBSURFACE estis forigita de GDK;
  • Refaktorado de la kodo asociita kun elfarado de Drag-and-Drop-operacioj daŭris, inkluzive de la proponitaj apartaj GdkDrag kaj GdkDrop objektoj;
  • Okazaĵtraktado estis simpligita kaj nun estas uzata nur por enigo. La ceteraj eventoj estas anstataŭigitaj per apartaj signaloj, ekzemple, anstataŭ eligo-eventoj, la signalo "GdkSurface::render" estas proponita, anstataŭ agordaj eventoj - "GdkSurface::size-changed", anstataŭ mapado de eventoj - "GdkSurface: :mapped”, anstataŭ gdk_event_handler_set() - "GdkSurface::event";
  • La backend de GDK por Wayland aldonis subtenon por portala interfaco por aliri GtkSettings-agordojn. Por labori kun enigmetodoj, subteno por la text-input-unstable-v3 protokola etendo estis proponita;
  • Por la disvolviĝo de fenestraĵoj, nova objekto GtkLayoutManager estas enkondukita kun la efektivigo de sistemo por kontroli la aranĝon de elementoj depende de la aranĝo de la videbla areo. GtkLayoutManager anstataŭigas infanajn trajtojn en GTK-ujoj kiel GtkBox kaj GtkGrid. Pluraj pretaj aranĝomanaĝeroj estas proponitaj: GtkBinLayout por simplaj ujoj kun unu infanelemento, GtkBoxLayout por lineare vicigitaj infanelementoj, GtkGridLayout por vicigado de infanelementoj al krado, GtkFixedLayout por arbitra poziciigado de infanelementoj, GtkCustomLayout por tradukado de tradiciaj elementoj bazitaj sur sizelating_allocate pritraktantoj;
  • Publike alireblaj objektoj por paĝa montrado de infanelementoj estis aldonitaj al la fenestraĵoj GtkAssistant, GtkStack kaj GtkNotebook, al kiuj la ne-rilataj infanecoj de ĉi tiuj fenestraĵoj estas transdonitaj. Ĉar ĉiuj ekzistantaj infanecoj estis konvertitaj al regulaj propraĵoj, aranĝaj propraĵoj, aŭ movitaj al paĝaj objektoj, subteno por infanaj trajtoj estis tute forigita de GtkContainer;
  • La kerna GtkEntry-funkcio estis movita al nova GtkText-fenestraĵo, kiu ankaŭ inkluzivas plibonigitan redaktan interfacon de GtkEditable. Ĉiuj ekzistantaj subklasoj de enigo de datumoj estis refaritaj kiel GtkEditable-efektivigoj bazitaj sur la nova fenestraĵo GtkText;
  • Aldonita nova GtkPasswordEntry fenestraĵo por pasvortaj enigoformularoj;
  • GtkWidgets aldonis la kapablon transformi infanajn elementojn per linearaj transformmetodoj specifitaj per CSS aŭ la argumento gtk_widget_allocate al GskTransform. La specifita funkcio jam estas aplikata en la fenestraĵo GtkFixed;
  • Novaj listgeneraciaj modeloj estis aldonitaj: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel kaj GtkSingleSelection. Estonte ni planas aldoni subtenon por listmodeloj al GtkListView;
  • GtkBuilder aldonis la kapablon agordi objektajn ecojn loke (enlinie), anstataŭ uzi ligilojn per identigilo;
  • Aldonita komando al gtk4-builder-tool por konverti UI-dosierojn de GTK 3 al GTK 4;
  • Subteno por ŝlosilaj temoj, tabelaj menuoj kaj kombinujoj estis nuligita. La fenestraĵo GtkInvisible estis forigita.

    fonto: opennet.ru

Aldoni komenton