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)
| 287 | // if set for given property key ("fill" or "stroke"). |
| 288 | // returns new gradient. |
| 289 | func (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"). |
nothing calls this directly
no test coverage detected