diff --git a/src/dom/svg2.h b/src/dom/svg2.h
index 4f9b78ecb56172a7cb7af4c6b36aeceab30bd0f5..b1a42e8aaf5a0d03d5e6c91cbd3c092e0adc8d47 100644 (file)
--- a/src/dom/svg2.h
+++ b/src/dom/svg2.h
-#ifndef __SVG_H__\r
-#define __SVG_H__\r
-\r
-/**\r
- * Phoebe DOM Implementation.\r
- *\r
- * This is a C++ approximation of the W3C DOM model, which follows\r
- * fairly closely the specifications in the various .idl files, copies of\r
- * which are provided for reference. Most important is this one:\r
- *\r
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html\r
- *\r
- * Authors:\r
- * Bob Jamison\r
- *\r
- * Copyright(C) 2005-2008 Bob Jamison\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or(at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\r
- *\r
- * =======================================================================\r
- * NOTES\r
- *\r
- * This API follows:\r
- * http://www.w3.org/TR/SVG11/svgdom.html\r
- *\r
- * This file defines the main SVG-DOM Node types. Other non-Node types are\r
- * defined in svgtypes.h.\r
- * \r
- */\r
-\r
-\r
-// For access to DOM2 core\r
-#include "dom/dom.h"\r
-\r
-// For access to DOM2 events\r
-#include "dom/events.h"\r
-\r
-// For access to those parts from DOM2 CSS OM used by SVG DOM.\r
-#include "dom/css.h"\r
-\r
-// For access to those parts from DOM2 Views OM used by SVG DOM.\r
-#include "dom/views.h"\r
-\r
-// For access to the SMIL OM used by SVG DOM.\r
-#include "dom/smil.h"\r
-\r
-\r
-\r
-#include "svgtypes.h"\r
-\r
-#include <math.h>\r
-\r
-#define SVG_NAMESPACE "http://www.w3.org/2000/svg"\r
-\r
-\r
-namespace org\r
-{\r
-namespace w3c\r
-{\r
-namespace dom\r
-{\r
-namespace svg\r
-{\r
-\r
-\r
-//local definitions\r
-typedef dom::DOMString DOMString;\r
-typedef dom::DOMException DOMException;\r
-typedef dom::Element Element;\r
-typedef dom::ElementPtr ElementPtr;\r
-typedef dom::Document Document;\r
-typedef dom::DocumentPtr DocumentPtr;\r
-typedef dom::NodeList NodeList;\r
-\r
-\r
-\r
-\r
-class SVGElement;\r
-typedef Ptr<SVGElement> SVGElementPtr;\r
-class SVGDocument;\r
-typedef Ptr<SVGDocument> SVGDocumentPtr;\r
-\r
-//########################################################################\r
-//########################################################################\r
-//########################################################################\r
-//# I N T E R F A C E S\r
-//########################################################################\r
-//########################################################################\r
-//########################################################################\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGMatrix\r
-#########################################################################*/\r
-\r
-/**\r
- * In SVG, a Matrix is defined like this:\r
- *\r
- * | a c e |\r
- * | b d f |\r
- * | 0 0 1 |\r
- *\r
- */\r
-class SVGMatrix\r
-{\r
-public:\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual double getA()\r
- { return a; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setA(double val) throw (DOMException)\r
- { a = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getB()\r
- { return b; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setB(double val) throw (DOMException)\r
- { b = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getC()\r
- { return c; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setC(double val) throw (DOMException)\r
- { c = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getD()\r
- { return d; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setD(double val) throw (DOMException)\r
- { d = val; }\r
- /**\r
- *\r
- */\r
- virtual double getE()\r
- { return e; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setE(double val) throw (DOMException)\r
- { e = val; }\r
- /**\r
- *\r
- */\r
- virtual double getF()\r
- { return f; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setF(double val) throw (DOMException)\r
- { f = val; }\r
-\r
-\r
- /**\r
- * Return the result of postmultiplying this matrix with another.\r
- */\r
- virtual SVGMatrix multiply(const SVGMatrix &other)\r
- {\r
- SVGMatrix result;\r
- result.a = a * other.a + c * other.b;\r
- result.b = b * other.a + d * other.b;\r
- result.c = a * other.c + c * other.d;\r
- result.d = b * other.c + d * other.d;\r
- result.e = a * other.e + c * other.f + e;\r
- result.f = b * other.e + d * other.f + f;\r
- return result;\r
- }\r
-\r
- /**\r
- * Calculate the inverse of this matrix\r
- *\r
- */\r
- virtual SVGMatrix inverse( ) throw( SVGException )\r
- {\r
- /*###########################################\r
- The determinant of a 3x3 matrix E\r
- (let's use our own notation for a bit)\r
-\r
- A B C\r
- D E F\r
- G H I\r
- is\r
- AEI - AFH - BDI + BFG + CDH - CEG\r
-\r
- Since in our affine transforms, G and H==0 and I==1,\r
- this reduces to:\r
- AE - BD\r
- In SVG's naming scheme, that is: a * d - c * b . SIMPLE!\r
-\r
- In a similar method of attack, SVG's adjunct matrix is:\r
-\r
- d -c cf-ed\r
- -b a eb-af\r
- 0 0 ad-cb\r
-\r
- To get the inverse matrix, we divide the adjunct matrix by\r
- the determinant. Notice that (ad-cb)/(ad-cb)==1. Very cool.\r
- So what we end up with is this:\r
-\r
- a = d/(ad-cb) c = -c/(ad-cb) e = (cf-ed)/(ad-cb)\r
- b = -b/(ad-cb) d = a/(ad-cb) f = (eb-af)/(ad-cb)\r
-\r
- (Since this would be in all SVG-DOM implementations,\r
- somebody needed to document this! ^^ )\r
- #############################################*/\r
-\r
- SVGMatrix result;\r
- double determinant = a * d - c * b;\r
- if (determinant < 1.0e-18)//invertible?\r
- {\r
- result.identity();//cop out\r
- return result;\r
- }\r
-\r
- double idet = 1.0 / determinant;\r
- result.a = d * idet;\r
- result.b = -b * idet;\r
- result.c = -c * idet;\r
- result.d = a * idet;\r
- result.e = (c*f - e*d) * idet;\r
- result.f = (e*b - a*f) * idet;\r
- return result;\r
- }\r
-\r
- /**\r
- * Equivalent to multiplying by:\r
- * | 1 0 x |\r
- * | 0 1 y |\r
- * | 0 0 1 |\r
- *\r
- */\r
- virtual SVGMatrix translate(double x, double y )\r
- {\r
- SVGMatrix result;\r
- result.a = a;\r
- result.b = b;\r
- result.c = c;\r
- result.d = d;\r
- result.e = a * x + c * y + e;\r
- result.f = b * x + d * y + f;\r
- return result;\r
- }\r
-\r
- /**\r
- * Equivalent to multiplying by:\r
- * | scale 0 0 |\r
- * | 0 scale 0 |\r
- * | 0 0 1 |\r
- *\r
- */\r
- virtual SVGMatrix scale(double scale)\r
- {\r
- SVGMatrix result;\r
- result.a = a * scale;\r
- result.b = b * scale;\r
- result.c = c * scale;\r
- result.d = d * scale;\r
- result.e = e;\r
- result.f = f;\r
- return result;\r
- }\r
-\r
- /**\r
- * Equivalent to multiplying by:\r
- * | scaleX 0 0 |\r
- * | 0 scaleY 0 |\r
- * | 0 0 1 |\r
- *\r
- */\r
- virtual SVGMatrix scaleNonUniform(double scaleX,\r
- double scaleY )\r
- {\r
- SVGMatrix result;\r
- result.a = a * scaleX;\r
- result.b = b * scaleX;\r
- result.c = c * scaleY;\r
- result.d = d * scaleY;\r
- result.e = e;\r
- result.f = f;\r
- return result;\r
- }\r
-\r
- /**\r
- * Equivalent to multiplying by:\r
- * | cos(a) -sin(a) 0 |\r
- * | sin(a) cos(a) 0 |\r
- * | 0 0 1 |\r
- *\r
- */\r
- virtual SVGMatrix rotate (double angle)\r
- {\r
- double sina = sin(angle);\r
- double msina = -sina;\r
- double cosa = cos(angle);\r
- SVGMatrix result;\r
- result.a = a * cosa + c * sina;\r
- result.b = b * cosa + d + sina;\r
- result.c = a * msina + c * cosa;\r
- result.d = b * msina + d * cosa;\r
- result.e = e;\r
- result.f = f;\r
- return result;\r
- }\r
-\r
- /**\r
- * Equivalent to multiplying by:\r
- * | cos(a) -sin(a) 0 |\r
- * | sin(a) cos(a) 0 |\r
- * | 0 0 1 |\r
- * In this case, angle 'a' is computed as the artangent\r
- * of the slope y/x . It is negative if the slope is negative.\r
- */\r
- virtual SVGMatrix rotateFromVector(double x, double y)\r
- throw( SVGException )\r
- {\r
- double angle = atan(y / x);\r
- if (y < 0.0)\r
- angle = -angle;\r
- SVGMatrix result;\r
- double sina = sin(angle);\r
- double msina = -sina;\r
- double cosa = cos(angle);\r
- result.a = a * cosa + c * sina;\r
- result.b = b * cosa + d + sina;\r
- result.c = a * msina + c * cosa;\r
- result.d = b * msina + d * cosa;\r
- result.e = e;\r
- result.f = f;\r
- return result;\r
- }\r
-\r
- /**\r
- * Equivalent to multiplying by:\r
- * | -1 0 0 |\r
- * | 0 1 0 |\r
- * | 0 0 1 |\r
- *\r
- */\r
- virtual SVGMatrix flipX( )\r
- {\r
- SVGMatrix result;\r
- result.a = -a;\r
- result.b = -b;\r
- result.c = c;\r
- result.d = d;\r
- result.e = e;\r
- result.f = f;\r
- return result;\r
- }\r
-\r
- /**\r
- * Equivalent to multiplying by:\r
- * | 1 0 0 |\r
- * | 0 -1 0 |\r
- * | 0 0 1 |\r
- *\r
- */\r
- virtual SVGMatrix flipY( )\r
- {\r
- SVGMatrix result;\r
- result.a = a;\r
- result.b = b;\r
- result.c = -c;\r
- result.d = -d;\r
- result.e = e;\r
- result.f = f;\r
- return result;\r
- }\r
-\r
- /**\r
- * | 1 tan(a) 0 |\r
- * | 0 1 0 |\r
- * | 0 0 1 |\r
- *\r
- */\r
- virtual SVGMatrix skewX(double angle)\r
- {\r
- double tana = tan(angle);\r
- SVGMatrix result;\r
- result.a = a;\r
- result.b = b;\r
- result.c = a * tana + c;\r
- result.d = b * tana + d;\r
- result.e = e;\r
- result.f = f;\r
- return result;\r
- }\r
-\r
- /**\r
- * Equivalent to multiplying by:\r
- * | 1 0 0 |\r
- * | tan(a) 1 0 |\r
- * | 0 0 1 |\r
- *\r
- */\r
- virtual SVGMatrix skewY(double angle)\r
- {\r
- double tana = tan(angle);\r
- SVGMatrix result;\r
- result.a = a + c * tana;\r
- result.b = b + d * tana;\r
- result.c = c;\r
- result.d = d;\r
- result.e = e;\r
- result.f = f;\r
- return result;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGMatrix()\r
- {\r
- identity();\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGMatrix(double aArg, double bArg, double cArg,\r
- double dArg, double eArg, double fArg )\r
- {\r
- a = aArg; b = bArg; c = cArg;\r
- d = dArg; e = eArg; f = fArg;\r
- }\r
-\r
- /**\r
- * Copy constructor\r
- */\r
- SVGMatrix(const SVGMatrix &other)\r
- {\r
- a = other.a;\r
- b = other.b;\r
- c = other.c;\r
- d = other.d;\r
- e = other.e;\r
- f = other.f;\r
- }\r
-\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGMatrix() {}\r
-\r
-protected:\r
-\r
-friend class SVGTransform;\r
-\r
- /*\r
- * Set to the identify matrix\r
- */\r
- void identity()\r
- {\r
- a = 1.0;\r
- b = 0.0;\r
- c = 0.0;\r
- d = 1.0;\r
- e = 0.0;\r
- f = 0.0;\r
- }\r
-\r
- double a, b, c, d, e, f;\r
-\r
-};\r
-\r
-\r
-/*#########################################################################\r
-## SVGTransform\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGTransform\r
-{\r
-public:\r
-\r
- /**\r
- * Transform Types\r
- */\r
- typedef enum\r
- {\r
- SVG_TRANSFORM_UNKNOWN = 0,\r
- SVG_TRANSFORM_MATRIX = 1,\r
- SVG_TRANSFORM_TRANSLATE = 2,\r
- SVG_TRANSFORM_SCALE = 3,\r
- SVG_TRANSFORM_ROTATE = 4,\r
- SVG_TRANSFORM_SKEWX = 5,\r
- SVG_TRANSFORM_SKEWY = 6,\r
- } TransformType;\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned short getType()\r
- { return type; }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGMatrix getMatrix()\r
- {\r
- return matrix;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getAngle()\r
- {\r
- return angle;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual void setMatrix(const SVGMatrix &matrixArg)\r
- {\r
- type = SVG_TRANSFORM_MATRIX;\r
- matrix = matrixArg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setTranslate (double tx, double ty )\r
- {\r
- type = SVG_TRANSFORM_TRANSLATE;\r
- matrix.setA(1.0);\r
- matrix.setB(0.0);\r
- matrix.setC(0.0);\r
- matrix.setD(1.0);\r
- matrix.setE(tx);\r
- matrix.setF(ty);\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setScale (double sx, double sy )\r
- {\r
- type = SVG_TRANSFORM_SCALE;\r
- matrix.setA(sx);\r
- matrix.setB(0.0);\r
- matrix.setC(0.0);\r
- matrix.setD(sy);\r
- matrix.setE(0.0);\r
- matrix.setF(0.0);\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setRotate (double angleArg, double cx, double cy)\r
- {\r
- angle = angleArg;\r
- setTranslate(cx, cy);\r
- type = SVG_TRANSFORM_ROTATE;\r
- matrix.rotate(angle);\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setSkewX (double angleArg)\r
- {\r
- angle = angleArg;\r
- type = SVG_TRANSFORM_SKEWX;\r
- matrix.identity();\r
- matrix.skewX(angle);\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setSkewY (double angleArg)\r
- {\r
- angle = angleArg;\r
- type = SVG_TRANSFORM_SKEWY;\r
- matrix.identity();\r
- matrix.skewY(angle);\r
- }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGTransform()\r
- {\r
- type = SVG_TRANSFORM_UNKNOWN;\r
- angle = 0.0;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGTransform(const SVGTransform &other)\r
- {\r
- type = other.type;\r
- angle = other.angle;\r
- matrix = other.matrix;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGTransform()\r
- {}\r
-\r
-protected:\r
-\r
- int type;\r
- double angle;\r
-\r
- SVGMatrix matrix;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGTransformList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGTransformList\r
-{\r
-public:\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned long getNumberOfItems()\r
- { return items.size(); }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual void clear( ) throw( DOMException )\r
- { items.clear(); }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGTransform initialize (const SVGTransform &newItem)\r
- throw( DOMException, SVGException )\r
- {\r
- items.clear();\r
- items.push_back(newItem);\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGTransform getItem (unsigned long index )\r
- throw( DOMException )\r
- {\r
- if (index>=items.size())\r
- {\r
- SVGTransform transform;\r
- return transform;\r
- }\r
- return items[index];\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGTransform insertItemBefore (const SVGTransform &newItem,\r
- unsigned long index )\r
- throw( DOMException, SVGException )\r
- {\r
- if (index > items.size())\r
- items.push_back(newItem);\r
- else\r
- {\r
- std::vector<SVGTransform>::iterator iter = items.begin() + index;\r
- items.insert(iter, newItem);\r
- }\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGTransform replaceItem (const SVGTransform &newItem,\r
- unsigned long index )\r
- throw( DOMException, SVGException )\r
- {\r
- if (index>=items.size())\r
- {\r
- SVGTransform transform;\r
- return transform;\r
- }\r
- else\r
- {\r
- std::vector<SVGTransform>::iterator iter = items.begin() + index;\r
- *iter = newItem;\r
- }\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGTransform removeItem (unsigned long index )\r
- throw( DOMException )\r
- {\r
- if (index>=items.size())\r
- {\r
- SVGTransform transform;\r
- return transform;\r
- }\r
- std::vector<SVGTransform>::iterator iter = items.begin() + index;\r
- SVGTransform oldItem = *iter;\r
- items.erase(iter);\r
- return oldItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGTransform appendItem (const SVGTransform &newItem)\r
- throw( DOMException, SVGException )\r
- {\r
- items.push_back(newItem);\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix)\r
- {\r
- SVGTransform transform;\r
- transform.setMatrix(matrix);\r
- return transform;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGTransform consolidate()\r
- {\r
- SVGMatrix matrix;\r
- for (unsigned int i=0 ; i<items.size() ; i++)\r
- matrix = matrix.multiply(items[i].getMatrix());\r
- SVGTransform transform;\r
- transform.setMatrix(matrix);\r
- items.clear();\r
- items.push_back(transform);\r
- return transform;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGTransformList()\r
- {}\r
-\r
- /**\r
- *\r
- */\r
- SVGTransformList(const SVGTransformList &other)\r
- {\r
- items = other.items;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGTransformList() {}\r
-\r
-protected:\r
-\r
- std::vector<SVGTransform> items;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedTransformList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedTransformList\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGTransformList getBaseVal()\r
- { return baseVal; }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGTransformList getAnimVal()\r
- { return animVal; }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedTransformList()\r
- {}\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedTransformList(const SVGAnimatedTransformList &other)\r
- {\r
- baseVal = other.baseVal;\r
- animVal = other.animVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAnimatedTransformList() {}\r
-\r
-protected:\r
-\r
- SVGTransformList baseVal;\r
- SVGTransformList animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedBoolean\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedBoolean\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual bool getBaseVal()\r
- {\r
- return baseVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setBaseVal(bool val) throw (DOMException)\r
- {\r
- baseVal = val;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual bool getAnimVal()\r
- {\r
- return animVal;\r
- }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedBoolean()\r
- {\r
- baseVal = animVal = false;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedBoolean(const SVGAnimatedBoolean &other)\r
- {\r
- baseVal = other.baseVal;\r
- animVal = other.animVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAnimatedBoolean() {}\r
-\r
-protected:\r
-\r
- bool baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedString\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedString\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getBaseVal()\r
- {\r
- return baseVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setBaseVal(const DOMString &val)\r
- throw (DOMException)\r
- {\r
- baseVal = val;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getAnimVal()\r
- {\r
- return animVal;\r
- }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedString()\r
- {\r
- baseVal = "";\r
- animVal = "";\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedString(const SVGAnimatedString &other)\r
- {\r
- baseVal = other.baseVal;\r
- animVal = other.animVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAnimatedString() {}\r
-\r
-protected:\r
-\r
- DOMString baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGStringList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGStringList\r
-{\r
-public:\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned long getNumberOfItems()\r
- {\r
- return items.size();\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void clear () throw( DOMException )\r
- {\r
- items.clear();\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString initialize ( const DOMString& newItem )\r
- throw( DOMException, SVGException )\r
- {\r
- items.clear();\r
- items.push_back(newItem);\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getItem ( unsigned long index )\r
- throw( DOMException )\r
- {\r
- if (index >= items.size())\r
- return "";\r
- return items[index];\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString insertItemBefore ( const DOMString& newItem,\r
- unsigned long index )\r
- throw( DOMException, SVGException )\r
- {\r
- if (index>=items.size())\r
- {\r
- items.push_back(newItem);\r
- }\r
- else\r
- {\r
- std::vector<DOMString>::iterator iter = items.begin() + index;\r
- items.insert(iter, newItem);\r
- }\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString replaceItem ( const DOMString& newItem,\r
- unsigned long index )\r
- throw( DOMException, SVGException )\r
- {\r
- if (index>=items.size())\r
- return "";\r
- std::vector<DOMString>::iterator iter = items.begin() + index;\r
- *iter = newItem;\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString removeItem ( unsigned long index )\r
- throw( DOMException )\r
- {\r
- if (index>=items.size())\r
- return "";\r
- std::vector<DOMString>::iterator iter = items.begin() + index;\r
- DOMString oldstr = *iter;\r
- items.erase(iter);\r
- return oldstr;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString appendItem ( const DOMString& newItem )\r
- throw( DOMException, SVGException )\r
- {\r
- items.push_back(newItem);\r
- return newItem;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGStringList() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGStringList(const SVGStringList &other)\r
- {\r
- items = other.items;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGStringList() {}\r
-\r
-protected:\r
-\r
- std::vector<DOMString>items;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedEnumeration\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedEnumeration\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned short getBaseVal()\r
- {\r
- return baseVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setBaseVal(unsigned short val)\r
- throw (DOMException)\r
- {\r
- baseVal = val;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned short getAnimVal()\r
- {\r
- return animVal;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedEnumeration()\r
- {\r
- baseVal = animVal = 0;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedEnumeration(const SVGAnimatedEnumeration &other)\r
- {\r
- baseVal = other.baseVal;\r
- animVal = other.animVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAnimatedEnumeration() {}\r
-\r
-protected:\r
-\r
- int baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedInteger\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedInteger\r
-{\r
-public:\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual long getBaseVal()\r
- {\r
- return baseVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setBaseVal(long val) throw (DOMException)\r
- {\r
- baseVal = val;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual long getAnimVal()\r
- {\r
- return animVal;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedInteger()\r
- { baseVal = animVal = 0L;}\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedInteger(long value)\r
- {\r
- baseVal = value;\r
- animVal = 0L;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedInteger(long baseValArg, long animValArg)\r
- {\r
- baseVal = baseValArg;\r
- animVal = animValArg;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedInteger(const SVGAnimatedInteger &other)\r
- {\r
- baseVal = other.baseVal;\r
- animVal = other.animVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAnimatedInteger() {}\r
-\r
-protected:\r
-\r
- long baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGNumber\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGNumber\r
-{\r
-public:\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual double getValue()\r
- {\r
- return value;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setValue(double val) throw (DOMException)\r
- {\r
- value = val;\r
- }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGNumber()\r
- {\r
- value = 0.0;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGNumber(const SVGNumber &other)\r
- {\r
- value = other.value;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGNumber() {}\r
-\r
-protected:\r
-\r
- double value;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedNumber\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedNumber\r
-{\r
-public:\r
-\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual double getBaseVal()\r
- {\r
- return baseVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setBaseVal(double val) throw (DOMException)\r
- {\r
- baseVal = val;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getAnimVal()\r
- {\r
- return animVal;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumber()\r
- {\r
- baseVal = animVal = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumber(double val)\r
- {\r
- baseVal = val;\r
- animVal = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumber(double baseValArg, double animValArg)\r
- {\r
- baseVal = baseValArg;\r
- animVal = animValArg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumber(const SVGAnimatedNumber &other)\r
- {\r
- baseVal = other.baseVal;\r
- animVal = other.animVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAnimatedNumber() {}\r
-\r
-protected:\r
-\r
- double baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGNumberList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGNumberList\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned long getNumberOfItems()\r
- {\r
- return items.size();\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual void clear() throw( DOMException )\r
- {\r
- items.clear();\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGNumber initialize (const SVGNumber &newItem)\r
- throw( DOMException, SVGException )\r
- {\r
- items.clear();\r
- items.push_back(newItem);\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGNumber getItem ( unsigned long index )\r
- throw( DOMException )\r
- {\r
- if (index>=items.size())\r
- {\r
- SVGNumber num;\r
- return num;\r
- }\r
- return items[index];\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGNumber insertItemBefore ( const SVGNumber &newItem,\r
- unsigned long index )\r
- throw( DOMException, SVGException )\r
- {\r
- if (index>=items.size())\r
- {\r
- items.push_back(newItem);\r
- }\r
- else\r
- {\r
- std::vector<SVGNumber>::iterator iter = items.begin() + index;\r
- items.insert(iter, newItem);\r
- }\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGNumber replaceItem ( const SVGNumber &newItem,\r
- unsigned long index )\r
- throw( DOMException, SVGException )\r
- {\r
- if (index>=items.size())\r
- {\r
- SVGNumber num;\r
- return num;\r
- }\r
- std::vector<SVGNumber>::iterator iter = items.begin() + index;\r
- *iter = newItem;\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGNumber removeItem ( unsigned long index )\r
- throw( DOMException )\r
- {\r
- if (index>=items.size())\r
- {\r
- SVGNumber num;\r
- return num;\r
- }\r
- std::vector<SVGNumber>::iterator iter = items.begin() + index;\r
- SVGNumber oldval = *iter;\r
- items.erase(iter);\r
- return oldval;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGNumber appendItem ( const SVGNumber &newItem )\r
- throw( DOMException, SVGException )\r
- {\r
- items.push_back(newItem);\r
- return newItem;\r
- }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGNumberList() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGNumberList(const SVGNumberList &other)\r
- {\r
- items = other.items;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGNumberList() {}\r
-\r
-protected:\r
-\r
- std::vector<SVGNumber>items;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedNumberList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedNumberList\r
-{\r
-public:\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGNumberList &getBaseVal()\r
- {\r
- return baseVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGNumberList &getAnimVal()\r
- {\r
- return animVal;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumberList() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumberList(const SVGAnimatedNumberList &other)\r
- {\r
- baseVal = other.baseVal;\r
- animVal = other.animVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAnimatedNumberList() {}\r
-\r
-protected:\r
-\r
- SVGNumberList baseVal;\r
- SVGNumberList animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGLength\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGLength\r
-{\r
-public:\r
-\r
- /**\r
- * Length Unit Types\r
- */\r
- typedef enum\r
- {\r
- SVG_LENGTHTYPE_UNKNOWN = 0,\r
- SVG_LENGTHTYPE_NUMBER = 1,\r
- SVG_LENGTHTYPE_PERCENTAGE = 2,\r
- SVG_LENGTHTYPE_EMS = 3,\r
- SVG_LENGTHTYPE_EXS = 4,\r
- SVG_LENGTHTYPE_PX = 5,\r
- SVG_LENGTHTYPE_CM = 6,\r
- SVG_LENGTHTYPE_MM = 7,\r
- SVG_LENGTHTYPE_IN = 8,\r
- SVG_LENGTHTYPE_PT = 9,\r
- SVG_LENGTHTYPE_PC = 10\r
- } LengthUnitType;\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned short getUnitType( )\r
- {\r
- return unitType;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getValue( )\r
- {\r
- return value;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setValue( double val ) throw (DOMException)\r
- {\r
- value = val;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getValueInSpecifiedUnits( )\r
- {\r
- double result = 0.0;\r
- //fill this in\r
- return result;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setValueInSpecifiedUnits( double /*val*/ )\r
- throw (DOMException)\r
- {\r
- //fill this in\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getValueAsString( )\r
- {\r
- DOMString ret;\r
- char buf[32];\r
- snprintf(buf, 31, "%f", value);\r
- ret.append(buf);\r
- return ret;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setValueAsString( const DOMString& /*val*/ )\r
- throw (DOMException)\r
- {\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual void newValueSpecifiedUnits ( unsigned short /*unitType*/, double /*val*/ )\r
- {\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void convertToSpecifiedUnits ( unsigned short /*unitType*/ )\r
- {\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGLength()\r
- {\r
- unitType = SVG_LENGTHTYPE_UNKNOWN;\r
- value = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGLength(const SVGLength &other)\r
- {\r
- unitType = other.unitType;\r
- value = other.value;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGLength() {}\r
-\r
-protected:\r
-\r
- int unitType;\r
-\r
- double value;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedLength\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedLength\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGLength &getBaseVal()\r
- {\r
- return baseVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGLength &getAnimVal()\r
- {\r
- return animVal;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLength() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLength(const SVGAnimatedLength &other)\r
- {\r
- baseVal = other.baseVal;\r
- animVal = other.animVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAnimatedLength() {}\r
-\r
-protected:\r
-\r
- SVGLength baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGLengthList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGLengthList\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned long getNumberOfItems()\r
- {\r
- return items.size();\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual void clear ( ) throw( DOMException )\r
- {\r
- items.clear();\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGLength initialize (const SVGLength &newItem )\r
- throw( DOMException, SVGException )\r
- {\r
- items.clear();\r
- items.push_back(newItem);\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGLength getItem (unsigned long index)\r
- throw( DOMException )\r
- {\r
- if (index>=items.size())\r
- {\r
- SVGLength ret;\r
- return ret;\r
- }\r
- return items[index];\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGLength insertItemBefore (const SVGLength &newItem,\r
- unsigned long index )\r
- throw( DOMException, SVGException )\r
- {\r
- if (index>=items.size())\r
- {\r
- items.push_back(newItem);\r
- }\r
- else\r
- {\r
- std::vector<SVGLength>::iterator iter = items.begin() + index;\r
- items.insert(iter, newItem);\r
- }\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGLength replaceItem (const SVGLength &newItem,\r
- unsigned long index )\r
- throw( DOMException, SVGException )\r
- {\r
- if (index>=items.size())\r
- {\r
- SVGLength ret;\r
- return ret;\r
- }\r
- std::vector<SVGLength>::iterator iter = items.begin() + index;\r
- *iter = newItem;\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGLength removeItem (unsigned long index )\r
- throw( DOMException )\r
- {\r
- if (index>=items.size())\r
- {\r
- SVGLength ret;\r
- return ret;\r
- }\r
- std::vector<SVGLength>::iterator iter = items.begin() + index;\r
- SVGLength oldval = *iter;\r
- items.erase(iter);\r
- return oldval;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGLength appendItem (const SVGLength &newItem )\r
- throw( DOMException, SVGException )\r
- {\r
- items.push_back(newItem);\r
- return newItem;\r
- }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGLengthList() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGLengthList(const SVGLengthList &other)\r
- {\r
- items = other.items;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGLengthList() {}\r
-\r
-protected:\r
-\r
- std::vector<SVGLength>items;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedLengthList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedLengthList\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGLengthList &getBaseVal()\r
- {\r
- return baseVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGLengthList &getAnimVal()\r
- {\r
- return animVal;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLengthList() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLengthList(const SVGAnimatedLengthList &other)\r
- {\r
- baseVal = other.baseVal;\r
- animVal = other.animVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAnimatedLengthList() {}\r
-\r
-protected:\r
-\r
- SVGLengthList baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAngle\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAngle\r
-{\r
-public:\r
-\r
- /**\r
- * Angle Unit Types\r
- */\r
- typedef enum\r
- {\r
- SVG_ANGLETYPE_UNKNOWN = 0,\r
- SVG_ANGLETYPE_UNSPECIFIED = 1,\r
- SVG_ANGLETYPE_DEG = 2,\r
- SVG_ANGLETYPE_RAD = 3,\r
- SVG_ANGLETYPE_GRAD = 4\r
- } AngleUnitType;\r
-\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned short getUnitType()\r
- {\r
- return unitType;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getValue()\r
- {\r
- return value;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setValue(double val) throw (DOMException)\r
- {\r
- value = val;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getValueInSpecifiedUnits()\r
- {\r
- double result = 0.0;\r
- //convert here\r
- return result;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setValueInSpecifiedUnits(double /*val*/)\r
- throw (DOMException)\r
- {\r
- //do conversion\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getValueAsString()\r
- {\r
- DOMString result;\r
- char buf[32];\r
- snprintf(buf, 31, "%f", value);\r
- result.append(buf);\r
- return result;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setValueAsString(const DOMString &/*val*/)\r
- throw (DOMException)\r
- {\r
- //convert here\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual void newValueSpecifiedUnits (unsigned short /*unitType*/,\r
- double /*valueInSpecifiedUnits*/ )\r
- {\r
- //convert here\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void convertToSpecifiedUnits (unsigned short /*unitType*/ )\r
- {\r
- //convert here\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGAngle()\r
- {\r
- unitType = SVG_ANGLETYPE_UNKNOWN;\r
- value = 0.0;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGAngle(const SVGAngle &other)\r
- {\r
- unitType = other.unitType;\r
- value = other.value;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAngle() {}\r
-\r
-protected:\r
-\r
- int unitType;\r
-\r
- double value;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedAngle\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedAngle\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGAngle getBaseVal()\r
- {\r
- return baseVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGAngle getAnimVal()\r
- {\r
- return animVal;\r
- }\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedAngle() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedAngle(const SVGAngle &angle)\r
- { baseVal = angle; }\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedAngle(const SVGAnimatedAngle &other)\r
- {\r
- baseVal = other.baseVal;\r
- animVal = other.animVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAnimatedAngle() {}\r
-\r
-protected:\r
-\r
- SVGAngle baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGICCColor\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGICCColor\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getColorProfile()\r
- {\r
- return colorProfile;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setColorProfile(const DOMString &val) throw (DOMException)\r
- {\r
- colorProfile = val;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGNumberList &getColors()\r
- {\r
- return colors;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGICCColor() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGICCColor(const SVGICCColor &other)\r
- {\r
- colorProfile = other.colorProfile;\r
- colors = other.colors;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGICCColor() {}\r
-\r
-protected:\r
-\r
- DOMString colorProfile;\r
-\r
- SVGNumberList colors;\r
-\r
-};\r
-\r
-\r
-/*#########################################################################\r
-## SVGColor\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGColor : virtual public css::CSSValue\r
-{\r
-public:\r
-\r
-\r
- /**\r
- * Color Types\r
- */\r
- typedef enum\r
- {\r
- SVG_COLORTYPE_UNKNOWN = 0,\r
- SVG_COLORTYPE_RGBCOLOR = 1,\r
- SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2,\r
- SVG_COLORTYPE_CURRENTCOLOR = 3\r
- } ColorType;\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned short getColorType()\r
- {\r
- return colorType;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual css::RGBColor getRgbColor()\r
- {\r
- css::RGBColor col;\r
- return col;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGICCColor getIccColor()\r
- {\r
- SVGICCColor col;\r
- return col;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual void setRGBColor (const DOMString& /*rgbColor*/ )\r
- throw( SVGException )\r
- {\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setRGBColorICCColor (const DOMString& /*rgbColor*/,\r
- const DOMString& /*iccColor*/ )\r
- throw( SVGException )\r
- {\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setColor (unsigned short /*colorType*/,\r
- const DOMString& /*rgbColor*/,\r
- const DOMString& /*iccColor*/ )\r
- throw( SVGException )\r
- {\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGColor()\r
- {\r
- colorType = SVG_COLORTYPE_UNKNOWN;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGColor(const SVGColor &other) : css::CSSValue(other)\r
- {\r
- colorType = other.colorType;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGColor() {}\r
-\r
-protected:\r
-\r
- int colorType;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGRect\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGRect\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- {\r
- return x;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- {\r
- x = val;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- {\r
- return y;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- {\r
- y = val;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getWidth()\r
- {\r
- return width;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setWidth(double val) throw (DOMException)\r
- {\r
- width = val;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getHeight()\r
- {\r
- return height;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setHeight(double val) throw (DOMException)\r
- {\r
- height = val;\r
- }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGRect()\r
- {\r
- x = y = width = height = 0.0;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGRect(const SVGRect &other)\r
- {\r
- x = other.x;\r
- y = other.y;\r
- width = other.width;\r
- height = other.height;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGRect() {}\r
-\r
-protected:\r
-\r
- double x, y, width, height;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedRect\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedRect\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGRect &getBaseVal()\r
- {\r
- return baseVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGRect &getAnimVal()\r
- {\r
- return animVal;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedRect()\r
- {\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedRect(const SVGAnimatedRect &other)\r
- {\r
- baseVal = other.baseVal;\r
- animVal = other.animVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAnimatedRect() {}\r
-\r
-protected:\r
-\r
- SVGRect baseVal, animVal;\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPoint\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPoint\r
-{\r
-public:\r
-\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPoint matrixTransform(const SVGMatrix &/*matrix*/)\r
- {\r
- SVGPoint point;\r
- return point;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPoint()\r
- { x = y = 0; }\r
-\r
- /**\r
- *\r
- */\r
- SVGPoint(const SVGPoint &other)\r
- {\r
- x = other.x;\r
- y = other.y;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPoint() {}\r
-\r
-protected:\r
-\r
- double x, y;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPointList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPointList\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned long getNumberOfItems()\r
- { return items.size(); }\r
-\r
- /**\r
- *\r
- */\r
- virtual void clear() throw( DOMException )\r
- { items.clear(); }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPoint initialize(const SVGPoint &newItem)\r
- throw( DOMException, SVGException )\r
- {\r
- items.clear();\r
- items.push_back(newItem);\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPoint getItem(unsigned long index )\r
- throw( DOMException )\r
- {\r
- if (index >= items.size())\r
- {\r
- SVGPoint point;\r
- return point;\r
- }\r
- return items[index];\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPoint insertItemBefore(const SVGPoint &newItem,\r
- unsigned long index )\r
- throw( DOMException, SVGException )\r
- {\r
- if (index >= items.size())\r
- items.push_back(newItem);\r
- else\r
- {\r
- std::vector<SVGPoint>::iterator iter = items.begin() + index;\r
- items.insert(iter, newItem);\r
- }\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPoint replaceItem(const SVGPoint &newItem,\r
- unsigned long index )\r
- throw( DOMException, SVGException )\r
- {\r
- if (index >= items.size())\r
- {\r
- SVGPoint point;\r
- return point;\r
- }\r
- std::vector<SVGPoint>::iterator iter = items.begin() + index;\r
- *iter = newItem;\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPoint removeItem(unsigned long index )\r
- throw( DOMException )\r
- {\r
- if (index >= items.size())\r
- {\r
- SVGPoint point;\r
- return point;\r
- }\r
- std::vector<SVGPoint>::iterator iter = items.begin() + index;\r
- SVGPoint oldItem = *iter;\r
- items.erase(iter);\r
- return oldItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPoint appendItem(const SVGPoint &newItem)\r
- throw( DOMException, SVGException )\r
- {\r
- items.push_back(newItem);\r
- return newItem;\r
- }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPointList() {}\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPointList(const SVGPointList &other)\r
- {\r
- items = other.items;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPointList() {}\r
-\r
-protected:\r
-\r
- std::vector<SVGPoint> items;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGUnitTypes\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGUnitTypes\r
-{\r
-public:\r
-\r
- /**\r
- * Unit Types\r
- */\r
- typedef enum\r
- {\r
- SVG_UNIT_TYPE_UNKNOWN = 0,\r
- SVG_UNIT_TYPE_USERSPACEONUSE = 1,\r
- SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2\r
- } UnitType;\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGUnitTypes() {}\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGUnitTypes() {}\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGStylable\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGStylable\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGAnimatedString getClassName()\r
- {\r
- return className;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual css::CSSStyleDeclaration getStyle()\r
- {\r
- return style;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual css::CSSValue getPresentationAttribute (const DOMString& /*name*/ )\r
- {\r
- css::CSSValue val;\r
- //perform a lookup\r
- return val;\r
- }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGStylable() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGStylable(const SVGStylable &other)\r
- {\r
- className = other.className;\r
- style = other.style;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGStylable() {}\r
-\r
-protected:\r
-\r
- SVGAnimatedString className;\r
- css::CSSStyleDeclaration style;\r
-\r
-};\r
-\r
-\r
-/*#########################################################################\r
-## SVGLocatable\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGLocatable\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGElementPtr getNearestViewportElement()\r
- {\r
- SVGElementPtr result;\r
- return result;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGElementPtr getFarthestViewportElement()\r
- {\r
- SVGElementPtr result;\r
- return result;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGRect getBBox ( )\r
- {\r
- return bbox;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGMatrix getCTM ( )\r
- {\r
- return ctm;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGMatrix getScreenCTM ( )\r
- {\r
- return screenCtm;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGMatrix getTransformToElement (const SVGElement &/*element*/)\r
- throw( SVGException )\r
- {\r
- SVGMatrix result;\r
- //do calculations\r
- return result;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGLocatable() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGLocatable(const SVGLocatable &/*other*/)\r
- {\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGLocatable() {}\r
-\r
-protected:\r
-\r
- SVGRect bbox;\r
- SVGMatrix ctm;\r
- SVGMatrix screenCtm;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGTransformable\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGTransformable : public SVGLocatable\r
-{\r
-public:\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGAnimatedTransformList &getTransform()\r
- {\r
- return transforms;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGTransformable() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGTransformable(const SVGTransformable &other) : SVGLocatable(other)\r
- {\r
- transforms = other.transforms;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGTransformable() {}\r
-\r
-protected:\r
-\r
- SVGAnimatedTransformList transforms;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGTests\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGTests\r
-{\r
-public:\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGStringList &getRequiredFeatures()\r
- {\r
- return requiredFeatures;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGStringList &getRequiredExtensions()\r
- {\r
- return requiredExtensions;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGStringList &getSystemLanguage()\r
- {\r
- return systemLanguage;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual bool hasExtension (const DOMString& /*extension*/ )\r
- {\r
- return false;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGTests() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGTests(const SVGTests &other)\r
- {\r
- requiredFeatures = other.requiredFeatures;\r
- requiredExtensions = other.requiredExtensions;\r
- systemLanguage = other.systemLanguage;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGTests() {}\r
-\r
-protected:\r
-\r
- SVGStringList requiredFeatures;\r
- SVGStringList requiredExtensions;\r
- SVGStringList systemLanguage;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGLangSpace\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGLangSpace\r
-{\r
-public:\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getXmllang()\r
- {\r
- return xmlLang;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setXmllang(const DOMString &val)\r
- throw (DOMException)\r
- {\r
- xmlLang = val;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getXmlspace()\r
- {\r
- return xmlSpace;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setXmlspace(const DOMString &val)\r
- throw (DOMException)\r
- {\r
- xmlSpace = val;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGLangSpace() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGLangSpace(const SVGLangSpace &other)\r
- {\r
- xmlLang = other.xmlLang;\r
- xmlSpace = other.xmlSpace;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGLangSpace() {}\r
-\r
-protected:\r
-\r
- DOMString xmlLang;\r
- DOMString xmlSpace;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGExternalResourcesRequired\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGExternalResourcesRequired\r
-{\r
-public:\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGAnimatedBoolean getExternalResourcesRequired()\r
- { return required; }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGExternalResourcesRequired()\r
- { }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGExternalResourcesRequired(const SVGExternalResourcesRequired &other)\r
- {\r
- required = other.required;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGExternalResourcesRequired() {}\r
-\r
-protected:\r
-\r
- SVGAnimatedBoolean required;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPreserveAspectRatio\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPreserveAspectRatio\r
-{\r
-public:\r
-\r
-\r
- /**\r
- * Alignment Types\r
- */\r
- typedef enum\r
- {\r
- SVG_PRESERVEASPECTRATIO_UNKNOWN = 0,\r
- SVG_PRESERVEASPECTRATIO_NONE = 1,\r
- SVG_PRESERVEASPECTRATIO_XMINYMIN = 2,\r
- SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3,\r
- SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4,\r
- SVG_PRESERVEASPECTRATIO_XMINYMID = 5,\r
- SVG_PRESERVEASPECTRATIO_XMIDYMID = 6,\r
- SVG_PRESERVEASPECTRATIO_XMAXYMID = 7,\r
- SVG_PRESERVEASPECTRATIO_XMINYMAX = 8,\r
- SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9,\r
- SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10\r
- } AlignmentType;\r
-\r
-\r
- /**\r
- * Meet-or-slice Types\r
- */\r
- typedef enum\r
- {\r
- SVG_MEETORSLICE_UNKNOWN = 0,\r
- SVG_MEETORSLICE_MEET = 1,\r
- SVG_MEETORSLICE_SLICE = 2\r
- } MeetOrSliceType;\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned short getAlign()\r
- { return align; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setAlign(unsigned short val) throw (DOMException)\r
- { align = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned short getMeetOrSlice()\r
- { return meetOrSlice; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setMeetOrSlice(unsigned short val) throw (DOMException)\r
- { meetOrSlice = val; }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPreserveAspectRatio()\r
- {\r
- align = SVG_PRESERVEASPECTRATIO_UNKNOWN;\r
- meetOrSlice = SVG_MEETORSLICE_UNKNOWN;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPreserveAspectRatio(const SVGPreserveAspectRatio &other)\r
- {\r
- align = other.align;\r
- meetOrSlice = other.meetOrSlice;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPreserveAspectRatio() {}\r
-\r
-protected:\r
-\r
- unsigned short align;\r
- unsigned short meetOrSlice;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedPreserveAspectRatio\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedPreserveAspectRatio\r
-{\r
-public:\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPreserveAspectRatio getBaseVal()\r
- { return baseVal; }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPreserveAspectRatio getAnimVal()\r
- { return animVal; }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedPreserveAspectRatio() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedPreserveAspectRatio(const SVGAnimatedPreserveAspectRatio &other)\r
- {\r
- baseVal = other.baseVal;\r
- baseVal = other.animVal;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAnimatedPreserveAspectRatio() {}\r
-\r
-protected:\r
-\r
- SVGPreserveAspectRatio baseVal;\r
- SVGPreserveAspectRatio animVal;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGFitToViewBox\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGFitToViewBox\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGAnimatedRect getViewBox()\r
- { return viewBox; }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio()\r
- { return preserveAspectRatio; }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGFitToViewBox()\r
- {}\r
-\r
- /**\r
- *\r
- */\r
-\r
- SVGFitToViewBox(const SVGFitToViewBox &other)\r
- {\r
- viewBox = other.viewBox;\r
- preserveAspectRatio = other.preserveAspectRatio;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGFitToViewBox() {}\r
-\r
-protected:\r
-\r
- SVGAnimatedRect viewBox;\r
-\r
- SVGAnimatedPreserveAspectRatio preserveAspectRatio;\r
-\r
-};\r
-\r
-\r
-/*#########################################################################\r
-## SVGZoomAndPan\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGZoomAndPan\r
-{\r
-public:\r
-\r
-\r
- /**\r
- * Zoom and Pan Types\r
- */\r
- typedef enum\r
- {\r
- SVG_ZOOMANDPAN_UNKNOWN = 0,\r
- SVG_ZOOMANDPAN_DISABLE = 1,\r
- SVG_ZOOMANDPAN_MAGNIFY = 2\r
- } ZoomAndPanType;\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned short getZoomAndPan()\r
- { return zoomAndPan; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setZoomAndPan(unsigned short val) throw (DOMException)\r
- { zoomAndPan = val; }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGZoomAndPan()\r
- { zoomAndPan = SVG_ZOOMANDPAN_UNKNOWN; }\r
-\r
- /**\r
- *\r
- */\r
- SVGZoomAndPan(const SVGZoomAndPan &other)\r
- { zoomAndPan = other.zoomAndPan; }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGZoomAndPan() {}\r
-\r
-protected:\r
-\r
- unsigned short zoomAndPan;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGViewSpec\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGViewSpec : public SVGZoomAndPan,\r
- public SVGFitToViewBox\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGTransformList getTransform()\r
- { return transform; }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGElementPtr getViewTarget()\r
- { return viewTarget; }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getViewBoxString()\r
- {\r
- DOMString ret;\r
- return ret;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getPreserveAspectRatioString()\r
- {\r
- DOMString ret;\r
- return ret;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getTransformString()\r
- {\r
- DOMString ret;\r
- return ret;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getViewTargetString()\r
- {\r
- DOMString ret;\r
- return ret;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGViewSpec()\r
- {\r
- viewTarget = NULL;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGViewSpec(const SVGViewSpec &other) : SVGZoomAndPan(other), SVGFitToViewBox(other)\r
- {\r
- viewTarget = other.viewTarget;\r
- transform = other.transform;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGViewSpec() {}\r
-\r
-protected:\r
-\r
- SVGElementPtr viewTarget;\r
- SVGTransformList transform;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGURIReference\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGURIReference\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGAnimatedString getHref()\r
- { return href; }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGURIReference() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGURIReference(const SVGURIReference &other)\r
- {\r
- href = other.href;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGURIReference() {}\r
-\r
-protected:\r
-\r
- SVGAnimatedString href;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGCSSRule\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGCSSRule : public css::CSSRule\r
-{\r
-public:\r
-\r
-\r
- /**\r
- * Additional CSS RuleType to support ICC color specifications\r
- */\r
- typedef enum\r
- {\r
- COLOR_PROFILE_RULE = 7\r
- } ColorProfileRuleType;\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGCSSRule()\r
- { type = COLOR_PROFILE_RULE; }\r
-\r
- /**\r
- *\r
- */\r
- SVGCSSRule(const SVGCSSRule &other) : css::CSSRule(other)\r
- { type = COLOR_PROFILE_RULE; }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGCSSRule() {}\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGRenderingIntent\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGRenderingIntent\r
-{\r
-public:\r
-\r
- /**\r
- * Rendering Intent Types\r
- */\r
- typedef enum\r
- {\r
- RENDERING_INTENT_UNKNOWN = 0,\r
- RENDERING_INTENT_AUTO = 1,\r
- RENDERING_INTENT_PERCEPTUAL = 2,\r
- RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3,\r
- RENDERING_INTENT_SATURATION = 4,\r
- RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5\r
- } RenderingIntentType;\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGRenderingIntent()\r
- {\r
- renderingIntentType = RENDERING_INTENT_UNKNOWN;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGRenderingIntent(const SVGRenderingIntent &other)\r
- {\r
- renderingIntentType = other.renderingIntentType;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGRenderingIntent() {}\r
-\r
-protected:\r
-\r
- unsigned short renderingIntentType;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-###########################################################################\r
-## P A T H S E G M E N T S\r
-###########################################################################\r
-#########################################################################*/\r
-\r
-static char const *const pathSegLetters[] =\r
-{\r
- "@", // PATHSEG_UNKNOWN,\r
- "z", // PATHSEG_CLOSEPATH\r
- "M", // PATHSEG_MOVETO_ABS\r
- "m", // PATHSEG_MOVETO_REL,\r
- "L", // PATHSEG_LINETO_ABS\r
- "l", // PATHSEG_LINETO_REL\r
- "C", // PATHSEG_CURVETO_CUBIC_ABS\r
- "c", // PATHSEG_CURVETO_CUBIC_REL\r
- "Q", // PATHSEG_CURVETO_QUADRATIC_ABS,\r
- "q", // PATHSEG_CURVETO_QUADRATIC_REL\r
- "A", // PATHSEG_ARC_ABS\r
- "a", // PATHSEG_ARC_REL,\r
- "H", // PATHSEG_LINETO_HORIZONTAL_ABS,\r
- "h", // PATHSEG_LINETO_HORIZONTAL_REL\r
- "V", // PATHSEG_LINETO_VERTICAL_ABS\r
- "v", // PATHSEG_LINETO_VERTICAL_REL\r
- "S", // PATHSEG_CURVETO_CUBIC_SMOOTH_ABS\r
- "s", // PATHSEG_CURVETO_CUBIC_SMOOTH_REL\r
- "T", // PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS\r
- "t" // PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL\r
-};\r
-\r
-/*#########################################################################\r
-## SVGPathSeg\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSeg\r
-{\r
-public:\r
-\r
-\r
-\r
- /**\r
- * Path Segment Types\r
- */\r
- typedef enum\r
- {\r
- PATHSEG_UNKNOWN = 0,\r
- PATHSEG_CLOSEPATH = 1,\r
- PATHSEG_MOVETO_ABS = 2,\r
- PATHSEG_MOVETO_REL = 3,\r
- PATHSEG_LINETO_ABS = 4,\r
- PATHSEG_LINETO_REL = 5,\r
- PATHSEG_CURVETO_CUBIC_ABS = 6,\r
- PATHSEG_CURVETO_CUBIC_REL = 7,\r
- PATHSEG_CURVETO_QUADRATIC_ABS = 8,\r
- PATHSEG_CURVETO_QUADRATIC_REL = 9,\r
- PATHSEG_ARC_ABS = 10,\r
- PATHSEG_ARC_REL = 11,\r
- PATHSEG_LINETO_HORIZONTAL_ABS = 12,\r
- PATHSEG_LINETO_HORIZONTAL_REL = 13,\r
- PATHSEG_LINETO_VERTICAL_ABS = 14,\r
- PATHSEG_LINETO_VERTICAL_REL = 15,\r
- PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16,\r
- PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17,\r
- PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18,\r
- PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19\r
- } PathSegmentType;\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned short getPathSegType()\r
- { return type; }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getPathSegTypeAsLetter()\r
- {\r
- int typ = type;\r
- if (typ<0 || typ>PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL)\r
- typ = PATHSEG_UNKNOWN;\r
- char const *ch = pathSegLetters[typ];\r
- DOMString letter = ch;\r
- return letter;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSeg()\r
- { type = PATHSEG_UNKNOWN; }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSeg(const SVGPathSeg &other)\r
- {\r
- type = other.type;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSeg() {}\r
-\r
-protected:\r
-\r
- int type;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegClosePath\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegClosePath : public SVGPathSeg\r
-{\r
-public:\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegClosePath()\r
- {\r
- type = PATHSEG_CLOSEPATH;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegClosePath(const SVGPathSegClosePath &other) : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_CLOSEPATH;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegClosePath() {}\r
-\r
-};\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegMovetoAbs\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegMovetoAbs : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegMovetoAbs()\r
- {\r
- type = PATHSEG_MOVETO_ABS;\r
- x = y = 0.0;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegMovetoAbs(double xArg, double yArg)\r
- {\r
- type = PATHSEG_MOVETO_ABS;\r
- x = xArg; y = yArg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegMovetoAbs(const SVGPathSegMovetoAbs &other) : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_MOVETO_ABS;\r
- x = other.x; y = other.y;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegMovetoAbs() {}\r
-\r
-protected:\r
-\r
- double x,y;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegMovetoRel\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegMovetoRel : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegMovetoRel()\r
- {\r
- type = PATHSEG_MOVETO_REL;\r
- x = y = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegMovetoRel(double xArg, double yArg)\r
- {\r
- type = PATHSEG_MOVETO_REL;\r
- x = xArg; y = yArg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegMovetoRel(const SVGPathSegMovetoRel &other) : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_MOVETO_REL;\r
- x = other.x; y = other.y;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegMovetoRel() {}\r
-\r
-protected:\r
-\r
- double x,y;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegLinetoAbs\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegLinetoAbs : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoAbs()\r
- {\r
- type = PATHSEG_LINETO_ABS;\r
- x = y = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoAbs(double xArg, double yArg)\r
- {\r
- type = PATHSEG_LINETO_ABS;\r
- x = xArg; y = yArg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoAbs(const SVGPathSegLinetoAbs &other) : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_LINETO_ABS;\r
- x = other.x; y = other.y;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegLinetoAbs() {}\r
-\r
-protected:\r
-\r
- double x,y;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegLinetoRel\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegLinetoRel : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoRel()\r
- {\r
- type = PATHSEG_LINETO_REL;\r
- x = y = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoRel(double xArg, double yArg)\r
- {\r
- type = PATHSEG_LINETO_REL;\r
- x = xArg; y = yArg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoRel(const SVGPathSegLinetoRel &other) : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_LINETO_REL;\r
- x = other.x; y = other.y;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegLinetoRel() {}\r
-\r
-protected:\r
-\r
- double x,y;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegCurvetoCubicAbs\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegCurvetoCubicAbs : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX1()\r
- { return x1; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX1(double val) throw (DOMException)\r
- { x1 = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY1()\r
- { return y1; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY1(double val) throw (DOMException)\r
- { y1 = val; }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX2()\r
- { return x2; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX2(double val) throw (DOMException)\r
- { x2 = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY2()\r
- { return y2; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY2(double val) throw (DOMException)\r
- { y2 = val; }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoCubicAbs()\r
- {\r
- type = PATHSEG_CURVETO_CUBIC_ABS;\r
- x = y = x1 = y1 = x2 = y2 = 0.0;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoCubicAbs(double xArg, double yArg,\r
- double x1Arg, double y1Arg,\r
- double x2Arg, double y2Arg)\r
- {\r
- type = PATHSEG_CURVETO_CUBIC_ABS;\r
- x = xArg; y = yArg;\r
- x1 = x1Arg; y1 = y1Arg;\r
- x2 = x2Arg; y2 = y2Arg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoCubicAbs(const SVGPathSegCurvetoCubicAbs &other)\r
- : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_CURVETO_CUBIC_ABS;\r
- x = other.x; y = other.y;\r
- x1 = other.x1; y1 = other.y1;\r
- x2 = other.x2; y2 = other.y2;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegCurvetoCubicAbs() {}\r
-\r
-protected:\r
-\r
- double x, y, x1, y1, x2, y2;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegCurvetoCubicRel\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegCurvetoCubicRel : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX1()\r
- { return x1; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX1(double val) throw (DOMException)\r
- { x1 = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY1()\r
- { return y1; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY1(double val) throw (DOMException)\r
- { y1 = val; }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX2()\r
- { return x2; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX2(double val) throw (DOMException)\r
- { x2 = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY2()\r
- { return y2; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY2(double val) throw (DOMException)\r
- { y2 = val; }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoCubicRel()\r
- {\r
- type = PATHSEG_CURVETO_CUBIC_REL;\r
- x = y = x1 = y1 = x2 = y2 = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoCubicRel(double xArg, double yArg,\r
- double x1Arg, double y1Arg,\r
- double x2Arg, double y2Arg)\r
- {\r
- type = PATHSEG_CURVETO_CUBIC_REL;\r
- x = xArg; y = yArg;\r
- x1 = x1Arg; y1 = y1Arg;\r
- x2 = x2Arg; y2 = y2Arg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoCubicRel(const SVGPathSegCurvetoCubicRel &other)\r
- : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_CURVETO_CUBIC_REL;\r
- x = other.x; y = other.y;\r
- x1 = other.x1; y1 = other.y1;\r
- x2 = other.x2; y2 = other.y2;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegCurvetoCubicRel() {}\r
-\r
-protected:\r
-\r
- double x, y, x1, y1, x2, y2;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegCurvetoQuadraticAbs\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegCurvetoQuadraticAbs : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX1()\r
- { return x1; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX1(double val) throw (DOMException)\r
- { x1 = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY1()\r
- { return y1; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY1(double val) throw (DOMException)\r
- { y1 = val; }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoQuadraticAbs()\r
- {\r
- type = PATHSEG_CURVETO_QUADRATIC_ABS;\r
- x = y = x1 = y1 = 0.0;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoQuadraticAbs(double xArg, double yArg,\r
- double x1Arg, double y1Arg)\r
- {\r
- type = PATHSEG_CURVETO_QUADRATIC_ABS;\r
- x = xArg; y = yArg;\r
- x1 = x1Arg; y1 = y1Arg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoQuadraticAbs(const SVGPathSegCurvetoQuadraticAbs &other)\r
- : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_CURVETO_QUADRATIC_ABS;\r
- x = other.x; y = other.y;\r
- x1 = other.x1; y1 = other.y1;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegCurvetoQuadraticAbs() {}\r
-\r
-protected:\r
-\r
- double x, y, x1, y1;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegCurvetoQuadraticRel\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegCurvetoQuadraticRel : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX1()\r
- { return x1; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX1(double val) throw (DOMException)\r
- { x1 = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY1()\r
- { return y1; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY1(double val) throw (DOMException)\r
- { y1 = val; }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoQuadraticRel()\r
- {\r
- type = PATHSEG_CURVETO_QUADRATIC_REL;\r
- x = y = x1 = y1 = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoQuadraticRel(double xArg, double yArg,\r
- double x1Arg, double y1Arg)\r
- {\r
- type = PATHSEG_CURVETO_QUADRATIC_REL;\r
- x = xArg; y = yArg;\r
- x1 = x1Arg; y1 = y1Arg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoQuadraticRel(const SVGPathSegCurvetoQuadraticRel &other)\r
- : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_CURVETO_QUADRATIC_REL;\r
- x = other.x; y = other.y;\r
- x1 = other.x1; y1 = other.y1;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegCurvetoQuadraticRel() {}\r
-\r
-protected:\r
-\r
- double x, y, x1, y1;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegArcAbs\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegArcAbs : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getR1()\r
- { return r1; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setR1(double val) throw (DOMException)\r
- { r1 = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getR2()\r
- { return r2; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setR2(double val) throw (DOMException)\r
- { r2 = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getAngle()\r
- { return angle; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setAngle(double val) throw (DOMException)\r
- { angle = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual bool getLargeArcFlag()\r
- { return largeArcFlag; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setLargeArcFlag(bool val) throw (DOMException)\r
- { largeArcFlag = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual bool getSweepFlag()\r
- { return sweepFlag; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setSweepFlag(bool val) throw (DOMException)\r
- { sweepFlag = val; }\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegArcAbs()\r
- {\r
- type = PATHSEG_ARC_ABS;\r
- x = y = r1 = r2 = angle = 0.0;\r
- largeArcFlag = sweepFlag = false;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegArcAbs(double xArg, double yArg,\r
- double r1Arg, double r2Arg,\r
- double angleArg,\r
- bool largeArcFlagArg,\r
- bool sweepFlagArg )\r
-\r
- {\r
- type = PATHSEG_ARC_ABS;\r
- x = xArg; y = yArg;\r
- r1 = r1Arg; r2 = r2Arg;\r
- angle = angleArg;\r
- largeArcFlag = largeArcFlagArg;\r
- sweepFlag = sweepFlagArg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegArcAbs(const SVGPathSegArcAbs &other)\r
- : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_ARC_ABS;\r
- x = other.x; y = other.y;\r
- r1 = other.r1; r2 = other.r2;\r
- angle = other.angle;\r
- largeArcFlag = other.largeArcFlag;\r
- sweepFlag = other.sweepFlag;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegArcAbs() {}\r
-\r
-protected:\r
-\r
- double x, y, r1, r2, angle;\r
- bool largeArcFlag;\r
- bool sweepFlag;\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegArcRel\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegArcRel : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getR1()\r
- { return r1; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setR1(double val) throw (DOMException)\r
- { r1 = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getR2()\r
- { return r2; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setR2(double val) throw (DOMException)\r
- { r2 = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getAngle()\r
- { return angle; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setAngle(double val) throw (DOMException)\r
- { angle = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual bool getLargeArcFlag()\r
- { return largeArcFlag; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setLargeArcFlag(bool val) throw (DOMException)\r
- { largeArcFlag = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual bool getSweepFlag()\r
- { return sweepFlag; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setSweepFlag(bool val) throw (DOMException)\r
- { sweepFlag = val; }\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegArcRel()\r
- {\r
- type = PATHSEG_ARC_REL;\r
- x = y = r1 = r2 = angle = 0.0;\r
- largeArcFlag = sweepFlag = false;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegArcRel(double xArg, double yArg,\r
- double r1Arg, double r2Arg,\r
- double angleArg,\r
- bool largeArcFlagArg,\r
- bool sweepFlagArg )\r
-\r
- {\r
- type = PATHSEG_ARC_REL;\r
- x = xArg; y = yArg;\r
- r1 = r1Arg; r2 = r2Arg;\r
- angle = angleArg;\r
- largeArcFlag = largeArcFlagArg;\r
- sweepFlag = sweepFlagArg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegArcRel(const SVGPathSegArcRel &other)\r
- : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_ARC_REL;\r
- x = other.x; y = other.y;\r
- r1 = other.r1; r2 = other.r2;\r
- angle = other.angle;\r
- largeArcFlag = other.largeArcFlag;\r
- sweepFlag = other.sweepFlag;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegArcRel() {}\r
-\r
-protected:\r
-\r
- double x, y, r1, r2, angle;\r
- bool largeArcFlag;\r
- bool sweepFlag;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegLinetoHorizontalAbs\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegLinetoHorizontalAbs : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoHorizontalAbs()\r
- {\r
- type = PATHSEG_LINETO_HORIZONTAL_ABS;\r
- x = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoHorizontalAbs(double xArg)\r
- {\r
- type = PATHSEG_LINETO_HORIZONTAL_ABS;\r
- x = xArg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoHorizontalAbs(const SVGPathSegLinetoHorizontalAbs &other)\r
- : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_LINETO_HORIZONTAL_ABS;\r
- x = other.x;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegLinetoHorizontalAbs() {}\r
-\r
-protected:\r
-\r
- double x;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegLinetoHorizontalRel\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegLinetoHorizontalRel : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoHorizontalRel()\r
- {\r
- type = PATHSEG_LINETO_HORIZONTAL_REL;\r
- x = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoHorizontalRel(double xArg)\r
- {\r
- type = PATHSEG_LINETO_HORIZONTAL_REL;\r
- x = xArg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoHorizontalRel(const SVGPathSegLinetoHorizontalRel &other)\r
- : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_LINETO_HORIZONTAL_REL;\r
- x = other.x;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegLinetoHorizontalRel() {}\r
-\r
-protected:\r
-\r
- double x;\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegLinetoVerticalAbs\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegLinetoVerticalAbs : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoVerticalAbs()\r
- {\r
- type = PATHSEG_LINETO_VERTICAL_ABS;\r
- y = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoVerticalAbs(double yArg)\r
- {\r
- type = PATHSEG_LINETO_VERTICAL_ABS;\r
- y = yArg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoVerticalAbs(const SVGPathSegLinetoVerticalAbs &other)\r
- : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_LINETO_VERTICAL_ABS;\r
- y = other.y;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegLinetoVerticalAbs() {}\r
-\r
-protected:\r
-\r
- double y;\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegLinetoVerticalRel\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegLinetoVerticalRel : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoVerticalRel()\r
- {\r
- type = PATHSEG_LINETO_VERTICAL_REL;\r
- y = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoVerticalRel(double yArg)\r
- {\r
- type = PATHSEG_LINETO_VERTICAL_REL;\r
- y = yArg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegLinetoVerticalRel(const SVGPathSegLinetoVerticalRel &other)\r
- : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_LINETO_VERTICAL_REL;\r
- y = other.y;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegLinetoVerticalRel() {}\r
-\r
-protected:\r
-\r
- double y;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegCurvetoCubicSmoothAbs\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegCurvetoCubicSmoothAbs : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX2()\r
- { return x2; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX2(double val) throw (DOMException)\r
- { x2 = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY2()\r
- { return y2; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY2(double val) throw (DOMException)\r
- { y2 = val; }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoCubicSmoothAbs()\r
- {\r
- type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\r
- x = y = x2 = y2 = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoCubicSmoothAbs(double xArg, double yArg,\r
- double x2Arg, double y2Arg)\r
- {\r
- type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\r
- x = xArg; y = yArg;\r
- x2 = x2Arg; y2 = y2Arg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoCubicSmoothAbs(const SVGPathSegCurvetoCubicSmoothAbs &other)\r
- : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\r
- x = other.x; y = other.y;\r
- x2 = other.x2; y2 = other.y2;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegCurvetoCubicSmoothAbs() {}\r
-\r
-protected:\r
-\r
- double x, y, x2, y2;\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegCurvetoCubicSmoothRel\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegCurvetoCubicSmoothRel : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX2()\r
- { return x2; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX2(double val) throw (DOMException)\r
- { x2 = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY2()\r
- { return y2; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY2(double val) throw (DOMException)\r
- { y2 = val; }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoCubicSmoothRel()\r
- {\r
- type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\r
- x = y = x2 = y2 = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoCubicSmoothRel(double xArg, double yArg,\r
- double x2Arg, double y2Arg)\r
- {\r
- type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\r
- x = xArg; y = yArg;\r
- x2 = x2Arg; y2 = y2Arg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoCubicSmoothRel(const SVGPathSegCurvetoCubicSmoothRel &other)\r
- : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\r
- x = other.x; y = other.y;\r
- x2 = other.x2; y2 = other.y2;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegCurvetoCubicSmoothRel() {}\r
-\r
-protected:\r
-\r
- double x, y, x2, y2;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegCurvetoQuadraticSmoothAbs\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegCurvetoQuadraticSmoothAbs : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoQuadraticSmoothAbs()\r
- {\r
- type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\r
- x = y = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoQuadraticSmoothAbs(double xArg, double yArg)\r
- {\r
- type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\r
- x = xArg; y = yArg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoQuadraticSmoothAbs(const SVGPathSegCurvetoQuadraticSmoothAbs &other)\r
- : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\r
- x = y = 0.0;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegCurvetoQuadraticSmoothAbs() {}\r
-\r
-protected:\r
-\r
- double x, y;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegCurvetoQuadraticSmoothRel\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegCurvetoQuadraticSmoothRel : public SVGPathSeg\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual double getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setX(double val) throw (DOMException)\r
- { x = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setY(double val) throw (DOMException)\r
- { y = val; }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoQuadraticSmoothRel()\r
- {\r
- type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\r
- x = y = 0.0;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoQuadraticSmoothRel(double xArg, double yArg)\r
- {\r
- type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\r
- x = xArg; y = yArg;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegCurvetoQuadraticSmoothRel(const SVGPathSegCurvetoQuadraticSmoothRel &other)\r
- : SVGPathSeg(other)\r
- {\r
- type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\r
- x = y = 0.0;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegCurvetoQuadraticSmoothRel() {}\r
-\r
-protected:\r
-\r
- double x, y;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSegList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSegList\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned long getNumberOfItems()\r
- { return items.size(); }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual void clear () throw( DOMException )\r
- { items.clear(); }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPathSeg initialize (const SVGPathSeg &newItem)\r
- throw( DOMException, SVGException )\r
- {\r
- items.clear();\r
- items.push_back(newItem);\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPathSeg getItem (unsigned long index)\r
- throw( DOMException )\r
- {\r
- if (index >= items.size())\r
- {\r
- SVGPathSeg seg;\r
- return seg;\r
- }\r
- return items[index];\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPathSeg insertItemBefore(const SVGPathSeg &newItem,\r
- unsigned long index )\r
- throw( DOMException, SVGException )\r
- {\r
- if (index >= items.size())\r
- items.push_back(newItem);\r
- else\r
- {\r
- std::vector<SVGPathSeg>::iterator iter = items.begin() + index;\r
- items.insert(iter, newItem);\r
- }\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPathSeg replaceItem(const SVGPathSeg &newItem,\r
- unsigned long index )\r
- throw( DOMException, SVGException )\r
- {\r
- if (index >= items.size())\r
- {\r
- SVGPathSeg seg;\r
- return seg;\r
- }\r
- std::vector<SVGPathSeg>::iterator iter = items.begin() + index;\r
- *iter = newItem;\r
- return newItem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPathSeg removeItem (unsigned long index)\r
- throw (DOMException)\r
- {\r
- if (index >= items.size())\r
- {\r
- SVGPathSeg seg;\r
- return seg;\r
- }\r
- std::vector<SVGPathSeg>::iterator iter = items.begin() + index;\r
- SVGPathSeg olditem = *iter;\r
- items.erase(iter);\r
- return olditem;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPathSeg appendItem (const SVGPathSeg &newItem)\r
- throw( DOMException, SVGException )\r
- {\r
- items.push_back(newItem);\r
- return newItem;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegList() {}\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSegList(const SVGPathSegList &other)\r
- {\r
- items = other.items;\r
- }\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPathSegList() {}\r
-\r
-protected:\r
-\r
- std::vector<SVGPathSeg> items;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedPathData\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedPathData\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPathSegList getPathSegList()\r
- {\r
- SVGPathSegList list;\r
- return list;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPathSegList getNormalizedPathSegList()\r
- {\r
- SVGPathSegList list;\r
- return list;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPathSegList getAnimatedPathSegList()\r
- {\r
- SVGPathSegList list;\r
- return list;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPathSegList getAnimatedNormalizedPathSegList()\r
- {\r
- SVGPathSegList list;\r
- return list;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedPathData()\r
- {}\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedPathData(const SVGAnimatedPathData &/*other*/)\r
- {\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAnimatedPathData() {}\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedPoints\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGAnimatedPoints\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPointList getPoints()\r
- { return points; }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPointList getAnimatedPoints()\r
- { return animatedPoints; }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedPoints() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedPoints(const SVGAnimatedPoints &other)\r
- {\r
- points = other.points;\r
- animatedPoints = other.animatedPoints;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGAnimatedPoints() {}\r
-\r
-protected:\r
-\r
- SVGPointList points;\r
- SVGPointList animatedPoints;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPaint\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPaint : public SVGColor\r
-{\r
-public:\r
-\r
-\r
- /**\r
- * Paint Types\r
- */\r
- typedef enum\r
- {\r
- SVG_PAINTTYPE_UNKNOWN = 0,\r
- SVG_PAINTTYPE_RGBCOLOR = 1,\r
- SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR = 2,\r
- SVG_PAINTTYPE_NONE = 101,\r
- SVG_PAINTTYPE_CURRENTCOLOR = 102,\r
- SVG_PAINTTYPE_URI_NONE = 103,\r
- SVG_PAINTTYPE_URI_CURRENTCOLOR = 104,\r
- SVG_PAINTTYPE_URI_RGBCOLOR = 105,\r
- SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106,\r
- SVG_PAINTTYPE_URI = 107\r
- } PaintType;\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned short getPaintType()\r
- { return paintType; }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getUri()\r
- { return uri; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setUri (const DOMString& uriArg )\r
- { uri = uriArg; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setPaint (unsigned short paintTypeArg,\r
- const DOMString& uriArg,\r
- const DOMString& /*rgbColor*/,\r
- const DOMString& /*iccColor*/ )\r
- throw( SVGException )\r
- {\r
- paintType = paintTypeArg;\r
- uri = uriArg;\r
- //do something with rgbColor\r
- //do something with iccColor;\r
- }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPaint()\r
- {\r
- uri = "";\r
- paintType = SVG_PAINTTYPE_UNKNOWN;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- SVGPaint(const SVGPaint &other) : css::CSSValue(other), SVGColor(other)\r
- {\r
- uri = "";\r
- paintType = SVG_PAINTTYPE_UNKNOWN;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGPaint() {}\r
-\r
-protected:\r
-\r
- unsigned int paintType;\r
- DOMString uri;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGColorProfileRule\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGColorProfileRule : public SVGCSSRule,\r
- public SVGRenderingIntent\r
-{\r
-\r
-public:\r
- /**\r
- *\r
- */\r
- virtual DOMString getSrc()\r
- { return src; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setSrc(const DOMString &val) throw (DOMException)\r
- { src = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual DOMString getName()\r
- { return name; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setName(const DOMString &val) throw (DOMException)\r
- { name = val; }\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned short getRenderingIntent()\r
- { return renderingIntent; }\r
-\r
- /**\r
- *\r
- */\r
- virtual void setRenderingIntent(unsigned short val) throw (DOMException)\r
- { renderingIntent = val; }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGColorProfileRule() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGColorProfileRule(const SVGColorProfileRule &other)\r
- : SVGCSSRule(other), SVGRenderingIntent(other)\r
- {\r
- renderingIntent = other.renderingIntent;\r
- src = other.src;\r
- name = other.name;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGColorProfileRule() {}\r
-\r
-protected:\r
-\r
- unsigned short renderingIntent;\r
- DOMString src;\r
- DOMString name;\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGFilterPrimitiveStandardAttributes\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGFilterPrimitiveStandardAttributes : public SVGStylable\r
-{\r
-public:\r
-\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGAnimatedLength getX()\r
- { return x; }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGAnimatedLength getY()\r
- { return y; }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGAnimatedLength getWidth()\r
- { return width; }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGAnimatedLength getHeight()\r
- { return height; }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGAnimatedString getResult()\r
- { return result; }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGFilterPrimitiveStandardAttributes()\r
- {}\r
-\r
- /**\r
- *\r
- */\r
- SVGFilterPrimitiveStandardAttributes(const SVGFilterPrimitiveStandardAttributes &other)\r
- : SVGStylable(other)\r
- {\r
- x = other.x;\r
- y = other.y;\r
- width = other.width;\r
- height = other.height;\r
- result = other.result;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGFilterPrimitiveStandardAttributes() {}\r
-\r
-protected:\r
-\r
- SVGAnimatedLength x;\r
- SVGAnimatedLength y;\r
- SVGAnimatedLength width;\r
- SVGAnimatedLength height;\r
- SVGAnimatedString result;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGEvent\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGEvent : events::Event\r
-{\r
-public:\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGEvent() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGEvent(const SVGEvent &other) : events::Event(other)\r
- {}\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGEvent() {}\r
-\r
-};\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGZoomEvent\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGZoomEvent : events::UIEvent\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGRect getZoomRectScreen()\r
- { return zoomRectScreen; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getPreviousScale()\r
- { return previousScale; }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPoint getPreviousTranslate()\r
- { return previousTranslate; }\r
-\r
- /**\r
- *\r
- */\r
- virtual double getNewScale()\r
- { return newScale; }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGPoint getNewTranslate()\r
- { return newTranslate; }\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGZoomEvent()\r
- {}\r
-\r
- /**\r
- *\r
- */\r
- SVGZoomEvent(const SVGZoomEvent &other) : events::Event(other),\r
- events::UIEvent(other)\r
- {\r
- zoomRectScreen = other.zoomRectScreen;\r
- previousScale = other.previousScale;\r
- previousTranslate = other.previousTranslate;\r
- newScale = other.newScale;\r
- newTranslate = other.newTranslate;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGZoomEvent() {}\r
-\r
-protected:\r
-\r
- SVGRect zoomRectScreen;\r
- double previousScale;\r
- SVGPoint previousTranslate;\r
- double newScale;\r
- SVGPoint newTranslate;\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGElementInstance\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGElementInstance : public events::EventTarget\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGElementPtr getCorrespondingElement()\r
- { return correspondingElement; }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGUseElementPtr getCorrespondingUseElement()\r
- { return correspondingUseElement; }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGElementInstance getParentNode()\r
- {\r
- SVGElementInstance ret;\r
- return ret;\r
- }\r
-\r
- /**\r
- * Since we are using stack types and this is a circular definition,\r
- * we will instead implement this as a global function below:\r
- * SVGElementInstanceList getChildNodes(const SVGElementInstance instance);\r
- */\r
- //virtual SVGElementInstanceList getChildNodes();\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGElementInstance getFirstChild()\r
- {\r
- SVGElementInstance ret;\r
- return ret;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGElementInstance getLastChild()\r
- {\r
- SVGElementInstance ret;\r
- return ret;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGElementInstance getPreviousSibling()\r
- {\r
- SVGElementInstance ret;\r
- return ret;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGElementInstance getNextSibling()\r
- {\r
- SVGElementInstance ret;\r
- return ret;\r
- }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGElementInstance() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGElementInstance(const SVGElementInstance &other)\r
- : events::EventTarget(other)\r
- {\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGElementInstance() {}\r
-\r
-protected:\r
-\r
- SVGElementPtr correspondingElement;\r
- SVGUseElementPtr correspondingUseElement;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGElementInstanceList\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGElementInstanceList\r
-{\r
-public:\r
-\r
-\r
- /**\r
- *\r
- */\r
- virtual unsigned long getLength()\r
- { return items.size(); }\r
-\r
- /**\r
- *\r
- */\r
- virtual SVGElementInstance item (unsigned long index )\r
- {\r
- if (index >= items.size())\r
- {\r
- SVGElementInstance ret;\r
- return ret;\r
- }\r
- return items[index];\r
- }\r
-\r
- /**\r
- * This static method replaces the circular definition of:\r
- * SVGElementInstanceList SVGElementInstance::getChildNodes()\r
- *\r
- */\r
- static SVGElementInstanceList getChildNodes(const SVGElementInstance &/*instance*/)\r
- {\r
- SVGElementInstanceList list;\r
- return list;\r
- }\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGElementInstanceList() {}\r
-\r
- /**\r
- *\r
- */\r
- SVGElementInstanceList(const SVGElementInstanceList &other)\r
- {\r
- items = other.items;\r
- }\r
-\r
- /**\r
- *\r
- */\r
- virtual ~SVGElementInstanceList() {}\r
-\r
-protected:\r
-\r
- std::vector<SVGElementInstance> items;\r
-\r
-\r
-};\r
-\r
-\r
-/**\r
- * This is a helper class that will hold several types of data. It will\r
- * be used in those situations where methods are common to different \r
- * interfaces, except for the data type.\r
- */ \r
-class SVGValue\r
-{\r
-public:\r
-\r
- typedef enum\r
- {\r
- SVG_DOUBLE,\r
- SVG_INT,\r
- SVG_STRING\r
- }SVGValueType;\r
-\r
- SVGValue(long v)\r
- {\r
- init();\r
- ival = d;\r
- type = SVG_INT;\r
- }\r
- \r
- SVGValue(double v)\r
- {\r
- init();\r
- dval = v;\r
- type = SVG_DOUBLE;\r
- }\r
- \r
- SVGValue(const DOMString &v)\r
- {\r
- init();\r
- sval = v;\r
- type = SVG_STRING;\r
- }\r
- \r
- SVGValue(const SVGValue &other)\r
- {\r
- assign(other);\r
- }\r
- \r
- SVGValue &operator=(const SVGValue &other)\r
- {\r
- assign(other);\r
- return *this;\r
- }\r
- \r
- SVGValue &operator=(long v)\r
- {\r
- init();\r
- ival = v;\r
- type = SVG_INT;\r
- return *this;\r
- }\r
- \r
- SVGValue &operator=(double v)\r
- {\r
- init();\r
- ival = v;\r
- type = SVG_DOUBLE;\r
- return *this;\r
- }\r
- \r
- SVGValue &operator=(const DOMString &v)\r
- {\r
- init();\r
- sval = v;\r
- type = SVG_STRING;\r
- return *this;\r
- }\r
- \r
- ~SVGValue()\r
- {}\r
- \r
- long intValue()\r
- { return ival; }\r
-\r
- double doubleValue()\r
- { return ival; }\r
-\r
- DOMString &stringValue()\r
- { return sval; }\r
-\r
-\r
-private:\r
-\r
- void init()\r
- {\r
- type = SVG_DOUBLE;\r
- ival = 0;\r
- dval = 0.0; \r
- sval = "";\r
- }\r
- \r
- void assign(const SVGValue &other)\r
- {\r
- type = other.type;\r
- ival = other.ival;\r
- dval = other.dval;\r
- sval = other.sval;\r
- }\r
- \r
- int type;\r
- double dval;\r
- long ival;\r
- DOMString sval;\r
-\r
-};\r
-\r
-\r
-\r
-//########################################################################\r
-//########################################################################\r
-//########################################################################\r
-//# D O M\r
-//########################################################################\r
-//########################################################################\r
-//########################################################################\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## Types\r
-#########################################################################*/\r
-\r
-/**\r
- * Bitmasks for has_an interface for SVGElement\r
- */ \r
-#define SVG_ANGLE 0x00000001\r
-#define SVG_ANIMATED_ANGLE 0x00000002\r
-#define SVG_ANIMATED_BOOLEAN 0x00000004\r
-#define SVG_ANIMATED_ENUMERATION 0x00000008\r
-#define SVG_ANIMATED_INTEGER 0x00000010\r
-#define SVG_ANIMATED_LENGTH 0x00000020\r
-#define SVG_ANIMATED_LENGTH_LIST 0x00000040\r
-#define SVG_ANIMATED_NUMBER 0x00000080\r
-#define SVG_ANIMATED_NUMBER_LIST 0x00000100\r
-#define SVG_ANIMATED_RECT 0x00000200\r
-#define SVG_ANIMATED_STRING 0x00000400\r
-#define SVG_COLOR 0x00000800\r
-#define SVG_CSS_RULE 0x00001000\r
-#define SVG_EXTERNAL_RESOURCES_REQUIRED 0x00002000\r
-#define SVG_FIT_TO_VIEWBOX 0x00004000\r
-#define SVG_ICCCOLOR 0x00008000\r
-#define SVG_LANG_SPACE 0x00010000\r
-#define SVG_LENGTH 0x00020000\r
-#define SVG_LENGTH_LIST 0x00040000\r
-#define SVG_LOCATABLE 0x00080000\r
-#define SVG_NUMBER 0x00100000\r
-#define SVG_NUMBER_LIST 0x00200000\r
-#define SVG_RECT 0x00400000\r
-#define SVG_RENDERING_INTENT 0x00800000\r
-#define SVG_STRING_LIST 0x01000000\r
-#define SVG_STYLABLE 0x02000000\r
-#define SVG_TESTS 0x04000000\r
-#define SVG_TRANSFORMABLE 0x08000000\r
-#define SVG_UNIT_TYPES 0x10000000\r
-#define SVG_URI_REFERENCE 0x20000000\r
-#define SVG_VIEW_SPEC 0x40000000\r
-#define SVG_ZOOM_AND_PAN 0x80000000\r
-\r
-/**\r
- * How many above? Quite handy\r
- */ \r
-#define SVG_NR_INTERFACES 32\r
-\r
-\r
-/**\r
- * Enumerations for SVGElement types\r
- */ \r
-typedef enum\r
-{\r
- SVG_A_ELEMENT = 0,\r
- SVG_ALTGLYPH_ELEMENT,\r
- SVG_ALTGLYPHDEF_ELEMENT,\r
- SVG_ALTGLYPHITEM_ELEMENT,\r
- SVG_ANIMATE_ELEMENT,\r
- SVG_ANIMATECOLOR_ELEMENT,\r
- SVG_ANIMATEMOTION_ELEMENT,\r
- SVG_ANIMATETRANSFORM_ELEMENT,\r
- SVG_CIRCLE_ELEMENT,\r
- SVG_CLIPPATH_ELEMENT,\r
- SVG_COLOR_PROFILE_ELEMENT,\r
- SVG_CURSOR_ELEMENT,\r
- SVG_DEFINITION_SRC_ELEMENT,\r
- SVG_DEFS_ELEMENT,\r
- SVG_DESC_ELEMENT,\r
- SVG_ELLIPSE_ELEMENT,\r
- SVG_FEBLEND_ELEMENT,\r
- SVG_FECOLORMATRIX_ELEMENT,\r
- SVG_FECOMPONENTTRANSFER_ELEMENT,\r
- SVG_FECOMPOSITE_ELEMENT,\r
- SVG_FECONVOLVEMATRIX_ELEMENT,\r
- SVG_FEDIFFUSELIGHTING_ELEMENT,\r
- SVG_FEDISPLACEMENTMAP_ELEMENT,\r
- SVG_FEDISTANTLIGHT_ELEMENT,\r
- SVG_FEFLOOD_ELEMENT,\r
- SVG_FEFUNCA_ELEMENT,\r
- SVG_FEFUNCB_ELEMENT,\r
- SVG_FEFUNCG_ELEMENT,\r
- SVG_FEFUNCR_ELEMENT,\r
- SVG_FEGAUSSIANBLUR_ELEMENT,\r
- SVG_FEIMAGE_ELEMENT,\r
- SVG_FEMERGE_ELEMENT,\r
- SVG_FEMERGENODE_ELEMENT,\r
- SVG_FEMORPHOLOGY_ELEMENT,\r
- SVG_FEOFFSET_ELEMENT,\r
- SVG_FEPOINTLIGHT_ELEMENT,\r
- SVG_FESPECULARLIGHTING_ELEMENT,\r
- SVG_FESPOTLIGHT_ELEMENT,\r
- SVG_FETILE_ELEMENT,\r
- SVG_FETURBULENCE_ELEMENT,\r
- SVG_FILTER_ELEMENT,\r
- SVG_FONT_ELEMENT,\r
- SVG_FONT_FACE_ELEMENT,\r
- SVG_FONT_FACE_FORMAT_ELEMENT,\r
- SVG_FONT_FACE_NAME_ELEMENT,\r
- SVG_FONT_FACE_SRC_ELEMENT,\r
- SVG_FONT_FACE_URI_ELEMENT,\r
- SVG_FOREIGNOBJECT_ELEMENT,\r
- SVG_G_ELEMENT,\r
- SVG_GLYPH_ELEMENT,\r
- SVG_GLYPHREF_ELEMENT,\r
- SVG_HKERN_ELEMENT,\r
- SVG_IMAGE_ELEMENT,\r
- SVG_LINE_ELEMENT,\r
- SVG_LINEARGRADIENT_ELEMENT,\r
- SVG_MARKER_ELEMENT,\r
- SVG_MASK_ELEMENT,\r
- SVG_METADATA_ELEMENT,\r
- SVG_MISSING_GLYPH_ELEMENT,\r
- SVG_MPATH_ELEMENT,\r
- SVG_PATH_ELEMENT,\r
- SVG_PATTERN_ELEMENT,\r
- SVG_POLYGON_ELEMENT,\r
- SVG_POLYLINE_ELEMENT,\r
- SVG_RADIALGRADIENT_ELEMENT,\r
- SVG_RECT_ELEMENT,\r
- SVG_SCRIPT_ELEMENT,\r
- SVG_SET_ELEMENT,\r
- SVG_STOP_ELEMENT,\r
- SVG_STYLE_ELEMENT,\r
- SVG_SVG_ELEMENT,\r
- SVG_SWITCH_ELEMENT,\r
- SVG_SYMBOL_ELEMENT,\r
- SVG_TEXT_ELEMENT,\r
- SVG_TEXTPATH_ELEMENT,\r
- SVG_TITLE_ELEMENT,\r
- SVG_TREF_ELEMENT,\r
- SVG_TSPAN_ELEMENT,\r
- SVG_USE_ELEMENT,\r
- SVG_VIEW_ELEMENT,\r
- SVG_VKERN_ELEMENT,\r
- SVG_MAX_ELEMENT\r
-} SVGElementType;\r
-\r
-\r
-\r
-\r
-/**\r
- * Look up the SVG Element type enum for a given string\r
- * Return -1 if not found\r
- */\r
-int svgElementStrToEnum(const char *str);\r
-\r
-\r
-/**\r
- * Return the string corresponding to a given SVG element type enum\r
- * Return "unknown" if not found\r
- */\r
-const char *svgElementEnumToStr(int type);\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGValue\r
-#########################################################################*/\r
-\r
-\r
-/**\r
- * A helper class to provide a common API across several data types\r
- */\r
-class SVGValue\r
-{\r
-public:\r
-\r
- /**\r
- * Constructors\r
- */\r
- SVGValue()\r
- { init(); }\r
-\r
- SVGValue(const SVGValue &other)\r
- { assign(other); }\r
-\r
- SVGValue(double val)\r
- { init(); type = SVG_DOUBLE; dval = val; }\r
-\r
- SVGValue(long val)\r
- { init(); type = SVG_INT; ival = val; }\r
-\r
- SVGValue(const DOMString &val)\r
- { init(); type = SVG_STRING; sval = val; }\r
-\r
- int getType()\r
- { return type; }\r
-\r
- /**\r
- * Assignment\r
- */\r
- SVGValue &operator=(const SVGValue &val)\r
- { assign(val); return *this; }\r
-\r
- SVGValue &operator=(double val)\r
- { init(); type = SVG_DOUBLE; dval = val; return *this; }\r
-\r
- SVGValue &operator=(long val)\r
- { init(); type = SVG_INT; ival = val; return *this; }\r
-\r
- SVGValue &operator=(const DOMString &val)\r
- { init(); type = SVG_STRING; sval = val; return *this; }\r
-\r
- /**\r
- * Getters\r
- */\r
- double doubleValue()\r
- { return dval; }\r
- \r
- long intValue()\r
- { return ival; }\r
- \r
- DOMString &stringValue()\r
- { return sval; }\r
-\r
-private:\r
-\r
- void init()\r
- {\r
- type = SVG_DOUBLE;\r
- dval = 0.0;\r
- ival = 0;\r
- sval.clear();\r
- }\r
-\r
- void assign(const SVGValue &other)\r
- {\r
- type = other.type;\r
- dval = other.dval;\r
- ival = other.ival;\r
- sval = other.sval;\r
- }\r
-\r
- int type;\r
- double dval;\r
- long ival;\r
- DOMString sval;\r
-\r
-};\r
-\r
-\r
-/*#########################################################################\r
-## SVGElement\r
-#########################################################################*/\r
-\r
-/**\r
- * All of the SVG DOM interfaces that correspond directly to elements in the SVG\r
- * language(e.g., the SVGPathElement interface corresponds directly to the\r
- * 'path' element in the language) are derivative from base class SVGElement.\r
- */\r
-class SVGElement : public Element\r
-{\r
-public:\r
-\r
- //####################################################################\r
- //# BASE METHODS FOR SVGElement\r
- //####################################################################\r
-\r
- /**\r
- * Get the value of the id attribute on the given element.\r
- */\r
- DOMString getId();\r
-\r
- /**\r
- * Set the value of the id attribute on the given element.\r
- */\r
- void setId(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- * Corresponds to attribute xml:base on the given element.\r
- */\r
- DOMString getXmlBase();\r
-\r
- /**\r
- * Corresponds to attribute xml:base on the given element.\r
- */\r
- void setXmlBase(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- * The nearest ancestor 'svg' element. Null if the given element is the\r
- * outermost 'svg' element.\r
- */\r
- SVGElementPtr getOwnerSVGElement();\r
-\r
- /**\r
- * The element which established the current viewport. Often, the nearest\r
- * ancestor 'svg' element. Null if the given element is the outermost 'svg'\r
- * element.\r
- */\r
- SVGElementPtr getViewportElement();\r
-\r
-\r
- //####################################################################\r
- //####################################################################\r
- //# I N T E R F A C E S\r
- //####################################################################\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGAngle \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- unsigned short getUnitType();\r
-\r
- /**\r
- *\r
- */\r
- double getValue();\r
-\r
- /**\r
- *\r
- */\r
- void setValue(double val) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getValueInSpecifiedUnits();\r
-\r
- /**\r
- *\r
- */\r
- void setValueInSpecifiedUnits(double /*val*/) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- DOMString getValueAsString();\r
-\r
- /**\r
- *\r
- */\r
- void setValueAsString(const DOMString &/*val*/) throw (DOMException);\r
-\r
-\r
- /**\r
- *\r
- */\r
- void newValueSpecifiedUnits(unsigned short /*unitType*/,\r
- double /*valueInSpecifiedUnits*/);\r
-\r
- /**\r
- *\r
- */\r
- void convertToSpecifiedUnits(unsigned short /*unitType*/);\r
-\r
- //####################################################################\r
- //# SVGAnimatedAngle \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGAngle getBaseAngleVal();\r
-\r
- /**\r
- *\r
- */\r
- SVGAngle getAnimAngleVal();\r
-\r
-\r
- //####################################################################\r
- //# SVGAnimatedBoolean \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- bool getBaseBooleanVal();\r
-\r
- /**\r
- *\r
- */\r
- void setBaseBooleanVal(bool val) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- bool getAnimBooleanVal();\r
-\r
- //####################################################################\r
- //# SVGAnimatedEnumeration \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- unsigned short getBaseEnumerationVal();\r
-\r
- /**\r
- *\r
- */\r
- void setBaseEnumerationVal(unsigned short val) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- unsigned short getAnimEnumerationVal();\r
-\r
- //####################################################################\r
- //# SVGAnimatedInteger \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- long getBaseIntegerVal();\r
-\r
- /**\r
- *\r
- */\r
- void setBaseIntegerVal(long val) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- long getAnimIntegerVal();\r
-\r
- //####################################################################\r
- //# SVGAnimatedLength \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGLength &getBaseLengthVal();\r
-\r
- /**\r
- *\r
- */\r
- SVGLength &getAnimLengthVal();\r
-\r
- //####################################################################\r
- //# SVGAnimatedLengthList \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGLengthList &getBaseLengthListVal();\r
-\r
- /**\r
- *\r
- */\r
- SVGLengthList &getAnimLengthListVal();\r
-\r
- //####################################################################\r
- //# SVGAnimatedNumber \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- double getBaseNumberVal();\r
-\r
- /**\r
- *\r
- */\r
- void setBaseNumberVal(double val) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getAnimNumberVal();\r
-\r
- //####################################################################\r
- //# SVGAnimatedNumberList \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGNumberList &getBaseNumberListVal();\r
-\r
- /**\r
- *\r
- */\r
- SVGNumberList &getAnimNumberListVal();\r
-\r
- //####################################################################\r
- //# SVGAnimatedRect \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGRect &getBaseRectVal();\r
-\r
- /**\r
- *\r
- */\r
- SVGRect &getAnimRectVal();\r
-\r
- //####################################################################\r
- //# SVGAnimatedString \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- DOMString getBaseVal();\r
-\r
- /**\r
- *\r
- */\r
- void setBaseVal(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- DOMString getAnimVal();\r
-\r
- //####################################################################\r
- //# SVGColor \r
- //####################################################################\r
-\r
- /**\r
- * From CSSValue \r
- * A code defining the type of the value as defined above.\r
- */\r
- unsigned short getCssValueType();\r
-\r
- /**\r
- * From CSSValue \r
- * A string representation of the current value.\r
- */\r
- DOMString getCssText();\r
-\r
- /**\r
- * From CSSValue \r
- * A string representation of the current value.\r
- * Note that setting implies parsing. \r
- */\r
- void setCssText(const DOMString &val) throw (dom::DOMException);\r
-\r
-\r
- /**\r
- *\r
- */\r
- unsigned short getColorType();\r
-\r
- /**\r
- *\r
- */\r
- css::RGBColor getRgbColor();\r
-\r
- /**\r
- *\r
- */\r
- SVGICCColor getIccColor();\r
-\r
-\r
- /**\r
- *\r
- */\r
- void setRGBColor(const DOMString& /*rgbColor*/) throw (SVGException);\r
-\r
- /**\r
- *\r
- */\r
- void setRGBColorICCColor(const DOMString& /*rgbColor*/,\r
- const DOMString& /*iccColor*/)\r
- throw (SVGException);\r
-\r
- /**\r
- *\r
- */\r
- void setColor(unsigned short /*colorType*/,\r
- const DOMString& /*rgbColor*/,\r
- const DOMString& /*iccColor*/)\r
- throw (SVGException);\r
-\r
- //####################################################################\r
- //# SVGCSSRule \r
- //####################################################################\r
-\r
- /**\r
- * From CSSRule \r
- * The type of the rule, as defined above. The expectation is that \r
- * binding-specific casting methods can be used to cast down from an instance of \r
- * the CSSRule interface to the specific derived interface implied by the type.\r
- */\r
- unsigned short getType();\r
-\r
- /**\r
- * From CSSRule \r
- * The parsable textual representation of the rule. This reflects the current \r
- * state of the rule and not its initial value.\r
- */\r
- DOMString getCssText();\r
-\r
- /**\r
- * From CSSRule \r
- * The parsable textual representation of the rule. This reflects the current \r
- * state of the rule and not its initial value.\r
- * Note that setting involves reparsing. \r
- */\r
- void setCssText(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- * From CSSRule \r
- * The style sheet that contains this rule.\r
- */\r
- css::CSSStyleSheet *getParentStyleSheet();\r
-\r
- /**\r
- * From CSSRule \r
- * If this rule is contained inside another rule(e.g. a style rule inside an \r
- * @media block), this is the containing rule. If this rule is not nested inside \r
- * any other rules, this returns null.\r
- */\r
- css::CSSRule *getParentRule();\r
-\r
- //####################################################################\r
- //# SVGExternalResourcesRequired\r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedBoolean getExternalResourcesRequired();\r
-\r
- //####################################################################\r
- //# SVGFitToViewBox \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedRect getViewBox();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedPreserveAspectRatio getPreserveAspectRatio();\r
-\r
- //####################################################################\r
- //# SVGICCColor \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- DOMString getColorProfile();\r
-\r
- /**\r
- *\r
- */\r
- void setColorProfile(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- SVGNumberList &getColors();\r
-\r
- //####################################################################\r
- //# SVGLangSpace \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- DOMString getXmllang();\r
-\r
- /**\r
- *\r
- */\r
- void setXmllang(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- DOMString getXmlspace();\r
-\r
- /**\r
- *\r
- */\r
- void setXmlspace(const DOMString &val) throw (DOMException);\r
-\r
- //####################################################################\r
- //# SVGLength \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- unsigned short getUnitType();\r
-\r
- /**\r
- *\r
- */\r
- double getValue();\r
-\r
- /**\r
- *\r
- */\r
- void setValue(double val) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getValueInSpecifiedUnits();\r
-\r
- /**\r
- *\r
- */\r
- void setValueInSpecifiedUnits(double /*val*/) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- DOMString getValueAsString();\r
-\r
- /**\r
- *\r
- */\r
- void setValueAsString(const DOMString& /*val*/) throw (DOMException);\r
-\r
-\r
- /**\r
- *\r
- */\r
- void newValueSpecifiedUnits(unsigned short /*unitType*/, double /*val*/);\r
-\r
- /**\r
- *\r
- */\r
- void convertToSpecifiedUnits(unsigned short /*unitType*/);\r
-\r
- //####################################################################\r
- //# SVGLengthList \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- unsigned long getNumberOfItems();\r
-\r
-\r
- /**\r
- *\r
- */\r
- void clear() throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- SVGLength initialize(const SVGLength &newItem)\r
- throw (DOMException, SVGException);\r
-\r
- /**\r
- *\r
- */\r
- SVGLength getItem(unsigned long index) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- SVGLength insertItemBefore(const SVGLength &newItem, unsigned long index)\r
- throw (DOMException, SVGException);\r
-\r
- /**\r
- *\r
- */\r
- SVGLength replaceItem(const SVGLength &newItem, unsigned long index)\r
- throw (DOMException, SVGException);\r
-\r
- /**\r
- *\r
- */\r
- SVGLength removeItem(unsigned long index) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- SVGLength appendItem(const SVGLength &newItem)\r
- throw (DOMException, SVGException);\r
-\r
- //####################################################################\r
- //# SVGLocatable \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGElementPtr getNearestViewportElement();\r
-\r
- /**\r
- *\r
- */\r
- SVGElement *getFarthestViewportElement();\r
-\r
- /**\r
- *\r
- */\r
- SVGRect getBBox();\r
-\r
- /**\r
- *\r
- */\r
- SVGMatrix getCTM();\r
-\r
- /**\r
- *\r
- */\r
- SVGMatrix getScreenCTM();\r
-\r
- /**\r
- *\r
- */\r
- SVGMatrix getTransformToElement(const SVGElement &/*element*/)\r
- throw (SVGException);\r
-\r
- //####################################################################\r
- //# SVGNumber \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- double getValue();\r
-\r
- /**\r
- *\r
- */\r
- void setValue(double val) throw (DOMException);\r
-\r
- //####################################################################\r
- //# SVGNumberList \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- unsigned long getNumberOfItems();\r
-\r
-\r
- /**\r
- *\r
- */\r
- void clear() throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- SVGNumber initialize(const SVGNumber &newItem)\r
- throw (DOMException, SVGException);\r
-\r
- /**\r
- *\r
- */\r
- SVGNumber getItem(unsigned long index) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- SVGNumber insertItemBefore(const SVGNumber &newItem, unsigned long index)\r
- throw (DOMException, SVGException);\r
-\r
- /**\r
- *\r
- */\r
- SVGNumber replaceItem(const SVGNumber &newItem, unsigned long index)\r
- throw (DOMException, SVGException);\r
-\r
- /**\r
- *\r
- */\r
- SVGNumber removeItem(unsigned long index) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- SVGNumber appendItem(const SVGNumber &newItem)\r
- throw (DOMException, SVGException);\r
-\r
- //####################################################################\r
- //# SVGRect \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- double getX();\r
-\r
- /**\r
- *\r
- */\r
- void setX(double val) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getY();\r
-\r
- /**\r
- *\r
- */\r
- void setY(double val) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getWidth();\r
-\r
- /**\r
- *\r
- */\r
- void setWidth(double val) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getHeight();\r
-\r
- /**\r
- *\r
- */\r
- void setHeight(double val) throw (DOMException);\r
-\r
- //####################################################################\r
- //# SVGRenderingIntent \r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGStringList \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- unsigned long getNumberOfItems();\r
-\r
- /**\r
- *\r
- */\r
- void clear() throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- DOMString initialize(const DOMString& newItem)\r
- throw (DOMException, SVGException);\r
-\r
- /**\r
- *\r
- */\r
- DOMString getItem(unsigned long index) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- DOMString insertItemBefore(const DOMString& newItem, unsigned long index)\r
- throw (DOMException, SVGException);\r
-\r
- /**\r
- *\r
- */\r
- DOMString replaceItem(const DOMString& newItem, unsigned long index)\r
- throw (DOMException, SVGException);\r
-\r
- /**\r
- *\r
- */\r
- DOMString removeItem(unsigned long index) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- DOMString appendItem(const DOMString& newItem)\r
- throw (DOMException, SVGException);\r
-\r
- //####################################################################\r
- //# SVGStylable \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedString getClassName();\r
-\r
- /**\r
- *\r
- */\r
- css::CSSStyleDeclaration getStyle();\r
-\r
- /**\r
- *\r
- */\r
- css::CSSValue getPresentationAttribute(const DOMString& /*name*/);\r
-\r
- //####################################################################\r
- //# SVGTests \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGStringList &getRequiredFeatures();\r
-\r
- /**\r
- *\r
- */\r
- SVGStringList &getRequiredExtensions();\r
-\r
- /**\r
- *\r
- */\r
- SVGStringList &getSystemLanguage();\r
-\r
- /**\r
- *\r
- */\r
- bool hasExtension(const DOMString& /*extension*/);\r
-\r
- //####################################################################\r
- //# SVGTransformable \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedTransformList &getTransform();\r
-\r
- //####################################################################\r
- //# SVGUnitTypes \r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGURIReference \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedString getHref();\r
-\r
- //####################################################################\r
- //# SVGViewSpec \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGTransformList getTransform();\r
-\r
- /**\r
- *\r
- */\r
- SVGElement *getViewTarget();\r
-\r
- /**\r
- *\r
- */\r
- DOMString getViewBoxString();\r
-\r
- /**\r
- *\r
- */\r
- DOMString getPreserveAspectRatioString();\r
-\r
- /**\r
- *\r
- */\r
- DOMString getTransformString();\r
-\r
- /**\r
- *\r
- */\r
- DOMString getViewTargetString();\r
-\r
- //####################################################################\r
- //# SVGZoomAndPan \r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- unsigned short getZoomAndPan();\r
-\r
- /**\r
- *\r
- */\r
- void setZoomAndPan(unsigned short val) throw (DOMException);\r
-\r
- //####################################################################\r
- //####################################################################\r
- //# E L E M E N T S\r
- //####################################################################\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGAElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedString getTarget();\r
-\r
-\r
-\r
- //####################################################################\r
- //# SVGAltGlyphElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Get the attribute glyphRef on the given element.\r
- */\r
- DOMString getGlyphRef();\r
-\r
- /**\r
- * Set the attribute glyphRef on the given element.\r
- */\r
- void setGlyphRef(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- * Get the attribute format on the given element.\r
- */\r
- DOMString getFormat();\r
-\r
- /**\r
- * Set the attribute format on the given element.\r
- */\r
- void setFormat(const DOMString &val) throw (DOMException);\r
-\r
-\r
- //####################################################################\r
- //# SVGAltGlyphDefElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGAltGlyphItemElement\r
- //####################################################################\r
-\r
-\r
- //####################################################################\r
- //# SVGAnimateElement\r
- //####################################################################\r
-\r
-\r
- //####################################################################\r
- //# SVGAnimateColorElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGAnimateMotionElement\r
- //####################################################################\r
-\r
-\r
- //####################################################################\r
- //# SVGAnimateTransformElement\r
- //####################################################################\r
-\r
-\r
- //####################################################################\r
- //# SVGAnimationElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGElementPtr getTargetElement();\r
-\r
- /**\r
- *\r
- */\r
- double getStartTime();\r
-\r
- /**\r
- *\r
- */\r
- double getCurrentTime();\r
-\r
- /**\r
- *\r
- */\r
- double getSimpleDuration() throw (DOMException);\r
-\r
-\r
-\r
- //####################################################################\r
- //# SVGCircleElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute cx on the given 'circle' element.\r
- */\r
- SVGAnimatedLength getCx();\r
-\r
- /**\r
- * Corresponds to attribute cy on the given 'circle' element.\r
- */\r
- SVGAnimatedLength getCy();\r
-\r
- /**\r
- * Corresponds to attribute r on the given 'circle' element.\r
- */\r
- SVGAnimatedLength getR();\r
-\r
- //####################################################################\r
- //# SVGClipPathElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Corresponds to attribute clipPathUnits on the given 'clipPath' element.\r
- * Takes one of the constants defined in SVGUnitTypes.\r
- */\r
- SVGAnimatedEnumeration getClipPathUnits();\r
-\r
-\r
-\r
- //####################################################################\r
- //# SVGColorProfileElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Get the attribute local on the given element.\r
- */\r
- DOMString getLocal();\r
-\r
- /**\r
- * Set the attribute local on the given element.\r
- */\r
- void setLocal(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- * Get the attribute name on the given element.\r
- */\r
- DOMString getName();\r
-\r
- /**\r
- * Set the attribute name on the given element.\r
- */\r
- void setName(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- * Set the attribute rendering-intent on the given element.\r
- * The type of rendering intent, identified by one of the\r
- * SVGRenderingIntent constants.\r
- */\r
- unsigned short getRenderingIntent();\r
-\r
- /**\r
- * Get the attribute rendering-intent on the given element.\r
- */\r
- void setRenderingIntent(unsigned short val) throw (DOMException);\r
-\r
-\r
- //####################################################################\r
- //# SVGComponentTransferFunctionElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Component Transfer Types\r
- */\r
- typedef enum\r
- {\r
- SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0,\r
- SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,\r
- SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2,\r
- SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,\r
- SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4,\r
- SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5\r
- } ComponentTransferType;\r
-\r
-\r
- /**\r
- * Corresponds to attribute type on the given element. Takes one\\r
- * of the Component Transfer Types.\r
- */\r
- SVGAnimatedEnumeration getType();\r
-\r
- /**\r
- * Corresponds to attribute tableValues on the given element.\r
- */\r
- SVGAnimatedNumberList getTableValues();\r
-\r
- /**\r
- * Corresponds to attribute slope on the given element.\r
- */\r
- SVGAnimatedNumber getSlope();\r
-\r
- /**\r
- * Corresponds to attribute intercept on the given element.\r
- */\r
- SVGAnimatedNumber getIntercept();\r
-\r
- /**\r
- * Corresponds to attribute amplitude on the given element.\r
- */\r
- SVGAnimatedNumber getAmplitude();\r
-\r
- /**\r
- * Corresponds to attribute exponent on the given element.\r
- */\r
- SVGAnimatedNumber getExponent();\r
-\r
- /**\r
- * Corresponds to attribute offset on the given element.\r
- */\r
- SVGAnimatedNumber getOffset();\r
-\r
- //####################################################################\r
- //# SVGCursorElement\r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLength getX();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLength getY();\r
-\r
-\r
- //####################################################################\r
- //# SVGDefinitionSrcElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGDefsElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGDescElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGEllipseElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute cx on the given 'ellipse' element.\r
- */\r
- SVGAnimatedLength getCx();\r
-\r
- /**\r
- * Corresponds to attribute cy on the given 'ellipse' element.\r
- */\r
- SVGAnimatedLength getCy();\r
-\r
- /**\r
- * Corresponds to attribute rx on the given 'ellipse' element.\r
- */\r
- SVGAnimatedLength getRx();\r
-\r
- /**\r
- * Corresponds to attribute ry on the given 'ellipse' element.\r
- */\r
- SVGAnimatedLength getRy();\r
-\r
-\r
- //####################################################################\r
- //# SVGFEBlendElement\r
- //####################################################################\r
-\r
- /**\r
- * Blend Mode Types\r
- */\r
- typedef enum\r
- {\r
- SVG_FEBLEND_MODE_UNKNOWN = 0,\r
- SVG_FEBLEND_MODE_NORMAL = 1,\r
- SVG_FEBLEND_MODE_MULTIPLY = 2,\r
- SVG_FEBLEND_MODE_SCREEN = 3,\r
- SVG_FEBLEND_MODE_DARKEN = 4,\r
- SVG_FEBLEND_MODE_LIGHTEN = 5\r
- } BlendModeType;\r
-\r
- /**\r
- * Corresponds to attribute in on the given 'feBlend' element.\r
- */\r
- SVGAnimatedString getIn1();\r
-\r
- /**\r
- * Corresponds to attribute in2 on the given 'feBlend' element.\r
- */\r
- SVGAnimatedString getIn2();\r
-\r
- /**\r
- * Corresponds to attribute mode on the given 'feBlend' element.\r
- * Takes one of the Blend Mode Types.\r
- */\r
- SVGAnimatedEnumeration getMode();\r
-\r
-\r
- //####################################################################\r
- //# SVGFEColorMatrixElement\r
- //####################################################################\r
-\r
- /**\r
- * Color Matrix Types\r
- */\r
- typedef enum\r
- {\r
- SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0,\r
- SVG_FECOLORMATRIX_TYPE_MATRIX = 1,\r
- SVG_FECOLORMATRIX_TYPE_SATURATE = 2,\r
- SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3,\r
- SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4\r
- } ColorMatrixType;\r
-\r
-\r
- /**\r
- * Corresponds to attribute in on the given 'feColorMatrix' element.\r
- */\r
- SVGAnimatedString getIn1();\r
-\r
- /**\r
- * Corresponds to attribute type on the given 'feColorMatrix' element.\r
- * Takes one of the Color Matrix Types.\r
- */\r
- SVGAnimatedEnumeration getType();\r
-\r
- /**\r
- * Corresponds to attribute values on the given 'feColorMatrix' element.\r
- * Provides access to the contents of the values attribute.\r
- */\r
- SVGAnimatedNumberList getValues();\r
-\r
-\r
- //####################################################################\r
- //# SVGFEComponentTransferElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Corresponds to attribute in on the given 'feComponentTransfer' element.\r
- */\r
- SVGAnimatedString getIn1();\r
-\r
- //####################################################################\r
- //# SVGFECompositeElement\r
- //####################################################################\r
-\r
- /**\r
- * Composite Operators\r
- */\r
- typedef enum\r
- {\r
- SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0,\r
- SVG_FECOMPOSITE_OPERATOR_OVER = 1,\r
- SVG_FECOMPOSITE_OPERATOR_IN = 2,\r
- SVG_FECOMPOSITE_OPERATOR_OUT = 3,\r
- SVG_FECOMPOSITE_OPERATOR_ATOP = 4,\r
- SVG_FECOMPOSITE_OPERATOR_XOR = 5,\r
- SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6\r
- } CompositeOperatorType;\r
-\r
- /**\r
- * Corresponds to attribute in on the given 'feComposite' element.\r
- */\r
- SVGAnimatedString getIn1();\r
-\r
- /**\r
- * Corresponds to attribute in2 on the given 'feComposite' element.\r
- */\r
- SVGAnimatedString getIn2();\r
-\r
- /**\r
- * Corresponds to attribute operator on the given 'feComposite' element.\r
- * Takes one of the Composite Operators.\r
- */\r
- SVGAnimatedEnumeration getOperator();\r
-\r
- /**\r
- * Corresponds to attribute k1 on the given 'feComposite' element.\r
- */\r
- SVGAnimatedNumber getK1();\r
-\r
- /**\r
- * Corresponds to attribute k2 on the given 'feComposite' element.\r
- */\r
- SVGAnimatedNumber getK2();\r
-\r
- /**\r
- * Corresponds to attribute k3 on the given 'feComposite' element.\r
- */\r
- SVGAnimatedNumber getK3();\r
-\r
- /**\r
- * Corresponds to attribute k4 on the given 'feComposite' element.\r
- */\r
- SVGAnimatedNumber getK4();\r
-\r
-\r
- //####################################################################\r
- //# SVGFEConvolveMatrixElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Edge Mode Values\r
- */\r
- typedef enum\r
- {\r
- SVG_EDGEMODE_UNKNOWN = 0,\r
- SVG_EDGEMODE_DUPLICATE = 1,\r
- SVG_EDGEMODE_WRAP = 2,\r
- SVG_EDGEMODE_NONE = 3\r
- } EdgeModeType;\r
-\r
-\r
- /**\r
- * Corresponds to attribute order on the given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedInteger getOrderX();\r
-\r
- /**\r
- * Corresponds to attribute order on the given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedInteger getOrderY();\r
-\r
- /**\r
- * Corresponds to attribute kernelMatrix on the given element.\r
- */\r
- SVGAnimatedNumberList getKernelMatrix();\r
-\r
- /**\r
- * Corresponds to attribute divisor on the given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedNumber getDivisor();\r
-\r
- /**\r
- * Corresponds to attribute bias on the given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedNumber getBias();\r
-\r
- /**\r
- * Corresponds to attribute targetX on the given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedInteger getTargetX();\r
-\r
- /**\r
- * Corresponds to attribute targetY on the given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedInteger getTargetY();\r
-\r
- /**\r
- * Corresponds to attribute edgeMode on the given 'feConvolveMatrix'\r
- * element. Takes one of the Edge Mode Types.\r
- */\r
- SVGAnimatedEnumeration getEdgeMode();\r
-\r
- /**\r
- * Corresponds to attribute kernelUnitLength on the\r
- * given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedLength getKernelUnitLengthX();\r
-\r
- /**\r
- * Corresponds to attribute kernelUnitLength on the given\r
- * 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedLength getKernelUnitLengthY();\r
-\r
- /**\r
- * Corresponds to attribute preserveAlpha on the\r
- * given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedBoolean getPreserveAlpha();\r
-\r
-\r
-\r
- //####################################################################\r
- //# SVGFEDiffuseLightingElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Corresponds to attribute in on the given 'feDiffuseLighting' element.\r
- */\r
- SVGAnimatedString getIn1();\r
-\r
- /**\r
- * Corresponds to attribute surfaceScale on the given\r
- * 'feDiffuseLighting' element.\r
- */\r
- SVGAnimatedNumber getSurfaceScale();\r
-\r
- /**\r
- * Corresponds to attribute diffuseConstant on the given\r
- * 'feDiffuseLighting' element.\r
- */\r
- SVGAnimatedNumber getDiffuseConstant();\r
-\r
- /**\r
- * Corresponds to attribute kernelUnitLength on the given\r
- * 'feDiffuseLighting' element.\r
- */\r
- SVGAnimatedNumber getKernelUnitLengthX();\r
-\r
- /**\r
- * Corresponds to attribute kernelUnitLength on the given\r
- * 'feDiffuseLighting' element.\r
- */\r
- SVGAnimatedNumber getKernelUnitLengthY();\r
-\r
-\r
-\r
-\r
- //####################################################################\r
- //# SVGFEDisplacementMapElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Channel Selectors\r
- */\r
- typedef enum\r
- {\r
- SVG_CHANNEL_UNKNOWN = 0,\r
- SVG_CHANNEL_R = 1,\r
- SVG_CHANNEL_G = 2,\r
- SVG_CHANNEL_B = 3,\r
- SVG_CHANNEL_A = 4\r
- } ChannelSelector;\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedString getIn1();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedString getIn2();\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumber getScale();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedEnumeration getXChannelSelector();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedEnumeration getYChannelSelector();\r
-\r
- //####################################################################\r
- //# SVGFEDistantLightElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Corresponds to attribute azimuth on the given 'feDistantLight' element.\r
- */\r
- SVGAnimatedNumber getAzimuth();\r
-\r
-\r
- /**\r
- * Corresponds to attribute elevation on the given 'feDistantLight'\r
- * element\r
- */\r
- SVGAnimatedNumber getElevation();\r
-\r
-\r
- //####################################################################\r
- //# SVGFEFloodElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedString getIn1();\r
-\r
-\r
- //####################################################################\r
- //# SVGFEFuncAElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGFEFuncBElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGFEFuncGElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGFEFuncRElement\r
- //####################################################################\r
-\r
-\r
- //####################################################################\r
- //# SVGFEGaussianBlurElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedString getIn1();\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumber getStdDeviationX();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumber getStdDeviationY();\r
-\r
-\r
- /**\r
- *\r
- */\r
- void setStdDeviation(double stdDeviationX, double stdDeviationY);\r
-\r
-\r
- //####################################################################\r
- //# SVGFEImageElement\r
- //####################################################################\r
-\r
-\r
- //####################################################################\r
- //# SVGFEMergeElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGFEMergeNodeElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGFEMorphologyElement\r
- //####################################################################\r
-\r
-\r
-\r
- /**\r
- * Morphology Operators\r
- */\r
- typedef enum\r
- {\r
- SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0,\r
- SVG_MORPHOLOGY_OPERATOR_ERODE = 1,\r
- SVG_MORPHOLOGY_OPERATOR_DILATE = 2\r
- } MorphologyOperatorType;\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedString getIn1();\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedEnumeration getOperator();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLength getRadiusX();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLength getRadiusY();\r
-\r
- //####################################################################\r
- //# SVGFEOffsetElement\r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedString getIn1();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLength getDx();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLength getDy();\r
-\r
-\r
- //####################################################################\r
- //# SVGFEPointLightElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'fePointLight' element.\r
- */\r
- SVGAnimatedNumber getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'fePointLight' element.\r
- */\r
- SVGAnimatedNumber getY();\r
-\r
- /**\r
- * Corresponds to attribute z on the given 'fePointLight' element.\r
- */\r
- SVGAnimatedNumber getZ();\r
-\r
- //####################################################################\r
- //# SVGFESpecularLightingElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedString getIn1();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumber getSurfaceScale();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumber getSpecularConstant();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumber getSpecularExponent();\r
-\r
-\r
- //####################################################################\r
- //# SVGFESpotLightElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'feSpotLight' element.\r
- */\r
- SVGAnimatedNumber getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'feSpotLight' element.\r
- */\r
- SVGAnimatedNumber getY();\r
-\r
- /**\r
- * Corresponds to attribute z on the given 'feSpotLight' element.\r
- */\r
- SVGAnimatedNumber getZ();\r
-\r
- /**\r
- * Corresponds to attribute pointsAtX on the given 'feSpotLight' element.\r
- */\r
- SVGAnimatedNumber getPointsAtX();\r
-\r
- /**\r
- * Corresponds to attribute pointsAtY on the given 'feSpotLight' element.\r
- */\r
- SVGAnimatedNumber getPointsAtY();\r
-\r
- /**\r
- * Corresponds to attribute pointsAtZ on the given 'feSpotLight' element.\r
- */\r
- SVGAnimatedNumber getPointsAtZ();\r
-\r
- /**\r
- * Corresponds to attribute specularExponent on the\r
- * given 'feSpotLight' element.\r
- */\r
- SVGAnimatedNumber getSpecularExponent();\r
-\r
- /**\r
- * Corresponds to attribute limitingConeAngle on the\r
- * given 'feSpotLight' element.\r
- */\r
- SVGAnimatedNumber getLimitingConeAngle();\r
-\r
-\r
- //####################################################################\r
- //# SVGFETileElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedString getIn1();\r
-\r
-\r
- //####################################################################\r
- //# SVGFETurbulenceElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Turbulence Types\r
- */\r
- typedef enum\r
- {\r
- SVG_TURBULENCE_TYPE_UNKNOWN = 0,\r
- SVG_TURBULENCE_TYPE_FRACTALNOISE = 1,\r
- SVG_TURBULENCE_TYPE_TURBULENCE = 2\r
- } TurbulenceType;\r
-\r
- /**\r
- * Stitch Options\r
- */\r
- typedef enum\r
- {\r
- SVG_STITCHTYPE_UNKNOWN = 0,\r
- SVG_STITCHTYPE_STITCH = 1,\r
- SVG_STITCHTYPE_NOSTITCH = 2\r
- } StitchOption;\r
-\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumber getBaseFrequencyX();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumber getBaseFrequencyY();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedInteger getNumOctaves();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedNumber getSeed();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedEnumeration getStitchTiles();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedEnumeration getType();\r
-\r
-\r
-\r
- //####################################################################\r
- //# SVGFilterElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Corresponds to attribute filterUnits on the given 'filter' element. Takes one\r
- * of the constants defined in SVGUnitTypes.\r
- */\r
- SVGAnimatedEnumeration getFilterUnits();\r
-\r
- /**\r
- * Corresponds to attribute primitiveUnits on the given 'filter' element. Takes\r
- * one of the constants defined in SVGUnitTypes.\r
- */\r
- SVGAnimatedEnumeration getPrimitiveUnits();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLength getX();\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'filter' element.\r
- */\r
- SVGAnimatedLength getY();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'filter' element.\r
- */\r
- SVGAnimatedLength getWidth();\r
-\r
- /**\r
- * Corresponds to attribute height on the given 'filter' element.\r
- */\r
- SVGAnimatedLength getHeight();\r
-\r
-\r
- /**\r
- * Corresponds to attribute filterRes on the given 'filter' element.\r
- * Contains the X component of attribute filterRes.\r
- */\r
- SVGAnimatedInteger getFilterResX();\r
-\r
- /**\r
- * Corresponds to attribute filterRes on the given 'filter' element.\r
- * Contains the Y component(possibly computed automatically)\r
- * of attribute filterRes.\r
- */\r
- SVGAnimatedInteger getFilterResY();\r
-\r
- /**\r
- * Sets the values for attribute filterRes.\r
- */\r
- void setFilterRes(unsigned long filterResX, unsigned long filterResY);\r
-\r
-\r
- //####################################################################\r
- //# SVGFontElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGFontFaceElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGFontFaceFormatElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGFontFaceNameElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGFontFaceSrcElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGFontFaceUriElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGForeignObjectElement\r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLength getX();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLength getY();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLength getWidth();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLength getHeight();\r
-\r
-\r
-\r
- //####################################################################\r
- //# SVGGlyphRefElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Get the attribute glyphRef on the given element.\r
- */\r
- DOMString getGlyphRef();\r
-\r
- /**\r
- * Set the attribute glyphRef on the given element.\r
- */\r
- void setGlyphRef(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- * Get the attribute format on the given element.\r
- */\r
- DOMString getFormat();\r
-\r
- /**\r
- * Set the attribute format on the given element.\r
- */\r
- void setFormat(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- * Get the attribute x on the given element.\r
- */\r
- double getX();\r
-\r
- /**\r
- * Set the attribute x on the given element.\r
- */\r
- void setX(double val) throw (DOMException);\r
-\r
- /**\r
- * Get the attribute y on the given element.\r
- */\r
- double getY();\r
-\r
- /**\r
- * Set the attribute y on the given element.\r
- */\r
- void setY(double val) throw (DOMException);\r
-\r
- /**\r
- * Get the attribute dx on the given element.\r
- */\r
- double getDx();\r
-\r
- /**\r
- * Set the attribute dx on the given element.\r
- */\r
- void setDx(double val) throw (DOMException);\r
-\r
- /**\r
- * Get the attribute dy on the given element.\r
- */\r
- double getDy();\r
-\r
- /**\r
- * Set the attribute dy on the given element.\r
- */\r
- void setDy(double val) throw (DOMException);\r
-\r
-\r
- //####################################################################\r
- //# SVGGradientElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Spread Method Types\r
- */\r
- typedef enum\r
- {\r
- SVG_SPREADMETHOD_UNKNOWN = 0,\r
- SVG_SPREADMETHOD_PAD = 1,\r
- SVG_SPREADMETHOD_REFLECT = 2,\r
- SVG_SPREADMETHOD_REPEAT = 3\r
- } SpreadMethodType;\r
-\r
-\r
- /**\r
- * Corresponds to attribute gradientUnits on the given element.\r
- * Takes one of the constants defined in SVGUnitTypes.\r
- */\r
- SVGAnimatedEnumeration getGradientUnits();\r
-\r
- /**\r
- * Corresponds to attribute gradientTransform on the given element.\r
- */\r
- SVGAnimatedTransformList getGradientTransform();\r
-\r
- /**\r
- * Corresponds to attribute spreadMethod on the given element.\r
- * One of the Spread Method Types.\r
- */\r
- SVGAnimatedEnumeration getSpreadMethod();\r
-\r
-\r
-\r
- //####################################################################\r
- //# SVGHKernElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGImageElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'image' element.\r
- */\r
- SVGAnimatedLength getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'image' element.\r
- */\r
- SVGAnimatedLength getY();\r
-\r
- /**\r
- * Corresponds to attribute width on the given 'image' element.\r
- */\r
- SVGAnimatedLength getWidth();\r
-\r
- /**\r
- * Corresponds to attribute height on the given 'image' element.\r
- */\r
- SVGAnimatedLength getHeight();\r
-\r
-\r
- /**\r
- * Corresponds to attribute preserveAspectRatio on the given element.\r
- */\r
- SVGAnimatedPreserveAspectRatio getPreserveAspectRatio();\r
-\r
- //####################################################################\r
- //# SVGLinearGradientElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute x1 on the given 'linearGradient' element.\r
- */\r
- SVGAnimatedLength getX1();\r
-\r
- /**\r
- * Corresponds to attribute y1 on the given 'linearGradient' element.\r
- */\r
- SVGAnimatedLength getY1();\r
-\r
- /**\r
- * Corresponds to attribute x2 on the given 'linearGradient' element.\r
- */\r
- SVGAnimatedLength getX2();\r
-\r
- /**\r
- * Corresponds to attribute y2 on the given 'linearGradient' element.\r
- */\r
- SVGAnimatedLength getY2();\r
-\r
-\r
-\r
- //####################################################################\r
- //# SVGLineElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute x1 on the given 'line' element.\r
- */\r
- SVGAnimatedLength getX1();\r
-\r
- /**\r
- * Corresponds to attribute y1 on the given 'line' element.\r
- */\r
- SVGAnimatedLength getY1();\r
-\r
- /**\r
- * Corresponds to attribute x2 on the given 'line' element.\r
- */\r
- SVGAnimatedLength getX2();\r
-\r
- /**\r
- * Corresponds to attribute y2 on the given 'line' element.\r
- */\r
- SVGAnimatedLength getY2();\r
-\r
-\r
- //####################################################################\r
- //# SVGMarkerElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Marker Unit Types\r
- */\r
- typedef enum\r
- {\r
- SVG_MARKERUNITS_UNKNOWN = 0,\r
- SVG_MARKERUNITS_USERSPACEONUSE = 1,\r
- SVG_MARKERUNITS_STROKEWIDTH = 2\r
- } MarkerUnitType;\r
-\r
- /**\r
- * Marker Orientation Types\r
- */\r
- typedef enum\r
- {\r
- SVG_MARKER_ORIENT_UNKNOWN = 0,\r
- SVG_MARKER_ORIENT_AUTO = 1,\r
- SVG_MARKER_ORIENT_ANGLE = 2\r
- } MarkerOrientationType;\r
-\r
-\r
- /**\r
- * Corresponds to attribute refX on the given 'marker' element.\r
- */\r
- SVGAnimatedLength getRefX();\r
-\r
- /**\r
- * Corresponds to attribute refY on the given 'marker' element.\r
- */\r
- SVGAnimatedLength getRefY();\r
-\r
- /**\r
- * Corresponds to attribute markerUnits on the given 'marker' element.\r
- * One of the Marker Units Types defined above.\r
- */\r
- SVGAnimatedEnumeration getMarkerUnits();\r
-\r
- /**\r
- * Corresponds to attribute markerWidth on the given 'marker' element.\r
- */\r
- SVGAnimatedLength getMarkerWidth();\r
-\r
- /**\r
- * Corresponds to attribute markerHeight on the given 'marker' element.\r
- */\r
- SVGAnimatedLength getMarkerHeight();\r
-\r
- /**\r
- * Corresponds to attribute orient on the given 'marker' element.\r
- * One of the Marker Orientation Types defined above.\r
- */\r
- SVGAnimatedEnumeration getOrientType();\r
-\r
- /**\r
- * Corresponds to attribute orient on the given 'marker' element.\r
- * If markerUnits is SVG_MARKER_ORIENT_ANGLE, the angle value for\r
- * attribute orient; otherwise, it will be set to zero.\r
- */\r
- SVGAnimatedAngle getOrientAngle();\r
-\r
-\r
- /**\r
- * Sets the value of attribute orient to 'auto'.\r
- */\r
- void setOrientToAuto();\r
-\r
- /**\r
- * Sets the value of attribute orient to the given angle.\r
- */\r
- void setOrientToAngle(const SVGAngle &angle);\r
-\r
-\r
- //####################################################################\r
- //# SVGMaskElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Corresponds to attribute maskUnits on the given 'mask' element. Takes one of\r
- * the constants defined in SVGUnitTypes.\r
- */\r
- SVGAnimatedEnumeration getMaskUnits();\r
-\r
- /**\r
- * Corresponds to attribute maskContentUnits on the given 'mask' element. Takes\r
- * one of the constants defined in SVGUnitTypes.\r
- */\r
- SVGAnimatedEnumeration getMaskContentUnits();\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'mask' element.\r
- */\r
- SVGAnimatedLength getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'mask' element.\r
- */\r
- SVGAnimatedLength getY();\r
-\r
- /**\r
- * Corresponds to attribute width on the given 'mask' element.\r
- */\r
- SVGAnimatedLength getWidth();\r
-\r
- /**\r
- * Corresponds to attribute height on the given 'mask' element.\r
- */\r
- SVGAnimatedLength getHeight();\r
-\r
- //####################################################################\r
- //# SVGMetadataElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGMPathElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGPathElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGPatternElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute patternUnits on the given 'pattern' element.\r
- * Takes one of the constants defined in SVGUnitTypes.\r
- */\r
- SVGAnimatedEnumeration getPatternUnits();\r
-\r
- /**\r
- * Corresponds to attribute patternContentUnits on the given 'pattern'\r
- * element. Takes one of the constants defined in SVGUnitTypes.\r
- */\r
- SVGAnimatedEnumeration getPatternContentUnits();\r
-\r
- /**\r
- * Corresponds to attribute patternTransform on the given 'pattern' element.\r
- */\r
- SVGAnimatedTransformList getPatternTransform();\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'pattern' element.\r
- */\r
- SVGAnimatedLength getX();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedLength getY();\r
-\r
- /**\r
- * Corresponds to attribute width on the given 'pattern' element.\r
- */\r
- SVGAnimatedLength getWidth();\r
-\r
- /**\r
- * Corresponds to attribute height on the given 'pattern' element.\r
- */\r
- SVGAnimatedLength getHeight();\r
-\r
-\r
- //####################################################################\r
- //# SVGPolyLineElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGPolygonElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGMissingGlyphElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute pathLength on the given 'path' element.\r
- */\r
- SVGAnimatedNumber getPathLength();\r
-\r
- /**\r
- * Returns the user agent's computed value for the total length of the path using\r
- * the user agent's distance-along-a-path algorithm, as a distance in the current\r
- * user coordinate system.\r
- */\r
- double getTotalLength();\r
-\r
- /**\r
- * Returns the(x,y) coordinate in user space which is distance units along the\r
- * path, utilizing the user agent's distance-along-a-path algorithm.\r
- */\r
- SVGPoint getPointAtLength(double distance);\r
-\r
- /**\r
- * Returns the index into pathSegList which is distance units along the path,\r
- * utilizing the user agent's distance-along-a-path algorithm.\r
- */\r
- unsigned long getPathSegAtLength(double distance);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegClosePath object.\r
- */\r
- SVGPathSegClosePath\r
- createSVGPathSegClosePath();\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegMovetoAbs object.\r
- */\r
- SVGPathSegMovetoAbs\r
- createSVGPathSegMovetoAbs(double x, double y);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegMovetoRel object.\r
- */\r
- SVGPathSegMovetoRel\r
- createSVGPathSegMovetoRel(double x, double y);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegLinetoAbs object.\r
- */\r
- SVGPathSegLinetoAbs\r
- createSVGPathSegLinetoAbs(double x, double y);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegLinetoRel object.\r
- */\r
- SVGPathSegLinetoRel\r
- createSVGPathSegLinetoRel(double x, double y);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegCurvetoCubicAbs object.\r
- */\r
- SVGPathSegCurvetoCubicAbs\r
- createSVGPathSegCurvetoCubicAbs(double x, double y,\r
- double x1, double y1, double x2, double y2);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegCurvetoCubicRel object.\r
- */\r
- SVGPathSegCurvetoCubicRel\r
- createSVGPathSegCurvetoCubicRel(double x, double y,\r
- double x1, double y1, double x2, double y2);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticAbs object.\r
- */\r
- SVGPathSegCurvetoQuadraticAbs\r
- createSVGPathSegCurvetoQuadraticAbs(double x, double y,\r
- double x1, double y1);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticRel object.\r
- */\r
- SVGPathSegCurvetoQuadraticRel\r
- createSVGPathSegCurvetoQuadraticRel(double x, double y,\r
- double x1, double y1);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegArcAbs object.\r
- */\r
- SVGPathSegArcAbs\r
- createSVGPathSegArcAbs(double x, double y,\r
- double r1, double r2, double angle,\r
- bool largeArcFlag, bool sweepFlag);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegArcRel object.\r
- */\r
- SVGPathSegArcRel\r
- createSVGPathSegArcRel(double x, double y, double r1,\r
- double r2, double angle, bool largeArcFlag,\r
- bool sweepFlag);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalAbs object.\r
- */\r
- SVGPathSegLinetoHorizontalAbs\r
- createSVGPathSegLinetoHorizontalAbs(double x);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalRel object.\r
- */\r
- SVGPathSegLinetoHorizontalRel\r
- createSVGPathSegLinetoHorizontalRel(double x);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegLinetoVerticalAbs object.\r
- */\r
- SVGPathSegLinetoVerticalAbs\r
- createSVGPathSegLinetoVerticalAbs(double y);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegLinetoVerticalRel object.\r
- */\r
- SVGPathSegLinetoVerticalRel\r
- createSVGPathSegLinetoVerticalRel(double y);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothAbs object.\r
- */\r
- SVGPathSegCurvetoCubicSmoothAbs\r
- createSVGPathSegCurvetoCubicSmoothAbs(double x, double y,\r
- double x2, double y2);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothRel object.\r
- */\r
- SVGPathSegCurvetoCubicSmoothRel\r
- createSVGPathSegCurvetoCubicSmoothRel(double x, double y,\r
- double x2, double y2);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothAbs\r
- * object.\r
- */\r
- SVGPathSegCurvetoQuadraticSmoothAbs\r
- createSVGPathSegCurvetoQuadraticSmoothAbs(double x, double y);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothRel\r
- * object.\r
- */\r
- SVGPathSegCurvetoQuadraticSmoothRel\r
- createSVGPathSegCurvetoQuadraticSmoothRel(double x, double y);\r
-\r
-\r
- //####################################################################\r
- //# SVGRadialGradientElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Corresponds to attribute cx on the given 'radialGradient' element.\r
- */\r
- SVGAnimatedLength getCx();\r
-\r
-\r
- /**\r
- * Corresponds to attribute cy on the given 'radialGradient' element.\r
- */\r
- SVGAnimatedLength getCy();\r
-\r
-\r
- /**\r
- * Corresponds to attribute r on the given 'radialGradient' element.\r
- */\r
- SVGAnimatedLength getR();\r
-\r
-\r
- /**\r
- * Corresponds to attribute fx on the given 'radialGradient' element.\r
- */\r
- SVGAnimatedLength getFx();\r
-\r
-\r
- /**\r
- * Corresponds to attribute fy on the given 'radialGradient' element.\r
- */\r
- SVGAnimatedLength getFy();\r
-\r
-\r
- //####################################################################\r
- //# SVGRectElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'rect' element.\r
- */\r
- SVGAnimatedLength getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'rect' element.\r
- */\r
- SVGAnimatedLength getY();\r
-\r
- /**\r
- * Corresponds to attribute width on the given 'rect' element.\r
- */\r
- SVGAnimatedLength getWidth();\r
-\r
- /**\r
- * Corresponds to attribute height on the given 'rect' element.\r
- */\r
- SVGAnimatedLength getHeight();\r
-\r
-\r
- /**\r
- * Corresponds to attribute rx on the given 'rect' element.\r
- */\r
- SVGAnimatedLength getRx();\r
-\r
- /**\r
- * Corresponds to attribute ry on the given 'rect' element.\r
- */\r
- SVGAnimatedLength getRy();\r
-\r
-\r
- //####################################################################\r
- //# SVGScriptElement\r
- //####################################################################\r
-\r
- /**\r
- *\r
- */\r
- DOMString getType();\r
-\r
- /**\r
- *\r
- */\r
- void setType(const DOMString &val) throw (DOMException);\r
-\r
- //####################################################################\r
- //# SVGSetElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGStopElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Corresponds to attribute offset on the given 'stop' element.\r
- */\r
- SVGAnimatedNumber getOffset();\r
-\r
-\r
- //####################################################################\r
- //# SVGStyleElement\r
- //####################################################################\r
-\r
- /**\r
- * Get the attribute xml:space on the given element.\r
- */\r
- DOMString getXmlspace();\r
-\r
- /**\r
- * Set the attribute xml:space on the given element.\r
- */\r
- void setXmlspace(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- * Get the attribute type on the given 'style' element.\r
- */\r
- DOMString getType();\r
-\r
- /**\r
- * Set the attribute type on the given 'style' element.\r
- */\r
- void setType(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- * Get the attribute media on the given 'style' element.\r
- */\r
- DOMString getMedia();\r
-\r
- /**\r
- * Set the attribute media on the given 'style' element.\r
- */\r
- void setMedia(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- * Get the attribute title on the given 'style' element.\r
- */\r
- DOMString getTitle();\r
-\r
- /**\r
- * Set the attribute title on the given 'style' element.\r
- */\r
- void setTitle(const DOMString &val) throw (DOMException);\r
-\r
- //####################################################################\r
- //# SVGSymbolElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGSVGElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'svg' element.\r
- */\r
- SVGAnimatedLength getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'svg' element.\r
- */\r
- SVGAnimatedLength getY();\r
-\r
- /**\r
- * Corresponds to attribute width on the given 'svg' element.\r
- */\r
- SVGAnimatedLength getWidth();\r
-\r
- /**\r
- * Corresponds to attribute height on the given 'svg' element.\r
- */\r
- SVGAnimatedLength getHeight();\r
-\r
- /**\r
- * Get the attribute contentScriptType on the given 'svg' element.\r
- */\r
- DOMString getContentScriptType();\r
-\r
- /**\r
- * Set the attribute contentScriptType on the given 'svg' element.\r
- */\r
- void setContentScriptType(const DOMString &val) throw (DOMException);\r
-\r
-\r
- /**\r
- * Get the attribute contentStyleType on the given 'svg' element.\r
- */\r
- DOMString getContentStyleType();\r
-\r
- /**\r
- * Set the attribute contentStyleType on the given 'svg' element.\r
- */\r
- void setContentStyleType(const DOMString &val) throw (DOMException);\r
-\r
- /**\r
- * The position and size of the viewport(implicit or explicit) that corresponds\r
- * to this 'svg' element. When the user agent is actually rendering the content,\r
- * then the position and size values represent the actual values when rendering.\r
- * The position and size values are unitless values in the coordinate system of\r
- * the parent element. If no parent element exists(i.e., 'svg' element\r
- * represents the root of the document tree), if this SVG document is embedded as\r
- * part of another document(e.g., via the HTML 'object' element), then the\r
- * position and size are unitless values in the coordinate system of the parent\r
- * document.(If the parent uses CSS or XSL layout, then unitless values\r
- * represent pixel units for the current CSS or XSL viewport, as described in the\r
- * CSS2 specification.) If the parent element does not have a coordinate system,\r
- * then the user agent should provide reasonable default values for this attribute.\r
- * */\r
- SVGRect getViewport();\r
-\r
- /**\r
- * Size of a pixel units(as defined by CSS2) along the x-axis of the viewport,\r
- * which represents a unit somewhere in the range of 70dpi to 120dpi, and, on\r
- * systems that support this, might actually match the characteristics of the\r
- * target medium. On systems where it is impossible to know the size of a pixel,\r
- * a suitable default pixel size is provided.\r
- */\r
- double getPixelUnitToMillimeterX();\r
-\r
- /**\r
- * Corresponding size of a pixel unit along the y-axis of the viewport.\r
- */\r
- double getPixelUnitToMillimeterY();\r
-\r
- /**\r
- * User interface(UI) events in DOM Level 2 indicate the screen positions at\r
- * which the given UI event occurred. When the user agent actually knows the\r
- * physical size of a "screen unit", this attribute will express that information;\r
- * otherwise, user agents will provide a suitable default value such as .28mm.\r
- */\r
- double getScreenPixelToMillimeterX();\r
-\r
- /**\r
- * Corresponding size of a screen pixel along the y-axis of the viewport.\r
- */\r
- double getScreenPixelToMillimeterY();\r
-\r
-\r
- /**\r
- * The initial view(i.e., before magnification and panning) of the current\r
- * innermost SVG document fragment can be either the "standard" view(i.e., based\r
- * on attributes on the 'svg' element such as fitBoxToViewport) or to a "custom"\r
- * view(i.e., a hyperlink into a particular 'view' or other element - see\r
- * Linking into SVG content: URI fragments and SVG views). If the initial view is\r
- * the "standard" view, then this attribute is false. If the initial view is a\r
- * "custom" view, then this attribute is true.\r
- */\r
- bool getUseCurrentView();\r
-\r
- /**\r
- * Set the value above\r
- */\r
- void setUseCurrentView(bool val) throw (DOMException);\r
-\r
- /**\r
- * The definition of the initial view(i.e., before magnification and panning) of\r
- * the current innermost SVG document fragment. The meaning depends on the\r
- * situation:\r
- * \r
- * * If the initial view was a "standard" view, then:\r
- * o the values for viewBox, preserveAspectRatio and zoomAndPan within\r
- * currentView will match the values for the corresponding DOM attributes that\r
- * are on SVGSVGElement directly\r
- * o the values for transform and viewTarget within currentView will be null\r
- * * If the initial view was a link into a 'view' element, then:\r
- * o the values for viewBox, preserveAspectRatio and zoomAndPan within\r
- * currentView will correspond to the corresponding attributes for the given\r
- * 'view' element\r
- * o the values for transform and viewTarget within currentView will be null\r
- * * If the initial view was a link into another element(i.e., other than a\r
- * 'view'), then:\r
- * o the values for viewBox, preserveAspectRatio and zoomAndPan within\r
- * currentView will match the values for the corresponding DOM attributes that\r
- * are on SVGSVGElement directly for the closest ancestor 'svg' element\r
- * o the values for transform within currentView will be null\r
- * o the viewTarget within currentView will represent the target of the link\r
- * * If the initial view was a link into the SVG document fragment using an SVG\r
- * view specification fragment identifier(i.e., #svgView(...)), then:\r
- * o the values for viewBox, preserveAspectRatio, zoomAndPan, transform and\r
- * viewTarget within currentView will correspond to the values from the SVG view\r
- * specification fragment identifier\r
- * \r
- */\r
- SVGViewSpec getCurrentView();\r
-\r
-\r
- /**\r
- * This attribute indicates the current scale factor relative to the initial view\r
- * to take into account user magnification and panning operations, as described\r
- * under Magnification and panning. DOM attributes currentScale and\r
- * currentTranslate are equivalent to the 2x3 matrix [a b c d e f] =\r
- * [currentScale 0 0 currentScale currentTranslate.x currentTranslate.y]. If\r
- * "magnification" is enabled(i.e., zoomAndPan="magnify"), then the effect is as\r
- * if an extra transformation were placed at the outermost level on the SVG\r
- * document fragment(i.e., outside the outermost 'svg' element).\r
- */\r
- double getCurrentScale();\r
-\r
- /**\r
- * Set the value above.\r
- */\r
- void setCurrentScale(double val) throw (DOMException);\r
-\r
- /**\r
- * The corresponding translation factor that takes into account\r
- * user "magnification".\r
- */\r
- SVGPoint getCurrentTranslate();\r
-\r
- /**\r
- * Takes a time-out value which indicates that redraw shall not occur until:(a)\r
- * the corresponding unsuspendRedraw(suspend_handle_id) call has been made,(b)\r
- * an unsuspendRedrawAll() call has been made, or(c) its timer has timed out. In\r
- * environments that do not support interactivity(e.g., print media), then\r
- * redraw shall not be suspended. suspend_handle_id =\r
- * suspendRedraw(max_wait_milliseconds) and unsuspendRedraw(suspend_handle_id)\r
- * must be packaged as balanced pairs. When you want to suspend redraw actions as\r
- * a collection of SVG DOM changes occur, then precede the changes to the SVG DOM\r
- * with a method call similar to suspend_handle_id =\r
- * suspendRedraw(max_wait_milliseconds) and follow the changes with a method call\r
- * similar to unsuspendRedraw(suspend_handle_id). Note that multiple\r
- * suspendRedraw calls can be used at once and that each such method call is\r
- * treated independently of the other suspendRedraw method calls.\r
- */\r
- unsigned long suspendRedraw(unsigned long max_wait_milliseconds);\r
-\r
- /**\r
- * Cancels a specified suspendRedraw() by providing a unique suspend_handle_id.\r
- */\r
- void unsuspendRedraw(unsigned long suspend_handle_id) throw (DOMException);\r
-\r
- /**\r
- * Cancels all currently active suspendRedraw() method calls. This method is most\r
- * useful at the very end of a set of SVG DOM calls to ensure that all pending\r
- * suspendRedraw() method calls have been cancelled.\r
- */\r
- void unsuspendRedrawAll();\r
-\r
- /**\r
- * In rendering environments supporting interactivity, forces the user agent to\r
- * immediately redraw all regions of the viewport that require updating.\r
- */\r
- void forceRedraw();\r
-\r
- /**\r
- * Suspends(i.e., pauses) all currently running animations that are defined\r
- * within the SVG document fragment corresponding to this 'svg' element, causing\r
- * the animation clock corresponding to this document fragment to stand still\r
- * until it is unpaused.\r
- */\r
- void pauseAnimations();\r
-\r
- /**\r
- * Unsuspends(i.e., unpauses) currently running animations that are defined\r
- * within the SVG document fragment, causing the animation clock to continue from\r
- * the time at which it was suspended.\r
- */\r
- void unpauseAnimations();\r
-\r
- /**\r
- * Returns true if this SVG document fragment is in a paused state.\r
- */\r
- bool animationsPaused();\r
-\r
- /**\r
- * Returns the current time in seconds relative to the start time for\r
- * the current SVG document fragment.\r
- */\r
- double getCurrentTime();\r
-\r
- /**\r
- * Adjusts the clock for this SVG document fragment, establishing\r
- * a new current time.\r
- */\r
- void setCurrentTime(double seconds);\r
-\r
- /**\r
- * Returns the list of graphics elements whose rendered content intersects the\r
- * supplied rectangle, honoring the 'pointer-events' property value on each\r
- * candidate graphics element.\r
- */\r
- NodeList getIntersectionList(const SVGRect &rect,\r
- const SVGElementPtr referenceElement);\r
-\r
- /**\r
- * Returns the list of graphics elements whose rendered content is entirely\r
- * contained within the supplied rectangle, honoring the 'pointer-events'\r
- * property value on each candidate graphics element.\r
- */\r
- NodeList getEnclosureList(const SVGRect &rect,\r
- const SVGElementPtr referenceElement);\r
-\r
- /**\r
- * Returns true if the rendered content of the given element intersects the\r
- * supplied rectangle, honoring the 'pointer-events' property value on each\r
- * candidate graphics element.\r
- */\r
- bool checkIntersection(const SVGElementPtr element, const SVGRect &rect);\r
-\r
- /**\r
- * Returns true if the rendered content of the given element is entirely\r
- * contained within the supplied rectangle, honoring the 'pointer-events'\r
- * property value on each candidate graphics element.\r
- */\r
- bool checkEnclosure(const SVGElementPtr element, const SVGRect &rect);\r
-\r
- /**\r
- * Unselects any selected objects, including any selections of text\r
- * strings and type-in bars.\r
- */\r
- void deselectAll();\r
-\r
- /**\r
- * Creates an SVGNumber object outside of any document trees. The object\r
- * is initialized to a value of zero.\r
- */\r
- SVGNumber createSVGNumber();\r
-\r
- /**\r
- * Creates an SVGLength object outside of any document trees. The object\r
- * is initialized to the value of 0 user units.\r
- */\r
- SVGLength createSVGLength();\r
-\r
- /**\r
- * Creates an SVGAngle object outside of any document trees. The object\r
- * is initialized to the value 0 degrees(unitless).\r
- */\r
- SVGAngle createSVGAngle();\r
-\r
- /**\r
- * Creates an SVGPoint object outside of any document trees. The object\r
- * is initialized to the point(0,0) in the user coordinate system.\r
- */\r
- SVGPoint createSVGPoint();\r
-\r
- /**\r
- * Creates an SVGMatrix object outside of any document trees. The object\r
- * is initialized to the identity matrix.\r
- */\r
- SVGMatrix createSVGMatrix();\r
-\r
- /**\r
- * Creates an SVGRect object outside of any document trees. The object\r
- * is initialized such that all values are set to 0 user units.\r
- */\r
- SVGRect createSVGRect();\r
-\r
- /**\r
- * Creates an SVGTransform object outside of any document trees.\r
- * The object is initialized to an identity matrix transform\r
- * (SVG_TRANSFORM_MATRIX).\r
- */\r
- SVGTransform createSVGTransform();\r
-\r
- /**\r
- * Creates an SVGTransform object outside of any document trees.\r
- * The object is initialized to the given matrix transform\r
- * (i.e., SVG_TRANSFORM_MATRIX).\r
- */\r
- SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix);\r
-\r
- /**\r
- * Searches this SVG document fragment(i.e., the search is restricted to a\r
- * subset of the document tree) for an Element whose id is given by elementId. If\r
- * an Element is found, that Element is returned. If no such element exists,\r
- * returns null. Behavior is not defined if more than one element has this id.\r
- */\r
- ElementPtr getElementById(const DOMString& elementId);\r
-\r
-\r
- //####################################################################\r
- //# SVGTextElement\r
- //####################################################################\r
-\r
-\r
- //####################################################################\r
- //# SVGTextContentElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * lengthAdjust Types\r
- */\r
- typedef enum\r
- {\r
- LENGTHADJUST_UNKNOWN = 0,\r
- LENGTHADJUST_SPACING = 1,\r
- LENGTHADJUST_SPACINGANDGLYPHS = 2\r
- } LengthAdjustType;\r
-\r
-\r
- /**\r
- * Corresponds to attribute textLength on the given element.\r
- */\r
- SVGAnimatedLength getTextLength();\r
-\r
-\r
- /**\r
- * Corresponds to attribute lengthAdjust on the given element. The value must be\r
- * one of the length adjust constants specified above.\r
- */\r
- SVGAnimatedEnumeration getLengthAdjust();\r
-\r
-\r
- /**\r
- * Returns the total number of characters to be rendered within the current\r
- * element. Includes characters which are included via a 'tref' reference.\r
- */\r
- long getNumberOfChars();\r
-\r
- /**\r
- * The total sum of all of the advance values from rendering all of the\r
- * characters within this element, including the advance value on the glyphs\r
- *(horizontal or vertical), the effect of properties 'kerning', 'letter-spacing'\r
- * and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan'\r
- * elements. For non-rendering environments, the user agent shall make reasonable\r
- * assumptions about glyph metrics.\r
- */\r
- double getComputedTextLength();\r
-\r
- /**\r
- * The total sum of all of the advance values from rendering the specified\r
- * substring of the characters, including the advance value on the glyphs\r
- *(horizontal or vertical), the effect of properties 'kerning', 'letter-spacing'\r
- * and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan'\r
- * elements. For non-rendering environments, the user agent shall make reasonable\r
- * assumptions about glyph metrics.\r
- */\r
- double getSubStringLength(unsigned long charnum, unsigned long nchars)\r
- throw (DOMException);\r
-\r
- /**\r
- * Returns the current text position before rendering the character in the user\r
- * coordinate system for rendering the glyph(s) that correspond to the specified\r
- * character. The current text position has already taken into account the\r
- * effects of any inter-character adjustments due to properties 'kerning',\r
- * 'letter-spacing' and 'word-spacing' and adjustments due to attributes x, y, dx\r
- * and dy. If multiple consecutive characters are rendered inseparably(e.g., as\r
- * a single glyph or a sequence of glyphs), then each of the inseparable\r
- * characters will return the start position for the first glyph.\r
- */\r
- SVGPoint getStartPositionOfChar(unsigned long charnum) throw (DOMException);\r
-\r
- /**\r
- * Returns the current text position after rendering the character in the user\r
- * coordinate system for rendering the glyph(s) that correspond to the specified\r
- * character. This current text position does not take into account the effects\r
- * of any inter-character adjustments to prepare for the next character, such as\r
- * properties 'kerning', 'letter-spacing' and 'word-spacing' and adjustments due\r
- * to attributes x, y, dx and dy. If multiple consecutive characters are rendered\r
- * inseparably(e.g., as a single glyph or a sequence of glyphs), then each of\r
- * the inseparable characters will return the end position for the last glyph.\r
- */\r
- SVGPoint getEndPositionOfChar(unsigned long charnum) throw (DOMException);\r
-\r
- /**\r
- * Returns a tightest rectangle which defines the minimum and maximum X and Y\r
- * values in the user coordinate system for rendering the glyph(s) that\r
- * correspond to the specified character. The calculations assume that all glyphs\r
- * occupy the full standard glyph cell for the font. If multiple consecutive\r
- * characters are rendered inseparably(e.g., as a single glyph or a sequence of\r
- * glyphs), then each of the inseparable characters will return the same extent.\r
- */\r
- SVGRect getExtentOfChar(unsigned long charnum) throw (DOMException);\r
-\r
- /**\r
- * Returns the rotation value relative to the current user coordinate system used\r
- * to render the glyph(s) corresponding to the specified character. If multiple\r
- * glyph(s) are used to render the given character and the glyphs each have\r
- * different rotations(e.g., due to text-on-a-path), the user agent shall return\r
- * an average value(e.g., the rotation angle at the midpoint along the path for\r
- * all glyphs used to render this character). The rotation value represents the\r
- * rotation that is supplemental to any rotation due to properties\r
- * 'glyph-orientation-horizontal' and 'glyph-orientation-vertical'; thus, any\r
- * glyph rotations due to these properties are not included into the returned\r
- * rotation value. If multiple consecutive characters are rendered inseparably\r
- *(e.g., as a single glyph or a sequence of glyphs), then each of the\r
- * inseparable characters will return the same rotation value.\r
- */\r
- double getRotationOfChar(unsigned long charnum) throw (DOMException);\r
-\r
- /**\r
- * Returns the index of the character whose corresponding glyph cell bounding box\r
- * contains the specified point. The calculations assume that all glyphs occupy\r
- * the full standard glyph cell for the font. If no such character exists, a\r
- * value of -1 is returned. If multiple such characters exist, the character\r
- * within the element whose glyphs were rendered last(i.e., take into account\r
- * any reordering such as for bidirectional text) is used. If multiple\r
- * consecutive characters are rendered inseparably(e.g., as a single glyph or a\r
- * sequence of glyphs), then the user agent shall allocate an equal percentage of\r
- * the text advance amount to each of the contributing characters in determining\r
- * which of the characters is chosen.\r
- */\r
- long getCharNumAtPosition(const SVGPoint &point);\r
-\r
- /**\r
- * Causes the specified substring to be selected just as if the user\r
- * selected the substring interactively.\r
- */\r
- void selectSubString(unsigned long charnum, unsigned long nchars)\r
- throw (DOMException);\r
-\r
-\r
-\r
-\r
-\r
- //####################################################################\r
- //# SVGTextPathElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * textPath Method Types\r
- */\r
- typedef enum\r
- {\r
- TEXTPATH_METHODTYPE_UNKNOWN = 0,\r
- TEXTPATH_METHODTYPE_ALIGN = 1,\r
- TEXTPATH_METHODTYPE_STRETCH = 2\r
- } TextPathMethodType;\r
-\r
- /**\r
- * textPath Spacing Types\r
- */\r
- typedef enum\r
- {\r
- TEXTPATH_SPACINGTYPE_UNKNOWN = 0,\r
- TEXTPATH_SPACINGTYPE_AUTO = 1,\r
- TEXTPATH_SPACINGTYPE_EXACT = 2\r
- } TextPathSpacingType;\r
-\r
-\r
- /**\r
- * Corresponds to attribute startOffset on the given 'textPath' element.\r
- */\r
- SVGAnimatedLength getStartOffset();\r
-\r
- /**\r
- * Corresponds to attribute method on the given 'textPath' element. The value\r
- * must be one of the method type constants specified above.\r
- */\r
- SVGAnimatedEnumeration getMethod();\r
-\r
- /**\r
- * Corresponds to attribute spacing on the given 'textPath' element.\r
- * The value must be one of the spacing type constants specified above.\r
- */\r
- SVGAnimatedEnumeration getSpacing();\r
-\r
-\r
- //####################################################################\r
- //# SVGTextPositioningElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Corresponds to attribute x on the given element.\r
- */\r
- SVGAnimatedLength getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given element.\r
- */\r
- SVGAnimatedLength getY();\r
-\r
- /**\r
- * Corresponds to attribute dx on the given element.\r
- */\r
- SVGAnimatedLength getDx();\r
-\r
- /**\r
- * Corresponds to attribute dy on the given element.\r
- */\r
- SVGAnimatedLength getDy();\r
-\r
-\r
- /**\r
- * Corresponds to attribute rotate on the given element.\r
- */\r
- SVGAnimatedNumberList getRotate();\r
-\r
-\r
- //####################################################################\r
- //# SVGTitleElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGTRefElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGTSpanElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGSwitchElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGUseElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'use' element.\r
- */\r
- SVGAnimatedLength getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'use' element.\r
- */\r
- SVGAnimatedLength getY();\r
-\r
- /**\r
- * Corresponds to attribute width on the given 'use' element.\r
- */\r
- SVGAnimatedLength getWidth();\r
-\r
- /**\r
- * Corresponds to attribute height on the given 'use' element.\r
- */\r
- SVGAnimatedLength getHeight();\r
-\r
- /**\r
- * The root of the "instance tree". See description of SVGElementInstance for\r
- * a discussion on the instance tree.\r
- * */\r
- SVGElementInstance getInstanceRoot();\r
-\r
- /**\r
- * If the 'href' attribute is being animated, contains the current animated root\r
- * of the "instance tree". If the 'href' attribute is not currently being\r
- * animated, contains the same value as 'instanceRoot'. The root of the "instance\r
- * tree". See description of SVGElementInstance for a discussion on the instance\r
- * tree.\r
- */\r
- SVGElementInstance getAnimatedInstanceRoot();\r
-\r
- //####################################################################\r
- //# SVGVKernElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGViewElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGStringList getViewTarget();\r
-\r
-\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
-\r
- /**\r
- *\r
- */\r
- ~SVGElement() {}\r
-\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGDocument\r
-#########################################################################*/\r
-\r
-/**\r
- * When an 'svg' element is embedded inline as a component of a document from\r
- * another namespace, such as when an 'svg' element is embedded inline within an\r
- * XHTML document [XHTML], then an SVGDocument object will not exist; instead,\r
- * the root object in the document object hierarchy will be a Document object of\r
- * a different type, such as an HTMLDocument object.\r
- *\r
- * However, an SVGDocument object will indeed exist when the root element of the\r
- * XML document hierarchy is an 'svg' element, such as when viewing a stand-alone\r
- * SVG file(i.e., a file with MIME type "image/svg+xml"). In this case, the\r
- * SVGDocument object will be the root object of the document object model\r
- * hierarchy.\r
- *\r
- * In the case where an SVG document is embedded by reference, such as when an\r
- * XHTML document has an 'object' element whose href attribute references an SVG\r
- * document(i.e., a document whose MIME type is "image/svg+xml" and whose root\r
- * element is thus an 'svg' element), there will exist two distinct DOM\r
- * hierarchies. The first DOM hierarchy will be for the referencing document\r
- *(e.g., an XHTML document). The second DOM hierarchy will be for the referenced\r
- * SVG document. In this second DOM hierarchy, the root object of the document\r
- * object model hierarchy is an SVGDocument object.\r
- */\r
-class SVGDocument : public Document,\r
- public events::DocumentEvent\r
-{\r
-public:\r
-\r
-\r
- /**\r
- * The title of a document as specified by the title sub-element of the 'svg'\r
- * root element(i.e., <svg><title>Here is the title</title>...</svg>)\r
- */\r
- DOMString getTitle();\r
-\r
- /**\r
- * Returns the URI of the page that linked to this page. The value is an empty\r
- * string if the user navigated to the page directly(not through a link, but,\r
- * for example, via a bookmark).\r
- */\r
- DOMString getReferrer();\r
-\r
- /**\r
- * The domain name of the server that served the document, or a null string if\r
- * the server cannot be identified by a domain name.\r
- */\r
- DOMString getDomain();\r
-\r
- /**\r
- * The complete URI of the document.\r
- */\r
- DOMString getURL();\r
-\r
- /**\r
- * The root 'svg' element in the document hierarchy.\r
- */\r
- SVGElementPtr getRootElement();\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- ~SVGDocument() {}\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## GetSVGDocument\r
-#########################################################################*/\r
-\r
-/**\r
- * In the case where an SVG document is embedded by reference, such as when an\r
- * XHTML document has an 'object' element whose href(or equivalent) attribute\r
- * references an SVG document(i.e., a document whose MIME type is\r
- * "image/svg+xml" and whose root element is thus an 'svg' element), the SVG user\r
- * agent is required to implement the GetSVGDocument interface for the element\r
- * which references the SVG document(e.g., the HTML 'object' or comparable\r
- * referencing elements).\r
- */\r
-class GetSVGDocument\r
-{\r
-public:\r
-\r
- /**\r
- * Returns the SVGDocument object for the referenced SVG document.\r
- */\r
- SVGDocumentPtr getSVGDocument()\r
- throw (DOMException);\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- ~GetSVGDocument() {}\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-} //namespace svg\r
-} //namespace dom\r
-} //namespace w3c\r
-} //namespace org\r
-\r
-#endif // __SVG_H__\r
-/*#########################################################################\r
-## E N D O F F I L E\r
-#########################################################################*/\r
-\r
+#ifndef __SVG_H__
+#define __SVG_H__
+
+/**
+ * Phoebe DOM Implementation.
+ *
+ * This is a C++ approximation of the W3C DOM model, which follows
+ * fairly closely the specifications in the various .idl files, copies of
+ * which are provided for reference. Most important is this one:
+ *
+ * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
+ *
+ * Authors:
+ * Bob Jamison
+ *
+ * Copyright(C) 2005-2008 Bob Jamison
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or(at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * =======================================================================
+ * NOTES
+ *
+ * This API follows:
+ * http://www.w3.org/TR/SVG11/svgdom.html
+ *
+ * This file defines the main SVG-DOM Node types. Other non-Node types are
+ * defined in svgtypes.h.
+ *
+ */
+
+
+// For access to DOM2 core
+#include "dom/dom.h"
+
+// For access to DOM2 events
+#include "dom/events.h"
+
+// For access to those parts from DOM2 CSS OM used by SVG DOM.
+#include "dom/css.h"
+
+// For access to those parts from DOM2 Views OM used by SVG DOM.
+#include "dom/views.h"
+
+// For access to the SMIL OM used by SVG DOM.
+#include "dom/smil.h"
+
+
+#include <math.h>
+
+#define SVG_NAMESPACE "http://www.w3.org/2000/svg"
+
+
+namespace org
+{
+namespace w3c
+{
+namespace dom
+{
+namespace svg
+{
+
+
+//local definitions
+typedef dom::DOMString DOMString;
+typedef dom::DOMException DOMException;
+typedef dom::Element Element;
+typedef dom::ElementPtr ElementPtr;
+typedef dom::Document Document;
+typedef dom::DocumentPtr DocumentPtr;
+typedef dom::NodeList NodeList;
+
+
+
+
+class SVGElement;
+typedef Ptr<SVGElement> SVGElementPtr;
+class SVGUseElement;
+typedef Ptr<SVGUseElement> SVGUseElementPtr;
+class SVGDocument;
+typedef Ptr<SVGDocument> SVGDocumentPtr;
+
+/*#########################################################################
+## SVGException
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGException
+{
+public:
+
+ /**
+ * SVGExceptionCode
+ */
+ typedef enum
+ {
+ SVG_WRONG_TYPE_ERR = 0,
+ SVG_INVALID_VALUE_ERR = 1,
+ SVG_MATRIX_NOT_INVERTABLE = 2
+ } SVGExceptionCode;
+
+ unsigned short code;
+};
+
+
+
+
+
+
+
+//########################################################################
+//########################################################################
+//# V A L U E S
+//########################################################################
+//########################################################################
+
+
+
+
+
+/*#########################################################################
+## SVGAngle
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGAngle
+{
+public:
+
+ /**
+ * Angle Unit Types
+ */
+ typedef enum
+ {
+ SVG_ANGLETYPE_UNKNOWN = 0,
+ SVG_ANGLETYPE_UNSPECIFIED = 1,
+ SVG_ANGLETYPE_DEG = 2,
+ SVG_ANGLETYPE_RAD = 3,
+ SVG_ANGLETYPE_GRAD = 4
+ } AngleUnitType;
+
+ /**
+ *
+ */
+ unsigned short getUnitType();
+
+ /**
+ *
+ */
+ double getValue();
+
+ /**
+ *
+ */
+ void setValue(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getValueInSpecifiedUnits();
+
+ /**
+ *
+ */
+ void setValueInSpecifiedUnits(double /*val*/)
+ throw(DOMException);
+
+ /**
+ *
+ */
+ DOMString getValueAsString();
+
+ /**
+ *
+ */
+ void setValueAsString(const DOMString &/*val*/)
+ throw(DOMException);
+
+ /**
+ *
+ */
+ void newValueSpecifiedUnits(unsigned short /*unitType*/,
+ double /*valueInSpecifiedUnits*/);
+
+ /**
+ *
+ */
+ void convertToSpecifiedUnits(unsigned short /*unitType*/);
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGAngle();
+
+ /**
+ *
+ */
+ SVGAngle(const SVGAngle &other);
+
+ /**
+ *
+ */
+ ~SVGAngle();
+
+protected:
+
+ int unitType;
+
+ double value;
+
+};
+
+
+/*#########################################################################
+## SVGLength
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGLength
+{
+public:
+
+ /**
+ * Length Unit Types
+ */
+ typedef enum
+ {
+ SVG_LENGTHTYPE_UNKNOWN = 0,
+ SVG_LENGTHTYPE_NUMBER = 1,
+ SVG_LENGTHTYPE_PERCENTAGE = 2,
+ SVG_LENGTHTYPE_EMS = 3,
+ SVG_LENGTHTYPE_EXS = 4,
+ SVG_LENGTHTYPE_PX = 5,
+ SVG_LENGTHTYPE_CM = 6,
+ SVG_LENGTHTYPE_MM = 7,
+ SVG_LENGTHTYPE_IN = 8,
+ SVG_LENGTHTYPE_PT = 9,
+ SVG_LENGTHTYPE_PC = 10
+ } LengthUnitType;
+
+ /**
+ *
+ */
+ unsigned short getUnitType();
+
+ /**
+ *
+ */
+ double getValue();
+
+ /**
+ *
+ */
+ void setValue(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getValueInSpecifiedUnits();
+
+ /**
+ *
+ */
+ void setValueInSpecifiedUnits(double /*val*/) throw(DOMException);
+
+ /**
+ *
+ */
+ DOMString getValueAsString();
+
+ /**
+ *
+ */
+ void setValueAsString(const DOMString& /*val*/) throw(DOMException);
+
+ /**
+ *
+ */
+ void newValueSpecifiedUnits(unsigned short /*unitType*/, double /*val*/);
+
+ /**
+ *
+ */
+ void convertToSpecifiedUnits(unsigned short /*unitType*/);
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGLength();
+
+ /**
+ *
+ */
+ SVGLength(const SVGLength &other);
+
+ /**
+ *
+ */
+ ~SVGLength();
+
+protected:
+
+ int unitType;
+
+ double value;
+
+};
+
+/*#########################################################################
+## SVGMatrix
+#########################################################################*/
+
+/**
+ * In SVG, a Matrix is defined like this:
+ *
+ * | a c e |
+ * | b d f |
+ * | 0 0 1 |
+ *
+ */
+class SVGMatrix
+{
+public:
+
+
+ /**
+ *
+ */
+ double getA();
+
+ /**
+ *
+ */
+ void setA(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getB();
+
+ /**
+ *
+ */
+ void setB(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getC();
+
+ /**
+ *
+ */
+ void setC(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getD();
+
+ /**
+ *
+ */
+ void setD(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getE();
+
+ /**
+ *
+ */
+ void setE(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getF();
+
+ /**
+ *
+ */
+ void setF(double val) throw(DOMException);
+
+
+ /**
+ * Return the result of postmultiplying this matrix with another.
+ */
+ SVGMatrix multiply(const SVGMatrix &other);
+
+ /**
+ * Calculate the inverse of this matrix
+ *
+ *
+ * The determinant of a 3x3 matrix E
+ * (let's use our own notation for a bit)
+ *
+ * A B C
+ * D E F
+ * G H I
+ * is
+ * AEI - AFH - BDI + BFG + CDH - CEG
+ *
+ * Since in our affine transforms, G and H==0 and I==1,
+ * this reduces to:
+ * AE - BD
+ * In SVG's naming scheme, that is: a * d - c * b . SIMPLE!
+ *
+ * In a similar method of attack, SVG's adjunct matrix is:
+ *
+ * d -c cf-ed
+ * -b a eb-af
+ * 0 0 ad-cb
+ *
+ * To get the inverse matrix, we divide the adjunct matrix by
+ * the determinant. Notice that(ad-cb)/(ad-cb)==1. Very cool.
+ * So what we end up with is this:
+ *
+ * a = d/(ad-cb) c = -c/(ad-cb) e =(cf-ed)/(ad-cb)
+ * b = -b/(ad-cb) d = a/(ad-cb) f =(eb-af)/(ad-cb)
+ *
+ * (Since this would be in all SVG-DOM implementations,
+ * somebody needed to document this! ^^)
+ *
+ */
+ SVGMatrix inverse() throw(SVGException);
+
+ /**
+ * Equivalent to multiplying by:
+ * | 1 0 x |
+ * | 0 1 y |
+ * | 0 0 1 |
+ *
+ */
+ SVGMatrix translate(double x, double y);
+
+ /**
+ * Equivalent to multiplying by:
+ * | scale 0 0 |
+ * | 0 scale 0 |
+ * | 0 0 1 |
+ *
+ */
+ SVGMatrix scale(double scale);
+
+ /**
+ * Equivalent to multiplying by:
+ * | scaleX 0 0 |
+ * | 0 scaleY 0 |
+ * | 0 0 1 |
+ *
+ */
+ SVGMatrix scaleNonUniform(double scaleX, double scaleY);
+
+ /**
+ * Equivalent to multiplying by:
+ * | cos(a) -sin(a) 0 |
+ * | sin(a) cos(a) 0 |
+ * | 0 0 1 |
+ *
+ */
+ SVGMatrix rotate(double angle);
+
+ /**
+ * Equivalent to multiplying by:
+ * | cos(a) -sin(a) 0 |
+ * | sin(a) cos(a) 0 |
+ * | 0 0 1 |
+ * In this case, angle 'a' is computed as the artangent
+ * of the slope y/x . It is negative if the slope is negative.
+ */
+ SVGMatrix rotateFromVector(double x, double y) throw(SVGException);
+
+ /**
+ * Equivalent to multiplying by:
+ * | -1 0 0 |
+ * | 0 1 0 |
+ * | 0 0 1 |
+ *
+ */
+ SVGMatrix flipX();
+
+ /**
+ * Equivalent to multiplying by:
+ * | 1 0 0 |
+ * | 0 -1 0 |
+ * | 0 0 1 |
+ *
+ */
+ SVGMatrix flipY();
+
+ /**
+ * | 1 tan(a) 0 |
+ * | 0 1 0 |
+ * | 0 0 1 |
+ *
+ */
+ SVGMatrix skewX(double angle);
+
+ /**
+ * Equivalent to multiplying by:
+ * | 1 0 0 |
+ * | tan(a) 1 0 |
+ * | 0 0 1 |
+ *
+ */
+ SVGMatrix skewY(double angle);
+
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGMatrix();
+
+ /**
+ *
+ */
+ SVGMatrix(double aArg, double bArg, double cArg,
+ double dArg, double eArg, double fArg);
+
+ /**
+ * Copy constructor
+ */
+ SVGMatrix(const SVGMatrix &other);
+
+ /**
+ *
+ */
+ ~SVGMatrix() {}
+
+protected:
+
+friend class SVGTransform;
+
+ /*
+ * Set to the identify matrix
+ */
+ void identity();
+
+ double a, b, c, d, e, f;
+
+};
+
+
+/*#########################################################################
+## SVGNumber
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGNumber
+{
+public:
+
+ /**
+ *
+ */
+ double getValue();
+
+ /**
+ *
+ */
+ void setValue(double val) throw(DOMException);
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGNumber();
+
+ /**
+ *
+ */
+ SVGNumber(const SVGNumber &other);
+
+ /**
+ *
+ */
+ ~SVGNumber();
+
+protected:
+
+ double value;
+
+};
+
+/*#########################################################################
+## SVGPoint
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPoint
+{
+public:
+
+ /**
+ *
+ */
+ double getX();
+
+ /**
+ *
+ */
+ void setX(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getY();
+
+ /**
+ *
+ */
+ void setY(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ SVGPoint matrixTransform(const SVGMatrix &/*matrix*/);
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGPoint();
+
+ /**
+ *
+ */
+ SVGPoint(const SVGPoint &other);
+
+ /**
+ *
+ */
+ ~SVGPoint();
+
+protected:
+
+ double x, y;
+};
+
+
+/*#########################################################################
+## SVGPathSeg
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPathSeg
+{
+public:
+
+ /**
+ * Path Segment Types
+ */
+ typedef enum
+ {
+ PATHSEG_UNKNOWN = 0,
+ PATHSEG_CLOSEPATH = 1,
+ PATHSEG_MOVETO_ABS = 2,
+ PATHSEG_MOVETO_REL = 3,
+ PATHSEG_LINETO_ABS = 4,
+ PATHSEG_LINETO_REL = 5,
+ PATHSEG_CURVETO_CUBIC_ABS = 6,
+ PATHSEG_CURVETO_CUBIC_REL = 7,
+ PATHSEG_CURVETO_QUADRATIC_ABS = 8,
+ PATHSEG_CURVETO_QUADRATIC_REL = 9,
+ PATHSEG_ARC_ABS = 10,
+ PATHSEG_ARC_REL = 11,
+ PATHSEG_LINETO_HORIZONTAL_ABS = 12,
+ PATHSEG_LINETO_HORIZONTAL_REL = 13,
+ PATHSEG_LINETO_VERTICAL_ABS = 14,
+ PATHSEG_LINETO_VERTICAL_REL = 15,
+ PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16,
+ PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17,
+ PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18,
+ PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19
+ } PathSegmentType;
+
+ /**
+ *
+ */
+ unsigned short getPathSegType();
+
+ /**
+ *
+ */
+ DOMString getPathSegTypeAsLetter();
+
+ /**
+ * From the various subclasses
+ */
+
+ /**
+ *
+ */
+ double getX();
+
+ /**
+ *
+ */
+ void setX(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getX1();
+
+ /**
+ *
+ */
+ void setX1(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getX2();
+
+ /**
+ *
+ */
+ void setX2(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getY();
+
+ /**
+ *
+ */
+ void setY(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getY1();
+
+ /**
+ *
+ */
+ void setY1(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getY2();
+
+ /**
+ *
+ */
+ void setY2(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getR1();
+
+ /**
+ *
+ */
+ void setR1(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getR2();
+
+ /**
+ *
+ */
+ void setR2(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getAngle();
+
+ /**
+ *
+ */
+ void setAngle(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ bool getLargeArcFlag();
+
+ /**
+ *
+ */
+ void setLargeArcFlag(bool val) throw(DOMException);
+
+ /**
+ *
+ */
+ bool getSweepFlag();
+
+ /**
+ *
+ */
+ void setSweepFlag(bool val) throw(DOMException);
+
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGPathSeg();
+
+ /**
+ *
+ */
+ SVGPathSeg(int typeArg);
+
+ /**
+ *
+ */
+ SVGPathSeg(const SVGPathSeg &other);
+
+ /**
+ *
+ */
+ SVGPathSeg &operator=(const SVGPathSeg &other);
+
+ /**
+ *
+ */
+ ~SVGPathSeg();
+
+protected:
+
+ void init();
+
+ void assign(const SVGPathSeg &other);
+
+ int type;
+ double x, y, x1, y1, x2, y2;
+ double r1, r2;
+ double angle;
+ bool largeArcFlag;
+ bool sweepFlag;
+};
+
+
+/*#########################################################################
+## SVGPreserveAspectRatio
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPreserveAspectRatio
+{
+public:
+
+
+ /**
+ * Alignment Types
+ */
+ typedef enum
+ {
+ SVG_PRESERVEASPECTRATIO_UNKNOWN = 0,
+ SVG_PRESERVEASPECTRATIO_NONE = 1,
+ SVG_PRESERVEASPECTRATIO_XMINYMIN = 2,
+ SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3,
+ SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4,
+ SVG_PRESERVEASPECTRATIO_XMINYMID = 5,
+ SVG_PRESERVEASPECTRATIO_XMIDYMID = 6,
+ SVG_PRESERVEASPECTRATIO_XMAXYMID = 7,
+ SVG_PRESERVEASPECTRATIO_XMINYMAX = 8,
+ SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9,
+ SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10
+ } AlignmentType;
+
+
+ /**
+ * Meet-or-slice Types
+ */
+ typedef enum
+ {
+ SVG_MEETORSLICE_UNKNOWN = 0,
+ SVG_MEETORSLICE_MEET = 1,
+ SVG_MEETORSLICE_SLICE = 2
+ } MeetOrSliceType;
+
+
+ /**
+ *
+ */
+ unsigned short getAlign();
+
+ /**
+ *
+ */
+ void setAlign(unsigned short val) throw(DOMException);
+
+ /**
+ *
+ */
+ unsigned short getMeetOrSlice();
+
+ /**
+ *
+ */
+ void setMeetOrSlice(unsigned short val) throw(DOMException);
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGPreserveAspectRatio();
+
+ /**
+ *
+ */
+ SVGPreserveAspectRatio(const SVGPreserveAspectRatio &other);
+
+ /**
+ *
+ */
+ ~SVGPreserveAspectRatio();
+
+protected:
+
+ unsigned short align;
+ unsigned short meetOrSlice;
+
+};
+
+
+
+/*#########################################################################
+## SVGRect
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGRect
+{
+public:
+
+ /**
+ *
+ */
+ double getX();
+
+ /**
+ *
+ */
+ void setX(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getY();
+
+ /**
+ *
+ */
+ void setY(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getWidth();
+
+ /**
+ *
+ */
+ void setWidth(double val) throw(DOMException);
+
+ /**
+ *
+ */
+ double getHeight();
+
+ /**
+ *
+ */
+ void setHeight(double val) throw(DOMException);
+
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGRect();
+
+ /**
+ *
+ */
+ SVGRect(const SVGRect &other);
+
+ /**
+ *
+ */
+ ~SVGRect();
+
+protected:
+
+ double x, y, width, height;
+
+};
+
+/*#########################################################################
+## SVGTransform
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTransform
+{
+public:
+
+ /**
+ * Transform Types
+ */
+ typedef enum
+ {
+ SVG_TRANSFORM_UNKNOWN = 0,
+ SVG_TRANSFORM_MATRIX = 1,
+ SVG_TRANSFORM_TRANSLATE = 2,
+ SVG_TRANSFORM_SCALE = 3,
+ SVG_TRANSFORM_ROTATE = 4,
+ SVG_TRANSFORM_SKEWX = 5,
+ SVG_TRANSFORM_SKEWY = 6,
+ } TransformType;
+
+ /**
+ *
+ */
+ unsigned short getType();
+
+
+ /**
+ *
+ */
+ SVGMatrix getMatrix();
+
+ /**
+ *
+ */
+ double getAngle();
+
+ /**
+ *
+ */
+ void setMatrix(const SVGMatrix &matrixArg);
+
+ /**
+ *
+ */
+ void setTranslate(double tx, double ty);
+
+ /**
+ *
+ */
+ void setScale(double sx, double sy);
+
+ /**
+ *
+ */
+ void setRotate(double angleArg, double cx, double cy);
+
+ /**
+ *
+ */
+ void setSkewX(double angleArg);
+
+ /**
+ *
+ */
+ void setSkewY(double angleArg);
+
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGTransform();
+
+ /**
+ *
+ */
+ SVGTransform(const SVGTransform &other);
+
+ /**
+ *
+ */
+ ~SVGTransform();
+
+protected:
+
+ int type;
+ double angle;
+
+ SVGMatrix matrix;
+};
+
+
+
+
+/*#########################################################################
+## SVGUnitTypes
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGUnitTypes
+{
+public:
+
+ /**
+ * Unit Types
+ */
+ typedef enum
+ {
+ SVG_UNIT_TYPE_UNKNOWN = 0,
+ SVG_UNIT_TYPE_USERSPACEONUSE = 1,
+ SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2
+ } UnitType;
+
+
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGUnitTypes();
+
+ /**
+ *
+ */
+ ~SVGUnitTypes();
+
+};
+
+
+
+
+/*#########################################################################
+## SVGValue
+#########################################################################*/
+
+/**
+ * This is a helper class that will hold several types of data. It will
+ * be used in those situations where methods are common to different
+ * interfaces, except for the data type. This class holds the following:
+ * SVGAngle
+ * SVGBoolean
+ * SVGEnumeration
+ * SVGInteger
+ * SVGLength
+ * SVGNumber
+ * SVGPreserveAspectRatio
+ * SVGRect
+ * SVGString
+ */
+class SVGValue
+{
+public:
+
+ /**
+ *
+ */
+ typedef enum
+ {
+ SVG_ANGLE,
+ SVG_BOOLEAN,
+ SVG_ENUMERATION,
+ SVG_INTEGER,
+ SVG_LENGTH,
+ SVG_NUMBER,
+ SVG_PRESERVE_ASPECT_RATIO,
+ SVG_RECT,
+ SVG_STRING,
+ } SVGValueType;
+
+ /**
+ * Constructor
+ */
+ SVGValue();
+
+ /**
+ * Copy constructor
+ */
+ SVGValue(const SVGValue &other);
+
+ /**
+ * Assignment
+ */
+ SVGValue &operator=(const SVGValue &other);
+
+ /**
+ *
+ */
+ ~SVGValue();
+
+ //###########################
+ // TYPES
+ //###########################
+
+ /**
+ * Angle
+ */
+ SVGValue(const SVGAngle &v);
+
+ SVGAngle angleValue();
+
+ /**
+ * Boolean
+ */
+ SVGValue(bool v);
+
+ bool booleanValue();
+
+
+ /**
+ * Enumeration
+ */
+ SVGValue(short v);
+
+ short enumerationValue();
+
+ /**
+ * Integer
+ */
+ SVGValue(long v);
+
+ long integerValue();
+
+ /**
+ * Length
+ */
+ SVGValue(const SVGLength &v);
+
+ SVGLength lengthValue();
+
+ /**
+ * Number
+ */
+ SVGValue(double v);
+
+ double numberValue();
+
+ /**
+ * PathSegment
+ */
+ SVGValue(const SVGPathSeg &v);
+
+ SVGPathSeg pathDataValue();
+
+
+ /**
+ * Points
+ */
+ SVGValue(const SVGPoint &v);
+
+ SVGPoint pointValue();
+
+
+ /**
+ * PreserveAspectRatio
+ */
+ SVGValue(const SVGPreserveAspectRatio &v);
+
+ SVGPreserveAspectRatio preserveAspectRatioValue();
+
+ /**
+ * Rect
+ */
+ SVGValue(const SVGRect &v);
+
+ SVGRect rectValue();
+
+ /**
+ * String
+ */
+ SVGValue(const DOMString &v);
+
+ DOMString stringValue();
+
+ /**
+ * TransformList
+ */
+ SVGValue(const SVGTransform &v);
+
+ SVGTransform transformValue();
+
+
+private:
+
+ void init();
+
+ void assign(const SVGValue &other);
+
+ short type;
+ SVGAngle angleval; // SVGAngle
+ bool bval; // SVGBoolean
+ short eval; // SVGEnumeration
+ long ival; // SVGInteger
+ SVGLength lengthval; // SVGLength
+ double dval; // SVGNumber
+ SVGPathSeg segval; // SVGPathSeg
+ SVGPoint pointval; // SVGPoint
+ SVGPreserveAspectRatio parval; // SVGPreserveAspectRatio
+ SVGRect rval; // SVGRect
+ DOMString sval; // SVGString
+ SVGTransform transformval; // SVGTransform
+
+};
+
+
+/*#########################################################################
+## SVGValueList
+#########################################################################*/
+
+/**
+ * THis is used to generify a bit the several different types of lists:
+ *
+ * SVGLengthList -> SVGValueList<SVGLength>
+ * SVGValueList -> SVGValueList<SVGNumber>
+ * SVGPathData -> SVGValueList<SVGPathSeg>
+ * SVGPoints -> SVGValueList<SVGPoint>
+ * SVGTransformList -> SVGValueList<SVGTransform>
+ */
+class SVGValueList
+{
+public:
+
+ /**
+ *
+ */
+ typedef enum
+ {
+ SVG_LIST_LENGTH,
+ SVG_LIST_NUMBER,
+ SVG_LIST_PATHSEG,
+ SVG_LIST_POINT,
+ SVG_LIST_TRANSFORM
+ } SVGValueListTypes;
+
+ /**
+ *
+ */
+ unsigned long getNumberOfItems();
+
+
+ /**
+ *
+ */
+ void clear() throw(DOMException);
+
+ /**
+ *
+ */
+ SVGValue getItem(unsigned long index) throw(DOMException);
+
+ /**
+ *
+ */
+ SVGValue insertItemBefore(const SVGValue &newItem,
+ unsigned long index)
+ throw(DOMException, SVGException);
+
+ /**
+ *
+ */
+ SVGValue replaceItem(const SVGValue &newItem,
+ unsigned long index)
+ throw(DOMException, SVGException);
+
+ /**
+ *
+ */
+ SVGValue removeItem(unsigned long index) throw(DOMException);
+
+ /**
+ *
+ */
+ SVGValue appendItem(const SVGValue &newItem)
+ throw(DOMException, SVGException);
+
+ /**
+ * Matrix
+ */
+ SVGValue initialize(const SVGValue &newItem)
+ throw(DOMException, SVGException);
+
+ /**
+ * Matrix
+ */
+ SVGValue createSVGTransformFromMatrix(const SVGValue &matrix);
+
+ /**
+ * Matrix
+ */
+ SVGValue consolidate();
+
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGValueList();
+
+ /**
+ *
+ */
+ SVGValueList(const SVGValueList &other);
+
+ /**
+ *
+ */
+ ~SVGValueList();
+
+protected:
+
+ std::vector<SVGValue> items;
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGAnimatedValue
+#########################################################################*/
+
+/**
+ * This class is used to merge all of the "Animated" values, with only
+ * a different type, into a single API. This class subsumes the following:
+ * SVGAnimatedValue
+ * SVGAnimatedValue
+ * SVGAnimatedValue
+ * SVGAnimatedValue
+ * SVGAnimatedValue
+ * SVGAnimatedValue
+ * SVGAnimatedPathData
+ * SVGAnimatedPoints
+ * SVGAnimatedPreserveAspectRatio
+ * SVGAnimatedValue
+ * SVGAnimatedValue
+ */
+class SVGAnimatedValue
+{
+public:
+
+ /**
+ *
+ */
+ SVGValue &getBaseVal();
+
+ /**
+ *
+ */
+ void setBaseVal(const SVGValue &val) throw (DOMException);
+
+ /**
+ *
+ */
+ SVGValue &getAnimVal();
+
+ /**
+ *
+ */
+ SVGAnimatedValue();
+
+ /**
+ *
+ */
+ SVGAnimatedValue(const SVGValue &baseValue);
+
+ /**
+ *
+ */
+ SVGAnimatedValue(const SVGValue &baseValue, const SVGValue &animValue);
+
+ /**
+ *
+ */
+ SVGAnimatedValue(const SVGAnimatedValue &other);
+
+ /**
+ *
+ */
+ SVGAnimatedValue &operator=(const SVGAnimatedValue &other);
+
+ /**
+ *
+ */
+ SVGAnimatedValue &operator=(const SVGValue &baseVal);
+
+ /**
+ *
+ */
+ ~SVGAnimatedValue();
+
+private:
+
+ void init();
+
+ void assign(const SVGAnimatedValue &other);
+
+ SVGValue baseVal;
+
+ SVGValue animVal;
+
+};
+
+
+/*#########################################################################
+## SVGAnimatedValueList
+#########################################################################*/
+
+/**
+ * This class is used to merge all of the "Animated" values, with only
+ * a different type, into a single API. This class subsumes the following:
+ * SVGAnimatedValueList
+ * SVGAnimatedValueList
+ * SVGAnimatedTransformList
+ */
+class SVGAnimatedValueList
+{
+public:
+
+ /**
+ *
+ */
+ SVGValueList &getBaseVal();
+
+ /**
+ *
+ */
+ void setBaseVal(const SVGValueList &val) throw (DOMException);
+
+ /**
+ *
+ */
+ SVGValueList &getAnimVal();
+
+ /**
+ *
+ */
+ SVGAnimatedValueList();
+
+ /**
+ *
+ */
+ SVGAnimatedValueList(const SVGValueList &baseValue);
+
+ /**
+ *
+ */
+ SVGAnimatedValueList(const SVGValueList &baseValue, const SVGValueList &animValue);
+
+ /**
+ *
+ */
+ SVGAnimatedValueList(const SVGAnimatedValueList &other);
+
+ /**
+ *
+ */
+ SVGAnimatedValueList &operator=(const SVGAnimatedValueList &other);
+
+ /**
+ *
+ */
+ SVGAnimatedValueList &operator=(const SVGValueList &baseVal);
+
+ /**
+ *
+ */
+ ~SVGAnimatedValueList();
+
+private:
+
+ void init();
+
+ void assign(const SVGAnimatedValueList &other);
+
+ SVGValueList baseVal;
+
+ SVGValueList animVal;
+
+};
+
+
+
+/*#########################################################################
+## SVGICCColor
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGICCColor
+{
+public:
+
+ /**
+ *
+ */
+ DOMString getColorProfile();
+
+ /**
+ *
+ */
+ void setColorProfile(const DOMString &val) throw(DOMException);
+
+ /**
+ *
+ */
+ SVGValueList &getColors();
+
+
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGICCColor();
+
+ /**
+ *
+ */
+ SVGICCColor(const SVGICCColor &other);
+
+ /**
+ *
+ */
+ ~SVGICCColor();
+
+protected:
+
+ DOMString colorProfile;
+
+ SVGValueList colors;
+
+};
+
+
+
+/*#########################################################################
+## SVGColor
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGColor : public css::CSSValue
+{
+public:
+
+
+ /**
+ * Color Types
+ */
+ typedef enum
+ {
+ SVG_COLORTYPE_UNKNOWN = 0,
+ SVG_COLORTYPE_RGBCOLOR = 1,
+ SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2,
+ SVG_COLORTYPE_CURRENTCOLOR = 3
+ } ColorType;
+
+
+ /**
+ *
+ */
+ unsigned short getColorType();
+
+ /**
+ *
+ */
+ css::RGBColor getRgbColor();
+
+ /**
+ *
+ */
+ SVGICCColor getIccColor();
+
+
+ /**
+ *
+ */
+ void setRGBColor(const DOMString& /*rgbColor*/)
+ throw(SVGException);
+
+ /**
+ *
+ */
+ void setRGBColorICCColor(const DOMString& /*rgbColor*/,
+ const DOMString& /*iccColor*/)
+ throw(SVGException);
+
+ /**
+ *
+ */
+ void setColor(unsigned short /*colorType*/,
+ const DOMString& /*rgbColor*/,
+ const DOMString& /*iccColor*/)
+ throw(SVGException);
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGColor();
+
+ /**
+ *
+ */
+ SVGColor(const SVGColor &other);
+
+ /**
+ *
+ */
+ ~SVGColor();
+
+protected:
+
+ int colorType;
+
+};
+
+
+
+/*#########################################################################
+## SVGPaint
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGPaint : public SVGColor
+{
+public:
+
+ /**
+ * Paint Types
+ */
+ typedef enum
+ {
+ SVG_PAINTTYPE_UNKNOWN = 0,
+ SVG_PAINTTYPE_RGBCOLOR = 1,
+ SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR = 2,
+ SVG_PAINTTYPE_NONE = 101,
+ SVG_PAINTTYPE_CURRENTCOLOR = 102,
+ SVG_PAINTTYPE_URI_NONE = 103,
+ SVG_PAINTTYPE_URI_CURRENTCOLOR = 104,
+ SVG_PAINTTYPE_URI_RGBCOLOR = 105,
+ SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106,
+ SVG_PAINTTYPE_URI = 107
+ } PaintType;
+
+
+ /**
+ *
+ */
+ unsigned short getPaintType();
+
+ /**
+ *
+ */
+ DOMString getUri();
+
+ /**
+ *
+ */
+ void setUri(const DOMString& uriArg);
+
+ /**
+ *
+ */
+ void setPaint(unsigned short paintTypeArg,
+ const DOMString& uriArg,
+ const DOMString& /*rgbColor*/,
+ const DOMString& /*iccColor*/)
+ throw(SVGException);
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGPaint();
+
+ /**
+ *
+ */
+ SVGPaint(const SVGPaint &other);
+
+ /**
+ *
+ */
+ ~SVGPaint();
+
+protected:
+
+ unsigned int paintType;
+ DOMString uri;
+
+};
+
+
+
+
+//########################################################################
+//########################################################################
+//# I N T E R F A C E S
+//########################################################################
+//########################################################################
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGStylable
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGStylable
+{
+public:
+
+ /**
+ *
+ */
+ SVGAnimatedValue getClassName();
+
+ /**
+ *
+ */
+ css::CSSStyleDeclaration getStyle();
+
+
+ /**
+ *
+ */
+ css::CSSValue getPresentationAttribute(const DOMString& /*name*/);
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGStylable();
+
+ /**
+ *
+ */
+ SVGStylable(const SVGStylable &other);
+
+ /**
+ *
+ */
+ ~SVGStylable();
+
+protected:
+
+ SVGAnimatedValue className;
+ css::CSSStyleDeclaration style;
+
+};
+
+
+
+
+
+/*#########################################################################
+## SVGLocatable
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGLocatable
+{
+public:
+
+ /**
+ *
+ */
+ SVGElementPtr getNearestViewportElement();
+
+ /**
+ *
+ */
+ SVGElementPtr getFarthestViewportElement();
+
+ /**
+ *
+ */
+ SVGRect getBBox();
+
+ /**
+ *
+ */
+ SVGMatrix getCTM();
+
+ /**
+ *
+ */
+ SVGMatrix getScreenCTM();
+
+ /**
+ *
+ */
+ SVGMatrix getTransformToElement(const SVGElement &/*element*/)
+ throw(SVGException);
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGLocatable();
+
+ /**
+ *
+ */
+ SVGLocatable(const SVGLocatable &/*other*/);
+
+ /**
+ *
+ */
+ ~SVGLocatable();
+
+protected:
+
+ SVGRect bbox;
+ SVGMatrix ctm;
+ SVGMatrix screenCtm;
+
+};
+
+
+/*#########################################################################
+## SVGTransformable
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTransformable : public SVGLocatable
+{
+public:
+
+
+ /**
+ *
+ */
+ SVGAnimatedValueList &getTransform();
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGTransformable();
+
+ /**
+ *
+ */
+ SVGTransformable(const SVGTransformable &other);
+
+ /**
+ *
+ */
+ ~SVGTransformable();
+
+protected:
+
+ SVGAnimatedValueList transforms;
+};
+
+
+
+/*#########################################################################
+## SVGTests
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGTests
+{
+public:
+
+ /**
+ *
+ */
+ SVGValueList &getRequiredFeatures();
+
+ /**
+ *
+ */
+ SVGValueList &getRequiredExtensions();
+
+ /**
+ *
+ */
+ SVGValueList &getSystemLanguage();
+
+ /**
+ *
+ */
+ bool hasExtension(const DOMString& /*extension*/);
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGTests();
+
+ /**
+ *
+ */
+ SVGTests(const SVGTests &other);
+
+ /**
+ *
+ */
+ ~SVGTests();
+
+protected:
+
+ SVGValueList requiredFeatures;
+ SVGValueList requiredExtensions;
+ SVGValueList systemLanguage;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGLangSpace
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGLangSpace
+{
+public:
+
+
+ /**
+ *
+ */
+ DOMString getXmlLang();
+
+ /**
+ *
+ */
+ void setXmlLang(const DOMString &val) throw(DOMException);
+
+ /**
+ *
+ */
+ DOMString getXmlSpace();
+
+ /**
+ *
+ */
+ void setXmlSpace(const DOMString &val) throw(DOMException);
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGLangSpace();
+
+ /**
+ *
+ */
+ SVGLangSpace(const SVGLangSpace &other);
+
+ /**
+ *
+ */
+ ~SVGLangSpace();
+
+protected:
+
+ DOMString xmlLang;
+ DOMString xmlSpace;
+
+};
+
+
+
+/*#########################################################################
+## SVGExternalResourcesRequired
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGExternalResourcesRequired
+{
+public:
+
+ /**
+ * boolean
+ */
+ SVGAnimatedValue getExternalResourcesRequired();
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGExternalResourcesRequired();
+
+ /**
+ *
+ */
+ SVGExternalResourcesRequired(const SVGExternalResourcesRequired &other);
+
+ /**
+ *
+ */
+ ~SVGExternalResourcesRequired();
+
+protected:
+
+ SVGAnimatedValue required; //boolean
+
+};
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGFitToViewBox
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFitToViewBox
+{
+public:
+
+ /**
+ * rect
+ */
+ SVGAnimatedValue getViewBox();
+
+ /**
+ * preserveAspectRatio
+ */
+ SVGAnimatedValue getPreserveAspectRatio();
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGFitToViewBox();
+
+ /**
+ *
+ */
+ SVGFitToViewBox(const SVGFitToViewBox &other);
+
+ /**
+ *
+ */
+ ~SVGFitToViewBox();
+
+protected:
+
+ SVGAnimatedValue viewBox; //rect
+ SVGAnimatedValue preserveAspectRatio;
+
+};
+
+
+/*#########################################################################
+## SVGZoomAndPan
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGZoomAndPan
+{
+public:
+
+ /**
+ * Zoom and Pan Types
+ */
+ typedef enum
+ {
+ SVG_ZOOMANDPAN_UNKNOWN = 0,
+ SVG_ZOOMANDPAN_DISABLE = 1,
+ SVG_ZOOMANDPAN_MAGNIFY = 2
+ } ZoomAndPanType;
+
+ /**
+ *
+ */
+ unsigned short getZoomAndPan();
+
+ /**
+ *
+ */
+ void setZoomAndPan(unsigned short val) throw(DOMException);
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGZoomAndPan();
+
+ /**
+ *
+ */
+ SVGZoomAndPan(const SVGZoomAndPan &other);
+
+ /**
+ *
+ */
+ ~SVGZoomAndPan();
+
+protected:
+
+ unsigned short zoomAndPan;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGViewSpec
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGViewSpec : public SVGZoomAndPan,
+ public SVGFitToViewBox
+{
+public:
+
+ /**
+ *
+ */
+ SVGValueList getTransform();
+
+ /**
+ *
+ */
+ SVGElementPtr getViewTarget();
+
+ /**
+ *
+ */
+ DOMString getViewBoxString();
+
+ /**
+ *
+ */
+ DOMString getPreserveAspectRatioString();
+
+ /**
+ *
+ */
+ DOMString getTransformString();
+
+ /**
+ *
+ */
+ DOMString getViewTargetString();
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGViewSpec();
+
+ /**
+ *
+ */
+ SVGViewSpec(const SVGViewSpec &other);
+
+ /**
+ *
+ */
+ ~SVGViewSpec();
+
+protected:
+
+ SVGElementPtr viewTarget;
+ SVGValueList transform;
+};
+
+
+/*#########################################################################
+## SVGURIReference
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGURIReference
+{
+public:
+
+ /**
+ * string
+ */
+ SVGAnimatedValue getHref();
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGURIReference();
+
+ /**
+ *
+ */
+ SVGURIReference(const SVGURIReference &other);
+
+ /**
+ *
+ */
+ ~SVGURIReference();
+
+protected:
+
+ SVGAnimatedValue href;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGCSSRule
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGCSSRule : public css::CSSRule
+{
+public:
+
+
+ /**
+ * Additional CSS RuleType to support ICC color specifications
+ */
+ typedef enum
+ {
+ COLOR_PROFILE_RULE = 7
+ } ColorProfileRuleType;
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGCSSRule();
+
+ /**
+ *
+ */
+ SVGCSSRule(const SVGCSSRule &other);
+
+ /**
+ *
+ */
+ ~SVGCSSRule();
+
+};
+
+
+
+/*#########################################################################
+## SVGRenderingIntent
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGRenderingIntent
+{
+public:
+
+ /**
+ * Rendering Intent Types
+ */
+ typedef enum
+ {
+ RENDERING_INTENT_UNKNOWN = 0,
+ RENDERING_INTENT_AUTO = 1,
+ RENDERING_INTENT_PERCEPTUAL = 2,
+ RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3,
+ RENDERING_INTENT_SATURATION = 4,
+ RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5
+ } RenderingIntentType;
+
+
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGRenderingIntent();
+
+ /**
+ *
+ */
+ SVGRenderingIntent(const SVGRenderingIntent &other);
+
+ /**
+ *
+ */
+ ~SVGRenderingIntent();
+
+protected:
+
+ unsigned short renderingIntentType;
+};
+
+
+
+
+
+
+
+
+
+/*#########################################################################
+## SVGColorProfileRule
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGColorProfileRule : public SVGCSSRule,
+ public SVGRenderingIntent
+{
+
+public:
+
+ /**
+ *
+ */
+ DOMString getSrc();
+
+ /**
+ *
+ */
+ void setSrc(const DOMString &val) throw(DOMException);
+
+ /**
+ *
+ */
+ DOMString getName();
+
+ /**
+ *
+ */
+ void setName(const DOMString &val) throw(DOMException);
+
+ /**
+ *
+ */
+ unsigned short getRenderingIntent();
+
+ /**
+ *
+ */
+ void setRenderingIntent(unsigned short val) throw(DOMException);
+
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGColorProfileRule();
+
+ /**
+ *
+ */
+ SVGColorProfileRule(const SVGColorProfileRule &other);
+
+ /**
+ *
+ */
+ ~SVGColorProfileRule();
+
+protected:
+
+ unsigned short renderingIntent;
+ DOMString src;
+ DOMString name;
+
+};
+
+
+
+/*#########################################################################
+## SVGFilterPrimitiveStandardAttributes
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGFilterPrimitiveStandardAttributes : public SVGStylable
+{
+public:
+
+ /**
+ * length
+ */
+ SVGAnimatedValue getX();
+
+ /**
+ * length
+ */
+ SVGAnimatedValue getY();
+
+ /**
+ * length
+ */
+ SVGAnimatedValue getWidth();
+
+ /**
+ * length
+ */
+ SVGAnimatedValue getHeight();
+
+ /**
+ * string
+ */
+ SVGAnimatedValue getResult();
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGFilterPrimitiveStandardAttributes();
+
+ /**
+ *
+ */
+ SVGFilterPrimitiveStandardAttributes(
+ const SVGFilterPrimitiveStandardAttributes &other);
+
+ /**
+ *
+ */
+ ~SVGFilterPrimitiveStandardAttributes();
+
+protected:
+
+ SVGAnimatedValue x;
+ SVGAnimatedValue y;
+ SVGAnimatedValue width;
+ SVGAnimatedValue height;
+ SVGAnimatedValue result;
+
+};
+
+
+/*#########################################################################
+## SVGEvent
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGEvent : events::Event
+{
+public:
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGEvent();
+
+ /**
+ *
+ */
+ SVGEvent(const SVGEvent &other);
+
+ /**
+ *
+ */
+ ~SVGEvent();
+
+};
+
+
+
+
+/*#########################################################################
+## SVGZoomEvent
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGZoomEvent : events::UIEvent
+{
+public:
+
+ /**
+ *
+ */
+ SVGRect getZoomRectScreen();
+
+ /**
+ *
+ */
+ double getPreviousScale();
+
+ /**
+ *
+ */
+ SVGPoint getPreviousTranslate();
+
+ /**
+ *
+ */
+ double getNewScale();
+
+ /**
+ *
+ */
+ SVGPoint getNewTranslate();
+
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGZoomEvent();
+
+ /**
+ *
+ */
+ SVGZoomEvent(const SVGZoomEvent &other);
+
+ /**
+ *
+ */
+ ~SVGZoomEvent();
+
+protected:
+
+ SVGRect zoomRectScreen;
+ double previousScale;
+ SVGPoint previousTranslate;
+ double newScale;
+ SVGPoint newTranslate;
+
+};
+
+
+
+/*#########################################################################
+## SVGElementInstance
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGElementInstance : public events::EventTarget
+{
+public:
+
+ /**
+ *
+ */
+ SVGElementPtr getCorrespondingElement();
+
+ /**
+ *
+ */
+ SVGUseElementPtr getCorrespondingUseElement();
+
+ /**
+ *
+ */
+ SVGElementInstance getParentNode();
+
+ /**
+ * Since we are using stack types and this is a circular definition,
+ * we will instead implement this as a global function below:
+ * SVGElementInstanceList getChildNodes(const SVGElementInstance instance);
+ */
+ //SVGElementInstanceList getChildNodes();
+
+ /**
+ *
+ */
+ SVGElementInstance getFirstChild();
+
+ /**
+ *
+ */
+ SVGElementInstance getLastChild();
+
+ /**
+ *
+ */
+ SVGElementInstance getPreviousSibling();
+
+ /**
+ *
+ */
+ SVGElementInstance getNextSibling();
+
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGElementInstance();
+
+ /**
+ *
+ */
+ SVGElementInstance(const SVGElementInstance &other);
+
+ /**
+ *
+ */
+ ~SVGElementInstance();
+
+protected:
+
+ SVGElementPtr correspondingElement;
+ SVGUseElementPtr correspondingUseElement;
+
+};
+
+
+
+
+
+
+/*#########################################################################
+## SVGElementInstanceList
+#########################################################################*/
+
+/**
+ *
+ */
+class SVGElementInstanceList
+{
+public:
+
+ /**
+ *
+ */
+ unsigned long getLength();
+
+ /**
+ *
+ */
+ SVGElementInstance item(unsigned long index);
+
+ /**
+ * This static method replaces the circular definition of:
+ * SVGElementInstanceList SVGElementInstance::getChildNodes()
+ *
+ */
+ static SVGElementInstanceList getChildNodes(const SVGElementInstance &/*instance*/);
+
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ SVGElementInstanceList();
+
+ /**
+ *
+ */
+ SVGElementInstanceList(const SVGElementInstanceList &other);
+
+ /**
+ *
+ */
+ ~SVGElementInstanceList();
+
+protected:
+
+ std::vector<SVGElementInstance> items;
+
+
+};
+
+
+
+
+
+
+
+
+//########################################################################
+//########################################################################
+//########################################################################
+//# D O M
+//########################################################################
+//########################################################################
+//########################################################################
+
+
+
+
+
+/*#########################################################################
+## Types
+#########################################################################*/
+
+/**
+ * Bitmasks for has_an interface for SVGElement
+ */
+#define SVG_ANGLE 0x00000001
+#define SVG_ANIMATED_ANGLE 0x00000002
+#define SVG_ANIMATED_BOOLEAN 0x00000004
+#define SVG_ANIMATED_ENUMERATION 0x00000008
+#define SVG_ANIMATED_INTEGER 0x00000010
+#define SVG_ANIMATED_LENGTH 0x00000020
+#define SVG_ANIMATED_LENGTH_LIST 0x00000040
+#define SVG_ANIMATED_NUMBER 0x00000080
+#define SVG_ANIMATED_NUMBER_LIST 0x00000100
+#define SVG_ANIMATED_RECT 0x00000200
+#define SVG_ANIMATED_STRING 0x00000400
+#define SVG_COLOR 0x00000800
+#define SVG_CSS_RULE 0x00001000
+#define SVG_EXTERNAL_RESOURCES_REQUIRED 0x00002000
+#define SVG_FIT_TO_VIEWBOX 0x00004000
+#define SVG_ICCCOLOR 0x00008000
+#define SVG_LANG_SPACE 0x00010000
+#define SVG_LENGTH 0x00020000
+#define SVG_LENGTH_LIST 0x00040000
+#define SVG_LOCATABLE 0x00080000
+#define SVG_NUMBER 0x00100000
+#define SVG_NUMBER_LIST 0x00200000
+#define SVG_RECT 0x00400000
+#define SVG_RENDERING_INTENT 0x00800000
+#define SVG_STRING_LIST 0x01000000
+#define SVG_STYLABLE 0x02000000
+#define SVG_TESTS 0x04000000
+#define SVG_TRANSFORMABLE 0x08000000
+#define SVG_UNIT_TYPES 0x10000000
+#define SVG_URI_REFERENCE 0x20000000
+#define SVG_VIEW_SPEC 0x40000000
+#define SVG_ZOOM_AND_PAN 0x80000000
+
+/**
+ * How many above? Quite handy
+ */
+#define SVG_NR_INTERFACES 32
+
+
+/**
+ * Enumerations for SVGElement types
+ */
+typedef enum
+{
+ SVG_A_ELEMENT = 0,
+ SVG_ALTGLYPH_ELEMENT,
+ SVG_ALTGLYPHDEF_ELEMENT,
+ SVG_ALTGLYPHITEM_ELEMENT,
+ SVG_ANIMATE_ELEMENT,
+ SVG_ANIMATECOLOR_ELEMENT,
+ SVG_ANIMATEMOTION_ELEMENT,
+ SVG_ANIMATETRANSFORM_ELEMENT,
+ SVG_CIRCLE_ELEMENT,
+ SVG_CLIPPATH_ELEMENT,
+ SVG_COLOR_PROFILE_ELEMENT,
+ SVG_CURSOR_ELEMENT,
+ SVG_DEFINITION_SRC_ELEMENT,
+ SVG_DEFS_ELEMENT,
+ SVG_DESC_ELEMENT,
+ SVG_ELLIPSE_ELEMENT,
+ SVG_FEBLEND_ELEMENT,
+ SVG_FECOLORMATRIX_ELEMENT,
+ SVG_FECOMPONENTTRANSFER_ELEMENT,
+ SVG_FECOMPOSITE_ELEMENT,
+ SVG_FECONVOLVEMATRIX_ELEMENT,
+ SVG_FEDIFFUSELIGHTING_ELEMENT,
+ SVG_FEDISPLACEMENTMAP_ELEMENT,
+ SVG_FEDISTANTLIGHT_ELEMENT,
+ SVG_FEFLOOD_ELEMENT,
+ SVG_FEFUNCA_ELEMENT,
+ SVG_FEFUNCB_ELEMENT,
+ SVG_FEFUNCG_ELEMENT,
+ SVG_FEFUNCR_ELEMENT,
+ SVG_FEGAUSSIANBLUR_ELEMENT,
+ SVG_FEIMAGE_ELEMENT,
+ SVG_FEMERGE_ELEMENT,
+ SVG_FEMERGENODE_ELEMENT,
+ SVG_FEMORPHOLOGY_ELEMENT,
+ SVG_FEOFFSET_ELEMENT,
+ SVG_FEPOINTLIGHT_ELEMENT,
+ SVG_FESPECULARLIGHTING_ELEMENT,
+ SVG_FESPOTLIGHT_ELEMENT,
+ SVG_FETILE_ELEMENT,
+ SVG_FETURBULENCE_ELEMENT,
+ SVG_FILTER_ELEMENT,
+ SVG_FONT_ELEMENT,
+ SVG_FONT_FACE_ELEMENT,
+ SVG_FONT_FACE_FORMAT_ELEMENT,
+ SVG_FONT_FACE_NAME_ELEMENT,
+ SVG_FONT_FACE_SRC_ELEMENT,
+ SVG_FONT_FACE_URI_ELEMENT,
+ SVG_FOREIGNOBJECT_ELEMENT,
+ SVG_G_ELEMENT,
+ SVG_GLYPH_ELEMENT,
+ SVG_GLYPHREF_ELEMENT,
+ SVG_HKERN_ELEMENT,
+ SVG_IMAGE_ELEMENT,
+ SVG_LINE_ELEMENT,
+ SVG_LINEARGRADIENT_ELEMENT,
+ SVG_MARKER_ELEMENT,
+ SVG_MASK_ELEMENT,
+ SVG_METADATA_ELEMENT,
+ SVG_MISSING_GLYPH_ELEMENT,
+ SVG_MPATH_ELEMENT,
+ SVG_PATH_ELEMENT,
+ SVG_PATTERN_ELEMENT,
+ SVG_POLYGON_ELEMENT,
+ SVG_POLYLINE_ELEMENT,
+ SVG_RADIALGRADIENT_ELEMENT,
+ SVG_RECT_ELEMENT,
+ SVG_SCRIPT_ELEMENT,
+ SVG_SET_ELEMENT,
+ SVG_STOP_ELEMENT,
+ SVG_STYLE_ELEMENT,
+ SVG_SVG_ELEMENT,
+ SVG_SWITCH_ELEMENT,
+ SVG_SYMBOL_ELEMENT,
+ SVG_TEXT_ELEMENT,
+ SVG_TEXTPATH_ELEMENT,
+ SVG_TITLE_ELEMENT,
+ SVG_TREF_ELEMENT,
+ SVG_TSPAN_ELEMENT,
+ SVG_USE_ELEMENT,
+ SVG_VIEW_ELEMENT,
+ SVG_VKERN_ELEMENT,
+ SVG_MAX_ELEMENT
+} SVGElementType;
+
+
+
+
+/**
+ * Look up the SVG Element type enum for a given string
+ * Return -1 if not found
+ */
+int svgElementStrToEnum(const char *str);
+
+
+/**
+ * Return the string corresponding to a given SVG element type enum
+ * Return "unknown" if not found
+ */
+const char *svgElementEnumToStr(int type);
+
+
+
+
+/*#########################################################################
+## SVGElement
+#########################################################################*/
+
+/**
+ * All of the SVG DOM interfaces that correspond directly to elements in the SVG
+ * language(e.g., the SVGPathElement interface corresponds directly to the
+ * 'path' element in the language) are derivative from base class SVGElement.
+ */
+class SVGElement : public Element
+{
+public:
+
+ //####################################################################
+ //# BASE METHODS FOR SVGElement
+ //####################################################################
+
+ /**
+ * Get the value of the id attribute on the given element.
+ */
+ DOMString getId();
+
+ /**
+ * Set the value of the id attribute on the given element.
+ */
+ void setId(const DOMString &val) throw(DOMException);
+
+ /**
+ * Corresponds to attribute xml:base on the given element.
+ */
+ DOMString getXmlBase();
+
+ /**
+ * Corresponds to attribute xml:base on the given element.
+ */
+ void setXmlBase(const DOMString &val) throw(DOMException);
+
+ /**
+ * The nearest ancestor 'svg' element. Null if the given element is the
+ * outermost 'svg' element.
+ */
+ SVGElementPtr getOwnerSVGElement();
+
+ /**
+ * The element which established the current viewport. Often, the nearest
+ * ancestor 'svg' element. Null if the given element is the outermost 'svg'
+ * element.
+ */
+ SVGElementPtr getViewportElement();
+
+
+
+ //####################################################################
+ //####################################################################
+ //# E L E M E N T S
+ //####################################################################
+ //####################################################################
+
+ //####################################################################
+ //# SVGAElement
+ //####################################################################
+
+
+ /**
+ *
+ */
+ SVGAnimatedValue getTarget();
+
+
+
+ //####################################################################
+ //# SVGAltGlyphElement
+ //####################################################################
+
+
+ /**
+ * Get the attribute glyphRef on the given element.
+ */
+ DOMString getGlyphRef();
+
+ /**
+ * Set the attribute glyphRef on the given element.
+ */
+ void setGlyphRef(const DOMString &val) throw(DOMException);
+
+ /**
+ * Get the attribute format on the given element.
+ */
+ DOMString getFormat();
+
+ /**
+ * Set the attribute format on the given element.
+ */
+ void setFormat(const DOMString &val) throw(DOMException);
+
+
+ //####################################################################
+ //# SVGAltGlyphDefElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGAltGlyphItemElement
+ //####################################################################
+
+
+ //####################################################################
+ //# SVGAnimateElement
+ //####################################################################
+
+
+ //####################################################################
+ //# SVGAnimateColorElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGAnimateMotionElement
+ //####################################################################
+
+
+ //####################################################################
+ //# SVGAnimateTransformElement
+ //####################################################################
+
+
+ //####################################################################
+ //# SVGAnimationElement
+ //####################################################################
+
+
+ /**
+ *
+ */
+ SVGElementPtr getTargetElement();
+
+ /**
+ *
+ */
+ double getStartTime();
+
+ /**
+ *
+ */
+ double getCurrentTime();
+
+ /**
+ *
+ */
+ double getSimpleDuration() throw(DOMException);
+
+
+
+ //####################################################################
+ //# SVGCircleElement
+ //####################################################################
+
+ /**
+ * Corresponds to attribute cx on the given 'circle' element.
+ */
+ SVGAnimatedValue getCx();
+
+ /**
+ * Corresponds to attribute cy on the given 'circle' element.
+ */
+ SVGAnimatedValue getCy();
+
+ /**
+ * Corresponds to attribute r on the given 'circle' element.
+ */
+ SVGAnimatedValue getR();
+
+ //####################################################################
+ //# SVGClipPathElement
+ //####################################################################
+
+
+ /**
+ * Corresponds to attribute clipPathUnits on the given 'clipPath' element.
+ * Takes one of the constants defined in SVGUnitTypes.
+ */
+ SVGAnimatedValue getClipPathUnits();
+
+
+
+ //####################################################################
+ //# SVGColorProfileElement
+ //####################################################################
+
+
+ /**
+ * Get the attribute local on the given element.
+ */
+ DOMString getLocal();
+
+ /**
+ * Set the attribute local on the given element.
+ */
+ void setLocal(const DOMString &val) throw(DOMException);
+
+ /**
+ * Get the attribute name on the given element.
+ */
+ DOMString getName();
+
+ /**
+ * Set the attribute name on the given element.
+ */
+ void setName(const DOMString &val) throw(DOMException);
+
+ /**
+ * Set the attribute rendering-intent on the given element.
+ * The type of rendering intent, identified by one of the
+ * SVGRenderingIntent constants.
+ */
+ unsigned short getRenderingIntent();
+
+ /**
+ * Get the attribute rendering-intent on the given element.
+ */
+ void setRenderingIntent(unsigned short val) throw(DOMException);
+
+
+ //####################################################################
+ //# SVGComponentTransferFunctionElement
+ //####################################################################
+
+
+ /**
+ * Component Transfer Types
+ */
+ typedef enum
+ {
+ SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0,
+ SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,
+ SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2,
+ SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,
+ SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4,
+ SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5
+ } ComponentTransferType;
+
+
+ /**
+ * Corresponds to attribute type on the given element. Takes one\
+ * of the Component Transfer Types.
+ * -- also in SVGCSSRule
+ */
+ // SVGAnimatedValue getType();
+
+ /**
+ * Corresponds to attribute tableValues on the given element.
+ */
+ SVGAnimatedValueList getTableValues();
+
+ /**
+ * Corresponds to attribute slope on the given element.
+ */
+ SVGAnimatedValue getSlope();
+
+ /**
+ * Corresponds to attribute intercept on the given element.
+ */
+ SVGAnimatedValue getIntercept();
+
+ /**
+ * Corresponds to attribute amplitude on the given element.
+ */
+ SVGAnimatedValue getAmplitude();
+
+ /**
+ * Corresponds to attribute exponent on the given element.
+ */
+ SVGAnimatedValue getExponent();
+
+ /**
+ * Corresponds to attribute offset on the given element.
+ */
+ SVGAnimatedValue getOffset();
+
+ //####################################################################
+ //# SVGCursorElement
+ //####################################################################
+
+ /**
+ * -- also in SVGRect
+ */
+ // SVGAnimatedValue getX();
+
+ /**
+ * -- also in SVGRect
+ */
+ // SVGAnimatedValue getY();
+
+
+ //####################################################################
+ //# SVGDefinitionSrcElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGDefsElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGDescElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGEllipseElement
+ //####################################################################
+
+ /**
+ * Corresponds to attribute cx on the given 'ellipse' element.
+ * -- also in Circle
+ */
+ // SVGAnimatedValue getCx();
+
+ /**
+ * Corresponds to attribute cy on the given 'ellipse' element.
+ * -- also in Circle
+ */
+ // SVGAnimatedValue getCy();
+
+ /**
+ * Corresponds to attribute rx on the given 'ellipse' element.
+ */
+ SVGAnimatedValue getRx();
+
+ /**
+ * Corresponds to attribute ry on the given 'ellipse' element.
+ */
+ SVGAnimatedValue getRy();
+
+
+ //####################################################################
+ //# SVGFEBlendElement
+ //####################################################################
+
+ /**
+ * Blend Mode Types
+ */
+ typedef enum
+ {
+ SVG_FEBLEND_MODE_UNKNOWN = 0,
+ SVG_FEBLEND_MODE_NORMAL = 1,
+ SVG_FEBLEND_MODE_MULTIPLY = 2,
+ SVG_FEBLEND_MODE_SCREEN = 3,
+ SVG_FEBLEND_MODE_DARKEN = 4,
+ SVG_FEBLEND_MODE_LIGHTEN = 5
+ } BlendModeType;
+
+ /**
+ * Corresponds to attribute in on the given 'feBlend' element.
+ */
+ SVGAnimatedValue getIn1();
+
+ /**
+ * Corresponds to attribute in2 on the given 'feBlend' element.
+ */
+ SVGAnimatedValue getIn2();
+
+ /**
+ * Corresponds to attribute mode on the given 'feBlend' element.
+ * Takes one of the Blend Mode Types.
+ */
+ SVGAnimatedValue getMode();
+
+
+ //####################################################################
+ //# SVGFEColorMatrixElement
+ //####################################################################
+
+ /**
+ * Color Matrix Types
+ */
+ typedef enum
+ {
+ SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0,
+ SVG_FECOLORMATRIX_TYPE_MATRIX = 1,
+ SVG_FECOLORMATRIX_TYPE_SATURATE = 2,
+ SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3,
+ SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4
+ } ColorMatrixType;
+
+
+ /**
+ * Corresponds to attribute in on the given 'feColorMatrix' element.
+ * - also in feBlend
+ */
+ // SVGAnimatedValue getIn1();
+
+ /**
+ * Corresponds to attribute type on the given 'feColorMatrix' element.
+ * Takes one of the Color Matrix Types.
+ * -- also in CSSRule
+ */
+ // SVGAnimatedValue getType();
+
+ /**
+ * Corresponds to attribute values on the given 'feColorMatrix' element.
+ * Provides access to the contents of the values attribute.
+ */
+ SVGAnimatedValueList getValues();
+
+
+ //####################################################################
+ //# SVGFEComponentTransferElement
+ //####################################################################
+
+
+ /**
+ * Corresponds to attribute in on the given 'feComponentTransfer' element.
+ * -- also in feBlend
+ */
+ // SVGAnimatedValue getIn1();
+
+ //####################################################################
+ //# SVGFECompositeElement
+ //####################################################################
+
+ /**
+ * Composite Operators
+ */
+ typedef enum
+ {
+ SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0,
+ SVG_FECOMPOSITE_OPERATOR_OVER = 1,
+ SVG_FECOMPOSITE_OPERATOR_IN = 2,
+ SVG_FECOMPOSITE_OPERATOR_OUT = 3,
+ SVG_FECOMPOSITE_OPERATOR_ATOP = 4,
+ SVG_FECOMPOSITE_OPERATOR_XOR = 5,
+ SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6
+ } CompositeOperatorType;
+
+ /**
+ * Corresponds to attribute in on the given 'feComposite' element.
+ * -- also in feBlend
+ */
+ // SVGAnimatedValue getIn1();
+
+ /**
+ * Corresponds to attribute in2 on the given 'feComposite' element.
+ * -- also in feBlend
+ */
+ // SVGAnimatedValue getIn2();
+
+ /**
+ * Corresponds to attribute operator on the given 'feComposite' element.
+ * Takes one of the Composite Operators.
+ */
+ SVGAnimatedValue getOperator();
+
+ /**
+ * Corresponds to attribute k1 on the given 'feComposite' element.
+ */
+ SVGAnimatedValue getK1();
+
+ /**
+ * Corresponds to attribute k2 on the given 'feComposite' element.
+ */
+ SVGAnimatedValue getK2();
+
+ /**
+ * Corresponds to attribute k3 on the given 'feComposite' element.
+ */
+ SVGAnimatedValue getK3();
+
+ /**
+ * Corresponds to attribute k4 on the given 'feComposite' element.
+ */
+ SVGAnimatedValue getK4();
+
+
+ //####################################################################
+ //# SVGFEConvolveMatrixElement
+ //####################################################################
+
+
+ /**
+ * Edge Mode Values
+ */
+ typedef enum
+ {
+ SVG_EDGEMODE_UNKNOWN = 0,
+ SVG_EDGEMODE_DUPLICATE = 1,
+ SVG_EDGEMODE_WRAP = 2,
+ SVG_EDGEMODE_NONE = 3
+ } EdgeModeType;
+
+
+ /**
+ * Corresponds to attribute order on the given 'feConvolveMatrix' element.
+ */
+ SVGAnimatedValue getOrderX();
+
+ /**
+ * Corresponds to attribute order on the given 'feConvolveMatrix' element.
+ */
+ SVGAnimatedValue getOrderY();
+
+ /**
+ * Corresponds to attribute kernelMatrix on the given element.
+ */
+ SVGAnimatedValueList getKernelMatrix();
+
+ /**
+ * Corresponds to attribute divisor on the given 'feConvolveMatrix' element.
+ */
+ SVGAnimatedValue getDivisor();
+
+ /**
+ * Corresponds to attribute bias on the given 'feConvolveMatrix' element.
+ */
+ SVGAnimatedValue getBias();
+
+ /**
+ * Corresponds to attribute targetX on the given 'feConvolveMatrix' element.
+ */
+ SVGAnimatedValue getTargetX();
+
+ /**
+ * Corresponds to attribute targetY on the given 'feConvolveMatrix' element.
+ */
+ SVGAnimatedValue getTargetY();
+
+ /**
+ * Corresponds to attribute edgeMode on the given 'feConvolveMatrix'
+ * element. Takes one of the Edge Mode Types.
+ */
+ SVGAnimatedValue getEdgeMode();
+
+ /**
+ * Corresponds to attribute kernelUnitLength on the
+ * given 'feConvolveMatrix' element.
+ */
+ SVGAnimatedValue getKernelUnitLengthX();
+
+ /**
+ * Corresponds to attribute kernelUnitLength on the given
+ * 'feConvolveMatrix' element.
+ */
+ SVGAnimatedValue getKernelUnitLengthY();
+
+ /**
+ * Corresponds to attribute preserveAlpha on the
+ * given 'feConvolveMatrix' element.
+ */
+ SVGAnimatedValue getPreserveAlpha();
+
+
+
+ //####################################################################
+ //# SVGFEDiffuseLightingElement
+ //####################################################################
+
+
+ /**
+ * Corresponds to attribute in on the given 'feDiffuseLighting' element.
+ * -- also in feBlend
+ */
+ // SVGAnimatedValue getIn1();
+
+ /**
+ * Corresponds to attribute surfaceScale on the given
+ * 'feDiffuseLighting' element.
+ */
+ SVGAnimatedValue getSurfaceScale();
+
+ /**
+ * Corresponds to attribute diffuseConstant on the given
+ * 'feDiffuseLighting' element.
+ */
+ SVGAnimatedValue getDiffuseConstant();
+
+ /**
+ * Corresponds to attribute kernelUnitLength on the given
+ * 'feDiffuseLighting' element.
+ */
+ // SVGAnimatedValue getKernelUnitLengthX();
+
+ /**
+ * Corresponds to attribute kernelUnitLength on the given
+ * 'feDiffuseLighting' element.
+ */
+ // SVGAnimatedValue getKernelUnitLengthY();
+
+
+
+
+ //####################################################################
+ //# SVGFEDisplacementMapElement
+ //####################################################################
+
+
+ /**
+ * Channel Selectors
+ */
+ typedef enum
+ {
+ SVG_CHANNEL_UNKNOWN = 0,
+ SVG_CHANNEL_R = 1,
+ SVG_CHANNEL_G = 2,
+ SVG_CHANNEL_B = 3,
+ SVG_CHANNEL_A = 4
+ } ChannelSelector;
+
+ /**
+ *
+ * -- also in feBlend
+ */
+ // SVGAnimatedValue getIn1();
+
+ /**
+ *
+ * -- also in feBlend
+ */
+ // SVGAnimatedValue getIn2();
+
+
+ /**
+ *
+ */
+ SVGAnimatedValue getScale();
+
+ /**
+ *
+ */
+ SVGAnimatedValue getXChannelSelector();
+
+ /**
+ *
+ */
+ SVGAnimatedValue getYChannelSelector();
+
+ //####################################################################
+ //# SVGFEDistantLightElement
+ //####################################################################
+
+
+ /**
+ * Corresponds to attribute azimuth on the given 'feDistantLight' element.
+ */
+ SVGAnimatedValue getAzimuth();
+
+
+ /**
+ * Corresponds to attribute elevation on the given 'feDistantLight'
+ * element
+ */
+ SVGAnimatedValue getElevation();
+
+
+ //####################################################################
+ //# SVGFEFloodElement
+ //####################################################################
+
+
+ /**
+ *
+ * -- also in feBlend
+ */
+ // SVGAnimatedValue getIn1();
+
+
+ //####################################################################
+ //# SVGFEFuncAElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGFEFuncBElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGFEFuncGElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGFEFuncRElement
+ //####################################################################
+
+
+ //####################################################################
+ //# SVGFEGaussianBlurElement
+ //####################################################################
+
+
+ /**
+ *
+ * -- also in feBlend
+ */
+ // SVGAnimatedValue getIn1();
+
+
+ /**
+ *
+ */
+ SVGAnimatedValue getStdDeviationX();
+
+ /**
+ *
+ */
+ SVGAnimatedValue getStdDeviationY();
+
+
+ /**
+ *
+ */
+ void setStdDeviation(double stdDeviationX, double stdDeviationY);
+
+
+ //####################################################################
+ //# SVGFEImageElement
+ //####################################################################
+
+
+ //####################################################################
+ //# SVGFEMergeElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGFEMergeNodeElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGFEMorphologyElement
+ //####################################################################
+
+
+
+ /**
+ * Morphology Operators
+ */
+ typedef enum
+ {
+ SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0,
+ SVG_MORPHOLOGY_OPERATOR_ERODE = 1,
+ SVG_MORPHOLOGY_OPERATOR_DILATE = 2
+ } MorphologyOperatorType;
+
+
+ /**
+ *
+ * -- also in feBlend
+ */
+ // SVGAnimatedValue getIn1();
+
+
+ /**
+ *
+ */
+ // SVGAnimatedValue getOperator();
+
+ /**
+ *
+ */
+ SVGAnimatedValue getRadiusX();
+
+ /**
+ *
+ */
+ SVGAnimatedValue getRadiusY();
+
+ //####################################################################
+ //# SVGFEOffsetElement
+ //####################################################################
+
+ /**
+ *
+ * -- also in feBlend
+ */
+ // SVGAnimatedValue getIn1();
+
+ /**
+ *
+ */
+ SVGAnimatedValue getDx();
+
+ /**
+ *
+ */
+ SVGAnimatedValue getDy();
+
+
+ //####################################################################
+ //# SVGFEPointLightElement
+ //####################################################################
+
+ /**
+ * Corresponds to attribute x on the given 'fePointLight' element.
+ */
+ SVGAnimatedValue getX();
+
+ /**
+ * Corresponds to attribute y on the given 'fePointLight' element.
+ */
+ SVGAnimatedValue getY();
+
+ /**
+ * Corresponds to attribute z on the given 'fePointLight' element.
+ */
+ SVGAnimatedValue getZ();
+
+ //####################################################################
+ //# SVGFESpecularLightingElement
+ //####################################################################
+
+
+ /**
+ *
+ * -- also in feBlend
+ */
+ // SVGAnimatedValue getIn1();
+
+ /**
+ *
+ */
+ // SVGAnimatedValue getSurfaceScale();
+
+ /**
+ *
+ */
+ SVGAnimatedValue getSpecularConstant();
+
+ /**
+ *
+ */
+ SVGAnimatedValue getSpecularExponent();
+
+
+ //####################################################################
+ //# SVGFESpotLightElement
+ //####################################################################
+
+ /**
+ * Corresponds to attribute x on the given 'feSpotLight' element.
+ */
+ // SVGAnimatedValue getX();
+
+ /**
+ * Corresponds to attribute y on the given 'feSpotLight' element.
+ */
+ // SVGAnimatedValue getY();
+
+ /**
+ * Corresponds to attribute z on the given 'feSpotLight' element.
+ */
+ // SVGAnimatedValue getZ();
+
+ /**
+ * Corresponds to attribute pointsAtX on the given 'feSpotLight' element.
+ */
+ SVGAnimatedValue getPointsAtX();
+
+ /**
+ * Corresponds to attribute pointsAtY on the given 'feSpotLight' element.
+ */
+ SVGAnimatedValue getPointsAtY();
+
+ /**
+ * Corresponds to attribute pointsAtZ on the given 'feSpotLight' element.
+ */
+ SVGAnimatedValue getPointsAtZ();
+
+ /**
+ * Corresponds to attribute specularExponent on the
+ * given 'feSpotLight' element.
+ */
+ // SVGAnimatedValue getSpecularExponent();
+
+ /**
+ * Corresponds to attribute limitingConeAngle on the
+ * given 'feSpotLight' element.
+ */
+ SVGAnimatedValue getLimitingConeAngle();
+
+
+ //####################################################################
+ //# SVGFETileElement
+ //####################################################################
+
+
+ /**
+ *
+ * -- also in feBlend
+ */
+ // SVGAnimatedValue getIn1();
+
+
+ //####################################################################
+ //# SVGFETurbulenceElement
+ //####################################################################
+
+
+ /**
+ * Turbulence Types
+ */
+ typedef enum
+ {
+ SVG_TURBULENCE_TYPE_UNKNOWN = 0,
+ SVG_TURBULENCE_TYPE_FRACTALNOISE = 1,
+ SVG_TURBULENCE_TYPE_TURBULENCE = 2
+ } TurbulenceType;
+
+ /**
+ * Stitch Options
+ */
+ typedef enum
+ {
+ SVG_STITCHTYPE_UNKNOWN = 0,
+ SVG_STITCHTYPE_STITCH = 1,
+ SVG_STITCHTYPE_NOSTITCH = 2
+ } StitchOption;
+
+
+
+ /**
+ *
+ */
+ SVGAnimatedValue getBaseFrequencyX();
+
+ /**
+ *
+ */
+ SVGAnimatedValue getBaseFrequencyY();
+
+ /**
+ *
+ */
+ SVGAnimatedValue getNumOctaves();
+
+ /**
+ *
+ */
+ SVGAnimatedValue getSeed();
+
+ /**
+ *
+ */
+ SVGAnimatedValue getStitchTiles();
+
+ /**
+ *
+ */
+ SVGAnimatedValue getType();
+
+
+
+ //####################################################################
+ //# SVGFilterElement
+ //####################################################################
+
+
+ /**
+ * Corresponds to attribute filterUnits on the given 'filter' element. Takes one
+ * of the constants defined in SVGUnitTypes.
+ */
+ SVGAnimatedValue getFilterUnits();
+
+ /**
+ * Corresponds to attribute primitiveUnits on the given 'filter' element. Takes
+ * one of the constants defined in SVGUnitTypes.
+ */
+ SVGAnimatedValue getPrimitiveUnits();
+
+ /**
+ *
+ */
+ // SVGAnimatedValue getX();
+
+ /**
+ * Corresponds to attribute x on the given 'filter' element.
+ */
+ // SVGAnimatedValue getY();
+
+ /**
+ * Corresponds to attribute y on the given 'filter' element.
+ */
+ // SVGAnimatedValue getWidth();
+
+ /**
+ * Corresponds to attribute height on the given 'filter' element.
+ */
+ // SVGAnimatedValue getHeight();
+
+
+ /**
+ * Corresponds to attribute filterRes on the given 'filter' element.
+ * Contains the X component of attribute filterRes.
+ */
+ SVGAnimatedValue getFilterResX();
+
+ /**
+ * Corresponds to attribute filterRes on the given 'filter' element.
+ * Contains the Y component(possibly computed automatically)
+ * of attribute filterRes.
+ */
+ SVGAnimatedValue getFilterResY();
+
+ /**
+ * Sets the values for attribute filterRes.
+ */
+ void setFilterRes(unsigned long filterResX, unsigned long filterResY);
+
+
+ //####################################################################
+ //# SVGFontElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGFontFaceElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGFontFaceFormatElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGFontFaceNameElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGFontFaceSrcElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGFontFaceUriElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGForeignObjectElement
+ //####################################################################
+
+ /**
+ *
+ */
+ // SVGAnimatedValue getX();
+
+ /**
+ *
+ */
+ // SVGAnimatedValue getY();
+
+ /**
+ *
+ */
+ // SVGAnimatedValue getWidth();
+
+ /**
+ *
+ */
+ // SVGAnimatedValue getHeight();
+
+
+
+ //####################################################################
+ //# SVGGlyphRefElement
+ //####################################################################
+
+
+ /**
+ * Get the attribute glyphRef on the given element.
+ */
+ // DOMString getGlyphRef();
+
+ /**
+ * Set the attribute glyphRef on the given element.
+ */
+ // void setGlyphRef(const DOMString &val) throw(DOMException);
+
+ /**
+ * Get the attribute format on the given element.
+ */
+ // DOMString getFormat();
+
+ /**
+ * Set the attribute format on the given element.
+ */
+ // void setFormat(const DOMString &val) throw(DOMException);
+
+ /**
+ * Get the attribute x on the given element.
+ */
+ // double getX();
+
+ /**
+ * Set the attribute x on the given element.
+ */
+ // void setX(double val) throw(DOMException);
+
+ /**
+ * Get the attribute y on the given element.
+ */
+ // double getY();
+
+ /**
+ * Set the attribute y on the given element.
+ */
+ // void setY(double val) throw(DOMException);
+
+ /**
+ * Get the attribute dx on the given element.
+ */
+ // double getDx();
+
+ /**
+ * Set the attribute dx on the given element.
+ */
+ // void setDx(double val) throw(DOMException);
+
+ /**
+ * Get the attribute dy on the given element.
+ */
+ // double getDy();
+
+ /**
+ * Set the attribute dy on the given element.
+ */
+ // void setDy(double val) throw(DOMException);
+
+
+ //####################################################################
+ //# SVGGradientElement
+ //####################################################################
+
+
+ /**
+ * Spread Method Types
+ */
+ typedef enum
+ {
+ SVG_SPREADMETHOD_UNKNOWN = 0,
+ SVG_SPREADMETHOD_PAD = 1,
+ SVG_SPREADMETHOD_REFLECT = 2,
+ SVG_SPREADMETHOD_REPEAT = 3
+ } SpreadMethodType;
+
+
+ /**
+ * Corresponds to attribute gradientUnits on the given element.
+ * Takes one of the constants defined in SVGUnitTypes.
+ */
+ SVGAnimatedValue &getGradientUnits();
+
+ /**
+ * Corresponds to attribute gradientTransform on the given element.
+ */
+ SVGAnimatedValueList &getGradientTransform();
+
+ /**
+ * Corresponds to attribute spreadMethod on the given element.
+ * One of the Spread Method Types.
+ */
+ SVGAnimatedValue &getSpreadMethod();
+
+
+
+ //####################################################################
+ //# SVGHKernElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGImageElement
+ //####################################################################
+
+ /**
+ * Corresponds to attribute x on the given 'image' element.
+ */
+ // SVGAnimatedValue getX();
+
+ /**
+ * Corresponds to attribute y on the given 'image' element.
+ */
+ // SVGAnimatedValue getY();
+
+ /**
+ * Corresponds to attribute width on the given 'image' element.
+ */
+ // SVGAnimatedValue getWidth();
+
+ /**
+ * Corresponds to attribute height on the given 'image' element.
+ */
+ // SVGAnimatedValue getHeight();
+
+
+ /**
+ * Corresponds to attribute preserveAspectRatio on the given element.
+ */
+ // SVGAnimatedPreserveAspectRatio getPreserveAspectRatio();
+
+ //####################################################################
+ //# SVGLinearGradientElement
+ //####################################################################
+
+ /**
+ * Corresponds to attribute x1 on the given 'linearGradient' element.
+ */
+ // SVGAnimatedValue getX1();
+
+ /**
+ * Corresponds to attribute y1 on the given 'linearGradient' element.
+ */
+ // SVGAnimatedValue getY1();
+
+ /**
+ * Corresponds to attribute x2 on the given 'linearGradient' element.
+ */
+ // SVGAnimatedValue getX2();
+
+ /**
+ * Corresponds to attribute y2 on the given 'linearGradient' element.
+ */
+ // SVGAnimatedValue getY2();
+
+
+
+ //####################################################################
+ //# SVGLineElement
+ //####################################################################
+
+ /**
+ * Corresponds to attribute x1 on the given 'line' element.
+ */
+ // SVGAnimatedValue getX1();
+
+ /**
+ * Corresponds to attribute y1 on the given 'line' element.
+ */
+ // SVGAnimatedValue getY1();
+
+ /**
+ * Corresponds to attribute x2 on the given 'line' element.
+ */
+ // SVGAnimatedValue getX2();
+
+ /**
+ * Corresponds to attribute y2 on the given 'line' element.
+ */
+ // SVGAnimatedValue getY2();
+
+
+ //####################################################################
+ //# SVGMarkerElement
+ //####################################################################
+
+
+ /**
+ * Marker Unit Types
+ */
+ typedef enum
+ {
+ SVG_MARKERUNITS_UNKNOWN = 0,
+ SVG_MARKERUNITS_USERSPACEONUSE = 1,
+ SVG_MARKERUNITS_STROKEWIDTH = 2
+ } MarkerUnitType;
+
+ /**
+ * Marker Orientation Types
+ */
+ typedef enum
+ {
+ SVG_MARKER_ORIENT_UNKNOWN = 0,
+ SVG_MARKER_ORIENT_AUTO = 1,
+ SVG_MARKER_ORIENT_ANGLE = 2
+ } MarkerOrientationType;
+
+
+ /**
+ * Corresponds to attribute refX on the given 'marker' element.
+ */
+ SVGAnimatedValue getRefX();
+
+ /**
+ * Corresponds to attribute refY on the given 'marker' element.
+ */
+ SVGAnimatedValue getRefY();
+
+ /**
+ * Corresponds to attribute markerUnits on the given 'marker' element.
+ * One of the Marker Units Types defined above.
+ */
+ SVGAnimatedValue getMarkerUnits();
+
+ /**
+ * Corresponds to attribute markerWidth on the given 'marker' element.
+ */
+ SVGAnimatedValue getMarkerWidth();
+
+ /**
+ * Corresponds to attribute markerHeight on the given 'marker' element.
+ */
+ SVGAnimatedValue getMarkerHeight();
+
+ /**
+ * Corresponds to attribute orient on the given 'marker' element.
+ * One of the Marker Orientation Types defined above.
+ */
+ SVGAnimatedValue getOrientType();
+
+ /**
+ * Corresponds to attribute orient on the given 'marker' element.
+ * If markerUnits is SVG_MARKER_ORIENT_ANGLE, the angle value for
+ * attribute orient; otherwise, it will be set to zero.
+ */
+ SVGAnimatedValue getOrientAngle();
+
+
+ /**
+ * Sets the value of attribute orient to 'auto'.
+ */
+ void setOrientToAuto();
+
+ /**
+ * Sets the value of attribute orient to the given angle.
+ */
+ void setOrientToAngle(const SVGAngle &angle);
+
+
+ //####################################################################
+ //# SVGMaskElement
+ //####################################################################
+
+
+ /**
+ * Corresponds to attribute maskUnits on the given 'mask' element. Takes one of
+ * the constants defined in SVGUnitTypes.
+ */
+ SVGAnimatedValue getMaskUnits();
+
+ /**
+ * Corresponds to attribute maskContentUnits on the given 'mask' element. Takes
+ * one of the constants defined in SVGUnitTypes.
+ */
+ SVGAnimatedValue getMaskContentUnits();
+
+ /**
+ * Corresponds to attribute x on the given 'mask' element.
+ */
+ // SVGAnimatedValue getX();
+
+ /**
+ * Corresponds to attribute y on the given 'mask' element.
+ */
+ // SVGAnimatedValue getY();
+
+ /**
+ * Corresponds to attribute width on the given 'mask' element.
+ */
+ // SVGAnimatedValue getWidth();
+
+ /**
+ * Corresponds to attribute height on the given 'mask' element.
+ */
+ // SVGAnimatedValue getHeight();
+
+ //####################################################################
+ //# SVGMetadataElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGMissingGlyphElement
+ //####################################################################
+
+
+ //####################################################################
+ //# SVGMPathElement
+ //####################################################################
+
+ /**
+ * Corresponds to attribute pathLength on the given 'path' element.
+ */
+ SVGAnimatedValue getPathLength();
+
+ /**
+ * Returns the user agent's computed value for the total length of the path using
+ * the user agent's distance-along-a-path algorithm, as a distance in the current
+ * user coordinate system.
+ */
+ double getTotalLength();
+
+ /**
+ * Returns the(x,y) coordinate in user space which is distance units along the
+ * path, utilizing the user agent's distance-along-a-path algorithm.
+ */
+ SVGPoint getPointAtLength(double distance);
+
+ /**
+ * Returns the index into pathSegList which is distance units along the path,
+ * utilizing the user agent's distance-along-a-path algorithm.
+ */
+ unsigned long getPathSegAtLength(double distance);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegClosePath object.
+ */
+ SVGPathSeg createSVGPathSegClosePath();
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegMovetoAbs object.
+ */
+ SVGPathSeg createSVGPathSegMovetoAbs(double x, double y);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegMovetoRel object.
+ */
+ SVGPathSeg createSVGPathSegMovetoRel(double x, double y);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegLinetoAbs object.
+ */
+ SVGPathSeg createSVGPathSegLinetoAbs(double x, double y);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegLinetoRel object.
+ */
+ SVGPathSeg createSVGPathSegLinetoRel(double x, double y);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoCubicAbs object.
+ */
+ SVGPathSeg createSVGPathSegCurvetoCubicAbs(double x, double y,
+ double x1, double y1, double x2, double y2);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoCubicRel object.
+ */
+ SVGPathSeg createSVGPathSegCurvetoCubicRel(double x, double y,
+ double x1, double y1, double x2, double y2);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticAbs object.
+ */
+ SVGPathSeg createSVGPathSegCurvetoQuadraticAbs(double x, double y,
+ double x1, double y1);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticRel object.
+ */
+ SVGPathSeg createSVGPathSegCurvetoQuadraticRel(double x, double y,
+ double x1, double y1);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegArcAbs object.
+ */
+ SVGPathSeg createSVGPathSegArcAbs(double x, double y,
+ double r1, double r2, double angle,
+ bool largeArcFlag, bool sweepFlag);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegArcRel object.
+ */
+ SVGPathSeg createSVGPathSegArcRel(double x, double y, double r1,
+ double r2, double angle, bool largeArcFlag,
+ bool sweepFlag);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalAbs object.
+ */
+ SVGPathSeg createSVGPathSegLinetoHorizontalAbs(double x);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalRel object.
+ */
+ SVGPathSeg createSVGPathSegLinetoHorizontalRel(double x);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegLinetoVerticalAbs object.
+ */
+ SVGPathSeg createSVGPathSegLinetoVerticalAbs(double y);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegLinetoVerticalRel object.
+ */
+ SVGPathSeg createSVGPathSegLinetoVerticalRel(double y);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothAbs object.
+ */
+ SVGPathSeg createSVGPathSegCurvetoCubicSmoothAbs(double x, double y,
+ double x2, double y2);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothRel object.
+ */
+ SVGPathSeg createSVGPathSegCurvetoCubicSmoothRel(double x, double y,
+ double x2, double y2);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothAbs
+ * object.
+ */
+ SVGPathSeg createSVGPathSegCurvetoQuadraticSmoothAbs(double x, double y);
+
+ /**
+ * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothRel
+ * object.
+ */
+ SVGPathSeg createSVGPathSegCurvetoQuadraticSmoothRel(double x, double y);
+
+ //####################################################################
+ //# SVGPathElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGPatternElement
+ //####################################################################
+
+ /**
+ * Corresponds to attribute patternUnits on the given 'pattern' element.
+ * Takes one of the constants defined in SVGUnitTypes.
+ */
+ SVGAnimatedValue getPatternUnits();
+
+ /**
+ * Corresponds to attribute patternContentUnits on the given 'pattern'
+ * element. Takes one of the constants defined in SVGUnitTypes.
+ */
+ SVGAnimatedValue getPatternContentUnits();
+
+ /**
+ * Corresponds to attribute patternTransform on the given 'pattern' element.
+ */
+ SVGAnimatedValueList &getPatternTransform();
+
+ /**
+ * Corresponds to attribute x on the given 'pattern' element.
+ */
+ // SVGAnimatedValue getX();
+
+ /**
+ *
+ */
+ // SVGAnimatedValue getY();
+
+ /**
+ * Corresponds to attribute width on the given 'pattern' element.
+ */
+ // SVGAnimatedValue getWidth();
+
+ /**
+ * Corresponds to attribute height on the given 'pattern' element.
+ */
+ // SVGAnimatedValue getHeight();
+
+
+ //####################################################################
+ //# SVGPolyLineElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGPolygonElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGRadialGradientElement
+ //####################################################################
+
+
+ /**
+ * Corresponds to attribute cx on the given 'radialGradient' element.
+ */
+ // SVGAnimatedValue getCx();
+
+
+ /**
+ * Corresponds to attribute cy on the given 'radialGradient' element.
+ */
+ // SVGAnimatedValue getCy();
+
+
+ /**
+ * Corresponds to attribute r on the given 'radialGradient' element.
+ */
+ // SVGAnimatedValue getR();
+
+
+ /**
+ * Corresponds to attribute fx on the given 'radialGradient' element.
+ */
+ SVGAnimatedValue getFx();
+
+
+ /**
+ * Corresponds to attribute fy on the given 'radialGradient' element.
+ */
+ SVGAnimatedValue getFy();
+
+
+ //####################################################################
+ //# SVGRectElement
+ //####################################################################
+
+ /**
+ * Corresponds to attribute x on the given 'rect' element.
+ */
+ // SVGAnimatedValue getX();
+
+ /**
+ * Corresponds to attribute y on the given 'rect' element.
+ */
+ // SVGAnimatedValue getY();
+
+ /**
+ * Corresponds to attribute width on the given 'rect' element.
+ */
+ // SVGAnimatedValue getWidth();
+
+ /**
+ * Corresponds to attribute height on the given 'rect' element.
+ */
+ // SVGAnimatedValue getHeight();
+
+
+ /**
+ * Corresponds to attribute rx on the given 'rect' element.
+ */
+ // SVGAnimatedValue getRx();
+
+ /**
+ * Corresponds to attribute ry on the given 'rect' element.
+ */
+ // SVGAnimatedValue getRy();
+
+
+ //####################################################################
+ //# SVGScriptElement
+ //####################################################################
+
+ /**
+ *
+ */
+ // DOMString getType();
+
+ /**
+ *
+ */
+ // void setType(const DOMString &val) throw(DOMException);
+
+ //####################################################################
+ //# SVGSetElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGStopElement
+ //####################################################################
+
+
+ /**
+ * Corresponds to attribute offset on the given 'stop' element.
+ */
+ // SVGAnimatedValue getOffset();
+
+
+ //####################################################################
+ //# SVGStyleElement
+ //####################################################################
+
+ /**
+ * Get the attribute xml:space on the given element.
+ */
+ DOMString getXmlspace();
+
+ /**
+ * Set the attribute xml:space on the given element.
+ */
+ void setXmlspace(const DOMString &val) throw(DOMException);
+
+ /**
+ * Get the attribute type on the given 'style' element.
+ */
+ // DOMString getType();
+
+ /**
+ * Set the attribute type on the given 'style' element.
+ */
+ // void setType(const DOMString &val) throw(DOMException);
+
+ /**
+ * Get the attribute media on the given 'style' element.
+ */
+ DOMString getMedia();
+
+ /**
+ * Set the attribute media on the given 'style' element.
+ */
+ void setMedia(const DOMString &val) throw(DOMException);
+
+ /**
+ * Get the attribute title on the given 'style' element.
+ */
+ DOMString getTitle();
+
+ /**
+ * Set the attribute title on the given 'style' element.
+ */
+ void setTitle(const DOMString &val) throw(DOMException);
+
+ //####################################################################
+ //# SVGSymbolElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGSVGElement
+ //####################################################################
+
+ /**
+ * Corresponds to attribute x on the given 'svg' element.
+ */
+ // SVGAnimatedValue getX();
+
+ /**
+ * Corresponds to attribute y on the given 'svg' element.
+ */
+ // SVGAnimatedValue getY();
+
+ /**
+ * Corresponds to attribute width on the given 'svg' element.
+ */
+ // SVGAnimatedValue getWidth();
+
+ /**
+ * Corresponds to attribute height on the given 'svg' element.
+ */
+ // SVGAnimatedValue getHeight();
+
+ /**
+ * Get the attribute contentScriptType on the given 'svg' element.
+ */
+ DOMString getContentScriptType();
+
+ /**
+ * Set the attribute contentScriptType on the given 'svg' element.
+ */
+ void setContentScriptType(const DOMString &val) throw(DOMException);
+
+
+ /**
+ * Get the attribute contentStyleType on the given 'svg' element.
+ */
+ DOMString getContentStyleType();
+
+ /**
+ * Set the attribute contentStyleType on the given 'svg' element.
+ */
+ void setContentStyleType(const DOMString &val) throw(DOMException);
+
+ /**
+ * The position and size of the viewport(implicit or explicit) that corresponds
+ * to this 'svg' element. When the user agent is actually rendering the content,
+ * then the position and size values represent the actual values when rendering.
+ * The position and size values are unitless values in the coordinate system of
+ * the parent element. If no parent element exists(i.e., 'svg' element
+ * represents the root of the document tree), if this SVG document is embedded as
+ * part of another document(e.g., via the HTML 'object' element), then the
+ * position and size are unitless values in the coordinate system of the parent
+ * document.(If the parent uses CSS or XSL layout, then unitless values
+ * represent pixel units for the current CSS or XSL viewport, as described in the
+ * CSS2 specification.) If the parent element does not have a coordinate system,
+ * then the user agent should provide reasonable default values for this attribute.
+ * */
+ SVGRect getViewport();
+
+ /**
+ * Size of a pixel units(as defined by CSS2) along the x-axis of the viewport,
+ * which represents a unit somewhere in the range of 70dpi to 120dpi, and, on
+ * systems that support this, might actually match the characteristics of the
+ * target medium. On systems where it is impossible to know the size of a pixel,
+ * a suitable default pixel size is provided.
+ */
+ double getPixelUnitToMillimeterX();
+
+ /**
+ * Corresponding size of a pixel unit along the y-axis of the viewport.
+ */
+ double getPixelUnitToMillimeterY();
+
+ /**
+ * User interface(UI) events in DOM Level 2 indicate the screen positions at
+ * which the given UI event occurred. When the user agent actually knows the
+ * physical size of a "screen unit", this attribute will express that information;
+ * otherwise, user agents will provide a suitable default value such as .28mm.
+ */
+ double getScreenPixelToMillimeterX();
+
+ /**
+ * Corresponding size of a screen pixel along the y-axis of the viewport.
+ */
+ double getScreenPixelToMillimeterY();
+
+
+ /**
+ * The initial view(i.e., before magnification and panning) of the current
+ * innermost SVG document fragment can be either the "standard" view(i.e., based
+ * on attributes on the 'svg' element such as fitBoxToViewport) or to a "custom"
+ * view(i.e., a hyperlink into a particular 'view' or other element - see
+ * Linking into SVG content: URI fragments and SVG views). If the initial view is
+ * the "standard" view, then this attribute is false. If the initial view is a
+ * "custom" view, then this attribute is true.
+ */
+ bool getUseCurrentView();
+
+ /**
+ * Set the value above
+ */
+ void setUseCurrentView(bool val) throw(DOMException);
+
+ /**
+ * The definition of the initial view(i.e., before magnification and panning) of
+ * the current innermost SVG document fragment. The meaning depends on the
+ * situation:
+ *
+ * * If the initial view was a "standard" view, then:
+ * o the values for viewBox, preserveAspectRatio and zoomAndPan within
+ * currentView will match the values for the corresponding DOM attributes that
+ * are on SVGSVGElement directly
+ * o the values for transform and viewTarget within currentView will be null
+ * * If the initial view was a link into a 'view' element, then:
+ * o the values for viewBox, preserveAspectRatio and zoomAndPan within
+ * currentView will correspond to the corresponding attributes for the given
+ * 'view' element
+ * o the values for transform and viewTarget within currentView will be null
+ * * If the initial view was a link into another element(i.e., other than a
+ * 'view'), then:
+ * o the values for viewBox, preserveAspectRatio and zoomAndPan within
+ * currentView will match the values for the corresponding DOM attributes that
+ * are on SVGSVGElement directly for the closest ancestor 'svg' element
+ * o the values for transform within currentView will be null
+ * o the viewTarget within currentView will represent the target of the link
+ * * If the initial view was a link into the SVG document fragment using an SVG
+ * view specification fragment identifier(i.e., #svgView(...)), then:
+ * o the values for viewBox, preserveAspectRatio, zoomAndPan, transform and
+ * viewTarget within currentView will correspond to the values from the SVG view
+ * specification fragment identifier
+ *
+ */
+ SVGViewSpec getCurrentView();
+
+
+ /**
+ * This attribute indicates the current scale factor relative to the initial view
+ * to take into account user magnification and panning operations, as described
+ * under Magnification and panning. DOM attributes currentScale and
+ * currentTranslate are equivalent to the 2x3 matrix [a b c d e f] =
+ * [currentScale 0 0 currentScale currentTranslate.x currentTranslate.y]. If
+ * "magnification" is enabled(i.e., zoomAndPan="magnify"), then the effect is as
+ * if an extra transformation were placed at the outermost level on the SVG
+ * document fragment(i.e., outside the outermost 'svg' element).
+ */
+ double getCurrentScale();
+
+ /**
+ * Set the value above.
+ */
+ void setCurrentScale(double val) throw(DOMException);
+
+ /**
+ * The corresponding translation factor that takes into account
+ * user "magnification".
+ */
+ SVGPoint getCurrentTranslate();
+
+ /**
+ * Takes a time-out value which indicates that redraw shall not occur until:(a)
+ * the corresponding unsuspendRedraw(suspend_handle_id) call has been made,(b)
+ * an unsuspendRedrawAll() call has been made, or(c) its timer has timed out. In
+ * environments that do not support interactivity(e.g., print media), then
+ * redraw shall not be suspended. suspend_handle_id =
+ * suspendRedraw(max_wait_milliseconds) and unsuspendRedraw(suspend_handle_id)
+ * must be packaged as balanced pairs. When you want to suspend redraw actions as
+ * a collection of SVG DOM changes occur, then precede the changes to the SVG DOM
+ * with a method call similar to suspend_handle_id =
+ * suspendRedraw(max_wait_milliseconds) and follow the changes with a method call
+ * similar to unsuspendRedraw(suspend_handle_id). Note that multiple
+ * suspendRedraw calls can be used at once and that each such method call is
+ * treated independently of the other suspendRedraw method calls.
+ */
+ unsigned long suspendRedraw(unsigned long max_wait_milliseconds);
+
+ /**
+ * Cancels a specified suspendRedraw() by providing a unique suspend_handle_id.
+ */
+ void unsuspendRedraw(unsigned long suspend_handle_id) throw(DOMException);
+
+ /**
+ * Cancels all currently active suspendRedraw() method calls. This method is most
+ * useful at the very end of a set of SVG DOM calls to ensure that all pending
+ * suspendRedraw() method calls have been cancelled.
+ */
+ void unsuspendRedrawAll();
+
+ /**
+ * In rendering environments supporting interactivity, forces the user agent to
+ * immediately redraw all regions of the viewport that require updating.
+ */
+ void forceRedraw();
+
+ /**
+ * Suspends(i.e., pauses) all currently running animations that are defined
+ * within the SVG document fragment corresponding to this 'svg' element, causing
+ * the animation clock corresponding to this document fragment to stand still
+ * until it is unpaused.
+ */
+ void pauseAnimations();
+
+ /**
+ * Unsuspends(i.e., unpauses) currently running animations that are defined
+ * within the SVG document fragment, causing the animation clock to continue from
+ * the time at which it was suspended.
+ */
+ void unpauseAnimations();
+
+ /**
+ * Returns true if this SVG document fragment is in a paused state.
+ */
+ bool animationsPaused();
+
+ /**
+ * Returns the current time in seconds relative to the start time for
+ * the current SVG document fragment.
+ */
+ // double getCurrentTime();
+
+ /**
+ * Adjusts the clock for this SVG document fragment, establishing
+ * a new current time.
+ */
+ void setCurrentTime(double seconds);
+
+ /**
+ * Returns the list of graphics elements whose rendered content intersects the
+ * supplied rectangle, honoring the 'pointer-events' property value on each
+ * candidate graphics element.
+ */
+ NodeList getIntersectionList(const SVGRect &rect,
+ const SVGElementPtr referenceElement);
+
+ /**
+ * Returns the list of graphics elements whose rendered content is entirely
+ * contained within the supplied rectangle, honoring the 'pointer-events'
+ * property value on each candidate graphics element.
+ */
+ NodeList getEnclosureList(const SVGRect &rect,
+ const SVGElementPtr referenceElement);
+
+ /**
+ * Returns true if the rendered content of the given element intersects the
+ * supplied rectangle, honoring the 'pointer-events' property value on each
+ * candidate graphics element.
+ */
+ bool checkIntersection(const SVGElementPtr element, const SVGRect &rect);
+
+ /**
+ * Returns true if the rendered content of the given element is entirely
+ * contained within the supplied rectangle, honoring the 'pointer-events'
+ * property value on each candidate graphics element.
+ */
+ bool checkEnclosure(const SVGElementPtr element, const SVGRect &rect);
+
+ /**
+ * Unselects any selected objects, including any selections of text
+ * strings and type-in bars.
+ */
+ void deselectAll();
+
+ /**
+ * Creates an SVGNumber object outside of any document trees. The object
+ * is initialized to a value of zero.
+ */
+ SVGNumber createSVGNumber();
+
+ /**
+ * Creates an SVGLength object outside of any document trees. The object
+ * is initialized to the value of 0 user units.
+ */
+ SVGLength createSVGLength();
+
+ /**
+ * Creates an SVGAngle object outside of any document trees. The object
+ * is initialized to the value 0 degrees(unitless).
+ */
+ SVGAngle createSVGAngle();
+
+ /**
+ * Creates an SVGPoint object outside of any document trees. The object
+ * is initialized to the point(0,0) in the user coordinate system.
+ */
+ SVGPoint createSVGPoint();
+
+ /**
+ * Creates an SVGMatrix object outside of any document trees. The object
+ * is initialized to the identity matrix.
+ */
+ SVGMatrix createSVGMatrix();
+
+ /**
+ * Creates an SVGRect object outside of any document trees. The object
+ * is initialized such that all values are set to 0 user units.
+ */
+ SVGRect createSVGRect();
+
+ /**
+ * Creates an SVGTransform object outside of any document trees.
+ * The object is initialized to an identity matrix transform
+ * (SVG_TRANSFORM_MATRIX).
+ */
+ SVGTransform createSVGTransform();
+
+ /**
+ * Creates an SVGTransform object outside of any document trees.
+ * The object is initialized to the given matrix transform
+ * (i.e., SVG_TRANSFORM_MATRIX).
+ */
+ SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix);
+
+ /**
+ * Searches this SVG document fragment(i.e., the search is restricted to a
+ * subset of the document tree) for an Element whose id is given by elementId. If
+ * an Element is found, that Element is returned. If no such element exists,
+ * returns null. Behavior is not defined if more than one element has this id.
+ */
+ ElementPtr getElementById(const DOMString& elementId);
+
+
+ //####################################################################
+ //# SVGTextElement
+ //####################################################################
+
+
+ //####################################################################
+ //# SVGTextContentElement
+ //####################################################################
+
+
+ /**
+ * lengthAdjust Types
+ */
+ typedef enum
+ {
+ LENGTHADJUST_UNKNOWN = 0,
+ LENGTHADJUST_SPACING = 1,
+ LENGTHADJUST_SPACINGANDGLYPHS = 2
+ } LengthAdjustType;
+
+
+ /**
+ * Corresponds to attribute textLength on the given element.
+ */
+ SVGAnimatedValue getTextLength();
+
+
+ /**
+ * Corresponds to attribute lengthAdjust on the given element. The value must be
+ * one of the length adjust constants specified above.
+ */
+ SVGAnimatedValue getLengthAdjust();
+
+
+ /**
+ * Returns the total number of characters to be rendered within the current
+ * element. Includes characters which are included via a 'tref' reference.
+ */
+ long getNumberOfChars();
+
+ /**
+ * The total sum of all of the advance values from rendering all of the
+ * characters within this element, including the advance value on the glyphs
+ *(horizontal or vertical), the effect of properties 'kerning', 'letter-spacing'
+ * and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan'
+ * elements. For non-rendering environments, the user agent shall make reasonable
+ * assumptions about glyph metrics.
+ */
+ double getComputedTextLength();
+
+ /**
+ * The total sum of all of the advance values from rendering the specified
+ * substring of the characters, including the advance value on the glyphs
+ *(horizontal or vertical), the effect of properties 'kerning', 'letter-spacing'
+ * and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan'
+ * elements. For non-rendering environments, the user agent shall make reasonable
+ * assumptions about glyph metrics.
+ */
+ double getSubStringLength(unsigned long charnum, unsigned long nchars)
+ throw(DOMException);
+
+ /**
+ * Returns the current text position before rendering the character in the user
+ * coordinate system for rendering the glyph(s) that correspond to the specified
+ * character. The current text position has already taken into account the
+ * effects of any inter-character adjustments due to properties 'kerning',
+ * 'letter-spacing' and 'word-spacing' and adjustments due to attributes x, y, dx
+ * and dy. If multiple consecutive characters are rendered inseparably(e.g., as
+ * a single glyph or a sequence of glyphs), then each of the inseparable
+ * characters will return the start position for the first glyph.
+ */
+ SVGPoint getStartPositionOfChar(unsigned long charnum) throw(DOMException);
+
+ /**
+ * Returns the current text position after rendering the character in the user
+ * coordinate system for rendering the glyph(s) that correspond to the specified
+ * character. This current text position does not take into account the effects
+ * of any inter-character adjustments to prepare for the next character, such as
+ * properties 'kerning', 'letter-spacing' and 'word-spacing' and adjustments due
+ * to attributes x, y, dx and dy. If multiple consecutive characters are rendered
+ * inseparably(e.g., as a single glyph or a sequence of glyphs), then each of
+ * the inseparable characters will return the end position for the last glyph.
+ */
+ SVGPoint getEndPositionOfChar(unsigned long charnum) throw(DOMException);
+
+ /**
+ * Returns a tightest rectangle which defines the minimum and maximum X and Y
+ * values in the user coordinate system for rendering the glyph(s) that
+ * correspond to the specified character. The calculations assume that all glyphs
+ * occupy the full standard glyph cell for the font. If multiple consecutive
+ * characters are rendered inseparably(e.g., as a single glyph or a sequence of
+ * glyphs), then each of the inseparable characters will return the same extent.
+ */
+ SVGRect getExtentOfChar(unsigned long charnum) throw(DOMException);
+
+ /**
+ * Returns the rotation value relative to the current user coordinate system used
+ * to render the glyph(s) corresponding to the specified character. If multiple
+ * glyph(s) are used to render the given character and the glyphs each have
+ * different rotations(e.g., due to text-on-a-path), the user agent shall return
+ * an average value(e.g., the rotation angle at the midpoint along the path for
+ * all glyphs used to render this character). The rotation value represents the
+ * rotation that is supplemental to any rotation due to properties
+ * 'glyph-orientation-horizontal' and 'glyph-orientation-vertical'; thus, any
+ * glyph rotations due to these properties are not included into the returned
+ * rotation value. If multiple consecutive characters are rendered inseparably
+ *(e.g., as a single glyph or a sequence of glyphs), then each of the
+ * inseparable characters will return the same rotation value.
+ */
+ double getRotationOfChar(unsigned long charnum) throw(DOMException);
+
+ /**
+ * Returns the index of the character whose corresponding glyph cell bounding box
+ * contains the specified point. The calculations assume that all glyphs occupy
+ * the full standard glyph cell for the font. If no such character exists, a
+ * value of -1 is returned. If multiple such characters exist, the character
+ * within the element whose glyphs were rendered last(i.e., take into account
+ * any reordering such as for bidirectional text) is used. If multiple
+ * consecutive characters are rendered inseparably(e.g., as a single glyph or a
+ * sequence of glyphs), then the user agent shall allocate an equal percentage of
+ * the text advance amount to each of the contributing characters in determining
+ * which of the characters is chosen.
+ */
+ long getCharNumAtPosition(const SVGPoint &point);
+
+ /**
+ * Causes the specified substring to be selected just as if the user
+ * selected the substring interactively.
+ */
+ void selectSubString(unsigned long charnum, unsigned long nchars)
+ throw(DOMException);
+
+
+
+
+
+ //####################################################################
+ //# SVGTextPathElement
+ //####################################################################
+
+
+ /**
+ * textPath Method Types
+ */
+ typedef enum
+ {
+ TEXTPATH_METHODTYPE_UNKNOWN = 0,
+ TEXTPATH_METHODTYPE_ALIGN = 1,
+ TEXTPATH_METHODTYPE_STRETCH = 2
+ } TextPathMethodType;
+
+ /**
+ * textPath Spacing Types
+ */
+ typedef enum
+ {
+ TEXTPATH_SPACINGTYPE_UNKNOWN = 0,
+ TEXTPATH_SPACINGTYPE_AUTO = 1,
+ TEXTPATH_SPACINGTYPE_EXACT = 2
+ } TextPathSpacingType;
+
+
+ /**
+ * Corresponds to attribute startOffset on the given 'textPath' element.
+ */
+ SVGAnimatedValue getStartOffset();
+
+ /**
+ * Corresponds to attribute method on the given 'textPath' element. The value
+ * must be one of the method type constants specified above.
+ */
+ SVGAnimatedValue getMethod();
+
+ /**
+ * Corresponds to attribute spacing on the given 'textPath' element.
+ * The value must be one of the spacing type constants specified above.
+ */
+ SVGAnimatedValue getSpacing();
+
+
+ //####################################################################
+ //# SVGTextPositioningElement
+ //####################################################################
+
+
+ /**
+ * Corresponds to attribute x on the given element.
+ */
+ // SVGAnimatedValue getX();
+
+ /**
+ * Corresponds to attribute y on the given element.
+ */
+ // SVGAnimatedValue getY();
+
+ /**
+ * Corresponds to attribute dx on the given element.
+ */
+ // SVGAnimatedValue getDx();
+
+ /**
+ * Corresponds to attribute dy on the given element.
+ */
+ // SVGAnimatedValue getDy();
+
+
+ /**
+ * Corresponds to attribute rotate on the given element.
+ */
+ SVGAnimatedValueList getRotate();
+
+
+ //####################################################################
+ //# SVGTitleElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGTRefElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGTSpanElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGSwitchElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGUseElement
+ //####################################################################
+
+ /**
+ * Corresponds to attribute x on the given 'use' element.
+ */
+ // SVGAnimatedValue getX();
+
+ /**
+ * Corresponds to attribute y on the given 'use' element.
+ */
+ // SVGAnimatedValue getY();
+
+ /**
+ * Corresponds to attribute width on the given 'use' element.
+ */
+ // SVGAnimatedValue getWidth();
+
+ /**
+ * Corresponds to attribute height on the given 'use' element.
+ */
+ // SVGAnimatedValue getHeight();
+
+ /**
+ * The root of the "instance tree". See description of SVGElementInstance for
+ * a discussion on the instance tree.
+ * */
+ SVGElementInstance getInstanceRoot();
+
+ /**
+ * If the 'href' attribute is being animated, contains the current animated root
+ * of the "instance tree". If the 'href' attribute is not currently being
+ * animated, contains the same value as 'instanceRoot'. The root of the "instance
+ * tree". See description of SVGElementInstance for a discussion on the instance
+ * tree.
+ */
+ SVGElementInstance getAnimatedInstanceRoot();
+
+ //####################################################################
+ //# SVGVKernElement
+ //####################################################################
+
+ //####################################################################
+ //# SVGViewElement
+ //####################################################################
+
+
+ /**
+ *
+ */
+ SVGValueList getViewTarget();
+
+
+
+
+ //##################
+ //# Non-API methods
+ //##################
+
+
+ /**
+ *
+ */
+ ~SVGElement() {}
+
+
+};
+
+
+
+/*#########################################################################
+## SVGDocument
+#########################################################################*/
+
+/**
+ * When an 'svg' element is embedded inline as a component of a document from
+ * another namespace, such as when an 'svg' element is embedded inline within an
+ * XHTML document [XHTML], then an SVGDocument object will not exist; instead,
+ * the root object in the document object hierarchy will be a Document object of
+ * a different type, such as an HTMLDocument object.
+ *
+ * However, an SVGDocument object will indeed exist when the root element of the
+ * XML document hierarchy is an 'svg' element, such as when viewing a stand-alone
+ * SVG file(i.e., a file with MIME type "image/svg+xml"). In this case, the
+ * SVGDocument object will be the root object of the document object model
+ * hierarchy.
+ *
+ * In the case where an SVG document is embedded by reference, such as when an
+ * XHTML document has an 'object' element whose href attribute references an SVG
+ * document(i.e., a document whose MIME type is "image/svg+xml" and whose root
+ * element is thus an 'svg' element), there will exist two distinct DOM
+ * hierarchies. The first DOM hierarchy will be for the referencing document
+ *(e.g., an XHTML document). The second DOM hierarchy will be for the referenced
+ * SVG document. In this second DOM hierarchy, the root object of the document
+ * object model hierarchy is an SVGDocument object.
+ */
+class SVGDocument : public Document,
+ public events::DocumentEvent
+{
+public:
+
+
+ /**
+ * The title of a document as specified by the title sub-element of the 'svg'
+ * root element(i.e., <svg><title>Here is the title</title>...</svg>)
+ */
+ DOMString getTitle();
+
+ /**
+ * Returns the URI of the page that linked to this page. The value is an empty
+ * string if the user navigated to the page directly(not through a link, but,
+ * for example, via a bookmark).
+ */
+ DOMString getReferrer();
+
+ /**
+ * The domain name of the server that served the document, or a null string if
+ * the server cannot be identified by a domain name.
+ */
+ DOMString getDomain();
+
+ /**
+ * The complete URI of the document.
+ */
+ DOMString getURL();
+
+ /**
+ * The root 'svg' element in the document hierarchy.
+ */
+ SVGElementPtr getRootElement();
+
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ ~SVGDocument() {}
+
+};
+
+
+
+/*#########################################################################
+## GetSVGDocument
+#########################################################################*/
+
+/**
+ * In the case where an SVG document is embedded by reference, such as when an
+ * XHTML document has an 'object' element whose href(or equivalent) attribute
+ * references an SVG document(i.e., a document whose MIME type is
+ * "image/svg+xml" and whose root element is thus an 'svg' element), the SVG user
+ * agent is required to implement the GetSVGDocument interface for the element
+ * which references the SVG document(e.g., the HTML 'object' or comparable
+ * referencing elements).
+ */
+class GetSVGDocument
+{
+public:
+
+ /**
+ * Returns the SVGDocument object for the referenced SVG document.
+ */
+ SVGDocumentPtr getSVGDocument()
+ throw(DOMException);
+
+ //##################
+ //# Non-API methods
+ //##################
+
+ /**
+ *
+ */
+ ~GetSVGDocument() {}
+
+};
+
+
+
+
+
+
+
+} //namespace svg
+} //namespace dom
+} //namespace w3c
+} //namespace org
+
+#endif // __SVG_H__
+/*#########################################################################
+## E N D O F F I L E
+#########################################################################*/
+