diff --git a/src/dom/svg2.h b/src/dom/svg2.h
index 15032510685d5403b181748d3ac896e0410930e5..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
-#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 SVGUseElement;\r
-typedef Ptr<SVGUseElement> SVGUseElementPtr;\r
-class SVGDocument;\r
-typedef Ptr<SVGDocument> SVGDocumentPtr;\r
-\r
-/*#########################################################################\r
-## SVGException\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGException\r
-{\r
-public:\r
-\r
- /**\r
- * SVGExceptionCode\r
- */\r
- typedef enum\r
- {\r
- SVG_WRONG_TYPE_ERR = 0,\r
- SVG_INVALID_VALUE_ERR = 1,\r
- SVG_MATRIX_NOT_INVERTABLE = 2\r
- } SVGExceptionCode;\r
-\r
- unsigned short code;\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-//########################################################################\r
-//########################################################################\r
-//# V A L U E S\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
- 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*/)\r
- throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- DOMString getValueAsString();\r
-\r
- /**\r
- *\r
- */\r
- void setValueAsString(const DOMString &/*val*/)\r
- throw(DOMException);\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
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGAngle();\r
-\r
- /**\r
- *\r
- */\r
- SVGAngle(const SVGAngle &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGAngle();\r
-\r
-protected:\r
-\r
- int unitType;\r
-\r
- double value;\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
- 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
- void newValueSpecifiedUnits(unsigned short /*unitType*/, double /*val*/);\r
-\r
- /**\r
- *\r
- */\r
- void convertToSpecifiedUnits(unsigned short /*unitType*/);\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGLength();\r
-\r
- /**\r
- *\r
- */\r
- SVGLength(const SVGLength &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGLength();\r
-\r
-protected:\r
-\r
- int unitType;\r
-\r
- double value;\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
- double getA();\r
-\r
- /**\r
- *\r
- */\r
- void setA(double val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getB();\r
-\r
- /**\r
- *\r
- */\r
- void setB(double val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getC();\r
-\r
- /**\r
- *\r
- */\r
- void setC(double val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getD();\r
-\r
- /**\r
- *\r
- */\r
- void setD(double val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getE();\r
-\r
- /**\r
- *\r
- */\r
- void setE(double val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getF();\r
-\r
- /**\r
- *\r
- */\r
- void setF(double val) throw(DOMException);\r
-\r
-\r
- /**\r
- * Return the result of postmultiplying this matrix with another.\r
- */\r
- SVGMatrix multiply(const SVGMatrix &other);\r
-\r
- /**\r
- * Calculate the inverse of this matrix\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 inverse() throw(SVGException);\r
-\r
- /**\r
- * Equivalent to multiplying by:\r
- * | 1 0 x |\r
- * | 0 1 y |\r
- * | 0 0 1 |\r
- *\r
- */\r
- SVGMatrix translate(double x, double y);\r
-\r
- /**\r
- * Equivalent to multiplying by:\r
- * | scale 0 0 |\r
- * | 0 scale 0 |\r
- * | 0 0 1 |\r
- *\r
- */\r
- SVGMatrix scale(double scale);\r
-\r
- /**\r
- * Equivalent to multiplying by:\r
- * | scaleX 0 0 |\r
- * | 0 scaleY 0 |\r
- * | 0 0 1 |\r
- *\r
- */\r
- SVGMatrix scaleNonUniform(double scaleX, double scaleY);\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
- SVGMatrix rotate(double angle);\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
- SVGMatrix rotateFromVector(double x, double y) throw(SVGException);\r
-\r
- /**\r
- * Equivalent to multiplying by:\r
- * | -1 0 0 |\r
- * | 0 1 0 |\r
- * | 0 0 1 |\r
- *\r
- */\r
- SVGMatrix flipX();\r
-\r
- /**\r
- * Equivalent to multiplying by:\r
- * | 1 0 0 |\r
- * | 0 -1 0 |\r
- * | 0 0 1 |\r
- *\r
- */\r
- SVGMatrix flipY();\r
-\r
- /**\r
- * | 1 tan(a) 0 |\r
- * | 0 1 0 |\r
- * | 0 0 1 |\r
- *\r
- */\r
- SVGMatrix skewX(double angle);\r
-\r
- /**\r
- * Equivalent to multiplying by:\r
- * | 1 0 0 |\r
- * | tan(a) 1 0 |\r
- * | 0 0 1 |\r
- *\r
- */\r
- SVGMatrix skewY(double angle);\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGMatrix();\r
-\r
- /**\r
- *\r
- */\r
- SVGMatrix(double aArg, double bArg, double cArg,\r
- double dArg, double eArg, double fArg);\r
-\r
- /**\r
- * Copy constructor\r
- */\r
- SVGMatrix(const SVGMatrix &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGMatrix() {}\r
-\r
-protected:\r
-\r
-friend class SVGTransform;\r
-\r
- /*\r
- * Set to the identify matrix\r
- */\r
- void identity();\r
-\r
- double a, b, c, d, e, f;\r
-\r
-};\r
-\r
-\r
-/*#########################################################################\r
-## SVGNumber\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGNumber\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- double getValue();\r
-\r
- /**\r
- *\r
- */\r
- void setValue(double val) throw(DOMException);\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGNumber();\r
-\r
- /**\r
- *\r
- */\r
- SVGNumber(const SVGNumber &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGNumber();\r
-\r
-protected:\r
-\r
- double value;\r
-\r
-};\r
-\r
-/*#########################################################################\r
-## SVGPoint\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPoint\r
-{\r
-public:\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
- SVGPoint matrixTransform(const SVGMatrix &/*matrix*/);\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPoint();\r
-\r
- /**\r
- *\r
- */\r
- SVGPoint(const SVGPoint &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGPoint();\r
-\r
-protected:\r
-\r
- double x, y;\r
-};\r
-\r
-\r
-/*#########################################################################\r
-## SVGPathSeg\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPathSeg\r
-{\r
-public:\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
- unsigned short getPathSegType();\r
-\r
- /**\r
- *\r
- */\r
- DOMString getPathSegTypeAsLetter();\r
-\r
- /**\r
- * From the various subclasses\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 getX1();\r
-\r
- /**\r
- *\r
- */\r
- void setX1(double val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getX2();\r
-\r
- /**\r
- *\r
- */\r
- void setX2(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 getY1();\r
-\r
- /**\r
- *\r
- */\r
- void setY1(double val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getY2();\r
-\r
- /**\r
- *\r
- */\r
- void setY2(double val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getR1();\r
-\r
- /**\r
- *\r
- */\r
- void setR1(double val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getR2();\r
-\r
- /**\r
- *\r
- */\r
- void setR2(double val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- double getAngle();\r
-\r
- /**\r
- *\r
- */\r
- void setAngle(double val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- bool getLargeArcFlag();\r
-\r
- /**\r
- *\r
- */\r
- void setLargeArcFlag(bool val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- bool getSweepFlag();\r
-\r
- /**\r
- *\r
- */\r
- void setSweepFlag(bool val) throw(DOMException);\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSeg();\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSeg(int typeArg);\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSeg(const SVGPathSeg &other);\r
-\r
- /**\r
- *\r
- */\r
- SVGPathSeg &operator=(const SVGPathSeg &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGPathSeg();\r
-\r
-protected:\r
-\r
- void init();\r
- \r
- void assign(const SVGPathSeg &other);\r
-\r
- int type;\r
- double x, y, x1, y1, x2, y2;\r
- double r1, r2;\r
- double angle;\r
- bool largeArcFlag;\r
- bool sweepFlag;\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
- unsigned short getAlign();\r
-\r
- /**\r
- *\r
- */\r
- void setAlign(unsigned short val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- unsigned short getMeetOrSlice();\r
-\r
- /**\r
- *\r
- */\r
- void setMeetOrSlice(unsigned short val) throw(DOMException);\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPreserveAspectRatio();\r
-\r
- /**\r
- *\r
- */\r
- SVGPreserveAspectRatio(const SVGPreserveAspectRatio &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGPreserveAspectRatio();\r
-\r
-protected:\r
-\r
- unsigned short align;\r
- unsigned short meetOrSlice;\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGRect\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGRect\r
-{\r
-public:\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
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGRect();\r
-\r
- /**\r
- *\r
- */\r
- SVGRect(const SVGRect &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGRect();\r
-\r
-protected:\r
-\r
- double x, y, width, height;\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
- unsigned short getType();\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGMatrix getMatrix();\r
-\r
- /**\r
- *\r
- */\r
- double getAngle();\r
-\r
- /**\r
- *\r
- */\r
- void setMatrix(const SVGMatrix &matrixArg);\r
-\r
- /**\r
- *\r
- */\r
- void setTranslate(double tx, double ty);\r
-\r
- /**\r
- *\r
- */\r
- void setScale(double sx, double sy);\r
-\r
- /**\r
- *\r
- */\r
- void setRotate(double angleArg, double cx, double cy);\r
-\r
- /**\r
- *\r
- */\r
- void setSkewX(double angleArg);\r
-\r
- /**\r
- *\r
- */\r
- void setSkewY(double angleArg);\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGTransform();\r
-\r
- /**\r
- *\r
- */\r
- SVGTransform(const SVGTransform &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGTransform();\r
-\r
-protected:\r
-\r
- int type;\r
- double angle;\r
-\r
- SVGMatrix matrix;\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
- ~SVGUnitTypes();\r
-\r
-};\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGValue\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. This class holds the following:\r
- * SVGAngle\r
- * SVGBoolean\r
- * SVGEnumeration\r
- * SVGInteger\r
- * SVGLength\r
- * SVGNumber\r
- * SVGPreserveAspectRatio\r
- * SVGRect\r
- * SVGString\r
- */ \r
-class SVGValue\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- typedef enum\r
- {\r
- SVG_ANGLE,\r
- SVG_BOOLEAN,\r
- SVG_ENUMERATION,\r
- SVG_INTEGER,\r
- SVG_LENGTH,\r
- SVG_NUMBER,\r
- SVG_PRESERVE_ASPECT_RATIO,\r
- SVG_RECT,\r
- SVG_STRING,\r
- } SVGValueType;\r
-\r
- /**\r
- * Constructor\r
- */\r
- SVGValue();\r
- \r
- /**\r
- * Copy constructor\r
- */\r
- SVGValue(const SVGValue &other);\r
- \r
- /**\r
- * Assignment\r
- */\r
- SVGValue &operator=(const SVGValue &other);\r
- \r
- /**\r
- *\r
- */\r
- ~SVGValue();\r
- \r
- //###########################\r
- // TYPES\r
- //###########################\r
-\r
- /**\r
- * Angle\r
- */\r
- SVGValue(const SVGAngle &v);\r
- \r
- SVGAngle angleValue();\r
- \r
- /**\r
- * Boolean\r
- */\r
- SVGValue(bool v);\r
- \r
- bool booleanValue();\r
- \r
- \r
- /**\r
- * Enumeration\r
- */\r
- SVGValue(short v);\r
- \r
- short enumerationValue();\r
-\r
- /**\r
- * Integer\r
- */\r
- SVGValue(long v);\r
- \r
- long integerValue();\r
- \r
- /**\r
- * Length\r
- */\r
- SVGValue(const SVGLength &v);\r
- \r
- SVGLength lengthValue();\r
- \r
- /**\r
- * Number\r
- */\r
- SVGValue(double v);\r
- \r
- double numberValue();\r
-\r
- /**\r
- * PathSegment\r
- */\r
- SVGValue(const SVGPathSeg &v);\r
- \r
- SVGPathSeg pathDataValue();\r
- \r
- \r
- /**\r
- * Points\r
- */\r
- SVGValue(const SVGPoint &v);\r
- \r
- SVGPoint pointValue();\r
- \r
- \r
- /**\r
- * PreserveAspectRatio\r
- */\r
- SVGValue(const SVGPreserveAspectRatio &v);\r
- \r
- SVGPreserveAspectRatio preserveAspectRatioValue();\r
- \r
- /**\r
- * Rect\r
- */\r
- SVGValue(const SVGRect &v);\r
- \r
- SVGRect rectValue();\r
- \r
- /**\r
- * String\r
- */\r
- SVGValue(const DOMString &v);\r
- \r
- DOMString stringValue();\r
- \r
- /**\r
- * TransformList\r
- */\r
- SVGValue(const SVGTransform &v);\r
- \r
- SVGTransform transformValue();\r
- \r
- \r
-private:\r
-\r
- void init();\r
- \r
- void assign(const SVGValue &other);\r
- \r
- short type;\r
- SVGAngle angleval; // SVGAngle\r
- bool bval; // SVGBoolean\r
- short eval; // SVGEnumeration\r
- long ival; // SVGInteger\r
- SVGLength lengthval; // SVGLength\r
- double dval; // SVGNumber\r
- SVGPathSeg segval; // SVGPathSeg\r
- SVGPoint pointval; // SVGPoint\r
- SVGPreserveAspectRatio parval; // SVGPreserveAspectRatio\r
- SVGRect rval; // SVGRect\r
- DOMString sval; // SVGString\r
- SVGTransform transformval; // SVGTransform\r
-\r
-};\r
-\r
-\r
-/*#########################################################################\r
-## SVGValueList\r
-#########################################################################*/\r
-\r
-/**\r
- * THis is used to generify a bit the several different types of lists:\r
- *\r
- * SVGLengthList -> SVGValueList<SVGLength>\r
- * SVGValueList -> SVGValueList<SVGNumber>\r
- * SVGPathData -> SVGValueList<SVGPathSeg>\r
- * SVGPoints -> SVGValueList<SVGPoint>\r
- * SVGTransformList -> SVGValueList<SVGTransform>\r
- */\r
-class SVGValueList\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- typedef enum\r
- {\r
- SVG_LIST_LENGTH,\r
- SVG_LIST_NUMBER,\r
- SVG_LIST_PATHSEG,\r
- SVG_LIST_POINT,\r
- SVG_LIST_TRANSFORM\r
- } SVGValueListTypes;\r
-\r
- /**\r
- *\r
- */\r
- unsigned long getNumberOfItems();\r
-\r
-\r
- /**\r
- *\r
- */\r
- void clear() throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- SVGValue getItem(unsigned long index) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- SVGValue insertItemBefore(const SVGValue &newItem,\r
- unsigned long index)\r
- throw(DOMException, SVGException);\r
-\r
- /**\r
- *\r
- */\r
- SVGValue replaceItem(const SVGValue &newItem,\r
- unsigned long index)\r
- throw(DOMException, SVGException);\r
-\r
- /**\r
- *\r
- */\r
- SVGValue removeItem(unsigned long index) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- SVGValue appendItem(const SVGValue &newItem)\r
- throw(DOMException, SVGException);\r
-\r
- /**\r
- * Matrix\r
- */\r
- SVGValue initialize(const SVGValue &newItem)\r
- throw(DOMException, SVGException);\r
-\r
- /**\r
- * Matrix\r
- */\r
- SVGValue createSVGTransformFromMatrix(const SVGValue &matrix);\r
-\r
- /**\r
- * Matrix\r
- */\r
- SVGValue consolidate();\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGValueList();\r
-\r
- /**\r
- *\r
- */\r
- SVGValueList(const SVGValueList &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGValueList();\r
-\r
-protected:\r
-\r
- std::vector<SVGValue> items;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedValue\r
-#########################################################################*/\r
-\r
-/**\r
- * This class is used to merge all of the "Animated" values, with only\r
- * a different type, into a single API. This class subsumes the following:\r
- * SVGAnimatedValue\r
- * SVGAnimatedValue\r
- * SVGAnimatedValue\r
- * SVGAnimatedValue\r
- * SVGAnimatedValue\r
- * SVGAnimatedValue\r
- * SVGAnimatedPathData\r
- * SVGAnimatedPoints\r
- * SVGAnimatedPreserveAspectRatio\r
- * SVGAnimatedValue\r
- * SVGAnimatedValue\r
- */\r
-class SVGAnimatedValue\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- SVGValue &getBaseVal();\r
-\r
- /**\r
- *\r
- */\r
- void setBaseVal(const SVGValue &val) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- SVGValue &getAnimVal();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue();\r
- \r
- /**\r
- *\r
- */\r
- SVGAnimatedValue(const SVGValue &baseValue);\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue(const SVGValue &baseValue, const SVGValue &animValue);\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue(const SVGAnimatedValue &other);\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue &operator=(const SVGAnimatedValue &other);\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue &operator=(const SVGValue &baseVal);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGAnimatedValue();\r
- \r
-private:\r
-\r
- void init();\r
- \r
- void assign(const SVGAnimatedValue &other);\r
- \r
- SVGValue baseVal;\r
- \r
- SVGValue animVal;\r
-\r
-};\r
-\r
-\r
-/*#########################################################################\r
-## SVGAnimatedValueList\r
-#########################################################################*/\r
-\r
-/**\r
- * This class is used to merge all of the "Animated" values, with only\r
- * a different type, into a single API. This class subsumes the following:\r
- * SVGAnimatedValueList\r
- * SVGAnimatedValueList\r
- * SVGAnimatedTransformList\r
- */\r
-class SVGAnimatedValueList\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- SVGValueList &getBaseVal();\r
-\r
- /**\r
- *\r
- */\r
- void setBaseVal(const SVGValueList &val) throw (DOMException);\r
-\r
- /**\r
- *\r
- */\r
- SVGValueList &getAnimVal();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValueList();\r
- \r
- /**\r
- *\r
- */\r
- SVGAnimatedValueList(const SVGValueList &baseValue);\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValueList(const SVGValueList &baseValue, const SVGValueList &animValue);\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValueList(const SVGAnimatedValueList &other);\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValueList &operator=(const SVGAnimatedValueList &other);\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValueList &operator=(const SVGValueList &baseVal);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGAnimatedValueList();\r
- \r
-private:\r
-\r
- void init();\r
- \r
- void assign(const SVGAnimatedValueList &other);\r
- \r
- SVGValueList baseVal;\r
- \r
- SVGValueList animVal;\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGICCColor\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGICCColor\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- DOMString getColorProfile();\r
-\r
- /**\r
- *\r
- */\r
- void setColorProfile(const DOMString &val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- SVGValueList &getColors();\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
- /**\r
- *\r
- */\r
- ~SVGICCColor();\r
-\r
-protected:\r
-\r
- DOMString colorProfile;\r
-\r
- SVGValueList colors;\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGColor\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGColor : 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
- 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*/)\r
- 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
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGColor();\r
-\r
- /**\r
- *\r
- */\r
- SVGColor(const SVGColor &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGColor();\r
-\r
-protected:\r
-\r
- int colorType;\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGPaint\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGPaint : public SVGColor\r
-{\r
-public:\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
- unsigned short getPaintType();\r
-\r
- /**\r
- *\r
- */\r
- DOMString getUri();\r
-\r
- /**\r
- *\r
- */\r
- void setUri(const DOMString& uriArg);\r
-\r
- /**\r
- *\r
- */\r
- void setPaint(unsigned short paintTypeArg,\r
- const DOMString& uriArg,\r
- const DOMString& /*rgbColor*/,\r
- const DOMString& /*iccColor*/)\r
- throw(SVGException);\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGPaint();\r
-\r
- /**\r
- *\r
- */\r
- SVGPaint(const SVGPaint &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGPaint();\r
-\r
-protected:\r
-\r
- unsigned int paintType;\r
- DOMString uri;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-//########################################################################\r
-//########################################################################\r
-//# I N T E R F A C E S\r
-//########################################################################\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
- SVGAnimatedValue getClassName();\r
-\r
- /**\r
- *\r
- */\r
- css::CSSStyleDeclaration getStyle();\r
-\r
-\r
- /**\r
- *\r
- */\r
- css::CSSValue getPresentationAttribute(const DOMString& /*name*/);\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGStylable();\r
-\r
- /**\r
- *\r
- */\r
- SVGStylable(const SVGStylable &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGStylable();\r
-\r
-protected:\r
-\r
- SVGAnimatedValue className;\r
- css::CSSStyleDeclaration style;\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGLocatable\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGLocatable\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- SVGElementPtr getNearestViewportElement();\r
-\r
- /**\r
- *\r
- */\r
- SVGElementPtr 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
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGLocatable();\r
-\r
- /**\r
- *\r
- */\r
- SVGLocatable(const SVGLocatable &/*other*/);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGLocatable();\r
-\r
-protected:\r
-\r
- SVGRect bbox;\r
- SVGMatrix ctm;\r
- SVGMatrix screenCtm;\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
- SVGAnimatedValueList &getTransform();\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGTransformable();\r
-\r
- /**\r
- *\r
- */\r
- SVGTransformable(const SVGTransformable &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGTransformable();\r
-\r
-protected:\r
-\r
- SVGAnimatedValueList transforms;\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGTests\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGTests\r
-{\r
-public:\r
-\r
- /**\r
- *\r
- */\r
- SVGValueList &getRequiredFeatures();\r
-\r
- /**\r
- *\r
- */\r
- SVGValueList &getRequiredExtensions();\r
-\r
- /**\r
- *\r
- */\r
- SVGValueList &getSystemLanguage();\r
-\r
- /**\r
- *\r
- */\r
- bool hasExtension(const DOMString& /*extension*/);\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGTests();\r
-\r
- /**\r
- *\r
- */\r
- SVGTests(const SVGTests &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGTests();\r
-\r
-protected:\r
-\r
- SVGValueList requiredFeatures;\r
- SVGValueList requiredExtensions;\r
- SVGValueList 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
- 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
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGLangSpace();\r
-\r
- /**\r
- *\r
- */\r
- SVGLangSpace(const SVGLangSpace &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGLangSpace();\r
-\r
-protected:\r
-\r
- DOMString xmlLang;\r
- DOMString xmlSpace;\r
-\r
-};\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGExternalResourcesRequired\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGExternalResourcesRequired\r
-{\r
-public:\r
-\r
- /**\r
- * boolean\r
- */\r
- SVGAnimatedValue getExternalResourcesRequired();\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGExternalResourcesRequired();\r
-\r
- /**\r
- *\r
- */\r
- SVGExternalResourcesRequired(const SVGExternalResourcesRequired &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGExternalResourcesRequired();\r
-\r
-protected:\r
-\r
- SVGAnimatedValue required; //boolean\r
-\r
-};\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*#########################################################################\r
-## SVGFitToViewBox\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGFitToViewBox\r
-{\r
-public:\r
-\r
- /**\r
- * rect\r
- */\r
- SVGAnimatedValue getViewBox();\r
-\r
- /**\r
- * preserveAspectRatio\r
- */\r
- SVGAnimatedValue getPreserveAspectRatio();\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGFitToViewBox();\r
-\r
- /**\r
- *\r
- */\r
- SVGFitToViewBox(const SVGFitToViewBox &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGFitToViewBox();\r
-\r
-protected:\r
-\r
- SVGAnimatedValue viewBox; //rect\r
- SVGAnimatedValue preserveAspectRatio;\r
-\r
-};\r
-\r
-\r
-/*#########################################################################\r
-## SVGZoomAndPan\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGZoomAndPan\r
-{\r
-public:\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
- unsigned short getZoomAndPan();\r
-\r
- /**\r
- *\r
- */\r
- void setZoomAndPan(unsigned short val) throw(DOMException);\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGZoomAndPan();\r
-\r
- /**\r
- *\r
- */\r
- SVGZoomAndPan(const SVGZoomAndPan &other);\r
-\r
- /**\r
- *\r
- */\r
- ~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
- SVGValueList getTransform();\r
-\r
- /**\r
- *\r
- */\r
- SVGElementPtr 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
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGViewSpec();\r
-\r
- /**\r
- *\r
- */\r
- SVGViewSpec(const SVGViewSpec &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGViewSpec();\r
-\r
-protected:\r
-\r
- SVGElementPtr viewTarget;\r
- SVGValueList transform;\r
-};\r
-\r
-\r
-/*#########################################################################\r
-## SVGURIReference\r
-#########################################################################*/\r
-\r
-/**\r
- *\r
- */\r
-class SVGURIReference\r
-{\r
-public:\r
-\r
- /**\r
- * string\r
- */\r
- SVGAnimatedValue getHref();\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGURIReference();\r
-\r
- /**\r
- *\r
- */\r
- SVGURIReference(const SVGURIReference &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGURIReference();\r
-\r
-protected:\r
-\r
- SVGAnimatedValue 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
-\r
- /**\r
- *\r
- */\r
- SVGCSSRule(const SVGCSSRule &other);\r
-\r
- /**\r
- *\r
- */\r
- ~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
- /**\r
- *\r
- */\r
- SVGRenderingIntent(const SVGRenderingIntent &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGRenderingIntent();\r
-\r
-protected:\r
-\r
- unsigned short renderingIntentType;\r
-};\r
-\r
-\r
-\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
- */\r
- DOMString getSrc();\r
-\r
- /**\r
- *\r
- */\r
- void setSrc(const DOMString &val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- DOMString getName();\r
-\r
- /**\r
- *\r
- */\r
- void setName(const DOMString &val) throw(DOMException);\r
-\r
- /**\r
- *\r
- */\r
- unsigned short getRenderingIntent();\r
-\r
- /**\r
- *\r
- */\r
- void setRenderingIntent(unsigned short val) throw(DOMException);\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGColorProfileRule();\r
-\r
- /**\r
- *\r
- */\r
- SVGColorProfileRule(const SVGColorProfileRule &other);\r
-\r
- /**\r
- *\r
- */\r
- ~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
- * length\r
- */\r
- SVGAnimatedValue getX();\r
-\r
- /**\r
- * length\r
- */\r
- SVGAnimatedValue getY();\r
-\r
- /**\r
- * length\r
- */\r
- SVGAnimatedValue getWidth();\r
-\r
- /**\r
- * length\r
- */\r
- SVGAnimatedValue getHeight();\r
-\r
- /**\r
- * string\r
- */\r
- SVGAnimatedValue getResult();\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGFilterPrimitiveStandardAttributes();\r
-\r
- /**\r
- *\r
- */\r
- SVGFilterPrimitiveStandardAttributes(\r
- const SVGFilterPrimitiveStandardAttributes &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGFilterPrimitiveStandardAttributes();\r
-\r
-protected:\r
-\r
- SVGAnimatedValue x;\r
- SVGAnimatedValue y;\r
- SVGAnimatedValue width;\r
- SVGAnimatedValue height;\r
- SVGAnimatedValue result;\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);\r
-\r
- /**\r
- *\r
- */\r
- ~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
- SVGRect getZoomRectScreen();\r
-\r
- /**\r
- *\r
- */\r
- double getPreviousScale();\r
-\r
- /**\r
- *\r
- */\r
- SVGPoint getPreviousTranslate();\r
-\r
- /**\r
- *\r
- */\r
- double getNewScale();\r
-\r
- /**\r
- *\r
- */\r
- SVGPoint getNewTranslate();\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGZoomEvent();\r
-\r
- /**\r
- *\r
- */\r
- SVGZoomEvent(const SVGZoomEvent &other);\r
-\r
- /**\r
- *\r
- */\r
- ~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
- SVGElementPtr getCorrespondingElement();\r
-\r
- /**\r
- *\r
- */\r
- SVGUseElementPtr getCorrespondingUseElement();\r
-\r
- /**\r
- *\r
- */\r
- SVGElementInstance getParentNode();\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
- //SVGElementInstanceList getChildNodes();\r
-\r
- /**\r
- *\r
- */\r
- SVGElementInstance getFirstChild();\r
-\r
- /**\r
- *\r
- */\r
- SVGElementInstance getLastChild();\r
-\r
- /**\r
- *\r
- */\r
- SVGElementInstance getPreviousSibling();\r
-\r
- /**\r
- *\r
- */\r
- SVGElementInstance getNextSibling();\r
-\r
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGElementInstance();\r
-\r
- /**\r
- *\r
- */\r
- SVGElementInstance(const SVGElementInstance &other);\r
-\r
- /**\r
- *\r
- */\r
- ~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
- unsigned long getLength();\r
-\r
- /**\r
- *\r
- */\r
- SVGElementInstance item(unsigned long index);\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
-\r
- //##################\r
- //# Non-API methods\r
- //##################\r
-\r
- /**\r
- *\r
- */\r
- SVGElementInstanceList();\r
-\r
- /**\r
- *\r
- */\r
- SVGElementInstanceList(const SVGElementInstanceList &other);\r
-\r
- /**\r
- *\r
- */\r
- ~SVGElementInstanceList();\r
-\r
-protected:\r
-\r
- std::vector<SVGElementInstance> items;\r
-\r
-\r
-};\r
-\r
-\r
-\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
-/*#########################################################################\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
- //####################################################################\r
- //# E L E M E N T S\r
- //####################################################################\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGAElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue 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
- SVGAnimatedValue getCx();\r
-\r
- /**\r
- * Corresponds to attribute cy on the given 'circle' element.\r
- */\r
- SVGAnimatedValue getCy();\r
-\r
- /**\r
- * Corresponds to attribute r on the given 'circle' element.\r
- */\r
- SVGAnimatedValue 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
- SVGAnimatedValue 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
- * -- also in SVGCSSRule\r
- */\r
- // SVGAnimatedValue getType();\r
-\r
- /**\r
- * Corresponds to attribute tableValues on the given element.\r
- */\r
- SVGAnimatedValueList getTableValues();\r
-\r
- /**\r
- * Corresponds to attribute slope on the given element.\r
- */\r
- SVGAnimatedValue getSlope();\r
-\r
- /**\r
- * Corresponds to attribute intercept on the given element.\r
- */\r
- SVGAnimatedValue getIntercept();\r
-\r
- /**\r
- * Corresponds to attribute amplitude on the given element.\r
- */\r
- SVGAnimatedValue getAmplitude();\r
-\r
- /**\r
- * Corresponds to attribute exponent on the given element.\r
- */\r
- SVGAnimatedValue getExponent();\r
-\r
- /**\r
- * Corresponds to attribute offset on the given element.\r
- */\r
- SVGAnimatedValue getOffset();\r
-\r
- //####################################################################\r
- //# SVGCursorElement\r
- //####################################################################\r
-\r
- /**\r
- * -- also in SVGRect\r
- */\r
- // SVGAnimatedValue getX();\r
-\r
- /**\r
- * -- also in SVGRect\r
- */\r
- // SVGAnimatedValue 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
- * -- also in Circle\r
- */\r
- // SVGAnimatedValue getCx();\r
-\r
- /**\r
- * Corresponds to attribute cy on the given 'ellipse' element.\r
- * -- also in Circle\r
- */\r
- // SVGAnimatedValue getCy();\r
-\r
- /**\r
- * Corresponds to attribute rx on the given 'ellipse' element.\r
- */\r
- SVGAnimatedValue getRx();\r
-\r
- /**\r
- * Corresponds to attribute ry on the given 'ellipse' element.\r
- */\r
- SVGAnimatedValue 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
- SVGAnimatedValue getIn1();\r
-\r
- /**\r
- * Corresponds to attribute in2 on the given 'feBlend' element.\r
- */\r
- SVGAnimatedValue getIn2();\r
-\r
- /**\r
- * Corresponds to attribute mode on the given 'feBlend' element.\r
- * Takes one of the Blend Mode Types.\r
- */\r
- SVGAnimatedValue 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
- * - also in feBlend\r
- */\r
- // SVGAnimatedValue getIn1();\r
-\r
- /**\r
- * Corresponds to attribute type on the given 'feColorMatrix' element.\r
- * Takes one of the Color Matrix Types.\r
- * -- also in CSSRule\r
- */\r
- // SVGAnimatedValue 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
- SVGAnimatedValueList getValues();\r
-\r
-\r
- //####################################################################\r
- //# SVGFEComponentTransferElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Corresponds to attribute in on the given 'feComponentTransfer' element.\r
- * -- also in feBlend\r
- */\r
- // SVGAnimatedValue 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
- * -- also in feBlend\r
- */\r
- // SVGAnimatedValue getIn1();\r
-\r
- /**\r
- * Corresponds to attribute in2 on the given 'feComposite' element.\r
- * -- also in feBlend\r
- */\r
- // SVGAnimatedValue getIn2();\r
-\r
- /**\r
- * Corresponds to attribute operator on the given 'feComposite' element.\r
- * Takes one of the Composite Operators.\r
- */\r
- SVGAnimatedValue getOperator();\r
-\r
- /**\r
- * Corresponds to attribute k1 on the given 'feComposite' element.\r
- */\r
- SVGAnimatedValue getK1();\r
-\r
- /**\r
- * Corresponds to attribute k2 on the given 'feComposite' element.\r
- */\r
- SVGAnimatedValue getK2();\r
-\r
- /**\r
- * Corresponds to attribute k3 on the given 'feComposite' element.\r
- */\r
- SVGAnimatedValue getK3();\r
-\r
- /**\r
- * Corresponds to attribute k4 on the given 'feComposite' element.\r
- */\r
- SVGAnimatedValue 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
- SVGAnimatedValue getOrderX();\r
-\r
- /**\r
- * Corresponds to attribute order on the given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedValue getOrderY();\r
-\r
- /**\r
- * Corresponds to attribute kernelMatrix on the given element.\r
- */\r
- SVGAnimatedValueList getKernelMatrix();\r
-\r
- /**\r
- * Corresponds to attribute divisor on the given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedValue getDivisor();\r
-\r
- /**\r
- * Corresponds to attribute bias on the given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedValue getBias();\r
-\r
- /**\r
- * Corresponds to attribute targetX on the given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedValue getTargetX();\r
-\r
- /**\r
- * Corresponds to attribute targetY on the given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedValue getTargetY();\r
-\r
- /**\r
- * Corresponds to attribute edgeMode on the given 'feConvolveMatrix'\r
- * element. Takes one of the Edge Mode Types.\r
- */\r
- SVGAnimatedValue getEdgeMode();\r
-\r
- /**\r
- * Corresponds to attribute kernelUnitLength on the\r
- * given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedValue getKernelUnitLengthX();\r
-\r
- /**\r
- * Corresponds to attribute kernelUnitLength on the given\r
- * 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedValue getKernelUnitLengthY();\r
-\r
- /**\r
- * Corresponds to attribute preserveAlpha on the\r
- * given 'feConvolveMatrix' element.\r
- */\r
- SVGAnimatedValue getPreserveAlpha();\r
-\r
-\r
-\r
- //####################################################################\r
- //# SVGFEDiffuseLightingElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Corresponds to attribute in on the given 'feDiffuseLighting' element.\r
- * -- also in feBlend\r
- */\r
- // SVGAnimatedValue getIn1();\r
-\r
- /**\r
- * Corresponds to attribute surfaceScale on the given\r
- * 'feDiffuseLighting' element.\r
- */\r
- SVGAnimatedValue getSurfaceScale();\r
-\r
- /**\r
- * Corresponds to attribute diffuseConstant on the given\r
- * 'feDiffuseLighting' element.\r
- */\r
- SVGAnimatedValue getDiffuseConstant();\r
-\r
- /**\r
- * Corresponds to attribute kernelUnitLength on the given\r
- * 'feDiffuseLighting' element.\r
- */\r
- // SVGAnimatedValue getKernelUnitLengthX();\r
-\r
- /**\r
- * Corresponds to attribute kernelUnitLength on the given\r
- * 'feDiffuseLighting' element.\r
- */\r
- // SVGAnimatedValue 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
- * -- also in feBlend\r
- */\r
- // SVGAnimatedValue getIn1();\r
-\r
- /**\r
- *\r
- * -- also in feBlend\r
- */\r
- // SVGAnimatedValue getIn2();\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue getScale();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue getXChannelSelector();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue getYChannelSelector();\r
-\r
- //####################################################################\r
- //# SVGFEDistantLightElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Corresponds to attribute azimuth on the given 'feDistantLight' element.\r
- */\r
- SVGAnimatedValue getAzimuth();\r
-\r
-\r
- /**\r
- * Corresponds to attribute elevation on the given 'feDistantLight'\r
- * element\r
- */\r
- SVGAnimatedValue getElevation();\r
-\r
-\r
- //####################################################################\r
- //# SVGFEFloodElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- *\r
- * -- also in feBlend\r
- */\r
- // SVGAnimatedValue 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
- * -- also in feBlend\r
- */\r
- // SVGAnimatedValue getIn1();\r
-\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue getStdDeviationX();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue 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
- * -- also in feBlend\r
- */\r
- // SVGAnimatedValue getIn1();\r
-\r
-\r
- /**\r
- *\r
- */\r
- // SVGAnimatedValue getOperator();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue getRadiusX();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue getRadiusY();\r
-\r
- //####################################################################\r
- //# SVGFEOffsetElement\r
- //####################################################################\r
-\r
- /**\r
- *\r
- * -- also in feBlend\r
- */\r
- // SVGAnimatedValue getIn1();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue getDx();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue getDy();\r
-\r
-\r
- //####################################################################\r
- //# SVGFEPointLightElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'fePointLight' element.\r
- */\r
- SVGAnimatedValue getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'fePointLight' element.\r
- */\r
- SVGAnimatedValue getY();\r
-\r
- /**\r
- * Corresponds to attribute z on the given 'fePointLight' element.\r
- */\r
- SVGAnimatedValue getZ();\r
-\r
- //####################################################################\r
- //# SVGFESpecularLightingElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- *\r
- * -- also in feBlend\r
- */\r
- // SVGAnimatedValue getIn1();\r
-\r
- /**\r
- *\r
- */\r
- // SVGAnimatedValue getSurfaceScale();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue getSpecularConstant();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue getSpecularExponent();\r
-\r
-\r
- //####################################################################\r
- //# SVGFESpotLightElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'feSpotLight' element.\r
- */\r
- // SVGAnimatedValue getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'feSpotLight' element.\r
- */\r
- // SVGAnimatedValue getY();\r
-\r
- /**\r
- * Corresponds to attribute z on the given 'feSpotLight' element.\r
- */\r
- // SVGAnimatedValue getZ();\r
-\r
- /**\r
- * Corresponds to attribute pointsAtX on the given 'feSpotLight' element.\r
- */\r
- SVGAnimatedValue getPointsAtX();\r
-\r
- /**\r
- * Corresponds to attribute pointsAtY on the given 'feSpotLight' element.\r
- */\r
- SVGAnimatedValue getPointsAtY();\r
-\r
- /**\r
- * Corresponds to attribute pointsAtZ on the given 'feSpotLight' element.\r
- */\r
- SVGAnimatedValue getPointsAtZ();\r
-\r
- /**\r
- * Corresponds to attribute specularExponent on the\r
- * given 'feSpotLight' element.\r
- */\r
- // SVGAnimatedValue getSpecularExponent();\r
-\r
- /**\r
- * Corresponds to attribute limitingConeAngle on the\r
- * given 'feSpotLight' element.\r
- */\r
- SVGAnimatedValue getLimitingConeAngle();\r
-\r
-\r
- //####################################################################\r
- //# SVGFETileElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- *\r
- * -- also in feBlend\r
- */\r
- // SVGAnimatedValue 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
- SVGAnimatedValue getBaseFrequencyX();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue getBaseFrequencyY();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue getNumOctaves();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue getSeed();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue getStitchTiles();\r
-\r
- /**\r
- *\r
- */\r
- SVGAnimatedValue 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
- SVGAnimatedValue getFilterUnits();\r
-\r
- /**\r
- * Corresponds to attribute primitiveUnits on the given 'filter' element. Takes\r
- * one of the constants defined in SVGUnitTypes.\r
- */\r
- SVGAnimatedValue getPrimitiveUnits();\r
-\r
- /**\r
- *\r
- */\r
- // SVGAnimatedValue getX();\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'filter' element.\r
- */\r
- // SVGAnimatedValue getY();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'filter' element.\r
- */\r
- // SVGAnimatedValue getWidth();\r
-\r
- /**\r
- * Corresponds to attribute height on the given 'filter' element.\r
- */\r
- // SVGAnimatedValue getHeight();\r
-\r
-\r
- /**\r
- * Corresponds to attribute filterRes on the given 'filter' element.\r
- * Contains the X component of attribute filterRes.\r
- */\r
- SVGAnimatedValue 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
- SVGAnimatedValue 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
- // SVGAnimatedValue getX();\r
-\r
- /**\r
- *\r
- */\r
- // SVGAnimatedValue getY();\r
-\r
- /**\r
- *\r
- */\r
- // SVGAnimatedValue getWidth();\r
-\r
- /**\r
- *\r
- */\r
- // SVGAnimatedValue 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
- SVGAnimatedValue &getGradientUnits();\r
-\r
- /**\r
- * Corresponds to attribute gradientTransform on the given element.\r
- */\r
- SVGAnimatedValueList &getGradientTransform();\r
-\r
- /**\r
- * Corresponds to attribute spreadMethod on the given element.\r
- * One of the Spread Method Types.\r
- */\r
- SVGAnimatedValue &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
- // SVGAnimatedValue getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'image' element.\r
- */\r
- // SVGAnimatedValue getY();\r
-\r
- /**\r
- * Corresponds to attribute width on the given 'image' element.\r
- */\r
- // SVGAnimatedValue getWidth();\r
-\r
- /**\r
- * Corresponds to attribute height on the given 'image' element.\r
- */\r
- // SVGAnimatedValue 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
- // SVGAnimatedValue getX1();\r
-\r
- /**\r
- * Corresponds to attribute y1 on the given 'linearGradient' element.\r
- */\r
- // SVGAnimatedValue getY1();\r
-\r
- /**\r
- * Corresponds to attribute x2 on the given 'linearGradient' element.\r
- */\r
- // SVGAnimatedValue getX2();\r
-\r
- /**\r
- * Corresponds to attribute y2 on the given 'linearGradient' element.\r
- */\r
- // SVGAnimatedValue getY2();\r
-\r
-\r
-\r
- //####################################################################\r
- //# SVGLineElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute x1 on the given 'line' element.\r
- */\r
- // SVGAnimatedValue getX1();\r
-\r
- /**\r
- * Corresponds to attribute y1 on the given 'line' element.\r
- */\r
- // SVGAnimatedValue getY1();\r
-\r
- /**\r
- * Corresponds to attribute x2 on the given 'line' element.\r
- */\r
- // SVGAnimatedValue getX2();\r
-\r
- /**\r
- * Corresponds to attribute y2 on the given 'line' element.\r
- */\r
- // SVGAnimatedValue 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
- SVGAnimatedValue getRefX();\r
-\r
- /**\r
- * Corresponds to attribute refY on the given 'marker' element.\r
- */\r
- SVGAnimatedValue getRefY();\r
-\r
- /**\r
- * Corresponds to attribute markerUnits on the given 'marker' element.\r
- * One of the Marker Units Types defined above.\r
- */\r
- SVGAnimatedValue getMarkerUnits();\r
-\r
- /**\r
- * Corresponds to attribute markerWidth on the given 'marker' element.\r
- */\r
- SVGAnimatedValue getMarkerWidth();\r
-\r
- /**\r
- * Corresponds to attribute markerHeight on the given 'marker' element.\r
- */\r
- SVGAnimatedValue getMarkerHeight();\r
-\r
- /**\r
- * Corresponds to attribute orient on the given 'marker' element.\r
- * One of the Marker Orientation Types defined above.\r
- */\r
- SVGAnimatedValue 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
- SVGAnimatedValue 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
- SVGAnimatedValue getMaskUnits();\r
-\r
- /**\r
- * Corresponds to attribute maskContentUnits on the given 'mask' element. Takes\r
- * one of the constants defined in SVGUnitTypes.\r
- */\r
- SVGAnimatedValue getMaskContentUnits();\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'mask' element.\r
- */\r
- // SVGAnimatedValue getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'mask' element.\r
- */\r
- // SVGAnimatedValue getY();\r
-\r
- /**\r
- * Corresponds to attribute width on the given 'mask' element.\r
- */\r
- // SVGAnimatedValue getWidth();\r
-\r
- /**\r
- * Corresponds to attribute height on the given 'mask' element.\r
- */\r
- // SVGAnimatedValue getHeight();\r
-\r
- //####################################################################\r
- //# SVGMetadataElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGMissingGlyphElement\r
- //####################################################################\r
-\r
-\r
- //####################################################################\r
- //# SVGMPathElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute pathLength on the given 'path' element.\r
- */\r
- SVGAnimatedValue 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
- SVGPathSeg createSVGPathSegClosePath();\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegMovetoAbs object.\r
- */\r
- SVGPathSeg createSVGPathSegMovetoAbs(double x, double y);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegMovetoRel object.\r
- */\r
- SVGPathSeg createSVGPathSegMovetoRel(double x, double y);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegLinetoAbs object.\r
- */\r
- SVGPathSeg createSVGPathSegLinetoAbs(double x, double y);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegLinetoRel object.\r
- */\r
- SVGPathSeg createSVGPathSegLinetoRel(double x, double y);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegCurvetoCubicAbs object.\r
- */\r
- SVGPathSeg 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
- SVGPathSeg 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
- SVGPathSeg createSVGPathSegCurvetoQuadraticAbs(double x, double y,\r
- double x1, double y1);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticRel object.\r
- */\r
- SVGPathSeg createSVGPathSegCurvetoQuadraticRel(double x, double y,\r
- double x1, double y1);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegArcAbs object.\r
- */\r
- SVGPathSeg 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
- SVGPathSeg 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
- SVGPathSeg createSVGPathSegLinetoHorizontalAbs(double x);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalRel object.\r
- */\r
- SVGPathSeg createSVGPathSegLinetoHorizontalRel(double x);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegLinetoVerticalAbs object.\r
- */\r
- SVGPathSeg createSVGPathSegLinetoVerticalAbs(double y);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegLinetoVerticalRel object.\r
- */\r
- SVGPathSeg createSVGPathSegLinetoVerticalRel(double y);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothAbs object.\r
- */\r
- SVGPathSeg createSVGPathSegCurvetoCubicSmoothAbs(double x, double y,\r
- double x2, double y2);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothRel object.\r
- */\r
- SVGPathSeg createSVGPathSegCurvetoCubicSmoothRel(double x, double y,\r
- double x2, double y2);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothAbs\r
- * object.\r
- */\r
- SVGPathSeg createSVGPathSegCurvetoQuadraticSmoothAbs(double x, double y);\r
-\r
- /**\r
- * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothRel\r
- * object.\r
- */\r
- SVGPathSeg createSVGPathSegCurvetoQuadraticSmoothRel(double x, double y);\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
- SVGAnimatedValue getPatternUnits();\r
-\r
- /**\r
- * Corresponds to attribute patternContentUnits on the given 'pattern'\r
- * element. Takes one of the constants defined in SVGUnitTypes.\r
- */\r
- SVGAnimatedValue getPatternContentUnits();\r
-\r
- /**\r
- * Corresponds to attribute patternTransform on the given 'pattern' element.\r
- */\r
- SVGAnimatedValueList &getPatternTransform();\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'pattern' element.\r
- */\r
- // SVGAnimatedValue getX();\r
-\r
- /**\r
- *\r
- */\r
- // SVGAnimatedValue getY();\r
-\r
- /**\r
- * Corresponds to attribute width on the given 'pattern' element.\r
- */\r
- // SVGAnimatedValue getWidth();\r
-\r
- /**\r
- * Corresponds to attribute height on the given 'pattern' element.\r
- */\r
- // SVGAnimatedValue getHeight();\r
-\r
-\r
- //####################################################################\r
- //# SVGPolyLineElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGPolygonElement\r
- //####################################################################\r
-\r
- //####################################################################\r
- //# SVGRadialGradientElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Corresponds to attribute cx on the given 'radialGradient' element.\r
- */\r
- // SVGAnimatedValue getCx();\r
-\r
-\r
- /**\r
- * Corresponds to attribute cy on the given 'radialGradient' element.\r
- */\r
- // SVGAnimatedValue getCy();\r
-\r
-\r
- /**\r
- * Corresponds to attribute r on the given 'radialGradient' element.\r
- */\r
- // SVGAnimatedValue getR();\r
-\r
-\r
- /**\r
- * Corresponds to attribute fx on the given 'radialGradient' element.\r
- */\r
- SVGAnimatedValue getFx();\r
-\r
-\r
- /**\r
- * Corresponds to attribute fy on the given 'radialGradient' element.\r
- */\r
- SVGAnimatedValue getFy();\r
-\r
-\r
- //####################################################################\r
- //# SVGRectElement\r
- //####################################################################\r
-\r
- /**\r
- * Corresponds to attribute x on the given 'rect' element.\r
- */\r
- // SVGAnimatedValue getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'rect' element.\r
- */\r
- // SVGAnimatedValue getY();\r
-\r
- /**\r
- * Corresponds to attribute width on the given 'rect' element.\r
- */\r
- // SVGAnimatedValue getWidth();\r
-\r
- /**\r
- * Corresponds to attribute height on the given 'rect' element.\r
- */\r
- // SVGAnimatedValue getHeight();\r
-\r
-\r
- /**\r
- * Corresponds to attribute rx on the given 'rect' element.\r
- */\r
- // SVGAnimatedValue getRx();\r
-\r
- /**\r
- * Corresponds to attribute ry on the given 'rect' element.\r
- */\r
- // SVGAnimatedValue 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
- // SVGAnimatedValue 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
- // SVGAnimatedValue getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'svg' element.\r
- */\r
- // SVGAnimatedValue getY();\r
-\r
- /**\r
- * Corresponds to attribute width on the given 'svg' element.\r
- */\r
- // SVGAnimatedValue getWidth();\r
-\r
- /**\r
- * Corresponds to attribute height on the given 'svg' element.\r
- */\r
- // SVGAnimatedValue 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
- SVGAnimatedValue 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
- SVGAnimatedValue 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
- SVGAnimatedValue 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
- SVGAnimatedValue 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
- SVGAnimatedValue getSpacing();\r
-\r
-\r
- //####################################################################\r
- //# SVGTextPositioningElement\r
- //####################################################################\r
-\r
-\r
- /**\r
- * Corresponds to attribute x on the given element.\r
- */\r
- // SVGAnimatedValue getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given element.\r
- */\r
- // SVGAnimatedValue getY();\r
-\r
- /**\r
- * Corresponds to attribute dx on the given element.\r
- */\r
- // SVGAnimatedValue getDx();\r
-\r
- /**\r
- * Corresponds to attribute dy on the given element.\r
- */\r
- // SVGAnimatedValue getDy();\r
-\r
-\r
- /**\r
- * Corresponds to attribute rotate on the given element.\r
- */\r
- SVGAnimatedValueList 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
- // SVGAnimatedValue getX();\r
-\r
- /**\r
- * Corresponds to attribute y on the given 'use' element.\r
- */\r
- // SVGAnimatedValue getY();\r
-\r
- /**\r
- * Corresponds to attribute width on the given 'use' element.\r
- */\r
- // SVGAnimatedValue getWidth();\r
-\r
- /**\r
- * Corresponds to attribute height on the given 'use' element.\r
- */\r
- // SVGAnimatedValue 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
- SVGValueList 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
+#########################################################################*/
+