defs()

Produces an SVG "defs" element.

Syntax

defs(
   id STRING )
  RETURNS om.DomNode
  1. id is the SVG object identifier.

Usage

This function creates a "defs" SVG DOM element from the parameters.

The defs element can be used to centralize SVG drawing elements such as SVG patterns or CSS styles, that can be reused in other SVG elements.

Content of a "defs" element can be generated with the styleList() function.

Example

Creating a pattern:

DEFINE root_svg, defs, pattern, n om.DomNode
...
LET defs = fglsvgcanvas.defs( NULL )
CALL root_svg.appendChild( defs )

LET pattern = fglsvgcanvas.pattern( "pattern1", 0, 0, 20, 20, "userSpaceOnUse",
                                    NULL, "rotate(45)", NULL )
CALL pattern.appendChild( n:=fglsvgcanvas.rect(0,0,1000,10,NULL,NULL) )
CALL n.setAttribute(SVGATT_STYLE, 'stroke:none; fill:blue;' )
CALL pattern.appendChild( n:=fglsvgcanvas.rect(0,10,1000,10,NULL,NULL) )
CALL n.setAttribute(SVGATT_STYLE, 'stroke:none; fill:navy;' )
CALL defs.appendChild( pattern )

Creating CSS styles:

CONSTANT STYLE_1 = 1
CONSTANT STYLE_2 = 2
CONSTANT STYLE_3 = 3
DEFINE attr DYNAMIC ARRAY OF om.SaxAttributes
DEFINE root_svg, defs om.DomNode
...
LET defs = fglsvgcanvas.defs( NULL )
CALL defs.appendChild( fglsvgcanvas.styleList(
                              fglsvgcanvas.styleDefinition(".style_1",attr[STYLE_1])
                           || fglsvgcanvas.styleDefinition(".style_2",attr[STYLE_2])
                           || fglsvgcanvas.styleDefinition(".style_3",attr[STYLE_3])
                           )
                         )
CALL root_svg.appendChild( defs )