MCPcopy Create free account
hub / github.com/cogentcore/core / GradientUpdateNodeProp

Method GradientUpdateNodeProp

svg/gradient.go:237–264  ·  view source on GitHub ↗

GradientUpdateNodeProp ensures that node has a gradient property of given type

(n Node, prop string, radial bool, stops string)

Source from the content-addressed store, hash-verified

235
236// GradientUpdateNodeProp ensures that node has a gradient property of given type
237func (sv *SVG) GradientUpdateNodeProp(n Node, prop string, radial bool, stops string) (*Gradient, string) {
238 ps := n.AsTree().Property(prop)
239 if ps == nil {
240 gr, url := sv.GradientNewForNode(n, radial, stops)
241 n.AsTree().SetProperty(prop, url)
242 return gr, url
243 }
244 pstr := ps.(string)
245 trgst := ""
246 if radial {
247 trgst = "radialGradient"
248 } else {
249 trgst = "linearGradient"
250 }
251 url := "url(#" + trgst
252 if strings.HasPrefix(pstr, url) {
253 gr := sv.GradientByName(n, pstr)
254 gr.StopsName = stops
255 sv.GradientUpdateStops(gr)
256 return gr, NameToURL(gr.Name)
257 }
258 if strings.HasPrefix(pstr, "url(#") { // wrong kind
259 sv.GradientDeleteForNode(n, pstr)
260 }
261 gr, url := sv.GradientNewForNode(n, radial, stops)
262 n.AsTree().SetProperty(prop, url)
263 return gr, url
264}
265
266// GradientUpdateNodePoints updates the points for node based on current bbox
267func (sv *SVG) GradientUpdateNodePoints(n Node, prop string) {

Callers

nothing calls this directly

Calls 8

GradientNewForNodeMethod · 0.95
GradientByNameMethod · 0.95
GradientUpdateStopsMethod · 0.95
GradientDeleteForNodeMethod · 0.95
NameToURLFunction · 0.85
PropertyMethod · 0.80
SetPropertyMethod · 0.80
AsTreeMethod · 0.65

Tested by

no test coverage detected