Guest User

Untitled

a guest
Feb 17th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 71.00 KB | None | 0 0
  1. unit w3c.svg;
  2.  
  3. {$MODE ObjFPC}
  4. {$H+}
  5. {$MODESWITCH externalclass}
  6.  
  7. interface
  8.  
  9. uses SysUtils, web, JS;
  10.  
  11. type
  12.   // Forward class
  13.   TJSSVGSVGElement = class;
  14.   TJSSVGNumberList = class;
  15.   TJSSVGAngle = class;
  16.   TJSSVGAnimatedAngle = class;
  17.   TJSSVGAnimatedBoolean = class;
  18.   TJSSVGAnimatedEnumeration = class;
  19.   TJSSVGAnimatedInteger = class;
  20.   TJSSVGAnimatedLength = class;
  21.   TJSSVGAnimatedLengthList = class;
  22.   TJSSVGAnimatedNumber = class;
  23.   TJSSVGAnimatedNumberList = class;
  24.   TJSSVGAnimatedPreserveAspectRatio = class;
  25.   TJSSVGAnimatedRect = class;
  26.   TJSSVGAnimatedString = class;
  27.   TJSSVGAnimatedTransformList = class;
  28.   TJSSVGAnimateElement = class;
  29.   TJSSVGAnimateMotionElement = class;
  30.   TJSSVGAnimateTransformElement = class;
  31.   TJSSVGAnimationElement = class;
  32.   TJSSVGCircleElement = class;
  33.   TJSSVGClipPathElement = class;
  34.   TJSSVGComponentTransferFunctionElement = class;
  35.   TJSSVGDefsElement = class;
  36.   TJSSVGDescElement = class;
  37.   TJSSVGDiscardElement = class;
  38.   TJSSVGDocument = class;
  39.   TJSSVGElement = class;
  40.   TJSSVGEllipseElement = class;
  41.   TJSSVGFEBlendElement = class;
  42.   TJSSVGFEColorMatrixElement = class;
  43.   TJSSVGFEComponentTransferElement = class;
  44.   TJSSVGFECompositeElement = class;
  45.   TJSSVGFEConvolveMatrixElement = class;
  46.   TJSSVGFEDiffuseLightingElement = class;
  47.   TJSSVGFEDisplacementMapElement = class;
  48.   TJSSVGFEDistantLightElement = class;
  49.   TJSSVGFEDropShadowElement = class;
  50.   TJSSVGFEFloodElement = class;
  51.   TJSSVGFEFuncAElement = class;
  52.   TJSSVGFEFuncBElement = class;
  53.   TJSSVGFEFuncGElement = class;
  54.   TJSSVGFEFuncRElement = class;
  55.   TJSSVGFEGaussianBlurElement = class;
  56.   TJSSVGFEImageElement = class;
  57.   TJSSVGFEMergeElement = class;
  58.   TJSSVGFEMergeNodeElement = class;
  59.   TJSSVGFEMorphologyElement = class;
  60.   TJSSVGFEOffsetElement = class;
  61.   TJSSVGFEPointLightElement = class;
  62.   TJSSVGFESpecularLightingElement = class;
  63.   TJSSVGFESpotLightElement = class;
  64.   TJSSVGFETileElement = class;
  65.   TJSSVGFETurbulenceElement = class;
  66.   TJSSVGFilterElement = class;
  67.   TJSSVGFilterPrimitiveStandardAttributes = class;
  68.   TJSSVGFitToViewBox = class;
  69.   TJSSVGForeignObjectElement = class;
  70.   TJSSVGGElement = class;
  71.   TJSSVGGeometryElement = class;
  72.   TJSSVGGradientElement = class;
  73.   TJSSVGGraphicsElement = class;
  74.   TJSSVGImageElement = class;
  75.   TJSSVGLength = class;
  76.   TJSSVGLinearGradientElement = class;
  77.   TJSSVGLineElement = class;
  78.   TJSSVGMarkerElement = class;
  79.   TJSSVGMaskElement = class;
  80.   TJSSVGMatrix = class;
  81.   TJSSVGMetadataElement = class;
  82.   TJSSVGMPathElement = class;
  83.   TJSSVGNumber = class;
  84.   TJSSVGPathElement = class;
  85.   TJSSVGPatternElement = class;
  86.   TJSSVGPoint = class;
  87.   TJSSVGPolygonElement = class;
  88.   TJSSVGPolylineElement = class;
  89.   TJSSVGPreserveAspectRatio = class;
  90.   TJSSVGRadialGradientElement = class;
  91.   TJSSVGRect = class;
  92.   TJSSVGRectElement = class;
  93.   TJSSVGScriptElement = class;
  94.   TJSSVGSetElement = class;
  95.   TJSSVGStopElement = class;
  96.   TJSSVGStyleElement = class;
  97.   TJSSVGSwitchElement = class;
  98.   TJSSVGSymbolElement = class;
  99.   TJSSVGTests = class;
  100.   TJSSVGTextContentElement = class;
  101.   TJSSVGTextElement = class;
  102.   TJSSVGTextPathElement = class;
  103.   TJSSVGTextPositioningElement = class;
  104.   TJSSVGTitleElement = class;
  105.   TJSSVGTransform = class;
  106.   TJSSVGTSpanElement = class;
  107.   TJSSVGUnitTypes = class;
  108.   TJSSVGURIReference = class;
  109.   TJSSVGUseElement = class;
  110.   TJSSVGViewElement = class;
  111.   TJSSVGZoomAndPan = class;
  112.  
  113. type
  114.   DOMStringMap = class external name 'DOMStringMap'
  115.   private
  116.     function GetItem(name: String): String; external name '[]';
  117.     procedure SetItem(name: String; value: String); external name '[]';
  118.   public
  119.     //procedure (name: String);
  120.     property Items[name: String]: String read GetItem write SetItem; default;
  121.   end;
  122.  
  123.   { --------------------------------------------------------------------
  124.     TJSSVGElement
  125.     --------------------------------------------------------------------}
  126.   TJSSVGElement = class external name 'SVGElement'(TJSElement)
  127.   private
  128.     FclassName: TJSSVGAnimatedString; external name 'className';
  129.     Fdataset: DOMStringMap; external name 'dataset';
  130.     Fstyle: TJSCSSStyleDeclaration; external name 'style';
  131.     FownerSVGElement: TJSSVGSVGElement; external name 'ownerSVGElement';
  132.     FviewportElement: TJSSVGElement; external name 'viewportElement';
  133.   public
  134.     tabIndex: Integer;
  135.     procedure focus;
  136.     procedure blur;
  137.     property className: TJSSVGAnimatedString read FclassName;
  138.     property dataset: DOMStringMap read Fdataset;
  139.     property style: TJSCSSStyleDeclaration read Fstyle;
  140.     property ownerSVGElement: TJSSVGSVGElement read FownerSVGElement;
  141.     property viewportElement: TJSSVGElement read FviewportElement;
  142.   end;
  143.  
  144.   { --------------------------------------------------------------------
  145.     TJSSVGGraphicsElement
  146.     --------------------------------------------------------------------}
  147.   TJSSVGGraphicsElement = class external name 'SVGGraphicsElement' (TJSSVGElement)
  148.   private
  149.     Ftransform: TJSSVGAnimatedTransformList; external name 'transform';
  150.     FnearestViewportElement: TJSSVGElement; external name 'nearestViewportElement';
  151.     FfarthestViewportElement: TJSSVGElement; external name
  152.       'farthestViewportElement';
  153.   public
  154.     function getBBox: TJSSVGRect;
  155.     function getCTM: TJSSVGMatrix;
  156.     function getScreenCTM: TJSSVGMatrix;
  157.     property transform: TJSSVGAnimatedTransformList read Ftransform;
  158.     property nearestViewportElement: TJSSVGElement read FnearestViewportElement;
  159.     property farthestViewportElement: TJSSVGElement read FfarthestViewportElement;
  160.   end;
  161.  
  162.   { --------------------------------------------------------------------
  163.     TJSSVGSVGElement
  164.     --------------------------------------------------------------------}
  165.   TJSSVGSVGElement = class external name 'SVGSVGElement' (TJSSVGGraphicsElement)
  166.   private
  167.     Fx: TJSSVGAnimatedLength; external name 'x';
  168.     Fy: TJSSVGAnimatedLength; external name 'y';
  169.     Fwidth: TJSSVGAnimatedLength; external name 'width';
  170.     Fheight: TJSSVGAnimatedLength; external name 'height';
  171.     FcurrentTranslate: TJSSVGPoint; external name 'currentTranslate';
  172.   public
  173.     currentScale: Double;
  174.     function getIntersectionList(rect: TJSSVGRect; referenceElement: TJSSVGElement):
  175.       TJSNodeList;
  176.     function getEnclosureList(rect: TJSSVGRect; referenceElement: TJSSVGElement):
  177.       TJSNodeList;
  178.     function checkIntersection(element: TJSSVGElement; rect: TJSSVGRect): boolean;
  179.     function checkEnclosure(element: TJSSVGElement; rect: TJSSVGRect): boolean;
  180.     procedure deselectAll;
  181.     function createSVGNumber: TJSSVGNumber;
  182.     function createSVGLength: TJSSVGLength;
  183.     function createSVGAngle: TJSSVGAngle;
  184.     function createSVGPoint: TJSSVGPoint;
  185.     function createSVGMatrix: TJSSVGMatrix;
  186.     function createSVGRect: TJSSVGRect;
  187.     function createSVGTransform: TJSSVGTransform;
  188.     function createSVGTransformFromMatrix(matrix: TJSSVGMatrix): TJSSVGTransform;
  189.     function getElementById(elementId: string): TJSElement;
  190.     function suspendRedraw(maxWaitMilliseconds: NativeInt): NativeInt;
  191.     procedure unsuspendRedraw(suspendHandleId: NativeInt);
  192.     procedure unsuspendRedrawAll;
  193.     procedure forceRedraw;
  194.     procedure pauseAnimations;
  195.     procedure unpauseAnimations;
  196.     function animationsPaused: boolean;
  197.     function getCurrentTime: Double;
  198.     procedure setCurrentTime(seconds: Double);
  199.     property x: TJSSVGAnimatedLength read Fx;
  200.     property y: TJSSVGAnimatedLength read Fy;
  201.     property width: TJSSVGAnimatedLength read Fwidth;
  202.     property height: TJSSVGAnimatedLength read Fheight;
  203.     property currentTranslate: TJSSVGPoint read FcurrentTranslate;
  204.   end;
  205.  
  206.   { --------------------------------------------------------------------
  207.     TJSSVGAElement
  208.     --------------------------------------------------------------------}
  209.   TJSSVGAElement = class external name 'SVGAElement' (TJSSVGGraphicsElement)
  210.   private
  211.     Ftarget: TJSSVGAnimatedString; external name 'target';
  212.   public
  213.     property target: TJSSVGAnimatedString read Ftarget;
  214.   end;
  215.  
  216.   { --------------------------------------------------------------------
  217.   TJSSVGAngle
  218.   --------------------------------------------------------------------}
  219.   TJSSVGAngle = class external name 'SVGAngle'
  220.   private
  221.     FunitType: Cardinal; external name 'unitType';
  222.   public
  223.   const
  224.     SVG_ANGLETYPE_UNKNOWN = 0;
  225.     SVG_ANGLETYPE_UNSPECIFIED = 1;
  226.     SVG_ANGLETYPE_DEG = 2;
  227.     SVG_ANGLETYPE_RAD = 3;
  228.     SVG_ANGLETYPE_GRAD = 4;
  229.     Public
  230.       value: Double;
  231.     valueInSpecifiedUnits: Double;
  232.     valueAsString: string;
  233.     procedure newValueSpecifiedUnits(unitType: Cardinal; valueInSpecifiedUnits: Double);
  234.     procedure convertToSpecifiedUnits(unitType: Cardinal);
  235.     property unitType: Cardinal read FunitType;
  236.   end;
  237.  
  238.   { --------------------------------------------------------------------
  239.     TJSSVGAnimatedAngle
  240.     --------------------------------------------------------------------}
  241.   TJSSVGAnimatedAngle = class external name 'SVGAnimatedAngle'
  242.   private
  243.     FbaseVal: TJSSVGAngle; external name 'baseVal';
  244.     FanimVal: TJSSVGAngle; external name 'animVal';
  245.   public
  246.     property baseVal: TJSSVGAngle read FbaseVal;
  247.     property animVal: TJSSVGAngle read FanimVal;
  248.   end;
  249.  
  250.   { --------------------------------------------------------------------
  251.     TJSSVGAnimatedBoolean
  252.     --------------------------------------------------------------------}
  253.   TJSSVGAnimatedBoolean = class external name 'SVGAnimatedBoolean'
  254.   private
  255.     FanimVal: boolean; external name 'animVal';
  256.   public
  257.     baseVal: boolean;
  258.     property animVal: boolean read FanimVal;
  259.   end;
  260.  
  261.   { --------------------------------------------------------------------
  262.     TJSSVGAnimatedEnumeration
  263.     --------------------------------------------------------------------}
  264.   TJSSVGAnimatedEnumeration = class external name 'SVGAnimatedEnumeration'
  265.   private
  266.     FanimVal: Cardinal; external name 'animVal';
  267.   public
  268.     baseVal: Cardinal;
  269.     property animVal: Cardinal read FanimVal;
  270.   end;
  271.  
  272.   { --------------------------------------------------------------------
  273.     TJSSVGAnimatedInteger
  274.     --------------------------------------------------------------------}
  275.   TJSSVGAnimatedInteger = class external name 'SVGAnimatedInteger'
  276.   private
  277.     FanimVal: Integer; external name 'animVal';
  278.   public
  279.     baseVal: Integer;
  280.     property animVal: Integer read FanimVal;
  281.   end;
  282.  
  283.   { --------------------------------------------------------------------
  284.     TJSSVGAnimatedLength
  285.     --------------------------------------------------------------------}
  286.   TJSSVGAnimatedLength = class external name 'SVGAnimatedLength'
  287.   private
  288.     FbaseVal: TJSSVGLength; external name 'baseVal';
  289.     FanimVal: TJSSVGLength; external name 'animVal';
  290.   public
  291.     property baseVal: TJSSVGLength read FbaseVal;
  292.     property animVal: TJSSVGLength read FanimVal;
  293.   end;
  294.  
  295. { --------------------------------------------------------------------
  296.   TJSSVGLengthList
  297.   --------------------------------------------------------------------}
  298.   TJSSVGLengthList = class external name 'SVGLengthList'
  299.   public
  300.     numberOfItems: Integer;
  301.     procedure clear;
  302.     function initialize(newItem: TJSSVGLength): TJSSVGLength;
  303.     function getItem(&index: Integer): TJSSVGLength;
  304.     function insertItemBefore(newItem: TJSSVGLength; &index: Integer): TJSSVGLength;
  305.     function replaceItem(newItem: TJSSVGLength; &index: Integer): TJSSVGLength;
  306.     function removeItem(&index: Integer): TJSSVGLength;
  307.     function appendItem(newItem: TJSSVGLength): TJSSVGLength;
  308.   end;
  309.  
  310.   { --------------------------------------------------------------------
  311.     TJSSVGAnimatedLengthList
  312.     --------------------------------------------------------------------}
  313.   TJSSVGAnimatedLengthList = class external name 'SVGAnimatedLengthList'
  314.   private
  315.     FbaseVal: TJSSVGLengthList; external name 'baseVal';
  316.     FanimVal: TJSSVGLengthList; external name 'animVal';
  317.   public
  318.     property baseVal: TJSSVGLengthList read FbaseVal;
  319.     property animVal: TJSSVGLengthList read FanimVal;
  320.   end;
  321.  
  322.   { --------------------------------------------------------------------
  323.     TJSSVGAnimatedNumber
  324.     --------------------------------------------------------------------}
  325.   TJSSVGAnimatedNumber = class external name 'SVGAnimatedNumber'
  326.   private
  327.     FanimVal: Double; external name 'animVal';
  328.   public
  329.     baseVal: Double;
  330.     property animVal: Double read FanimVal;
  331.   end;
  332.  
  333.   { --------------------------------------------------------------------
  334.     TJSSVGNumberList
  335.   --------------------------------------------------------------------}
  336.   TJSSVGNumberList = class external name 'SVGNumberList'
  337.   public
  338.     numberOfItems: Integer;
  339.     procedure clear;
  340.     function initialize(newItem: TJSSVGNumber): TJSSVGNumber;
  341.     function getItem(&index: Integer): TJSSVGNumber;
  342.     function insertItemBefore(newItem: TJSSVGNumber; &index: Integer): TJSSVGNumber;
  343.     function replaceItem(newItem: TJSSVGNumber; &index: Integer): TJSSVGNumber;
  344.     function removeItem(&index: Integer): TJSSVGNumber;
  345.     function appendItem(newItem: TJSSVGNumber): TJSSVGNumber;
  346.   end;
  347.  
  348.   { --------------------------------------------------------------------
  349.     TJSSVGAnimatedNumberList
  350.     --------------------------------------------------------------------}
  351.   TJSSVGAnimatedNumberList = class external name 'SVGAnimatedNumberList'
  352.   private
  353.     FbaseVal: TJSSVGNumberList; external name 'baseVal';
  354.     FanimVal: TJSSVGNumberList; external name 'animVal';
  355.   public
  356.     property baseVal: TJSSVGNumberList read FbaseVal;
  357.     property animVal: TJSSVGNumberList read FanimVal;
  358.   end;
  359.  
  360.   { --------------------------------------------------------------------
  361.     TJSSVGAnimatedPreserveAspectRatio
  362.     --------------------------------------------------------------------}
  363.   TJSSVGAnimatedPreserveAspectRatio = class external name
  364.     'SVGAnimatedPreserveAspectRatio'
  365.     private
  366.     FbaseVal: TJSSVGPreserveAspectRatio; external name 'baseVal';
  367.     FanimVal: TJSSVGPreserveAspectRatio; external name 'animVal';
  368.   public
  369.     property baseVal: TJSSVGPreserveAspectRatio read FbaseVal;
  370.     property animVal: TJSSVGPreserveAspectRatio read FanimVal;
  371.   end;
  372.  
  373.   { --------------------------------------------------------------------
  374.     TJSSVGAnimatedRect
  375.     --------------------------------------------------------------------}
  376.   TJSSVGAnimatedRect = class external name 'SVGAnimatedRect'
  377.   private
  378.     FbaseVal: TJSSVGRect; external name 'baseVal';
  379.     FanimVal: TJSSVGRect; external name 'animVal';
  380.   public
  381.     property baseVal: TJSSVGRect read FbaseVal;
  382.     property animVal: TJSSVGRect read FanimVal;
  383.   end;
  384.  
  385.   { --------------------------------------------------------------------
  386.     TJSSVGAnimatedString
  387.     --------------------------------------------------------------------}
  388.   TJSSVGAnimatedString = class external name 'SVGAnimatedString'
  389.   private
  390.     FanimVal: string; external name 'animVal';
  391.   public
  392.     baseVal: string;
  393.     property animVal: string read FanimVal;
  394.   end;
  395.  
  396.  { --------------------------------------------------------------------
  397.   TJSSVGTransformList
  398.   --------------------------------------------------------------------}
  399.   TJSSVGTransformList = class external name 'SVGTransformList'
  400.   public
  401.     numberOfItems: Integer;
  402.     procedure clear;
  403.     function initialize(newItem: TJSSVGTransform): TJSSVGTransform;
  404.     function getItem(&index: Integer): TJSSVGTransform;
  405.     function insertItemBefore(newItem: TJSSVGTransform; &index: Integer): TJSSVGTransform;
  406.     function replaceItem(newItem: TJSSVGTransform; &index: Integer): TJSSVGTransform;
  407.     function removeItem(&index: Integer): TJSSVGTransform;
  408.     function appendItem(newItem: TJSSVGTransform): TJSSVGTransform;
  409.     function createSVGTransformFromMatrix(matrix: TJSSVGMatrix): TJSSVGTransform;
  410.     function consolidate: TJSSVGTransform;
  411.   end;
  412.  
  413.   { --------------------------------------------------------------------
  414.     TJSSVGAnimatedTransformList
  415.     --------------------------------------------------------------------}
  416.   TJSSVGAnimatedTransformList = class external name 'SVGAnimatedTransformList'
  417.   private
  418.     FbaseVal: TJSSVGTransformList; external name 'baseVal';
  419.     FanimVal: TJSSVGTransformList; external name 'animVal';
  420.   public
  421.     property baseVal: TJSSVGTransformList read FbaseVal;
  422.     property animVal: TJSSVGTransformList read FanimVal;
  423.   end;
  424.  
  425.   { --------------------------------------------------------------------
  426.     TJSSVGAnimationElement
  427.     --------------------------------------------------------------------}
  428.   TJSSVGAnimationElement = class external name 'SVGAnimationElement' (TJSSVGElement)
  429.   private
  430.     FtargetElement: TJSSVGElement; external name 'targetElement';
  431.   public
  432.     onbegin: TJSEventHandler;
  433.     onend: TJSEventHandler;
  434.     onrepeat: TJSEventHandler;
  435.     function getStartTime: Double;
  436.     function getCurrentTime: Double;
  437.     function getSimpleDuration: Double;
  438.     procedure beginElement;
  439.     procedure beginElementAt(offset: Double);
  440.     procedure endElement;
  441.     procedure endElementAt(offset: Double);
  442.     property targetElement: TJSSVGElement read FtargetElement;
  443.   end;
  444.  
  445.   { --------------------------------------------------------------------
  446.     TJSSVGAnimateElement
  447.     --------------------------------------------------------------------}
  448.   TJSSVGAnimateElement = class external name 'SVGAnimateElement' (TJSSVGAnimationElement)
  449.     private
  450.   public
  451.   end;
  452.  
  453.   { --------------------------------------------------------------------
  454.     TJSSVGAnimateMotionElement
  455.     --------------------------------------------------------------------}
  456.   TJSSVGAnimateMotionElement = class external name 'SVGAnimateMotionElement' (TJSSVGAnimationElement)
  457.     private
  458.   public
  459.   end;
  460.  
  461.   { --------------------------------------------------------------------
  462.     TJSSVGAnimateTransformElement
  463.     --------------------------------------------------------------------}
  464.   TJSSVGAnimateTransformElement = class external name
  465.     'SVGAnimateTransformElement' (TJSSVGAnimationElement)
  466.     private
  467.   public
  468.   end;
  469.  
  470.   { --------------------------------------------------------------------
  471.     TJSSVGGeometryElement
  472.     --------------------------------------------------------------------}
  473.   TJSSVGGeometryElement = class external name 'SVGGeometryElement' (TJSSVGGraphicsElement)
  474.     private
  475.     FpathLength: TJSSVGAnimatedNumber; external name 'pathLength';
  476.   public
  477.     function isPointInFill(point: TJSSVGPoint): boolean;
  478.     function isPointInStroke(point: TJSSVGPoint): boolean;
  479.     function getTotalLength: Double;
  480.     function getPointAtLength(distance: Double): TJSSVGPoint;
  481.     property pathLength: TJSSVGAnimatedNumber read FpathLength;
  482.   end;
  483.  
  484.   { --------------------------------------------------------------------
  485.     TJSSVGCircleElement
  486.     --------------------------------------------------------------------}
  487.   TJSSVGCircleElement = class external name 'SVGCircleElement' (TJSSVGGeometryElement)
  488.     private
  489.     Fcx: TJSSVGAnimatedLength; external name 'cx';
  490.     Fcy: TJSSVGAnimatedLength; external name 'cy';
  491.     Fr: TJSSVGAnimatedLength; external name 'r';
  492.   public
  493.     property cx: TJSSVGAnimatedLength read Fcx;
  494.     property cy: TJSSVGAnimatedLength read Fcy;
  495.     property r: TJSSVGAnimatedLength read Fr;
  496.   end;
  497.  
  498.   { --------------------------------------------------------------------
  499.     TJSSVGClipPathElement
  500.     --------------------------------------------------------------------}
  501.   TJSSVGClipPathElement = class external name
  502.     'SVGClipPathElement' (TJSSVGGraphicsElement)
  503.     private
  504.     FclipPathUnits: TJSSVGAnimatedEnumeration; external name 'clipPathUnits';
  505.   public
  506.     property clipPathUnits: TJSSVGAnimatedEnumeration read FclipPathUnits;
  507.   end;
  508.  
  509.   { --------------------------------------------------------------------
  510.     TJSSVGComponentTransferFunctionElement
  511.     --------------------------------------------------------------------}
  512.   TJSSVGComponentTransferFunctionElement = class external name
  513.     'SVGComponentTransferFunctionElement' (TJSSVGElement)
  514.     private
  515.     Ftype_: TJSSVGAnimatedEnumeration; external name 'type';
  516.     FtableValues: TJSSVGAnimatedNumberList; external name 'tableValues';
  517.     Fslope: TJSSVGAnimatedNumber; external name 'slope';
  518.     Fintercept: TJSSVGAnimatedNumber; external name 'intercept';
  519.     Famplitude: TJSSVGAnimatedNumber; external name 'amplitude';
  520.     Fexponent: TJSSVGAnimatedNumber; external name 'exponent';
  521.     Foffset: TJSSVGAnimatedNumber; external name 'offset';
  522.   public
  523.   const
  524.     SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0;
  525.     SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1;
  526.     SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2;
  527.     SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3;
  528.     SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4;
  529.     SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5;
  530.   Public
  531.     property type_: TJSSVGAnimatedEnumeration read Ftype_;
  532.     property tableValues: TJSSVGAnimatedNumberList read FtableValues;
  533.     property slope: TJSSVGAnimatedNumber read Fslope;
  534.     property intercept: TJSSVGAnimatedNumber read Fintercept;
  535.     property amplitude: TJSSVGAnimatedNumber read Famplitude;
  536.     property exponent: TJSSVGAnimatedNumber read Fexponent;
  537.     property offset: TJSSVGAnimatedNumber read Foffset;
  538.   end;
  539.  
  540.   { --------------------------------------------------------------------
  541.     TJSSVGDefsElement
  542.     --------------------------------------------------------------------}
  543.   TJSSVGDefsElement = class external name 'SVGDefsElement' (TJSSVGGraphicsElement)
  544.   private
  545.   public
  546.   end;
  547.  
  548.   { --------------------------------------------------------------------
  549.     TJSSVGDescElement
  550.     --------------------------------------------------------------------}
  551.   TJSSVGDescElement = class external name 'SVGDescElement' (TJSSVGElement)
  552.   private
  553.   public
  554.   end;
  555.  
  556.   { --------------------------------------------------------------------
  557.     TJSSVGDocument
  558.     --------------------------------------------------------------------}
  559.   TJSSVGDocument = class external name 'SVGDocument' (TJSDocument)
  560.   public
  561.     Ftitle: String; external name 'tile';
  562.     Freferrer: String; external name 'referrer';
  563.     Fdomain: String; external name 'domain';
  564.     fURL: String; external name 'URL';
  565.     rootElement: TJSSVGSVGElement;
  566.   end;
  567.  
  568.   { --------------------------------------------------------------------
  569.     TJSSVGDiscardElement
  570.     --------------------------------------------------------------------}
  571.   TJSSVGDiscardElement = class external name 'SVGDiscardElement' (TJSSVGElement)
  572.   private
  573.   public
  574.   end;
  575.  
  576.   { --------------------------------------------------------------------
  577.     TJSDocument
  578.     --------------------------------------------------------------------}
  579.   TJSDocument = class external name 'Document'
  580.   private
  581.     FrootElement: TJSSVGSVGElement; external name 'rootElement';
  582.   public
  583.     property rootElement: TJSSVGSVGElement read FrootElement;
  584.   end;
  585.  
  586.   { --------------------------------------------------------------------
  587.     TJSSVGEllipseElement
  588.     --------------------------------------------------------------------}
  589.   TJSSVGEllipseElement = class external name
  590.     'SVGEllipseElement' (TJSSVGGeometryElement)
  591.     private
  592.     Fcx: TJSSVGAnimatedLength; external name 'cx';
  593.     Fcy: TJSSVGAnimatedLength; external name 'cy';
  594.     Frx: TJSSVGAnimatedLength; external name 'rx';
  595.     Fry: TJSSVGAnimatedLength; external name 'ry';
  596.   public
  597.     property cx: TJSSVGAnimatedLength read Fcx;
  598.     property cy: TJSSVGAnimatedLength read Fcy;
  599.     property rx: TJSSVGAnimatedLength read Frx;
  600.     property ry: TJSSVGAnimatedLength read Fry;
  601.   end;
  602.  
  603.   { --------------------------------------------------------------------
  604.     TJSSVGFEBlendElement
  605.     --------------------------------------------------------------------}
  606.   TJSSVGFEBlendElement = class external name 'SVGFEBlendElement' (TJSSVGElement)
  607.   private
  608.     Fin1: TJSSVGAnimatedString; external name 'in1';
  609.     Fin2: TJSSVGAnimatedString; external name 'in2';
  610.     Fmode: TJSSVGAnimatedEnumeration; external name 'mode';
  611.   public
  612.   const
  613.     SVG_FEBLEND_MODE_UNKNOWN = 0;
  614.     SVG_FEBLEND_MODE_NORMAL = 1;
  615.     SVG_FEBLEND_MODE_MULTIPLY = 2;
  616.     SVG_FEBLEND_MODE_SCREEN = 3;
  617.     SVG_FEBLEND_MODE_DARKEN = 4;
  618.     SVG_FEBLEND_MODE_LIGHTEN = 5;
  619.   Public
  620.     property in1: TJSSVGAnimatedString read Fin1;
  621.     property in2: TJSSVGAnimatedString read Fin2;
  622.     property mode: TJSSVGAnimatedEnumeration read Fmode;
  623.   end;
  624.  
  625.   { --------------------------------------------------------------------
  626.     TJSSVGFEColorMatrixElement
  627.     --------------------------------------------------------------------}
  628.   TJSSVGFEColorMatrixElement = class external name
  629.     'SVGFEColorMatrixElement' (TJSSVGElement)
  630.     private
  631.     Fin1: TJSSVGAnimatedString; external name 'in1';
  632.     Ftype_: TJSSVGAnimatedEnumeration; external name 'type';
  633.     Fvalues: TJSSVGAnimatedNumberList; external name 'values';
  634.   public
  635.   const
  636.     SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0;
  637.     SVG_FECOLORMATRIX_TYPE_MATRIX = 1;
  638.     SVG_FECOLORMATRIX_TYPE_SATURATE = 2;
  639.     SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3;
  640.     SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;
  641.   Public
  642.     property in1: TJSSVGAnimatedString read Fin1;
  643.     property type_: TJSSVGAnimatedEnumeration read Ftype_;
  644.     property values: TJSSVGAnimatedNumberList read Fvalues;
  645.   end;
  646.  
  647.   { --------------------------------------------------------------------
  648.     TJSSVGFEComponentTransferElement
  649.     --------------------------------------------------------------------}
  650.   TJSSVGFEComponentTransferElement = class external name
  651.     'SVGFEComponentTransferElement' (TJSSVGElement)
  652.     private
  653.     Fin1: TJSSVGAnimatedString; external name 'in1';
  654.   public
  655.     property in1: TJSSVGAnimatedString read Fin1;
  656.   end;
  657.  
  658.   { --------------------------------------------------------------------
  659.     TJSSVGFECompositeElement
  660.     --------------------------------------------------------------------}
  661.   TJSSVGFECompositeElement = class external name
  662.     'SVGFECompositeElement' (TJSSVGElement)
  663.     private
  664.     Fin2: TJSSVGAnimatedString; external name 'in2';
  665.     Fin1: TJSSVGAnimatedString; external name 'in1';
  666.     Foperator_: TJSSVGAnimatedEnumeration; external name 'operator';
  667.     Fk1: TJSSVGAnimatedNumber; external name 'k1';
  668.     Fk2: TJSSVGAnimatedNumber; external name 'k2';
  669.     Fk3: TJSSVGAnimatedNumber; external name 'k3';
  670.     Fk4: TJSSVGAnimatedNumber; external name 'k4';
  671.   public
  672.   const
  673.     SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0;
  674.     SVG_FECOMPOSITE_OPERATOR_OVER = 1;
  675.     SVG_FECOMPOSITE_OPERATOR_IN = 2;
  676.     SVG_FECOMPOSITE_OPERATOR_OUT = 3;
  677.     SVG_FECOMPOSITE_OPERATOR_ATOP = 4;
  678.     SVG_FECOMPOSITE_OPERATOR_XOR = 5;
  679.     SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;
  680.   Public
  681.     property in2: TJSSVGAnimatedString read Fin2;
  682.     property in1: TJSSVGAnimatedString read Fin1;
  683.     property operator_: TJSSVGAnimatedEnumeration read Foperator_;
  684.     property k1: TJSSVGAnimatedNumber read Fk1;
  685.     property k2: TJSSVGAnimatedNumber read Fk2;
  686.     property k3: TJSSVGAnimatedNumber read Fk3;
  687.     property k4: TJSSVGAnimatedNumber read Fk4;
  688.   end;
  689.  
  690.   { --------------------------------------------------------------------
  691.     TJSSVGFEConvolveMatrixElement
  692.     --------------------------------------------------------------------}
  693.   TJSSVGFEConvolveMatrixElement = class external name
  694.     'SVGFEConvolveMatrixElement' (TJSSVGElement)
  695.     private
  696.     Fin1: TJSSVGAnimatedString; external name 'in1';
  697.     ForderX: TJSSVGAnimatedInteger; external name 'orderX';
  698.     ForderY: TJSSVGAnimatedInteger; external name 'orderY';
  699.     FkernelMatrix: TJSSVGAnimatedNumberList; external name 'kernelMatrix';
  700.     Fdivisor: TJSSVGAnimatedNumber; external name 'divisor';
  701.     Fbias: TJSSVGAnimatedNumber; external name 'bias';
  702.     FtargetX: TJSSVGAnimatedInteger; external name 'targetX';
  703.     FtargetY: TJSSVGAnimatedInteger; external name 'targetY';
  704.     FedgeMode: TJSSVGAnimatedEnumeration; external name 'edgeMode';
  705.     FkernelUnitLengthX: TJSSVGAnimatedNumber; external name 'kernelUnitLengthX';
  706.     FkernelUnitLengthY: TJSSVGAnimatedNumber; external name 'kernelUnitLengthY';
  707.     FpreserveAlpha: TJSSVGAnimatedBoolean; external name 'preserveAlpha';
  708.   public
  709.   const
  710.     SVG_EDGEMODE_UNKNOWN = 0;
  711.     SVG_EDGEMODE_DUPLICATE = 1;
  712.     SVG_EDGEMODE_WRAP = 2;
  713.     SVG_EDGEMODE_NONE = 3;
  714.   Public
  715.     property in1: TJSSVGAnimatedString read Fin1;
  716.     property orderX: TJSSVGAnimatedInteger read ForderX;
  717.     property orderY: TJSSVGAnimatedInteger read ForderY;
  718.     property kernelMatrix: TJSSVGAnimatedNumberList read FkernelMatrix;
  719.     property divisor: TJSSVGAnimatedNumber read Fdivisor;
  720.     property bias: TJSSVGAnimatedNumber read Fbias;
  721.     property targetX: TJSSVGAnimatedInteger read FtargetX;
  722.     property targetY: TJSSVGAnimatedInteger read FtargetY;
  723.     property edgeMode: TJSSVGAnimatedEnumeration read FedgeMode;
  724.     property kernelUnitLengthX: TJSSVGAnimatedNumber read FkernelUnitLengthX;
  725.     property kernelUnitLengthY: TJSSVGAnimatedNumber read FkernelUnitLengthY;
  726.     property preserveAlpha: TJSSVGAnimatedBoolean read FpreserveAlpha;
  727.   end;
  728.  
  729.   { --------------------------------------------------------------------
  730.     TJSSVGFEDiffuseLightingElement
  731.     --------------------------------------------------------------------}
  732.   TJSSVGFEDiffuseLightingElement = class external name
  733.     'SVGFEDiffuseLightingElement' (TJSSVGElement)
  734.     private
  735.     Fin1: TJSSVGAnimatedString; external name 'in1';
  736.     FsurfaceScale: TJSSVGAnimatedNumber; external name 'surfaceScale';
  737.     FdiffuseConstant: TJSSVGAnimatedNumber; external name 'diffuseConstant';
  738.     FkernelUnitLengthX: TJSSVGAnimatedNumber; external name 'kernelUnitLengthX';
  739.     FkernelUnitLengthY: TJSSVGAnimatedNumber; external name 'kernelUnitLengthY';
  740.   public
  741.     property in1: TJSSVGAnimatedString read Fin1;
  742.     property surfaceScale: TJSSVGAnimatedNumber read FsurfaceScale;
  743.     property diffuseConstant: TJSSVGAnimatedNumber read FdiffuseConstant;
  744.     property kernelUnitLengthX: TJSSVGAnimatedNumber read FkernelUnitLengthX;
  745.     property kernelUnitLengthY: TJSSVGAnimatedNumber read FkernelUnitLengthY;
  746.   end;
  747.  
  748.   { --------------------------------------------------------------------
  749.     TJSSVGFEDisplacementMapElement
  750.     --------------------------------------------------------------------}
  751.   TJSSVGFEDisplacementMapElement = class external name
  752.     'SVGFEDisplacementMapElement' (TJSSVGElement)
  753.     private
  754.     Fin1: TJSSVGAnimatedString; external name 'in1';
  755.     Fin2: TJSSVGAnimatedString; external name 'in2';
  756.     Fscale: TJSSVGAnimatedNumber; external name 'scale';
  757.     FxChannelSelector: TJSSVGAnimatedEnumeration; external name 'xChannelSelector';
  758.     FyChannelSelector: TJSSVGAnimatedEnumeration; external name 'yChannelSelector';
  759.   public
  760.   const
  761.     SVG_CHANNEL_UNKNOWN = 0;
  762.     SVG_CHANNEL_R = 1;
  763.     SVG_CHANNEL_G = 2;
  764.     SVG_CHANNEL_B = 3;
  765.     SVG_CHANNEL_A = 4;
  766.   Public
  767.     property in1: TJSSVGAnimatedString read Fin1;
  768.     property in2: TJSSVGAnimatedString read Fin2;
  769.     property scale: TJSSVGAnimatedNumber read Fscale;
  770.     property xChannelSelector: TJSSVGAnimatedEnumeration read FxChannelSelector;
  771.     property yChannelSelector: TJSSVGAnimatedEnumeration read FyChannelSelector;
  772.   end;
  773.  
  774.   { --------------------------------------------------------------------
  775.     TJSSVGFEDistantLightElement
  776.     --------------------------------------------------------------------}
  777.   TJSSVGFEDistantLightElement = class external name
  778.     'SVGFEDistantLightElement' (TJSSVGElement)
  779.     private
  780.     Fazimuth: TJSSVGAnimatedNumber; external name 'azimuth';
  781.     Felevation: TJSSVGAnimatedNumber; external name 'elevation';
  782.   public
  783.     property azimuth: TJSSVGAnimatedNumber read Fazimuth;
  784.     property elevation: TJSSVGAnimatedNumber read Felevation;
  785.   end;
  786.  
  787.   { --------------------------------------------------------------------
  788.     TJSSVGFEDropShadowElement
  789.     --------------------------------------------------------------------}
  790.   TJSSVGFEDropShadowElement = class external name
  791.     'SVGFEDropShadowElement' (TJSSVGElement)
  792.     private
  793.     Fin1: TJSSVGAnimatedString; external name 'in1';
  794.     Fdx: TJSSVGAnimatedNumber; external name 'dx';
  795.     Fdy: TJSSVGAnimatedNumber; external name 'dy';
  796.     FstdDeviationX: TJSSVGAnimatedNumber; external name 'stdDeviationX';
  797.     FstdDeviationY: TJSSVGAnimatedNumber; external name 'stdDeviationY';
  798.   public
  799.     procedure setStdDeviation(stdDeviationX: Double; stdDeviationY: Double);
  800.     property in1: TJSSVGAnimatedString read Fin1;
  801.     property dx: TJSSVGAnimatedNumber read Fdx;
  802.     property dy: TJSSVGAnimatedNumber read Fdy;
  803.     property stdDeviationX: TJSSVGAnimatedNumber read FstdDeviationX;
  804.     property stdDeviationY: TJSSVGAnimatedNumber read FstdDeviationY;
  805.   end;
  806.  
  807.   { --------------------------------------------------------------------
  808.     TJSSVGFEFloodElement
  809.     --------------------------------------------------------------------}
  810.   TJSSVGFEFloodElement = class external name 'SVGFEFloodElement' (TJSSVGElement)
  811.   private
  812.   public
  813.   end;
  814.  
  815.   { --------------------------------------------------------------------
  816.     TJSSVGFEFuncAElement
  817.     --------------------------------------------------------------------}
  818.   TJSSVGFEFuncAElement = class external name
  819.     'SVGFEFuncAElement' (TJSSVGComponentTransferFunctionElement)
  820.     private
  821.   public
  822.   end;
  823.  
  824.   { --------------------------------------------------------------------
  825.     TJSSVGFEFuncBElement
  826.     --------------------------------------------------------------------}
  827.   TJSSVGFEFuncBElement = class external name
  828.     'SVGFEFuncBElement' (TJSSVGComponentTransferFunctionElement)
  829.     private
  830.   public
  831.   end;
  832.  
  833.   { --------------------------------------------------------------------
  834.     TJSSVGFEFuncGElement
  835.     --------------------------------------------------------------------}
  836.   TJSSVGFEFuncGElement = class external name
  837.     'SVGFEFuncGElement' (TJSSVGComponentTransferFunctionElement)
  838.     private
  839.   public
  840.   end;
  841.  
  842.   { --------------------------------------------------------------------
  843.     TJSSVGFEFuncRElement
  844.     --------------------------------------------------------------------}
  845.   TJSSVGFEFuncRElement = class external name
  846.     'SVGFEFuncRElement' (TJSSVGComponentTransferFunctionElement)
  847.     private
  848.   public
  849.   end;
  850.  
  851.   { --------------------------------------------------------------------
  852.     TJSSVGFEGaussianBlurElement
  853.     --------------------------------------------------------------------}
  854.   TJSSVGFEGaussianBlurElement = class external name
  855.     'SVGFEGaussianBlurElement' (TJSSVGElement)
  856.     private
  857.     Fin1: TJSSVGAnimatedString; external name 'in1';
  858.     FstdDeviationX: TJSSVGAnimatedNumber; external name 'stdDeviationX';
  859.     FstdDeviationY: TJSSVGAnimatedNumber; external name 'stdDeviationY';
  860.   public
  861.     procedure setStdDeviation(stdDeviationX: Double; stdDeviationY: Double);
  862.     property in1: TJSSVGAnimatedString read Fin1;
  863.     property stdDeviationX: TJSSVGAnimatedNumber read FstdDeviationX;
  864.     property stdDeviationY: TJSSVGAnimatedNumber read FstdDeviationY;
  865.   end;
  866.  
  867.   { --------------------------------------------------------------------
  868.     TJSSVGFEImageElement
  869.     --------------------------------------------------------------------}
  870.   TJSSVGFEImageElement = class external name 'SVGFEImageElement' (TJSSVGElement)
  871.   private
  872.     FpreserveAspectRatio: TJSSVGAnimatedPreserveAspectRatio; external name
  873.       'preserveAspectRatio';
  874.   public
  875.     property preserveAspectRatio: TJSSVGAnimatedPreserveAspectRatio read
  876.       FpreserveAspectRatio;
  877.   end;
  878.  
  879.   { --------------------------------------------------------------------
  880.     TJSSVGFEMergeElement
  881.     --------------------------------------------------------------------}
  882.   TJSSVGFEMergeElement = class external name 'SVGFEMergeElement' (TJSSVGElement)
  883.   private
  884.   public
  885.   end;
  886.  
  887.   { --------------------------------------------------------------------
  888.     TJSSVGFEMergeNodeElement
  889.     --------------------------------------------------------------------}
  890.   TJSSVGFEMergeNodeElement = class external name
  891.     'SVGFEMergeNodeElement' (TJSSVGElement)
  892.     private
  893.     Fin1: TJSSVGAnimatedString; external name 'in1';
  894.   public
  895.     property in1: TJSSVGAnimatedString read Fin1;
  896.   end;
  897.  
  898.   { --------------------------------------------------------------------
  899.     TJSSVGFEMorphologyElement
  900.     --------------------------------------------------------------------}
  901.   TJSSVGFEMorphologyElement = class external name
  902.     'SVGFEMorphologyElement' (TJSSVGElement)
  903.     private
  904.     Fin1: TJSSVGAnimatedString; external name 'in1';
  905.     Foperator_: TJSSVGAnimatedEnumeration; external name 'operator';
  906.     FradiusX: TJSSVGAnimatedNumber; external name 'radiusX';
  907.     FradiusY: TJSSVGAnimatedNumber; external name 'radiusY';
  908.   public
  909.   const
  910.     SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0;
  911.     SVG_MORPHOLOGY_OPERATOR_ERODE = 1;
  912.     SVG_MORPHOLOGY_OPERATOR_DILATE = 2;
  913.   Public
  914.     property in1: TJSSVGAnimatedString read Fin1;
  915.     property operator_: TJSSVGAnimatedEnumeration read Foperator_;
  916.     property radiusX: TJSSVGAnimatedNumber read FradiusX;
  917.     property radiusY: TJSSVGAnimatedNumber read FradiusY;
  918.   end;
  919.  
  920.   { --------------------------------------------------------------------
  921.     TJSSVGFEOffsetElement
  922.     --------------------------------------------------------------------}
  923.   TJSSVGFEOffsetElement = class external name 'SVGFEOffsetElement' (TJSSVGElement)
  924.   private
  925.     Fin1: TJSSVGAnimatedString; external name 'in1';
  926.     Fdx: TJSSVGAnimatedNumber; external name 'dx';
  927.     Fdy: TJSSVGAnimatedNumber; external name 'dy';
  928.   public
  929.     property in1: TJSSVGAnimatedString read Fin1;
  930.     property dx: TJSSVGAnimatedNumber read Fdx;
  931.     property dy: TJSSVGAnimatedNumber read Fdy;
  932.   end;
  933.  
  934.   { --------------------------------------------------------------------
  935.     TJSSVGFEPointLightElement
  936.     --------------------------------------------------------------------}
  937.   TJSSVGFEPointLightElement = class external name
  938.     'SVGFEPointLightElement' (TJSSVGElement)
  939.     private
  940.     Fx: TJSSVGAnimatedNumber; external name 'x';
  941.     Fy: TJSSVGAnimatedNumber; external name 'y';
  942.     Fz: TJSSVGAnimatedNumber; external name 'z';
  943.   public
  944.     property x: TJSSVGAnimatedNumber read Fx;
  945.     property y: TJSSVGAnimatedNumber read Fy;
  946.     property z: TJSSVGAnimatedNumber read Fz;
  947.   end;
  948.  
  949.   { --------------------------------------------------------------------
  950.     TJSSVGFESpecularLightingElement
  951.     --------------------------------------------------------------------}
  952.   TJSSVGFESpecularLightingElement = class external name
  953.     'SVGFESpecularLightingElement' (TJSSVGElement)
  954.     private
  955.     Fin1: TJSSVGAnimatedString; external name 'in1';
  956.     FsurfaceScale: TJSSVGAnimatedNumber; external name 'surfaceScale';
  957.     FspecularConstant: TJSSVGAnimatedNumber; external name 'specularConstant';
  958.     FspecularExponent: TJSSVGAnimatedNumber; external name 'specularExponent';
  959.     FkernelUnitLengthX: TJSSVGAnimatedNumber; external name 'kernelUnitLengthX';
  960.     FkernelUnitLengthY: TJSSVGAnimatedNumber; external name 'kernelUnitLengthY';
  961.   public
  962.     property in1: TJSSVGAnimatedString read Fin1;
  963.     property surfaceScale: TJSSVGAnimatedNumber read FsurfaceScale;
  964.     property specularConstant: TJSSVGAnimatedNumber read FspecularConstant;
  965.     property specularExponent: TJSSVGAnimatedNumber read FspecularExponent;
  966.     property kernelUnitLengthX: TJSSVGAnimatedNumber read FkernelUnitLengthX;
  967.     property kernelUnitLengthY: TJSSVGAnimatedNumber read FkernelUnitLengthY;
  968.   end;
  969.  
  970.   { --------------------------------------------------------------------
  971.     TJSSVGFESpotLightElement
  972.     --------------------------------------------------------------------}
  973.   TJSSVGFESpotLightElement = class external name
  974.     'SVGFESpotLightElement' (TJSSVGElement)
  975.     private
  976.     Fx: TJSSVGAnimatedNumber; external name 'x';
  977.     Fy: TJSSVGAnimatedNumber; external name 'y';
  978.     Fz: TJSSVGAnimatedNumber; external name 'z';
  979.     FpointsAtX: TJSSVGAnimatedNumber; external name 'pointsAtX';
  980.     FpointsAtY: TJSSVGAnimatedNumber; external name 'pointsAtY';
  981.     FpointsAtZ: TJSSVGAnimatedNumber; external name 'pointsAtZ';
  982.     FspecularExponent: TJSSVGAnimatedNumber; external name 'specularExponent';
  983.     FlimitingConeAngle: TJSSVGAnimatedNumber; external name 'limitingConeAngle';
  984.   public
  985.     property x: TJSSVGAnimatedNumber read Fx;
  986.     property y: TJSSVGAnimatedNumber read Fy;
  987.     property z: TJSSVGAnimatedNumber read Fz;
  988.     property pointsAtX: TJSSVGAnimatedNumber read FpointsAtX;
  989.     property pointsAtY: TJSSVGAnimatedNumber read FpointsAtY;
  990.     property pointsAtZ: TJSSVGAnimatedNumber read FpointsAtZ;
  991.     property specularExponent: TJSSVGAnimatedNumber read FspecularExponent;
  992.     property limitingConeAngle: TJSSVGAnimatedNumber read FlimitingConeAngle;
  993.   end;
  994.  
  995.   { --------------------------------------------------------------------
  996.     TJSSVGFETileElement
  997.     --------------------------------------------------------------------}
  998.   TJSSVGFETileElement = class external name 'SVGFETileElement' (TJSSVGElement)
  999.   private
  1000.     Fin1: TJSSVGAnimatedString; external name 'in1';
  1001.   public
  1002.     property in1: TJSSVGAnimatedString read Fin1;
  1003.   end;
  1004.  
  1005.   { --------------------------------------------------------------------
  1006.     TJSSVGFETurbulenceElement
  1007.     --------------------------------------------------------------------}
  1008.   TJSSVGFETurbulenceElement = class external name
  1009.     'SVGFETurbulenceElement' (TJSSVGElement)
  1010.     private
  1011.     FbaseFrequencyX: TJSSVGAnimatedNumber; external name 'baseFrequencyX';
  1012.     FbaseFrequencyY: TJSSVGAnimatedNumber; external name 'baseFrequencyY';
  1013.     FnumOctaves: TJSSVGAnimatedInteger; external name 'numOctaves';
  1014.     Fseed: TJSSVGAnimatedNumber; external name 'seed';
  1015.     FstitchTiles: TJSSVGAnimatedEnumeration; external name 'stitchTiles';
  1016.     Ftype_: TJSSVGAnimatedEnumeration; external name 'type';
  1017.   public
  1018.   const
  1019.     SVG_TURBULENCE_TYPE_UNKNOWN = 0;
  1020.     SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
  1021.     SVG_TURBULENCE_TYPE_TURBULENCE = 2;
  1022.     SVG_STITCHTYPE_UNKNOWN = 0;
  1023.     SVG_STITCHTYPE_STITCH = 1;
  1024.     SVG_STITCHTYPE_NOSTITCH = 2;
  1025.   Public
  1026.     property baseFrequencyX: TJSSVGAnimatedNumber read FbaseFrequencyX;
  1027.     property baseFrequencyY: TJSSVGAnimatedNumber read FbaseFrequencyY;
  1028.     property numOctaves: TJSSVGAnimatedInteger read FnumOctaves;
  1029.     property seed: TJSSVGAnimatedNumber read Fseed;
  1030.     property stitchTiles: TJSSVGAnimatedEnumeration read FstitchTiles;
  1031.     property type_: TJSSVGAnimatedEnumeration read Ftype_;
  1032.   end;
  1033.  
  1034.   { --------------------------------------------------------------------
  1035.     TJSSVGFilterElement
  1036.     --------------------------------------------------------------------}
  1037.   TJSSVGFilterElement = class external name 'SVGFilterElement' (TJSSVGElement)
  1038.   private
  1039.     FfilterUnits: TJSSVGAnimatedEnumeration; external name 'filterUnits';
  1040.     FprimitiveUnits: TJSSVGAnimatedEnumeration; external name 'primitiveUnits';
  1041.     Fx: TJSSVGAnimatedLength; external name 'x';
  1042.     Fy: TJSSVGAnimatedLength; external name 'y';
  1043.     Fwidth: TJSSVGAnimatedLength; external name 'width';
  1044.     Fheight: TJSSVGAnimatedLength; external name 'height';
  1045.   public
  1046.     property filterUnits: TJSSVGAnimatedEnumeration read FfilterUnits;
  1047.     property primitiveUnits: TJSSVGAnimatedEnumeration read FprimitiveUnits;
  1048.     property x: TJSSVGAnimatedLength read Fx;
  1049.     property y: TJSSVGAnimatedLength read Fy;
  1050.     property width: TJSSVGAnimatedLength read Fwidth;
  1051.     property height: TJSSVGAnimatedLength read Fheight;
  1052.   end;
  1053.  
  1054.   { --------------------------------------------------------------------
  1055.     TJSSVGFilterPrimitiveStandardAttributes
  1056.     --------------------------------------------------------------------}
  1057.   TJSSVGFilterPrimitiveStandardAttributes = class external name
  1058.     'SVGFilterPrimitiveStandardAttributes'
  1059.     private
  1060.     Fx: TJSSVGAnimatedLength; external name 'x';
  1061.     Fy: TJSSVGAnimatedLength; external name 'y';
  1062.     Fwidth: TJSSVGAnimatedLength; external name 'width';
  1063.     Fheight: TJSSVGAnimatedLength; external name 'height';
  1064.     Fresult: TJSSVGAnimatedString; external name 'result';
  1065.   public
  1066.     property x: TJSSVGAnimatedLength read Fx;
  1067.     property y: TJSSVGAnimatedLength read Fy;
  1068.     property width: TJSSVGAnimatedLength read Fwidth;
  1069.     property height: TJSSVGAnimatedLength read Fheight;
  1070.     property result: TJSSVGAnimatedString read Fresult;
  1071.   end;
  1072.  
  1073.   { --------------------------------------------------------------------
  1074.     TJSSVGFitToViewBox
  1075.     --------------------------------------------------------------------}
  1076.   TJSSVGFitToViewBox = class external name 'SVGFitToViewBox'
  1077.   private
  1078.     FviewBox: TJSSVGAnimatedRect; external name 'viewBox';
  1079.     FpreserveAspectRatio: TJSSVGAnimatedPreserveAspectRatio; external name
  1080.       'preserveAspectRatio';
  1081.   public
  1082.     property viewBox: TJSSVGAnimatedRect read FviewBox;
  1083.     property preserveAspectRatio: TJSSVGAnimatedPreserveAspectRatio read
  1084.       FpreserveAspectRatio;
  1085.   end;
  1086.  
  1087.   { --------------------------------------------------------------------
  1088.     TJSSVGForeignObjectElement
  1089.     --------------------------------------------------------------------}
  1090.   TJSSVGForeignObjectElement = class external name
  1091.     'SVGForeignObjectElement' (TJSSVGGraphicsElement)
  1092.     private
  1093.     Fx: TJSSVGAnimatedLength; external name 'x';
  1094.     Fy: TJSSVGAnimatedLength; external name 'y';
  1095.     Fwidth: TJSSVGAnimatedLength; external name 'width';
  1096.     Fheight: TJSSVGAnimatedLength; external name 'height';
  1097.   public
  1098.     property x: TJSSVGAnimatedLength read Fx;
  1099.     property y: TJSSVGAnimatedLength read Fy;
  1100.     property width: TJSSVGAnimatedLength read Fwidth;
  1101.     property height: TJSSVGAnimatedLength read Fheight;
  1102.   end;
  1103.  
  1104.   { --------------------------------------------------------------------
  1105.     TJSSVGGElement
  1106.     --------------------------------------------------------------------}
  1107.   TJSSVGGElement = class external name 'SVGGElement' (TJSSVGGraphicsElement)
  1108.   private
  1109.   public
  1110.   end;
  1111.  
  1112.   { --------------------------------------------------------------------
  1113.     TJSSVGGradientElement
  1114.     --------------------------------------------------------------------}
  1115.   TJSSVGGradientElement = class external name 'SVGGradientElement' (TJSSVGElement)
  1116.   private
  1117.     FgradientUnits: TJSSVGAnimatedEnumeration; external name 'gradientUnits';
  1118.     FgradientTransform: TJSSVGAnimatedTransformList; external name
  1119.       'gradientTransform';
  1120.     FspreadMethod: TJSSVGAnimatedEnumeration; external name 'spreadMethod';
  1121.   public
  1122.   const
  1123.     SVG_SPREADMETHOD_UNKNOWN = 0;
  1124.     SVG_SPREADMETHOD_PAD = 1;
  1125.     SVG_SPREADMETHOD_REFLECT = 2;
  1126.     SVG_SPREADMETHOD_REPEAT = 3;
  1127.   Public
  1128.     property gradientUnits: TJSSVGAnimatedEnumeration read FgradientUnits;
  1129.     property gradientTransform: TJSSVGAnimatedTransformList read FgradientTransform;
  1130.     property spreadMethod: TJSSVGAnimatedEnumeration read FspreadMethod;
  1131.   end;
  1132.  
  1133.   { --------------------------------------------------------------------
  1134.     TJSSVGImageElement
  1135.     --------------------------------------------------------------------}
  1136.   TJSSVGImageElement = class external name 'SVGImageElement' (TJSSVGGraphicsElement)
  1137.   private
  1138.     Fx: TJSSVGAnimatedLength; external name 'x';
  1139.     Fy: TJSSVGAnimatedLength; external name 'y';
  1140.     Fwidth: TJSSVGAnimatedLength; external name 'width';
  1141.     Fheight: TJSSVGAnimatedLength; external name 'height';
  1142.     FpreserveAspectRatio: TJSSVGAnimatedPreserveAspectRatio; external name
  1143.       'preserveAspectRatio';
  1144.   public
  1145.     property x: TJSSVGAnimatedLength read Fx;
  1146.     property y: TJSSVGAnimatedLength read Fy;
  1147.     property width: TJSSVGAnimatedLength read Fwidth;
  1148.     property height: TJSSVGAnimatedLength read Fheight;
  1149.     property preserveAspectRatio: TJSSVGAnimatedPreserveAspectRatio read
  1150.       FpreserveAspectRatio;
  1151.   end;
  1152.  
  1153.   { --------------------------------------------------------------------
  1154.     TJSSVGLength
  1155.     --------------------------------------------------------------------}
  1156.   TJSSVGLength = class external name 'SVGLength'
  1157.   private
  1158.     FunitType: Cardinal; external name 'unitType';
  1159.   public
  1160.   const
  1161.     SVG_LENGTHTYPE_UNKNOWN = 0;
  1162.     SVG_LENGTHTYPE_NUMBER = 1;
  1163.     SVG_LENGTHTYPE_PERCENTAGE = 2;
  1164.     SVG_LENGTHTYPE_EMS = 3;
  1165.     SVG_LENGTHTYPE_EXS = 4;
  1166.     SVG_LENGTHTYPE_PX = 5;
  1167.     SVG_LENGTHTYPE_CM = 6;
  1168.     SVG_LENGTHTYPE_MM = 7;
  1169.     SVG_LENGTHTYPE_IN = 8;
  1170.     SVG_LENGTHTYPE_PT = 9;
  1171.     SVG_LENGTHTYPE_PC = 10;
  1172.   Public
  1173.     value: Double;
  1174.     valueInSpecifiedUnits: Double;
  1175.     valueAsString: string;
  1176.     procedure newValueSpecifiedUnits(unitType: Cardinal; valueInSpecifiedUnits: Double);
  1177.     procedure convertToSpecifiedUnits(unitType: Cardinal);
  1178.     property unitType: Cardinal read FunitType;
  1179.   end;
  1180.  
  1181.   { --------------------------------------------------------------------
  1182.     TJSSVGLinearGradientElement
  1183.     --------------------------------------------------------------------}
  1184.   TJSSVGLinearGradientElement = class external name
  1185.     'SVGLinearGradientElement' (TJSSVGGradientElement)
  1186.     private
  1187.     Fx1: TJSSVGAnimatedLength; external name 'x1';
  1188.     Fy1: TJSSVGAnimatedLength; external name 'y1';
  1189.     Fx2: TJSSVGAnimatedLength; external name 'x2';
  1190.     Fy2: TJSSVGAnimatedLength; external name 'y2';
  1191.   public
  1192.     property x1: TJSSVGAnimatedLength read Fx1;
  1193.     property y1: TJSSVGAnimatedLength read Fy1;
  1194.     property x2: TJSSVGAnimatedLength read Fx2;
  1195.     property y2: TJSSVGAnimatedLength read Fy2;
  1196.   end;
  1197.  
  1198.   { --------------------------------------------------------------------
  1199.     TJSSVGLineElement
  1200.     --------------------------------------------------------------------}
  1201.   TJSSVGLineElement = class external name 'SVGLineElement' (TJSSVGGeometryElement)
  1202.   private
  1203.     Fx1: TJSSVGAnimatedLength; external name 'x1';
  1204.     Fy1: TJSSVGAnimatedLength; external name 'y1';
  1205.     Fx2: TJSSVGAnimatedLength; external name 'x2';
  1206.     Fy2: TJSSVGAnimatedLength; external name 'y2';
  1207.   public
  1208.     property x1: TJSSVGAnimatedLength read Fx1;
  1209.     property y1: TJSSVGAnimatedLength read Fy1;
  1210.     property x2: TJSSVGAnimatedLength read Fx2;
  1211.     property y2: TJSSVGAnimatedLength read Fy2;
  1212.   end;
  1213.  
  1214.   { --------------------------------------------------------------------
  1215.     TJSSVGMarkerElement
  1216.     --------------------------------------------------------------------}
  1217.   TJSSVGMarkerElement = class external name 'SVGMarkerElement' (TJSSVGElement)
  1218.   private
  1219.     FrefX: TJSSVGAnimatedLength; external name 'refX';
  1220.     FrefY: TJSSVGAnimatedLength; external name 'refY';
  1221.     FmarkerUnits: TJSSVGAnimatedEnumeration; external name 'markerUnits';
  1222.     FmarkerWidth: TJSSVGAnimatedLength; external name 'markerWidth';
  1223.     FmarkerHeight: TJSSVGAnimatedLength; external name 'markerHeight';
  1224.     ForientType: TJSSVGAnimatedEnumeration; external name 'orientType';
  1225.     ForientAngle: TJSSVGAnimatedAngle; external name 'orientAngle';
  1226.   public
  1227.   const
  1228.     SVG_MARKERUNITS_UNKNOWN = 0;
  1229.     SVG_MARKERUNITS_USERSPACEONUSE = 1;
  1230.     SVG_MARKERUNITS_STROKEWIDTH = 2;
  1231.     SVG_MARKER_ORIENT_UNKNOWN = 0;
  1232.     SVG_MARKER_ORIENT_AUTO = 1;
  1233.     SVG_MARKER_ORIENT_ANGLE = 2;
  1234.   Public
  1235.     procedure setOrientToAuto;
  1236.     procedure setOrientToAngle(angle: TJSSVGAngle);
  1237.     property refX: TJSSVGAnimatedLength read FrefX;
  1238.     property refY: TJSSVGAnimatedLength read FrefY;
  1239.     property markerUnits: TJSSVGAnimatedEnumeration read FmarkerUnits;
  1240.     property markerWidth: TJSSVGAnimatedLength read FmarkerWidth;
  1241.     property markerHeight: TJSSVGAnimatedLength read FmarkerHeight;
  1242.     property orientType: TJSSVGAnimatedEnumeration read ForientType;
  1243.     property orientAngle: TJSSVGAnimatedAngle read ForientAngle;
  1244.   end;
  1245.  
  1246.   { --------------------------------------------------------------------
  1247.     TJSSVGMaskElement
  1248.     --------------------------------------------------------------------}
  1249.   TJSSVGMaskElement = class external name 'SVGMaskElement' (TJSSVGElement)
  1250.   private
  1251.     FmaskUnits: TJSSVGAnimatedEnumeration; external name 'maskUnits';
  1252.     FmaskContentUnits: TJSSVGAnimatedEnumeration; external name 'maskContentUnits';
  1253.     Fx: TJSSVGAnimatedLength; external name 'x';
  1254.     Fy: TJSSVGAnimatedLength; external name 'y';
  1255.     Fwidth: TJSSVGAnimatedLength; external name 'width';
  1256.     Fheight: TJSSVGAnimatedLength; external name 'height';
  1257.   public
  1258.     property maskUnits: TJSSVGAnimatedEnumeration read FmaskUnits;
  1259.     property maskContentUnits: TJSSVGAnimatedEnumeration read FmaskContentUnits;
  1260.     property x: TJSSVGAnimatedLength read Fx;
  1261.     property y: TJSSVGAnimatedLength read Fy;
  1262.     property width: TJSSVGAnimatedLength read Fwidth;
  1263.     property height: TJSSVGAnimatedLength read Fheight;
  1264.   end;
  1265.  
  1266.   { --------------------------------------------------------------------
  1267.     TJSSVGMatrix
  1268.     --------------------------------------------------------------------}
  1269.   TJSSVGMatrix = class external name 'SVGMatrix'
  1270.   private
  1271.   public
  1272.     a: double;
  1273.     b: double;
  1274.     c: double;
  1275.     d: double;
  1276.     e: double;
  1277.     f: double;
  1278.     function multiply(secondMatrix: TJSSVGMatrix): TJSSVGMatrix;
  1279.     function inverse: TJSSVGMatrix;
  1280.     function translate(x: Double; y: Double): TJSSVGMatrix;
  1281.     function scale(scaleFactor: Double): TJSSVGMatrix;
  1282.     function scaleNonUniform(scaleFactorX: Double; scaleFactorY: Double):
  1283.       TJSSVGMatrix;
  1284.     function rotate(angle: Double): TJSSVGMatrix;
  1285.     function rotateFromVector(x: Double; y: Double): TJSSVGMatrix;
  1286.     function flipX: TJSSVGMatrix;
  1287.     function flipY: TJSSVGMatrix;
  1288.     function skewX(angle: Double): TJSSVGMatrix;
  1289.     function skewY(angle: Double): TJSSVGMatrix;
  1290.   end;
  1291.  
  1292.   { --------------------------------------------------------------------
  1293.     TJSSVGMetadataElement
  1294.     --------------------------------------------------------------------}
  1295.   TJSSVGMetadataElement = class external name 'SVGMetadataElement' (TJSSVGElement)
  1296.   private
  1297.   public
  1298.   end;
  1299.  
  1300.   { --------------------------------------------------------------------
  1301.     TJSSVGMPathElement
  1302.     --------------------------------------------------------------------}
  1303.   TJSSVGMPathElement = class external name 'SVGMPathElement' (TJSSVGElement)
  1304.   private
  1305.   public
  1306.   end;
  1307.  
  1308.   { --------------------------------------------------------------------
  1309.     TJSSVGNumber
  1310.     --------------------------------------------------------------------}
  1311.   TJSSVGNumber = class external name 'SVGNumber'
  1312.   private
  1313.   public
  1314.     value: Double;
  1315.   end;
  1316.  
  1317.   { --------------------------------------------------------------------
  1318.     TJSSVGPathElement
  1319.     --------------------------------------------------------------------}
  1320.   TJSSVGPathElement = class external name 'SVGPathElement' (TJSSVGGeometryElement)
  1321.   private
  1322.   public
  1323.     function getPathSegAtLength(distance: Double): NativeInt;
  1324.   end;
  1325.  
  1326.   { --------------------------------------------------------------------
  1327.     TJSSVGPatternElement
  1328.     --------------------------------------------------------------------}
  1329.   TJSSVGPatternElement = class external name 'SVGPatternElement' (TJSSVGElement)
  1330.   private
  1331.     FpatternUnits: TJSSVGAnimatedEnumeration; external name 'patternUnits';
  1332.     FpatternContentUnits: TJSSVGAnimatedEnumeration; external name
  1333.       'patternContentUnits';
  1334.     FpatternTransform: TJSSVGAnimatedTransformList; external name
  1335.       'patternTransform';
  1336.     Fx: TJSSVGAnimatedLength; external name 'x';
  1337.     Fy: TJSSVGAnimatedLength; external name 'y';
  1338.     Fwidth: TJSSVGAnimatedLength; external name 'width';
  1339.     Fheight: TJSSVGAnimatedLength; external name 'height';
  1340.   public
  1341.     property patternUnits: TJSSVGAnimatedEnumeration read FpatternUnits;
  1342.     property patternContentUnits: TJSSVGAnimatedEnumeration read
  1343.       FpatternContentUnits;
  1344.     property patternTransform: TJSSVGAnimatedTransformList read FpatternTransform;
  1345.     property x: TJSSVGAnimatedLength read Fx;
  1346.     property y: TJSSVGAnimatedLength read Fy;
  1347.     property width: TJSSVGAnimatedLength read Fwidth;
  1348.     property height: TJSSVGAnimatedLength read Fheight;
  1349.   end;
  1350.  
  1351.   { --------------------------------------------------------------------
  1352.     TJSSVGPoint
  1353.     --------------------------------------------------------------------}
  1354.   TJSSVGPoint = class external name 'SVGPoint'
  1355.   private
  1356.   public
  1357.     x: Double;
  1358.     y: Double;
  1359.     function matrixTransform(matrix: TJSSVGMatrix): TJSSVGPoint;
  1360.   end;
  1361.  
  1362.   { --------------------------------------------------------------------
  1363.     TJSSVGPointList
  1364.     --------------------------------------------------------------------}
  1365.   TJSSVGPointList = class external name 'SVGPointList'
  1366.   public
  1367.     numberOfItems: Integer;
  1368.     procedure clear;
  1369.     function initialize(newItem: TJSSVGPoint): TJSSVGPoint;
  1370.     function getItem(&index: Integer): TJSSVGPoint;
  1371.     function insertItemBefore(newItem: TJSSVGPoint; &index: Integer): TJSSVGPoint;
  1372.     function replaceItem(newItem: TJSSVGPoint; &index: Integer): TJSSVGPoint;
  1373.     function removeItem(&index: Integer): TJSSVGPoint;
  1374.     function appendItem(newItem: TJSSVGPoint): TJSSVGPoint;
  1375.   end;
  1376.  
  1377.   { --------------------------------------------------------------------
  1378.     TJSSVGPolygonElement
  1379.     --------------------------------------------------------------------}
  1380.   TJSSVGPolygonElement = class external name
  1381.     'SVGPolygonElement' (TJSSVGGeometryElement)
  1382.     private
  1383.     Fpoints: TJSSVGPointList; external name 'points';
  1384.     FanimatedPoints: TJSSVGPointList; external name 'animatedPoints';
  1385.   public
  1386.     property points: TJSSVGPointList read Fpoints;
  1387.     property animatedPoints: TJSSVGPointList read FanimatedPoints;
  1388.   end;
  1389.  
  1390.   { --------------------------------------------------------------------
  1391.     TJSSVGPolylineElement
  1392.     --------------------------------------------------------------------}
  1393.   TJSSVGPolylineElement = class external name
  1394.     'SVGPolylineElement' (TJSSVGGeometryElement)
  1395.     private
  1396.     Fpoints: TJSSVGPointList; external name 'points';
  1397.     FanimatedPoints: TJSSVGPointList; external name 'animatedPoints';
  1398.   public
  1399.     property points: TJSSVGPointList read Fpoints;
  1400.     property animatedPoints: TJSSVGPointList read FanimatedPoints;
  1401.   end;
  1402.  
  1403.   { --------------------------------------------------------------------
  1404.     TJSSVGPreserveAspectRatio
  1405.     --------------------------------------------------------------------}
  1406.   TJSSVGPreserveAspectRatio = class external name 'SVGPreserveAspectRatio'
  1407.   private
  1408.   public
  1409.   const
  1410.     SVG_PRESERVEASPECTRATIO_UNKNOWN = 0;
  1411.     SVG_PRESERVEASPECTRATIO_NONE = 1;
  1412.     SVG_PRESERVEASPECTRATIO_XMINYMIN = 2;
  1413.     SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3;
  1414.     SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4;
  1415.     SVG_PRESERVEASPECTRATIO_XMINYMID = 5;
  1416.     SVG_PRESERVEASPECTRATIO_XMIDYMID = 6;
  1417.     SVG_PRESERVEASPECTRATIO_XMAXYMID = 7;
  1418.     SVG_PRESERVEASPECTRATIO_XMINYMAX = 8;
  1419.     SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9;
  1420.     SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10;
  1421.     SVG_MEETORSLICE_UNKNOWN = 0;
  1422.     SVG_MEETORSLICE_MEET = 1;
  1423.     SVG_MEETORSLICE_SLICE = 2;
  1424.   Public
  1425.     align: Cardinal;
  1426.     meetOrSlice: Cardinal;
  1427.   end;
  1428.  
  1429.   { --------------------------------------------------------------------
  1430.     TJSSVGRadialGradientElement
  1431.     --------------------------------------------------------------------}
  1432.   TJSSVGRadialGradientElement = class external name
  1433.     'SVGRadialGradientElement' (TJSSVGGradientElement)
  1434.     private
  1435.     Fcx: TJSSVGAnimatedLength; external name 'cx';
  1436.     Fcy: TJSSVGAnimatedLength; external name 'cy';
  1437.     rFr: TJSSVGAnimatedLength; external name 'r';
  1438.     Ffx: TJSSVGAnimatedLength; external name 'fx';
  1439.     Ffy: TJSSVGAnimatedLength; external name 'fy';
  1440.     Ffr: TJSSVGAnimatedLength; external name 'fr';
  1441.   public
  1442.     property cx: TJSSVGAnimatedLength read Fcx;
  1443.     property cy: TJSSVGAnimatedLength read Fcy;
  1444.     property r: TJSSVGAnimatedLength read rFr;
  1445.     property fx: TJSSVGAnimatedLength read Ffx;
  1446.     property fy: TJSSVGAnimatedLength read Ffy;
  1447.     property fr: TJSSVGAnimatedLength read Ffr;
  1448.   end;
  1449.  
  1450.   { --------------------------------------------------------------------
  1451.     TJSSVGRect
  1452.     --------------------------------------------------------------------}
  1453.   TJSSVGRect = class external name 'SVGRect'
  1454.   private
  1455.   public
  1456.     x: Double;
  1457.     y: Double;
  1458.     width: Double;
  1459.     height: Double;
  1460.   end;
  1461.  
  1462.   { --------------------------------------------------------------------
  1463.     TJSSVGRectElement
  1464.     --------------------------------------------------------------------}
  1465.   TJSSVGRectElement = class external name 'SVGRectElement' (TJSSVGGeometryElement)
  1466.   private
  1467.     Fx: TJSSVGAnimatedLength; external name 'x';
  1468.     Fy: TJSSVGAnimatedLength; external name 'y';
  1469.     Fwidth: TJSSVGAnimatedLength; external name 'width';
  1470.     Fheight: TJSSVGAnimatedLength; external name 'height';
  1471.     Frx: TJSSVGAnimatedLength; external name 'rx';
  1472.     Fry: TJSSVGAnimatedLength; external name 'ry';
  1473.   public
  1474.     property x: TJSSVGAnimatedLength read Fx;
  1475.     property y: TJSSVGAnimatedLength read Fy;
  1476.     property width: TJSSVGAnimatedLength read Fwidth;
  1477.     property height: TJSSVGAnimatedLength read Fheight;
  1478.     property rx: TJSSVGAnimatedLength read Frx;
  1479.     property ry: TJSSVGAnimatedLength read Fry;
  1480.   end;
  1481.  
  1482.   { --------------------------------------------------------------------
  1483.     TJSSVGScriptElement
  1484.     --------------------------------------------------------------------}
  1485.   TJSSVGScriptElement = class external name 'SVGScriptElement' (TJSSVGElement)
  1486.   private
  1487.   public
  1488.     type_: string; external name 'type';
  1489.   end;
  1490.  
  1491.   { --------------------------------------------------------------------
  1492.     TJSSVGSetElement
  1493.     --------------------------------------------------------------------}
  1494.   TJSSVGSetElement = class external name 'SVGSetElement' (TJSSVGAnimationElement)
  1495.   private
  1496.   public
  1497.   end;
  1498.  
  1499.   { --------------------------------------------------------------------
  1500.     TJSSVGStopElement
  1501.     --------------------------------------------------------------------}
  1502.   TJSSVGStopElement = class external name 'SVGStopElement' (TJSSVGElement)
  1503.   private
  1504.     Foffset: TJSSVGAnimatedNumber; external name 'offset';
  1505.   public
  1506.     property offset: TJSSVGAnimatedNumber read Foffset;
  1507.   end;
  1508.  
  1509.   { --------------------------------------------------------------------
  1510.     TJSSVGStyleElement
  1511.     --------------------------------------------------------------------}
  1512.   TJSSVGStyleElement = class external name 'SVGStyleElement' (TJSSVGElement)
  1513.   private
  1514.     Fsheet: TJSStyleSheet; external name 'sheet';
  1515.   public
  1516.     type_: string; external name 'type';
  1517.     media: string;
  1518.     title: string;
  1519.     disabled: boolean;
  1520.     property sheet: TJSStyleSheet read Fsheet;
  1521.   end;
  1522.  
  1523.   { --------------------------------------------------------------------
  1524.     TJSSVGSwitchElement
  1525.     --------------------------------------------------------------------}
  1526.   TJSSVGSwitchElement = class external name
  1527.     'SVGSwitchElement' (TJSSVGGraphicsElement)
  1528.     private
  1529.   public
  1530.   end;
  1531.  
  1532.   { --------------------------------------------------------------------
  1533.     TJSSVGSymbolElement
  1534.     --------------------------------------------------------------------}
  1535.   TJSSVGSymbolElement = class external name 'SVGSymbolElement' (TJSSVGElement)
  1536.   private
  1537.   public
  1538.   end;
  1539.  
  1540.   { --------------------------------------------------------------------
  1541.     TJSSVGStringList
  1542.     --------------------------------------------------------------------}
  1543.   TJSSVGStringList = class external name 'SVGStringList'
  1544.   public
  1545.     numberOfItems: Integer;
  1546.     procedure clear;
  1547.     function initialize(newItem: String): String;
  1548.     function getItem(&index: Integer): String;
  1549.     function insertItemBefore(newItem: String; &index: Integer): String;
  1550.     function replaceItem(newItem: String; &index: Integer): String;
  1551.     function removeItem(&index: Integer): String;
  1552.     function appendItem(newItem: String): String;
  1553.   end;
  1554.  
  1555.   { --------------------------------------------------------------------
  1556.     TJSSVGTests
  1557.     --------------------------------------------------------------------}
  1558.   TJSSVGTests = class external name 'SVGTests'
  1559.   private
  1560.     FrequiredExtensions: TJSSVGStringList; external name 'requiredExtensions';
  1561.     FsystemLanguage: TJSSVGStringList; external name 'systemLanguage';
  1562.   public
  1563.     property requiredExtensions: TJSSVGStringList read FrequiredExtensions;
  1564.     property systemLanguage: TJSSVGStringList read FsystemLanguage;
  1565.   end;
  1566.  
  1567.   { --------------------------------------------------------------------
  1568.     TJSSVGTextContentElement
  1569.     --------------------------------------------------------------------}
  1570.   TJSSVGTextContentElement = class external name
  1571.     'SVGTextContentElement' (TJSSVGGraphicsElement)
  1572.     private
  1573.     FtextLength: TJSSVGAnimatedLength; external name 'textLength';
  1574.     FlengthAdjust: TJSSVGAnimatedEnumeration; external name 'lengthAdjust';
  1575.   public
  1576.   const
  1577.     LENGTHADJUST_UNKNOWN = 0;
  1578.     LENGTHADJUST_SPACING = 1;
  1579.     LENGTHADJUST_SPACINGANDGLYPHS = 2;
  1580.   Public
  1581.     function getNumberOfChars: Integer;
  1582.     function getComputedTextLength: Double;
  1583.     function getSubStringLength(charnum: NativeInt; nchars: NativeInt): Double;
  1584.     function getStartPositionOfChar(charnum: NativeInt): TJSSVGPoint;
  1585.     function getEndPositionOfChar(charnum: NativeInt): TJSSVGPoint;
  1586.     function getExtentOfChar(charnum: NativeInt): TJSSVGRect;
  1587.     function getRotationOfChar(charnum: NativeInt): Double;
  1588.     function getCharNumAtPosition(point: TJSSVGPoint): Integer;
  1589.     procedure selectSubString(charnum: NativeInt; nchars: NativeInt);
  1590.     property textLength: TJSSVGAnimatedLength read FtextLength;
  1591.     property lengthAdjust: TJSSVGAnimatedEnumeration read FlengthAdjust;
  1592.   end;
  1593.  
  1594.   { --------------------------------------------------------------------
  1595.     TJSSVGTextPositioningElement
  1596.     --------------------------------------------------------------------}
  1597.   TJSSVGTextPositioningElement = class external name
  1598.     'SVGTextPositioningElement' (TJSSVGTextContentElement)
  1599.     private
  1600.     Fx: TJSSVGAnimatedLengthList; external name 'x';
  1601.     Fy: TJSSVGAnimatedLengthList; external name 'y';
  1602.     Fdx: TJSSVGAnimatedLengthList; external name 'dx';
  1603.     Fdy: TJSSVGAnimatedLengthList; external name 'dy';
  1604.     Frotate: TJSSVGAnimatedNumberList; external name 'rotate';
  1605.   public
  1606.     property x: TJSSVGAnimatedLengthList read Fx;
  1607.     property y: TJSSVGAnimatedLengthList read Fy;
  1608.     property dx: TJSSVGAnimatedLengthList read Fdx;
  1609.     property dy: TJSSVGAnimatedLengthList read Fdy;
  1610.     property rotate: TJSSVGAnimatedNumberList read Frotate;
  1611.   end;
  1612.  
  1613.   { --------------------------------------------------------------------
  1614.     TJSSVGTextElement
  1615.     --------------------------------------------------------------------}
  1616.   TJSSVGTextElement = class external name 'SVGTextElement' (TJSSVGTextPositioningElement)
  1617.     private
  1618.   public
  1619.   end;
  1620.  
  1621.   { --------------------------------------------------------------------
  1622.     TJSSVGTextPathElement
  1623.     --------------------------------------------------------------------}
  1624.   TJSSVGTextPathElement = class external name
  1625.     'SVGTextPathElement' (TJSSVGTextContentElement)
  1626.     private
  1627.     FstartOffset: TJSSVGAnimatedLength; external name 'startOffset';
  1628.     Fmethod: TJSSVGAnimatedEnumeration; external name 'method';
  1629.     Fspacing: TJSSVGAnimatedEnumeration; external name 'spacing';
  1630.   public
  1631.   const
  1632.     TEXTPATH_METHODTYPE_UNKNOWN = 0;
  1633.     TEXTPATH_METHODTYPE_ALIGN = 1;
  1634.     TEXTPATH_METHODTYPE_STRETCH = 2;
  1635.     TEXTPATH_SPACINGTYPE_UNKNOWN = 0;
  1636.     TEXTPATH_SPACINGTYPE_AUTO = 1;
  1637.     TEXTPATH_SPACINGTYPE_EXACT = 2;
  1638.   Public
  1639.     property startOffset: TJSSVGAnimatedLength read FstartOffset;
  1640.     property method: TJSSVGAnimatedEnumeration read Fmethod;
  1641.     property spacing: TJSSVGAnimatedEnumeration read Fspacing;
  1642.   end;
  1643.  
  1644.   { --------------------------------------------------------------------
  1645.     TJSSVGTitleElement
  1646.     --------------------------------------------------------------------}
  1647.   TJSSVGTitleElement = class external name 'SVGTitleElement' (TJSSVGElement)
  1648.   private
  1649.   public
  1650.   end;
  1651.  
  1652.   { --------------------------------------------------------------------
  1653.     TJSSVGTransform
  1654.     --------------------------------------------------------------------}
  1655.   TJSSVGTransform = class external name 'SVGTransform'
  1656.   private
  1657.     Ftype_: Cardinal; external name 'type';
  1658.     Fmatrix: TJSSVGMatrix; external name 'matrix';
  1659.     Fangle: Double; external name 'angle';
  1660.   public
  1661.   const
  1662.     SVG_TRANSFORM_UNKNOWN = 0;
  1663.     SVG_TRANSFORM_MATRIX = 1;
  1664.     SVG_TRANSFORM_TRANSLATE = 2;
  1665.     SVG_TRANSFORM_SCALE = 3;
  1666.     SVG_TRANSFORM_ROTATE = 4;
  1667.     SVG_TRANSFORM_SKEWX = 5;
  1668.     SVG_TRANSFORM_SKEWY = 6;
  1669.   Public
  1670.     procedure setMatrix(matrix: TJSSVGMatrix);
  1671.     procedure setTranslate(tx: Double; ty: Double);
  1672.     procedure setScale(sx: Double; sy: Double);
  1673.     procedure setRotate(angle: Double; cx: Double; cy: Double);
  1674.     procedure setSkewX(angle: Double);
  1675.     procedure setSkewY(angle: Double);
  1676.     property type_: Cardinal read Ftype_;
  1677.     property matrix: TJSSVGMatrix read Fmatrix;
  1678.     property angle: Double read Fangle;
  1679.   end;
  1680.  
  1681.   { --------------------------------------------------------------------
  1682.     TJSSVGTSpanElement
  1683.     --------------------------------------------------------------------}
  1684.   TJSSVGTSpanElement = class external name
  1685.     'SVGTSpanElement' (TJSSVGTextPositioningElement)
  1686.     private
  1687.   public
  1688.   end;
  1689.  
  1690.   { --------------------------------------------------------------------
  1691.     TJSSVGUnitTypes
  1692.     --------------------------------------------------------------------}
  1693.   TJSSVGUnitTypes = class external name 'SVGUnitTypes'
  1694.   private
  1695.   public
  1696.     const
  1697.       SVG_UNIT_TYPE_UNKNOWN = 0;
  1698.       SVG_UNIT_TYPE_USERSPACEONUSE = 1;
  1699.       SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;
  1700.   Public
  1701.   end;
  1702.  
  1703.   { --------------------------------------------------------------------
  1704.     TJSSVGURIReference
  1705.     --------------------------------------------------------------------}
  1706.   TJSSVGURIReference = class external name 'SVGURIReference'
  1707.   private
  1708.     Fhref: TJSSVGAnimatedString; external name 'href';
  1709.   public
  1710.     property href: TJSSVGAnimatedString read Fhref;
  1711.   end;
  1712.  
  1713.   { --------------------------------------------------------------------
  1714.     TJSSVGUseElement
  1715.     --------------------------------------------------------------------}
  1716.   TJSSVGUseElement = class external name 'SVGUseElement' (TJSSVGGraphicsElement)
  1717.   private
  1718.     Fx: TJSSVGAnimatedLength; external name 'x';
  1719.     Fy: TJSSVGAnimatedLength; external name 'y';
  1720.     Fwidth: TJSSVGAnimatedLength; external name 'width';
  1721.     Fheight: TJSSVGAnimatedLength; external name 'height';
  1722.   public
  1723.     property x: TJSSVGAnimatedLength read Fx;
  1724.     property y: TJSSVGAnimatedLength read Fy;
  1725.     property width: TJSSVGAnimatedLength read Fwidth;
  1726.     property height: TJSSVGAnimatedLength read Fheight;
  1727.   end;
  1728.  
  1729.   { --------------------------------------------------------------------
  1730.     TJSSVGViewElement
  1731.     --------------------------------------------------------------------}
  1732.   TJSSVGViewElement = class external name 'SVGViewElement' (TJSSVGElement)
  1733.   private
  1734.   public
  1735.   end;
  1736.  
  1737.   { --------------------------------------------------------------------
  1738.     TJSSVGZoomAndPan
  1739.     --------------------------------------------------------------------}
  1740.   TJSSVGZoomAndPan = class external name 'SVGZoomAndPan'
  1741.   private
  1742.   public
  1743.   const
  1744.     SVG_ZOOMANDPAN_UNKNOWN = 0;
  1745.     SVG_ZOOMANDPAN_DISABLE = 1;
  1746.     SVG_ZOOMANDPAN_MAGNIFY = 2;
  1747.   Public
  1748.     zoomAndPan: Cardinal;
  1749.   end;
  1750.  
  1751. implementation
  1752.  
  1753. end.
Advertisement
Add Comment
Please, Sign In to add comment