GTK 3.96, GTK 4 యొక్క ప్రయోగాత్మక విడుదల, ప్రచురించబడింది
10 నెలల తర్వాత గతం యొక్క పరీక్ష విడుదల సమర్పించారుGTK 3.96, GTK 4 యొక్క రాబోయే స్థిరమైన విడుదల యొక్క కొత్త ప్రయోగాత్మక విడుదల. GTK 4 శాఖ కొత్త అభివృద్ధి ప్రక్రియలో భాగంగా అభివృద్ధి చేయబడుతోంది, ఇది అప్లికేషన్ డెవలపర్లకు అనేక సంవత్సరాలు స్థిరమైన మరియు మద్దతు ఉన్న APIని అందించడానికి ప్రయత్నిస్తుంది, ఇది భయం లేకుండా ఉపయోగించబడుతుంది. తదుపరి GTK బ్రాంచ్లో APIని మార్చడం వలన ప్రతి ఆరు నెలలకు ఒకసారి దరఖాస్తును తిరిగి వ్రాయవలసి ఉంటుంది. GTK 4 పూర్తిగా స్థిరీకరించబడే వరకు, వినియోగదారులకు అందించే అప్లికేషన్లు బ్రాంచ్ని ఉపయోగించి నిర్మించబడటం కొనసాగించాలని సిఫార్సు చేయబడింది. GTK 3.24.
API లో GSK (GTK సీన్ కిట్), ఇది OpenGL మరియు Vulkan ద్వారా గ్రాఫిక్ దృశ్యాల రెండరింగ్ను అందిస్తుంది, లోపాలపై పని జరిగింది, కొత్త డీబగ్గింగ్ సాధనం gtk4-node-editor కారణంగా గుర్తించడం సులభం అయింది, ఇది మిమ్మల్ని లోడ్ చేయడానికి మరియు ప్రదర్శించడానికి అనుమతిస్తుంది. రెండరింగ్ నోడ్ను సీరియలైజ్డ్ ఫార్మాట్లో (తనిఖీ మోడ్ GTK ఇన్స్పెక్టర్లో సేవ్ చేయవచ్చు), మరియు వివిధ బ్యాకెండ్లను ఉపయోగిస్తున్నప్పుడు రెండరింగ్ ఫలితాలను సరిపోల్చండి;
తిరిగే క్యూబ్ వంటి యానిమేషన్ ప్రభావాలను సృష్టించడానికి మిమ్మల్ని అనుమతించే స్థాయికి 3D పరివర్తన సామర్థ్యాలు తీసుకురాబడ్డాయి;
పూర్తిగా తిరిగి వ్రాయబడింది బ్రాడ్వే GDK బ్యాకెండ్ వెబ్ బ్రౌజర్ విండోలో GTK లైబ్రరీ అవుట్పుట్ను అందించడానికి రూపొందించబడింది. పాత బ్రాడ్వే అమలు GTK 4లో ప్రతిపాదించబడిన రెండరింగ్ పద్ధతులకు సరిపోలేదు (బఫర్కు అవుట్పుట్కు బదులుగా, ఇది ఇప్పుడు రెండర్ నోడ్ల ఆధారంగా మోడల్ను ఉపయోగిస్తుంది, ఇక్కడ అవుట్పుట్ అధిక-స్థాయి కార్యకలాపాల చెట్టు రూపంలో కంపోజ్ చేయబడుతుంది, OpenGL మరియు Vulkan ఉపయోగించి GPU ద్వారా సమర్ధవంతంగా ప్రాసెస్ చేయబడుతుంది).
కొత్త బ్రాడ్వే ఎంపిక బ్రౌజర్లో ఇంటర్ఫేస్ను రెండరింగ్ చేయడానికి CSS స్టైల్స్తో రెండర్ నోడ్లను DOM నోడ్లుగా మారుస్తుంది. ప్రతి కొత్త స్క్రీన్ స్థితి మునుపటి స్థితికి సంబంధించి DOM ట్రీలో మార్పుగా ప్రాసెస్ చేయబడుతుంది, ఇది రిమోట్ క్లయింట్కు ప్రసారం చేయబడిన డేటా పరిమాణాన్ని తగ్గిస్తుంది. 3D రూపాంతరాలు మరియు గ్రాఫిక్ ప్రభావాలు CSS పరివర్తన ఆస్తి ద్వారా అమలు చేయబడతాయి;
GDK వేలాండ్ ప్రోటోకాల్ను దృష్టిలో ఉంచుకుని రూపొందించిన APIలను అమలు చేయడం మరియు X11-ఆధారిత APIలను శుభ్రపరచడం లేదా వాటిని ప్రత్యేక X11 బ్యాకెండ్కి తరలించడం కొనసాగిస్తుంది. పిల్లల ఉపరితలాలు మరియు గ్లోబల్ కోఆర్డినేట్ల వినియోగానికి దూరంగా ఉండే పనిలో పురోగతి ఉంది. GDK నుండి GDK_SURFACE_SUBSURFACEకి మద్దతు తీసివేయబడింది;
ప్రతిపాదిత ప్రత్యేక GdkDrag మరియు GdkDrop ఆబ్జెక్ట్లతో సహా డ్రాగ్-అండ్-డ్రాప్ ఆపరేషన్లను నిర్వహించడానికి అనుబంధించబడిన కోడ్ యొక్క రీఫ్యాక్టరింగ్ కొనసాగింది;
ఈవెంట్ హ్యాండ్లింగ్ సరళీకృతం చేయబడింది మరియు ఇప్పుడు ఇన్పుట్ కోసం మాత్రమే ఉపయోగించబడుతుంది. మిగిలిన ఈవెంట్లు ప్రత్యేక సంకేతాలతో భర్తీ చేయబడతాయి, ఉదాహరణకు, అవుట్పుట్ ఈవెంట్లకు బదులుగా, కాన్ఫిగరేషన్ ఈవెంట్లకు బదులుగా “GdkSurface::render” అనే సిగ్నల్ ప్రతిపాదించబడింది - “GdkSurface::size-changed”, మ్యాపింగ్ ఈవెంట్లకు బదులుగా - “GdkSurface: :మ్యాప్డ్”, బదులుగా gdk_event_handler_set() - "GdkSurface::event";
Wayland కోసం GDK బ్యాకెండ్ GtkSettings సెట్టింగ్లను యాక్సెస్ చేయడానికి పోర్టల్ ఇంటర్ఫేస్కు మద్దతును జోడించింది. ఇన్పుట్ పద్ధతులతో పని చేయడానికి, text-input-unstable-v3 ప్రోటోకాల్ పొడిగింపుకు మద్దతు ప్రతిపాదించబడింది;
విడ్జెట్ల అభివృద్ధి కోసం, కనిపించే ప్రాంతం యొక్క లేఅవుట్పై ఆధారపడి మూలకాల లేఅవుట్ను నియంత్రించే వ్యవస్థ అమలుతో కొత్త GtkLayoutManager ఆబ్జెక్ట్ పరిచయం చేయబడింది. GtkLayoutManager GtkBox మరియు GtkGrid వంటి GTK కంటైనర్లలో పిల్లల లక్షణాలను భర్తీ చేస్తుంది. అనేక రెడీమేడ్ లేఅవుట్ మేనేజర్లు ప్రతిపాదించబడ్డారు: ఒక చైల్డ్ ఎలిమెంట్తో సింపుల్ కంటైనర్ల కోసం GtkBinLayout, లీనియర్గా సమలేఖనం చేయబడిన చైల్డ్ ఎలిమెంట్ల కోసం GtkBoxLayout, చైల్డ్ ఎలిమెంట్లను గ్రిడ్కి సమలేఖనం చేయడానికి GtkGridLayout, చైల్డ్ ఎలిమెంట్స్ యొక్క ఏకపక్ష పొజిషనింగ్ కోసం GtkFixedLayout, ట్రాన్సలేట్ ఆధారిత పరిమాణానికి GtkCustomLay మూలకాలు హ్యాండ్లర్లు;
పిల్లల మూలకాల యొక్క పేజీ ప్రదర్శన కోసం పబ్లిక్గా యాక్సెస్ చేయగల వస్తువులు GtkAssistant, GtkStack మరియు GtkNotebook విడ్జెట్లకు జోడించబడ్డాయి, ఈ విడ్జెట్ల యొక్క లేఅవుట్-సంబంధిత చైల్డ్ ప్రాపర్టీలు బదిలీ చేయబడతాయి. ఇప్పటికే ఉన్న అన్ని చైల్డ్ ప్రాపర్టీలు రెగ్యులర్ ప్రాపర్టీస్, లేఅవుట్ ప్రాపర్టీస్గా మార్చబడ్డాయి లేదా పేజీ ఆబ్జెక్ట్లకు తరలించబడినందున, చైల్డ్ ప్రాపర్టీస్కు సపోర్ట్ పూర్తిగా GtkContainer నుండి తీసివేయబడింది;
కోర్ GtkEntry ఫంక్షనాలిటీ కొత్త GtkText విడ్జెట్కి తరలించబడింది, ఇందులో మెరుగైన GtkEditable ఎడిటింగ్ ఇంటర్ఫేస్ కూడా ఉంది. ఇప్పటికే ఉన్న అన్ని డేటా ఎంట్రీ సబ్క్లాస్లు కొత్త GtkText విడ్జెట్ ఆధారంగా GtkEditable ఇంప్లిమెంటేషన్లుగా పునర్నిర్మించబడ్డాయి;
పాస్వర్డ్ ఎంట్రీ ఫారమ్ల కోసం కొత్త GtkPasswordEntry విడ్జెట్ జోడించబడింది;
GtkWidgets CSS లేదా gtk_widget_allocate ఆర్గ్యుమెంట్ ద్వారా పేర్కొన్న లీనియర్ ట్రాన్స్ఫర్మేషన్ పద్ధతులను ఉపయోగించి చైల్డ్ ఎలిమెంట్లను మార్చగల సామర్థ్యాన్ని GskTransformకి జోడించింది. పేర్కొన్న ఫీచర్ ఇప్పటికే GtkFixed విడ్జెట్లో వర్తింపజేయబడింది;
కొత్త జాబితా ఉత్పత్తి నమూనాలు జోడించబడ్డాయి: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel మరియు GtkSingleSelection. భవిష్యత్తులో మేము GtkListViewకి జాబితా నమూనాల కోసం మద్దతును జోడించాలని ప్లాన్ చేస్తున్నాము;
GtkBuilder ఐడెంటిఫైయర్ ద్వారా లింక్లను ఉపయోగించకుండా, ఆబ్జెక్ట్ లక్షణాలను స్థానికంగా (ఇన్లైన్) సెట్ చేసే సామర్థ్యాన్ని జోడించింది;