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

Method GradientCloneNodeProp

svg/gradient.go:289–310  ·  view source on GitHub ↗

GradientCloneNodeProp creates a new clone of the existing gradient for node if set for given property key ("fill" or "stroke"). returns new gradient.

(n Node, prop string)

Source from the content-addressed store, hash-verified

287// if set for given property key ("fill" or "stroke").
288// returns new gradient.
289func (sv *SVG) GradientCloneNodeProp(n Node, prop string) *Gradient {
290 ps := n.AsTree().Property(prop)
291 if ps == nil {
292 return nil
293 }
294 pstr := ps.(string)
295 radial := false
296 if strings.HasPrefix(pstr, "url(#radialGradient") {
297 radial = true
298 } else if !strings.HasPrefix(pstr, "url(#linearGradient") {
299 return nil
300 }
301 gr := sv.GradientByName(n, pstr)
302 if gr == nil {
303 return nil
304 }
305 ngr, url := sv.GradientNewForNode(n, radial, gr.StopsName)
306 n.AsTree().SetProperty(prop, url)
307 gradient.CopyFrom(ngr.Grad, gr.Grad)
308 // TODO(kai): should this return ngr or gr? (used to return gr but ngr seems correct)
309 return ngr
310}
311
312// GradientDeleteNodeProp deletes any existing gradient for node
313// if set for given property key ("fill" or "stroke").

Callers

nothing calls this directly

Calls 6

GradientByNameMethod · 0.95
GradientNewForNodeMethod · 0.95
CopyFromFunction · 0.92
PropertyMethod · 0.80
SetPropertyMethod · 0.80
AsTreeMethod · 0.65

Tested by

no test coverage detected