GTK 3.96, toleo la majaribio la GTK 4, lililochapishwa

Miezi 10 baada ya ya zamani kutolewa kwa mtihani imewasilishwa GTK 3.96, toleo jipya la majaribio la toleo thabiti lijalo la GTK 4. Tawi la GTK 4 linatengenezwa kama sehemu ya mchakato mpya wa usanidi unaojaribu kuwapa wasanidi programu API thabiti na inayotumika kwa miaka kadhaa ambayo inaweza kutumika bila hofu. ya kulazimika kuandika upya programu kila baada ya miezi sita kwa sababu ya kubadilisha API katika tawi linalofuata la GTK. Hadi GTK 4 itakapoimarishwa kikamilifu, inapendekezwa kwamba programu zinazotolewa kwa watumiaji ziendelee kujengwa kwa kutumia tawi. GTK 3.24.

kuu mabadiliko katika GTK 3.96:

  • Katika API GSK (GTK Scene Kit), ambayo hutoa utoaji wa matukio ya picha kupitia OpenGL na Vulkan, kazi imefanywa kwenye makosa, ambayo imekuwa rahisi kutambua shukrani kwa zana mpya ya utatuzi gtk4-node-editor, ambayo hukuruhusu kupakia na kuonyesha kutoa nodi katika umbizo la serialized (inaweza kuhifadhiwa katika mkaguzi wa hali ya ukaguzi wa GTK), na pia kulinganisha matokeo ya utoaji wakati wa kutumia backends tofauti;

    GTK 3.96, toleo la majaribio la GTK 4, lililochapishwa

  • Uwezo wa ugeuzaji wa 3D umeletwa kwa kiwango kinachokuruhusu kuunda athari za uhuishaji kama vile mchemraba unaozunguka;

    GTK 3.96, toleo la majaribio la GTK 4, lililochapishwa

  • Kikamilifu imeandikwa upya Mazingira ya nyuma ya Broadway GDK iliyoundwa ili kutoa matokeo ya maktaba ya GTK katika dirisha la kivinjari cha wavuti. Utekelezaji wa zamani wa Broadway haukuendana na njia za utoaji zilizopendekezwa katika GTK 4 (badala ya pato kwa bafa, sasa hutumia kielelezo kulingana na nodi za kutoa, ambapo matokeo yanaundwa kwa njia ya mti wa shughuli za kiwango cha juu, kuchakatwa kwa ufanisi na GPU kwa kutumia OpenGL na Vulkan).
    Chaguo jipya la Broadway hubadilisha nodi za kutoa kuwa nodi za DOM na mitindo ya CSS ya kutoa kiolesura kwenye kivinjari. Kila hali mpya ya skrini inachakatwa kama mabadiliko katika mti wa DOM kulingana na hali ya awali, ambayo hupunguza saizi ya data inayotumwa kwa mteja wa mbali. Mabadiliko ya 3D na athari za picha hutekelezwa kupitia mali ya kubadilisha CSS;

  • GDK inaendelea kutekeleza API zilizoundwa kwa kuzingatia itifaki ya Wayland, na kusafisha API zenye msingi wa X11 au kuzihamishia kwenye mandhari tofauti ya X11. Kuna maendeleo katika kazi ya kuondokana na matumizi ya nyuso za watoto na kuratibu za kimataifa. Usaidizi wa GDK_SURFACE_SUBSURFACE umeondolewa kutoka kwa GDK;
  • Urekebishaji wa msimbo unaohusishwa na kutekeleza shughuli za Buruta-Angusha uliendelea, ikijumuisha vitu tofauti vya GdkDrag na GdkDrop vilivyopendekezwa;
  • Ushughulikiaji wa tukio umerahisishwa na sasa unatumika kwa ingizo pekee. Matukio yaliyobaki yanabadilishwa na ishara tofauti, kwa mfano, badala ya matukio ya pato, ishara "GdkSurface::render" inapendekezwa, badala ya matukio ya usanidi - "GdkSurface::size-changed", badala ya matukio ya kuchora ramani - "GdkSurface: :mapped”, badala ya gdk_event_handler_set() - "GdkSurface::tukio";
  • Mazingira ya nyuma ya GDK ya Wayland yameongeza usaidizi kwa kiolesura cha mlango cha kufikia mipangilio ya GtkSettings. Ili kufanya kazi na mbinu za kuingiza, usaidizi wa kiendelezi cha itifaki ya maandishi-input-unstable-v3 umependekezwa;
  • Kwa uundaji wa wijeti, kitu kipya cha GtkLayoutManager kinaanzishwa kwa utekelezaji wa mfumo wa kudhibiti mpangilio wa vipengee kulingana na mpangilio wa eneo linaloonekana. GtkLayoutManager hubadilisha sifa za watoto katika vyombo vya GTK kama vile GtkBox na GtkGrid. Wasimamizi kadhaa wa mpangilio tayari wanapendekezwa: GtkBinLayout kwa vyombo rahisi vyenye kipengele kimoja cha mtoto, GtkBoxLayout kwa vipengele vya mtoto vilivyopangiliwa kwa mstari, GtkGridLayout ya kupanga vipengele vya mtoto kwenye gridi ya taifa, GtkFixedLayout kwa uwekaji holela wa vipengele vya mtoto, GtkCustomalLayout kulingana na saizi ya kitamaduni washughulikiaji;
  • Vipengee vinavyoweza kufikiwa na umma kwa ajili ya onyesho la ukurasa wa vipengele vya watoto vimeongezwa kwenye wijeti za GtkAssistant, GtkStack na GtkNotebook, ambapo sifa za mtoto zisizohusiana na Mpangilio wa wijeti hizi huhamishiwa. Kwa kuwa sifa zote zilizopo za mtoto zimegeuzwa kuwa sifa za kawaida, sifa za mpangilio, au kuhamishwa hadi kwenye vipengee vya ukurasa, usaidizi wa sifa za mtoto umeondolewa kabisa kutoka kwa GtkContainer;
  • Utendaji msingi wa GtkEntry umehamishiwa kwenye wijeti mpya ya GtkText, ambayo pia inajumuisha kiolesura kilichoboreshwa cha kuhariri cha GtkEditable. Madarasa yote yaliyopo ya ingizo ya data yamefanywa upya kama utekelezaji wa GtkEditable kulingana na wijeti mpya ya GtkText;
  • Imeongeza wijeti mpya ya GtkPasswordEntry kwa fomu za kuingiza nenosiri;
  • GtkWidgets imeongeza uwezo wa kubadilisha vipengee vya watoto kwa kutumia mbinu za ugeuzaji laini zilizobainishwa kupitia CSS au hoja ya gtk_widget_allocate kwa GskTransform. Kipengele kilichobainishwa tayari kimetumika katika wijeti ya GtkFixed;
  • Miundo mipya ya kutengeneza orodha imeongezwa: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel na GtkSingleSelection. Katika siku zijazo tunapanga kuongeza usaidizi kwa miundo ya orodha kwenye GtkListView;
  • GtkBuilder imeongeza uwezo wa kuweka sifa za kitu ndani ya nchi (inline), badala ya kutumia viungo kwa kitambulisho;
  • Amri iliyoongezwa kwa gtk4-builder-tool ya kubadilisha faili za UI kutoka GTK 3 hadi GTK 4;
  • Usaidizi wa mandhari muhimu, menyu za jedwali, na visanduku vya mchanganyiko umekatishwa. Wijeti ya GtkInvisible imeondolewa.

    Chanzo: opennet.ru

Kuongeza maoni