From: ishmal Date: Sat, 14 Jun 2008 19:51:16 +0000 (+0000) Subject: experimental version without multiple inheritance X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=257503290d4930347fc488204863416752226dfe;p=inkscape.git experimental version without multiple inheritance --- diff --git a/src/dom/svg2.h b/src/dom/svg2.h new file mode 100644 index 000000000..0e980cf89 --- /dev/null +++ b/src/dom/svg2.h @@ -0,0 +1,3488 @@ +#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 "svgtypes.h" + +#include + +#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 SVGElementPtr; +class SVGDocument; +typedef Ptr SVGDocumentPtr; + +/*######################################################################### +## 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(); + + + //#################################################################### + //#################################################################### + //# I N T E R F A C E S + //#################################################################### + //#################################################################### + + //#################################################################### + //# SVGAngle + //#################################################################### + + /** + * + */ + 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*/); + + //#################################################################### + //# SVGAnimatedAngle + //#################################################################### + + /** + * + */ + SVGAngle getBaseAngleVal(); + + /** + * + */ + SVGAngle getAnimAngleVal(); + + + //#################################################################### + //# SVGAnimatedBoolean + //#################################################################### + + /** + * + */ + bool getBaseBooleanVal(); + + /** + * + */ + void setBaseBooleanVal(bool val) throw (DOMException); + + /** + * + */ + bool getAnimBooleanVal(); + + //#################################################################### + //# SVGAnimatedEnumeration + //#################################################################### + + /** + * + */ + unsigned short getBaseEnumerationVal(); + + /** + * + */ + void setBaseEnumerationVal(unsigned short val) throw (DOMException); + + /** + * + */ + unsigned short getAnimEnumerationVal(); + + //#################################################################### + //# SVGAnimatedInteger + //#################################################################### + + /** + * + */ + long getBaseIntegerVal(); + + /** + * + */ + void setBaseIntegerVal(long val) throw (DOMException); + + /** + * + */ + long getAnimIntegerVal(); + + //#################################################################### + //# SVGAnimatedLength + //#################################################################### + + /** + * + */ + SVGLength &getBaseLengthVal(); + + /** + * + */ + SVGLength &getAnimLengthVal(); + + //#################################################################### + //# SVGAnimatedLengthList + //#################################################################### + + /** + * + */ + SVGLengthList &getBaseLengthListVal(); + + /** + * + */ + SVGLengthList &getAnimLengthListVal(); + + //#################################################################### + //# SVGAnimatedNumber + //#################################################################### + + /** + * + */ + double getBaseNumberVal(); + + /** + * + */ + void setBaseNumberVal(double val) throw (DOMException); + + /** + * + */ + double getAnimNumberVal(); + + //#################################################################### + //# SVGAnimatedNumberList + //#################################################################### + + /** + * + */ + SVGNumberList &getBaseNumberListVal(); + + /** + * + */ + SVGNumberList &getAnimNumberListVal(); + + //#################################################################### + //# SVGAnimatedRect + //#################################################################### + + /** + * + */ + SVGRect &getBaseRectVal(); + + /** + * + */ + SVGRect &getAnimRectVal(); + + //#################################################################### + //# SVGAnimatedString + //#################################################################### + + /** + * + */ + DOMString getBaseVal(); + + /** + * + */ + void setBaseVal(const DOMString &val) throw (DOMException); + + /** + * + */ + DOMString getAnimVal(); + + //#################################################################### + //# SVGColor + //#################################################################### + + /** + * From CSSValue + * A code defining the type of the value as defined above. + */ + unsigned short getCssValueType(); + + /** + * From CSSValue + * A string representation of the current value. + */ + DOMString getCssText(); + + /** + * From CSSValue + * A string representation of the current value. + * Note that setting implies parsing. + */ + void setCssText(const DOMString &val) throw (dom::DOMException); + + + /** + * + */ + 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); + + //#################################################################### + //# SVGCSSRule + //#################################################################### + + /** + * From CSSRule + * The type of the rule, as defined above. The expectation is that + * binding-specific casting methods can be used to cast down from an instance of + * the CSSRule interface to the specific derived interface implied by the type. + */ + unsigned short getType(); + + /** + * From CSSRule + * The parsable textual representation of the rule. This reflects the current + * state of the rule and not its initial value. + */ + DOMString getCssText(); + + /** + * From CSSRule + * The parsable textual representation of the rule. This reflects the current + * state of the rule and not its initial value. + * Note that setting involves reparsing. + */ + void setCssText(const DOMString &val) throw (DOMException); + + /** + * From CSSRule + * The style sheet that contains this rule. + */ + css::CSSStyleSheet *getParentStyleSheet(); + + /** + * From CSSRule + * If this rule is contained inside another rule(e.g. a style rule inside an + * @media block), this is the containing rule. If this rule is not nested inside + * any other rules, this returns null. + */ + css::CSSRule *getParentRule(); + + //#################################################################### + //# SVGExternalResourcesRequired + //#################################################################### + + /** + * + */ + SVGAnimatedBoolean getExternalResourcesRequired(); + + //#################################################################### + //# SVGFitToViewBox + //#################################################################### + + /** + * + */ + SVGAnimatedRect getViewBox(); + + /** + * + */ + SVGAnimatedPreserveAspectRatio getPreserveAspectRatio(); + + //#################################################################### + //# SVGICCColor + //#################################################################### + + /** + * + */ + DOMString getColorProfile(); + + /** + * + */ + void setColorProfile(const DOMString &val) throw (DOMException); + + /** + * + */ + SVGNumberList &getColors(); + + //#################################################################### + //# SVGLangSpace + //#################################################################### + + /** + * + */ + DOMString getXmllang(); + + /** + * + */ + void setXmllang(const DOMString &val) throw (DOMException); + + /** + * + */ + DOMString getXmlspace(); + + /** + * + */ + void setXmlspace(const DOMString &val) throw (DOMException); + + //#################################################################### + //# SVGLength + //#################################################################### + + /** + * + */ + 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*/); + + //#################################################################### + //# SVGLengthList + //#################################################################### + + /** + * + */ + unsigned long getNumberOfItems(); + + + /** + * + */ + void clear() throw (DOMException); + + /** + * + */ + SVGLength initialize(const SVGLength &newItem) + throw (DOMException, SVGException); + + /** + * + */ + SVGLength getItem(unsigned long index) throw (DOMException); + + /** + * + */ + SVGLength insertItemBefore(const SVGLength &newItem, unsigned long index) + throw (DOMException, SVGException); + + /** + * + */ + SVGLength replaceItem(const SVGLength &newItem, unsigned long index) + throw (DOMException, SVGException); + + /** + * + */ + SVGLength removeItem(unsigned long index) throw (DOMException); + + /** + * + */ + SVGLength appendItem(const SVGLength &newItem) + throw (DOMException, SVGException); + + //#################################################################### + //# SVGLocatable + //#################################################################### + + /** + * + */ + SVGElementPtr getNearestViewportElement(); + + /** + * + */ + SVGElement *getFarthestViewportElement(); + + /** + * + */ + SVGRect getBBox(); + + /** + * + */ + SVGMatrix getCTM(); + + /** + * + */ + SVGMatrix getScreenCTM(); + + /** + * + */ + SVGMatrix getTransformToElement(const SVGElement &/*element*/) + throw (SVGException); + + //#################################################################### + //# SVGNumber + //#################################################################### + + /** + * + */ + double getValue(); + + /** + * + */ + void setValue(double val) throw (DOMException); + + //#################################################################### + //# SVGNumberList + //#################################################################### + + /** + * + */ + unsigned long getNumberOfItems(); + + + /** + * + */ + void clear() throw (DOMException); + + /** + * + */ + SVGNumber initialize(const SVGNumber &newItem) + throw (DOMException, SVGException); + + /** + * + */ + SVGNumber getItem(unsigned long index) throw (DOMException); + + /** + * + */ + SVGNumber insertItemBefore(const SVGNumber &newItem, unsigned long index) + throw (DOMException, SVGException); + + /** + * + */ + SVGNumber replaceItem(const SVGNumber &newItem, unsigned long index) + throw (DOMException, SVGException); + + /** + * + */ + SVGNumber removeItem(unsigned long index) throw (DOMException); + + /** + * + */ + SVGNumber appendItem(const SVGNumber &newItem) + throw (DOMException, SVGException); + + //#################################################################### + //# SVGRect + //#################################################################### + + /** + * + */ + 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); + + //#################################################################### + //# SVGRenderingIntent + //#################################################################### + + //#################################################################### + //# SVGStringList + //#################################################################### + + /** + * + */ + unsigned long getNumberOfItems(); + + /** + * + */ + void clear() throw (DOMException); + + /** + * + */ + DOMString initialize(const DOMString& newItem) + throw (DOMException, SVGException); + + /** + * + */ + DOMString getItem(unsigned long index) throw (DOMException); + + /** + * + */ + DOMString insertItemBefore(const DOMString& newItem, unsigned long index) + throw (DOMException, SVGException); + + /** + * + */ + DOMString replaceItem(const DOMString& newItem, unsigned long index) + throw (DOMException, SVGException); + + /** + * + */ + DOMString removeItem(unsigned long index) throw (DOMException); + + /** + * + */ + DOMString appendItem(const DOMString& newItem) + throw (DOMException, SVGException); + + //#################################################################### + //# SVGStylable + //#################################################################### + + /** + * + */ + SVGAnimatedString getClassName(); + + /** + * + */ + css::CSSStyleDeclaration getStyle(); + + /** + * + */ + css::CSSValue getPresentationAttribute(const DOMString& /*name*/); + + //#################################################################### + //# SVGTests + //#################################################################### + + /** + * + */ + SVGStringList &getRequiredFeatures(); + + /** + * + */ + SVGStringList &getRequiredExtensions(); + + /** + * + */ + SVGStringList &getSystemLanguage(); + + /** + * + */ + bool hasExtension(const DOMString& /*extension*/); + + //#################################################################### + //# SVGTransformable + //#################################################################### + + /** + * + */ + SVGAnimatedTransformList &getTransform(); + + //#################################################################### + //# SVGUnitTypes + //#################################################################### + + //#################################################################### + //# SVGURIReference + //#################################################################### + + /** + * + */ + SVGAnimatedString getHref(); + + //#################################################################### + //# SVGViewSpec + //#################################################################### + + /** + * + */ + SVGTransformList getTransform(); + + /** + * + */ + SVGElement *getViewTarget(); + + /** + * + */ + DOMString getViewBoxString(); + + /** + * + */ + DOMString getPreserveAspectRatioString(); + + /** + * + */ + DOMString getTransformString(); + + /** + * + */ + DOMString getViewTargetString(); + + //#################################################################### + //# SVGZoomAndPan + //#################################################################### + + /** + * + */ + unsigned short getZoomAndPan(); + + /** + * + */ + void setZoomAndPan(unsigned short val) throw (DOMException); + + //#################################################################### + //#################################################################### + //# E L E M E N T S + //#################################################################### + //#################################################################### + + //#################################################################### + //# SVGAElement + //#################################################################### + + + /** + * + */ + SVGAnimatedString 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. + */ + SVGAnimatedLength getCx(); + + /** + * Corresponds to attribute cy on the given 'circle' element. + */ + SVGAnimatedLength getCy(); + + /** + * Corresponds to attribute r on the given 'circle' element. + */ + SVGAnimatedLength getR(); + + //#################################################################### + //# SVGClipPathElement + //#################################################################### + + + /** + * Corresponds to attribute clipPathUnits on the given 'clipPath' element. + * Takes one of the constants defined in SVGUnitTypes. + */ + SVGAnimatedEnumeration 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. + */ + SVGAnimatedEnumeration getType(); + + /** + * Corresponds to attribute tableValues on the given element. + */ + SVGAnimatedNumberList getTableValues(); + + /** + * Corresponds to attribute slope on the given element. + */ + SVGAnimatedNumber getSlope(); + + /** + * Corresponds to attribute intercept on the given element. + */ + SVGAnimatedNumber getIntercept(); + + /** + * Corresponds to attribute amplitude on the given element. + */ + SVGAnimatedNumber getAmplitude(); + + /** + * Corresponds to attribute exponent on the given element. + */ + SVGAnimatedNumber getExponent(); + + /** + * Corresponds to attribute offset on the given element. + */ + SVGAnimatedNumber getOffset(); + + //#################################################################### + //# SVGCursorElement + //#################################################################### + + /** + * + */ + SVGAnimatedLength getX(); + + /** + * + */ + SVGAnimatedLength getY(); + + + //#################################################################### + //# SVGDefinitionSrcElement + //#################################################################### + + //#################################################################### + //# SVGDefsElement + //#################################################################### + + //#################################################################### + //# SVGDescElement + //#################################################################### + + //#################################################################### + //# SVGEllipseElement + //#################################################################### + + /** + * Corresponds to attribute cx on the given 'ellipse' element. + */ + SVGAnimatedLength getCx(); + + /** + * Corresponds to attribute cy on the given 'ellipse' element. + */ + SVGAnimatedLength getCy(); + + /** + * Corresponds to attribute rx on the given 'ellipse' element. + */ + SVGAnimatedLength getRx(); + + /** + * Corresponds to attribute ry on the given 'ellipse' element. + */ + SVGAnimatedLength 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. + */ + SVGAnimatedString getIn1(); + + /** + * Corresponds to attribute in2 on the given 'feBlend' element. + */ + SVGAnimatedString getIn2(); + + /** + * Corresponds to attribute mode on the given 'feBlend' element. + * Takes one of the Blend Mode Types. + */ + SVGAnimatedEnumeration 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. + */ + SVGAnimatedString getIn1(); + + /** + * Corresponds to attribute type on the given 'feColorMatrix' element. + * Takes one of the Color Matrix Types. + */ + SVGAnimatedEnumeration getType(); + + /** + * Corresponds to attribute values on the given 'feColorMatrix' element. + * Provides access to the contents of the values attribute. + */ + SVGAnimatedNumberList getValues(); + + + //#################################################################### + //# SVGFEComponentTransferElement + //#################################################################### + + + /** + * Corresponds to attribute in on the given 'feComponentTransfer' element. + */ + SVGAnimatedString 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. + */ + SVGAnimatedString getIn1(); + + /** + * Corresponds to attribute in2 on the given 'feComposite' element. + */ + SVGAnimatedString getIn2(); + + /** + * Corresponds to attribute operator on the given 'feComposite' element. + * Takes one of the Composite Operators. + */ + SVGAnimatedEnumeration getOperator(); + + /** + * Corresponds to attribute k1 on the given 'feComposite' element. + */ + SVGAnimatedNumber getK1(); + + /** + * Corresponds to attribute k2 on the given 'feComposite' element. + */ + SVGAnimatedNumber getK2(); + + /** + * Corresponds to attribute k3 on the given 'feComposite' element. + */ + SVGAnimatedNumber getK3(); + + /** + * Corresponds to attribute k4 on the given 'feComposite' element. + */ + SVGAnimatedNumber 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. + */ + SVGAnimatedInteger getOrderX(); + + /** + * Corresponds to attribute order on the given 'feConvolveMatrix' element. + */ + SVGAnimatedInteger getOrderY(); + + /** + * Corresponds to attribute kernelMatrix on the given element. + */ + SVGAnimatedNumberList getKernelMatrix(); + + /** + * Corresponds to attribute divisor on the given 'feConvolveMatrix' element. + */ + SVGAnimatedNumber getDivisor(); + + /** + * Corresponds to attribute bias on the given 'feConvolveMatrix' element. + */ + SVGAnimatedNumber getBias(); + + /** + * Corresponds to attribute targetX on the given 'feConvolveMatrix' element. + */ + SVGAnimatedInteger getTargetX(); + + /** + * Corresponds to attribute targetY on the given 'feConvolveMatrix' element. + */ + SVGAnimatedInteger getTargetY(); + + /** + * Corresponds to attribute edgeMode on the given 'feConvolveMatrix' + * element. Takes one of the Edge Mode Types. + */ + SVGAnimatedEnumeration getEdgeMode(); + + /** + * Corresponds to attribute kernelUnitLength on the + * given 'feConvolveMatrix' element. + */ + SVGAnimatedLength getKernelUnitLengthX(); + + /** + * Corresponds to attribute kernelUnitLength on the given + * 'feConvolveMatrix' element. + */ + SVGAnimatedLength getKernelUnitLengthY(); + + /** + * Corresponds to attribute preserveAlpha on the + * given 'feConvolveMatrix' element. + */ + SVGAnimatedBoolean getPreserveAlpha(); + + + + //#################################################################### + //# SVGFEDiffuseLightingElement + //#################################################################### + + + /** + * Corresponds to attribute in on the given 'feDiffuseLighting' element. + */ + SVGAnimatedString getIn1(); + + /** + * Corresponds to attribute surfaceScale on the given + * 'feDiffuseLighting' element. + */ + SVGAnimatedNumber getSurfaceScale(); + + /** + * Corresponds to attribute diffuseConstant on the given + * 'feDiffuseLighting' element. + */ + SVGAnimatedNumber getDiffuseConstant(); + + /** + * Corresponds to attribute kernelUnitLength on the given + * 'feDiffuseLighting' element. + */ + SVGAnimatedNumber getKernelUnitLengthX(); + + /** + * Corresponds to attribute kernelUnitLength on the given + * 'feDiffuseLighting' element. + */ + SVGAnimatedNumber 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; + + /** + * + */ + SVGAnimatedString getIn1(); + + /** + * + */ + SVGAnimatedString getIn2(); + + + /** + * + */ + SVGAnimatedNumber getScale(); + + /** + * + */ + SVGAnimatedEnumeration getXChannelSelector(); + + /** + * + */ + SVGAnimatedEnumeration getYChannelSelector(); + + //#################################################################### + //# SVGFEDistantLightElement + //#################################################################### + + + /** + * Corresponds to attribute azimuth on the given 'feDistantLight' element. + */ + SVGAnimatedNumber getAzimuth(); + + + /** + * Corresponds to attribute elevation on the given 'feDistantLight' + * element + */ + SVGAnimatedNumber getElevation(); + + + //#################################################################### + //# SVGFEFloodElement + //#################################################################### + + + /** + * + */ + SVGAnimatedString getIn1(); + + + //#################################################################### + //# SVGFEFuncAElement + //#################################################################### + + //#################################################################### + //# SVGFEFuncBElement + //#################################################################### + + //#################################################################### + //# SVGFEFuncGElement + //#################################################################### + + //#################################################################### + //# SVGFEFuncRElement + //#################################################################### + + + //#################################################################### + //# SVGFEGaussianBlurElement + //#################################################################### + + + /** + * + */ + SVGAnimatedString getIn1(); + + + /** + * + */ + SVGAnimatedNumber getStdDeviationX(); + + /** + * + */ + SVGAnimatedNumber 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; + + + /** + * + */ + SVGAnimatedString getIn1(); + + + /** + * + */ + SVGAnimatedEnumeration getOperator(); + + /** + * + */ + SVGAnimatedLength getRadiusX(); + + /** + * + */ + SVGAnimatedLength getRadiusY(); + + //#################################################################### + //# SVGFEOffsetElement + //#################################################################### + + /** + * + */ + SVGAnimatedString getIn1(); + + /** + * + */ + SVGAnimatedLength getDx(); + + /** + * + */ + SVGAnimatedLength getDy(); + + + //#################################################################### + //# SVGFEPointLightElement + //#################################################################### + + /** + * Corresponds to attribute x on the given 'fePointLight' element. + */ + SVGAnimatedNumber getX(); + + /** + * Corresponds to attribute y on the given 'fePointLight' element. + */ + SVGAnimatedNumber getY(); + + /** + * Corresponds to attribute z on the given 'fePointLight' element. + */ + SVGAnimatedNumber getZ(); + + //#################################################################### + //# SVGFESpecularLightingElement + //#################################################################### + + + /** + * + */ + SVGAnimatedString getIn1(); + + /** + * + */ + SVGAnimatedNumber getSurfaceScale(); + + /** + * + */ + SVGAnimatedNumber getSpecularConstant(); + + /** + * + */ + SVGAnimatedNumber getSpecularExponent(); + + + //#################################################################### + //# SVGFESpotLightElement + //#################################################################### + + /** + * Corresponds to attribute x on the given 'feSpotLight' element. + */ + SVGAnimatedNumber getX(); + + /** + * Corresponds to attribute y on the given 'feSpotLight' element. + */ + SVGAnimatedNumber getY(); + + /** + * Corresponds to attribute z on the given 'feSpotLight' element. + */ + SVGAnimatedNumber getZ(); + + /** + * Corresponds to attribute pointsAtX on the given 'feSpotLight' element. + */ + SVGAnimatedNumber getPointsAtX(); + + /** + * Corresponds to attribute pointsAtY on the given 'feSpotLight' element. + */ + SVGAnimatedNumber getPointsAtY(); + + /** + * Corresponds to attribute pointsAtZ on the given 'feSpotLight' element. + */ + SVGAnimatedNumber getPointsAtZ(); + + /** + * Corresponds to attribute specularExponent on the + * given 'feSpotLight' element. + */ + SVGAnimatedNumber getSpecularExponent(); + + /** + * Corresponds to attribute limitingConeAngle on the + * given 'feSpotLight' element. + */ + SVGAnimatedNumber getLimitingConeAngle(); + + + //#################################################################### + //# SVGFETileElement + //#################################################################### + + + /** + * + */ + SVGAnimatedString 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; + + + + /** + * + */ + SVGAnimatedNumber getBaseFrequencyX(); + + /** + * + */ + SVGAnimatedNumber getBaseFrequencyY(); + + /** + * + */ + SVGAnimatedInteger getNumOctaves(); + + /** + * + */ + SVGAnimatedNumber getSeed(); + + /** + * + */ + SVGAnimatedEnumeration getStitchTiles(); + + /** + * + */ + SVGAnimatedEnumeration getType(); + + + + //#################################################################### + //# SVGFilterElement + //#################################################################### + + + /** + * Corresponds to attribute filterUnits on the given 'filter' element. Takes one + * of the constants defined in SVGUnitTypes. + */ + SVGAnimatedEnumeration getFilterUnits(); + + /** + * Corresponds to attribute primitiveUnits on the given 'filter' element. Takes + * one of the constants defined in SVGUnitTypes. + */ + SVGAnimatedEnumeration getPrimitiveUnits(); + + /** + * + */ + SVGAnimatedLength getX(); + + /** + * Corresponds to attribute x on the given 'filter' element. + */ + SVGAnimatedLength getY(); + + /** + * Corresponds to attribute y on the given 'filter' element. + */ + SVGAnimatedLength getWidth(); + + /** + * Corresponds to attribute height on the given 'filter' element. + */ + SVGAnimatedLength getHeight(); + + + /** + * Corresponds to attribute filterRes on the given 'filter' element. + * Contains the X component of attribute filterRes. + */ + SVGAnimatedInteger getFilterResX(); + + /** + * Corresponds to attribute filterRes on the given 'filter' element. + * Contains the Y component(possibly computed automatically) + * of attribute filterRes. + */ + SVGAnimatedInteger getFilterResY(); + + /** + * Sets the values for attribute filterRes. + */ + void setFilterRes(unsigned long filterResX, unsigned long filterResY); + + + //#################################################################### + //# SVGFontElement + //#################################################################### + + //#################################################################### + //# SVGFontFaceElement + //#################################################################### + + //#################################################################### + //# SVGFontFaceFormatElement + //#################################################################### + + //#################################################################### + //# SVGFontFaceNameElement + //#################################################################### + + //#################################################################### + //# SVGFontFaceSrcElement + //#################################################################### + + //#################################################################### + //# SVGFontFaceUriElement + //#################################################################### + + //#################################################################### + //# SVGForeignObjectElement + //#################################################################### + + /** + * + */ + SVGAnimatedLength getX(); + + /** + * + */ + SVGAnimatedLength getY(); + + /** + * + */ + SVGAnimatedLength getWidth(); + + /** + * + */ + SVGAnimatedLength 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. + */ + SVGAnimatedEnumeration getGradientUnits(); + + /** + * Corresponds to attribute gradientTransform on the given element. + */ + SVGAnimatedTransformList getGradientTransform(); + + /** + * Corresponds to attribute spreadMethod on the given element. + * One of the Spread Method Types. + */ + SVGAnimatedEnumeration getSpreadMethod(); + + + + //#################################################################### + //# SVGHKernElement + //#################################################################### + + //#################################################################### + //# SVGImageElement + //#################################################################### + + /** + * Corresponds to attribute x on the given 'image' element. + */ + SVGAnimatedLength getX(); + + /** + * Corresponds to attribute y on the given 'image' element. + */ + SVGAnimatedLength getY(); + + /** + * Corresponds to attribute width on the given 'image' element. + */ + SVGAnimatedLength getWidth(); + + /** + * Corresponds to attribute height on the given 'image' element. + */ + SVGAnimatedLength getHeight(); + + + /** + * Corresponds to attribute preserveAspectRatio on the given element. + */ + SVGAnimatedPreserveAspectRatio getPreserveAspectRatio(); + + //#################################################################### + //# SVGLinearGradientElement + //#################################################################### + + /** + * Corresponds to attribute x1 on the given 'linearGradient' element. + */ + SVGAnimatedLength getX1(); + + /** + * Corresponds to attribute y1 on the given 'linearGradient' element. + */ + SVGAnimatedLength getY1(); + + /** + * Corresponds to attribute x2 on the given 'linearGradient' element. + */ + SVGAnimatedLength getX2(); + + /** + * Corresponds to attribute y2 on the given 'linearGradient' element. + */ + SVGAnimatedLength getY2(); + + + + //#################################################################### + //# SVGLineElement + //#################################################################### + + /** + * Corresponds to attribute x1 on the given 'line' element. + */ + SVGAnimatedLength getX1(); + + /** + * Corresponds to attribute y1 on the given 'line' element. + */ + SVGAnimatedLength getY1(); + + /** + * Corresponds to attribute x2 on the given 'line' element. + */ + SVGAnimatedLength getX2(); + + /** + * Corresponds to attribute y2 on the given 'line' element. + */ + SVGAnimatedLength 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. + */ + SVGAnimatedLength getRefX(); + + /** + * Corresponds to attribute refY on the given 'marker' element. + */ + SVGAnimatedLength getRefY(); + + /** + * Corresponds to attribute markerUnits on the given 'marker' element. + * One of the Marker Units Types defined above. + */ + SVGAnimatedEnumeration getMarkerUnits(); + + /** + * Corresponds to attribute markerWidth on the given 'marker' element. + */ + SVGAnimatedLength getMarkerWidth(); + + /** + * Corresponds to attribute markerHeight on the given 'marker' element. + */ + SVGAnimatedLength getMarkerHeight(); + + /** + * Corresponds to attribute orient on the given 'marker' element. + * One of the Marker Orientation Types defined above. + */ + SVGAnimatedEnumeration 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. + */ + SVGAnimatedAngle 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. + */ + SVGAnimatedEnumeration getMaskUnits(); + + /** + * Corresponds to attribute maskContentUnits on the given 'mask' element. Takes + * one of the constants defined in SVGUnitTypes. + */ + SVGAnimatedEnumeration getMaskContentUnits(); + + /** + * Corresponds to attribute x on the given 'mask' element. + */ + SVGAnimatedLength getX(); + + /** + * Corresponds to attribute y on the given 'mask' element. + */ + SVGAnimatedLength getY(); + + /** + * Corresponds to attribute width on the given 'mask' element. + */ + SVGAnimatedLength getWidth(); + + /** + * Corresponds to attribute height on the given 'mask' element. + */ + SVGAnimatedLength getHeight(); + + //#################################################################### + //# SVGMetadataElement + //#################################################################### + + //#################################################################### + //# SVGMPathElement + //#################################################################### + + //#################################################################### + //# SVGPathElement + //#################################################################### + + //#################################################################### + //# SVGPatternElement + //#################################################################### + + /** + * Corresponds to attribute patternUnits on the given 'pattern' element. + * Takes one of the constants defined in SVGUnitTypes. + */ + SVGAnimatedEnumeration getPatternUnits(); + + /** + * Corresponds to attribute patternContentUnits on the given 'pattern' + * element. Takes one of the constants defined in SVGUnitTypes. + */ + SVGAnimatedEnumeration getPatternContentUnits(); + + /** + * Corresponds to attribute patternTransform on the given 'pattern' element. + */ + SVGAnimatedTransformList getPatternTransform(); + + /** + * Corresponds to attribute x on the given 'pattern' element. + */ + SVGAnimatedLength getX(); + + /** + * + */ + SVGAnimatedLength getY(); + + /** + * Corresponds to attribute width on the given 'pattern' element. + */ + SVGAnimatedLength getWidth(); + + /** + * Corresponds to attribute height on the given 'pattern' element. + */ + SVGAnimatedLength getHeight(); + + + //#################################################################### + //# SVGPolyLineElement + //#################################################################### + + //#################################################################### + //# SVGPolygonElement + //#################################################################### + + //#################################################################### + //# SVGMissingGlyphElement + //#################################################################### + + /** + * Corresponds to attribute pathLength on the given 'path' element. + */ + SVGAnimatedNumber 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. + */ + SVGPathSegClosePath + createSVGPathSegClosePath(); + + /** + * Returns a stand-alone, parentless SVGPathSegMovetoAbs object. + */ + SVGPathSegMovetoAbs + createSVGPathSegMovetoAbs(double x, double y); + + /** + * Returns a stand-alone, parentless SVGPathSegMovetoRel object. + */ + SVGPathSegMovetoRel + createSVGPathSegMovetoRel(double x, double y); + + /** + * Returns a stand-alone, parentless SVGPathSegLinetoAbs object. + */ + SVGPathSegLinetoAbs + createSVGPathSegLinetoAbs(double x, double y); + + /** + * Returns a stand-alone, parentless SVGPathSegLinetoRel object. + */ + SVGPathSegLinetoRel + createSVGPathSegLinetoRel(double x, double y); + + /** + * Returns a stand-alone, parentless SVGPathSegCurvetoCubicAbs object. + */ + SVGPathSegCurvetoCubicAbs + createSVGPathSegCurvetoCubicAbs(double x, double y, + double x1, double y1, double x2, double y2); + + /** + * Returns a stand-alone, parentless SVGPathSegCurvetoCubicRel object. + */ + SVGPathSegCurvetoCubicRel + createSVGPathSegCurvetoCubicRel(double x, double y, + double x1, double y1, double x2, double y2); + + /** + * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticAbs object. + */ + SVGPathSegCurvetoQuadraticAbs + createSVGPathSegCurvetoQuadraticAbs(double x, double y, + double x1, double y1); + + /** + * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticRel object. + */ + SVGPathSegCurvetoQuadraticRel + createSVGPathSegCurvetoQuadraticRel(double x, double y, + double x1, double y1); + + /** + * Returns a stand-alone, parentless SVGPathSegArcAbs object. + */ + SVGPathSegArcAbs + createSVGPathSegArcAbs(double x, double y, + double r1, double r2, double angle, + bool largeArcFlag, bool sweepFlag); + + /** + * Returns a stand-alone, parentless SVGPathSegArcRel object. + */ + SVGPathSegArcRel + createSVGPathSegArcRel(double x, double y, double r1, + double r2, double angle, bool largeArcFlag, + bool sweepFlag); + + /** + * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalAbs object. + */ + SVGPathSegLinetoHorizontalAbs + createSVGPathSegLinetoHorizontalAbs(double x); + + /** + * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalRel object. + */ + SVGPathSegLinetoHorizontalRel + createSVGPathSegLinetoHorizontalRel(double x); + + /** + * Returns a stand-alone, parentless SVGPathSegLinetoVerticalAbs object. + */ + SVGPathSegLinetoVerticalAbs + createSVGPathSegLinetoVerticalAbs(double y); + + /** + * Returns a stand-alone, parentless SVGPathSegLinetoVerticalRel object. + */ + SVGPathSegLinetoVerticalRel + createSVGPathSegLinetoVerticalRel(double y); + + /** + * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothAbs object. + */ + SVGPathSegCurvetoCubicSmoothAbs + createSVGPathSegCurvetoCubicSmoothAbs(double x, double y, + double x2, double y2); + + /** + * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothRel object. + */ + SVGPathSegCurvetoCubicSmoothRel + createSVGPathSegCurvetoCubicSmoothRel(double x, double y, + double x2, double y2); + + /** + * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothAbs + * object. + */ + SVGPathSegCurvetoQuadraticSmoothAbs + createSVGPathSegCurvetoQuadraticSmoothAbs(double x, double y); + + /** + * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothRel + * object. + */ + SVGPathSegCurvetoQuadraticSmoothRel + createSVGPathSegCurvetoQuadraticSmoothRel(double x, double y); + + + //#################################################################### + //# SVGRadialGradientElement + //#################################################################### + + + /** + * Corresponds to attribute cx on the given 'radialGradient' element. + */ + SVGAnimatedLength getCx(); + + + /** + * Corresponds to attribute cy on the given 'radialGradient' element. + */ + SVGAnimatedLength getCy(); + + + /** + * Corresponds to attribute r on the given 'radialGradient' element. + */ + SVGAnimatedLength getR(); + + + /** + * Corresponds to attribute fx on the given 'radialGradient' element. + */ + SVGAnimatedLength getFx(); + + + /** + * Corresponds to attribute fy on the given 'radialGradient' element. + */ + SVGAnimatedLength getFy(); + + + //#################################################################### + //# SVGRectElement + //#################################################################### + + /** + * Corresponds to attribute x on the given 'rect' element. + */ + SVGAnimatedLength getX(); + + /** + * Corresponds to attribute y on the given 'rect' element. + */ + SVGAnimatedLength getY(); + + /** + * Corresponds to attribute width on the given 'rect' element. + */ + SVGAnimatedLength getWidth(); + + /** + * Corresponds to attribute height on the given 'rect' element. + */ + SVGAnimatedLength getHeight(); + + + /** + * Corresponds to attribute rx on the given 'rect' element. + */ + SVGAnimatedLength getRx(); + + /** + * Corresponds to attribute ry on the given 'rect' element. + */ + SVGAnimatedLength getRy(); + + + //#################################################################### + //# SVGScriptElement + //#################################################################### + + /** + * + */ + DOMString getType(); + + /** + * + */ + void setType(const DOMString &val) throw (DOMException); + + //#################################################################### + //# SVGSetElement + //#################################################################### + + //#################################################################### + //# SVGStopElement + //#################################################################### + + + /** + * Corresponds to attribute offset on the given 'stop' element. + */ + SVGAnimatedNumber 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. + */ + SVGAnimatedLength getX(); + + /** + * Corresponds to attribute y on the given 'svg' element. + */ + SVGAnimatedLength getY(); + + /** + * Corresponds to attribute width on the given 'svg' element. + */ + SVGAnimatedLength getWidth(); + + /** + * Corresponds to attribute height on the given 'svg' element. + */ + SVGAnimatedLength 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. + */ + SVGAnimatedLength getTextLength(); + + + /** + * Corresponds to attribute lengthAdjust on the given element. The value must be + * one of the length adjust constants specified above. + */ + SVGAnimatedEnumeration 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. + */ + SVGAnimatedLength getStartOffset(); + + /** + * Corresponds to attribute method on the given 'textPath' element. The value + * must be one of the method type constants specified above. + */ + SVGAnimatedEnumeration getMethod(); + + /** + * Corresponds to attribute spacing on the given 'textPath' element. + * The value must be one of the spacing type constants specified above. + */ + SVGAnimatedEnumeration getSpacing(); + + + //#################################################################### + //# SVGTextPositioningElement + //#################################################################### + + + /** + * Corresponds to attribute x on the given element. + */ + SVGAnimatedLength getX(); + + /** + * Corresponds to attribute y on the given element. + */ + SVGAnimatedLength getY(); + + /** + * Corresponds to attribute dx on the given element. + */ + SVGAnimatedLength getDx(); + + /** + * Corresponds to attribute dy on the given element. + */ + SVGAnimatedLength getDy(); + + + /** + * Corresponds to attribute rotate on the given element. + */ + SVGAnimatedNumberList getRotate(); + + + //#################################################################### + //# SVGTitleElement + //#################################################################### + + //#################################################################### + //# SVGTRefElement + //#################################################################### + + //#################################################################### + //# SVGTSpanElement + //#################################################################### + + //#################################################################### + //# SVGSwitchElement + //#################################################################### + + //#################################################################### + //# SVGUseElement + //#################################################################### + + /** + * Corresponds to attribute x on the given 'use' element. + */ + SVGAnimatedLength getX(); + + /** + * Corresponds to attribute y on the given 'use' element. + */ + SVGAnimatedLength getY(); + + /** + * Corresponds to attribute width on the given 'use' element. + */ + SVGAnimatedLength getWidth(); + + /** + * Corresponds to attribute height on the given 'use' element. + */ + SVGAnimatedLength 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 + //#################################################################### + + + /** + * + */ + SVGStringList 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., Here is the title...) + */ + 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 +#########################################################################*/ +