// // File: svg.idl // #ifndef _SVG_IDL_ // #define _SVG_IDL_ // // // // For access to DOM2 core // #include "dom.idl" // // // For access to DOM2 events // #include "events.idl" // // // For access to those parts from DOM2 CSS OM used by SVG DOM. // #include "css.idl" // // // For access to those parts from DOM2 Views OM used by SVG DOM. // #include "views.idl" // // // For access to the SMIL OM used by SVG DOM. // #include "smil.idl" // // #pragma prefix "dom.w3c.org" // #pragma javaPackage "org.w3c.dom" module dom { exception DOMException { }; interface Element { }; interface Document { }; interface NodeList { }; }; module events { interface DocumentEvent { }; interface EventTarget { }; interface Event { }; interface UIEvent { }; }; module css { interface CSSValue { }; interface RGBColor { }; interface CSSStyleDeclaration { }; interface CSSRule { }; interface ViewCSS { }; interface DocumentCSS { }; }; module views { interface AbstractView { }; }; module smil { typedef dom::DOMException DOMException; typedef views::AbstractView AbstractView; /** *

SMIL Animation supports several methods for controlling the behavior of * animation: beginElement(), beginElementAt(), * endElement() and endElementAt(). These methods * are used to begin and end the active duration of an element. Authors can * (but are not required to) declare the timing to respond to the DOM using * the following syntax:

* *
<animate begin="indefinite" end="indefinite" .../>
* *

If a DOM method call is made to begin or end the element (using * beginElement(), beginElementAt(), * endElement() or endElementAt()), each method call * creates a single instance time (in the appropriate instance times list). * These times are then interpreted as part of the semantics of lists of * times, as described in * Evaluation of begin and end time lists.

* * * *

The expectation of the following interface is that an instance of the * ElementTimeControl interface can be obtained by using binding-specific * casting methods on an instance of an animation element. A DOM application * can use the hasFeature * method of the DOMImplementation interface to determine whether the * ElementTimeControl interface is supported or not. The feature string * for this interface is "TimeControl".

*/ interface ElementTimeControl { /** * Creates a begin instance time for the current time. The new instance * time is added to the begin instance times list. * The behavior of this method is equivalent to beginElementAt(0). */ void beginElement(); /** * Creates a begin instance time for the current time plus the specified * offset. The new instance time is added to the * begin instance times list. * * @param offset The offset from the current document time, in seconds, at * which to begin the element. */ void beginElementAt(in float offset); /** * Creates an end instance time for the current time. The new instance time is added to the * end instance times list. * The behavior of this method is equivalent to endElementAt(0). */ void endElement(); /** * Creates a end instance time for the current time plus the specified * offset. The new instance time is added to the * end instance times list. * * @param offset offset from the current document time, in seconds, at * which to end the element. */ void endElementAt(in float offset); }; /** *

The TimeEvent * interface, defined in * SMIL Animation: Supported interfaces, provides specific * contextual information associated with Time events.

*

The different types of events that can occur are:

*
*
beginEvent
*
* This event is raised when the element local timeline begins * to play. It will be raised each time the element begins the * active duration (i.e. when it restarts, but not when it * repeats). It may be raised both in the course of normal * (i.e. scheduled or interactive) timeline play, as well as * in the case that the element was begun with the * ElementTimeControl::beginElement or * ElementTimeControl::beginElementAt methods. Note that if an * element is restarted while it is currently playing, the * element will raise an end event and another begin event, as * the element restarts. * *
*
endEvent
*
* This event is raised at the active end of the element. Note * that this event is not raised at the simple end of each * repeat. This event may be raised both in the course of * normal (i.e. scheduled or interactive) timeline play, as * well as in the case that the element was ended with the * ElementTimeControl::endElement or ElementTimeControl::endElementAt * methods. Note that if an element is restarted while it is * currently playing, the element will raise an end event and * another begin event, as the element restarts. * *
*
repeatEvent
*
* This event is raised when an element local timeline * repeats. It will be raised each time the element repeats, * after the first iteration.
* The event provides a numerical indication of which repeat * iteration is beginning. The value is a 0-based integer, but * the repeat event is not raised for the first iteration and * so the observed values of the detail attribute will be * >= 1. * *
*
*/ interface TimeEvent : events::Event { /** * The view attribute identifies the AbstractView * [DOM2VIEWS] from which the event * was generated. */ readonly attribute AbstractView view; /** * Specifies some detail information about the Event, depending on the type * of the event. For this event type, indicates the repeat number for the * animation. */ readonly attribute long detail; /** * The initTimeEvent method is used to initialize the value of a * TimeEvent created through the DocumentEvent interface. This * method may only be called before the TimeEvent has been dispatched * via the dispatchEvent method, though it may be called multiple times * during that phase if necessary. If called multiple times, the final * invocation takes precedence. * * @param typeArg Specifies the event type. * @param viewArg Specifies the Event's AbstractView. * @param detailArg Specifies the Event's detail. */ void initTimeEvent(in DOMString typeArg, in AbstractView viewArg, in long detailArg); }; }; module svg { // typedef dom::DOMString DOMString; typedef dom::DOMException DOMException; typedef dom::Element Element; typedef dom::Document Document; typedef dom::NodeList NodeList; // Predeclarations interface SVGElement; interface SVGLangSpace; interface SVGExternalResourcesRequired; interface SVGTests; interface SVGFitToViewBox; interface SVGZoomAndPan; interface SVGViewSpec; interface SVGURIReference; interface SVGPoint; interface SVGMatrix; interface SVGPreserveAspectRatio; interface SVGAnimatedPreserveAspectRatio; interface SVGTransformList; interface SVGAnimatedTransformList; interface SVGTransform; interface SVGICCColor; interface SVGColor; interface SVGPaint; interface SVGTransformable; interface SVGDocument; interface SVGSVGElement; interface SVGElementInstance; interface SVGElementInstanceList; /** * This exception is raised when a specific SVG operation is impossible to * perform. */ exception SVGException { /** * A code identifying the reason why the requested operation could not be * performed. The value of this member will be one of the constants * in the SVGException code group. */ unsigned short code; }; /** *

Raised when an object of the wrong type is passed to an operation.

* *

Note that no operation is defined to raise an SVGException with * this code in SVG 1.1 Second Edition. The constant remains defined here * for consistency with SVG 1.1 First Edition.

* * @associatedException SVGException * @defgroup SVGException code */ const unsigned short SVG_WRONG_TYPE_ERR = 0; /** * Raised when an invalid value is passed to an operation or assigned to an * attribute. * * @associatedException SVGException * @defgroup SVGException code */ const unsigned short SVG_INVALID_VALUE_ERR = 1; /** *

Raised when an attempt is made to invert a matrix that is not * invertible.

* *

Note the unusual spelling of this constant, which is necessary for * compatibility with existing content.

* * @associatedException SVGException * @defgroup SVGException code */ const unsigned short SVG_MATRIX_NOT_INVERTABLE = 2; /** * All of the SVG DOM interfaces that correspond directly to elements in the * SVG language (such as the SVGPathElement interface for the * 'path' element) derive from the SVGElement interface. */ interface SVGElement : Element { /** * The value of the 'id' attribute on the given element, or the * empty string if 'id' is not present. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString id setraises(DOMException); /** * Corresponds to attribute 'xml:base' on the given element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString xmlbase setraises(DOMException); /** * The nearest ancestor 'svg' element. Null if the given element is * the outermost svg element. */ readonly attribute SVGSVGElement ownerSVGElement; /** * The element which established the current viewport. Often, the nearest * ancestor 'svg' element. Null if the given element is the * outermost svg element. */ readonly attribute SVGElement viewportElement; }; /** * Used for attributes of type boolean which can be animated. */ interface SVGAnimatedBoolean { /** * The base value of the given attribute before applying any animations. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an * attempt to change the value of a read only attribute. */ attribute boolean baseVal setraises(DOMException); /** * If the given attribute or property is being animated, contains the * current animated value of the attribute or property. If the given * attribute or property is not currently being animated, contains the * same value as baseVal. */ readonly attribute boolean animVal; }; /** * Used for attributes of type DOMString which can be animated. */ interface SVGAnimatedString { /** * The base value of the given attribute before applying any animations. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an * attempt to change the value of a read only attribute. */ attribute DOMString baseVal setraises(DOMException); /** * If the given attribute or property is being animated, contains the * current animated value of the attribute or property. If the given * attribute or property is not currently being animated, contains the * same value as baseVal. */ readonly attribute DOMString animVal; }; /** *

This interface defines a list of DOMString values.

* *

SVGStringList has the same attributes and methods as other * SVGxxxList interfaces. Implementers may consider using a single base class * to implement the various SVGxxxList interfaces.

*/ interface SVGStringList { /** * The number of items in the list. */ readonly attribute unsigned long numberOfItems; /** * Clears all existing current items from the list, with the result being * an empty list. * * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. */ void clear() raises(DOMException); /** * Clears all existing current items from the list and re-initializes the * list to hold the single item specified by the parameter. * * @param newItem The item which should become the only member of the list. * @return The item being inserted into the list. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. */ DOMString initialize(in DOMString newItem) raises(DOMException); /** * Returns the specified item from the list. * * @param index The index of the item from the list which is to be * returned. The first item is number 0. * @return The selected item. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ DOMString getItem(in unsigned long index) raises(DOMException); /** * Inserts a new item into the list at the specified position. The first * item is number 0. * * @param newItem The item which is to be inserted into the list. * @param index The index of the item before which the new item is to be * inserted. The first item is number 0. If the index is equal to 0, * then the new item is inserted at the front of the list. If the index * is greater than or equal to numberOfItems, then the new item is * appended to the end of the list. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. */ DOMString insertItemBefore(in DOMString newItem, in unsigned long index) raises(DOMException); /** * Replaces an existing item in the list with a new item. * * @param newItem The item which is to be inserted into the list. * @param index The index of the item which is to be replaced. The first * item is number 0. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ DOMString replaceItem(in DOMString newItem, in unsigned long index) raises(DOMException); /** * Removes an existing item from the list. * * @param index The index of the item which is to be removed. The first * item is number 0. * @return The removed item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ DOMString removeItem(in unsigned long index) raises(DOMException); /** * Inserts a new item at the end of the list. * * @param newItem The item which is to be inserted. The first item is * number 0. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. */ DOMString appendItem(in DOMString newItem) raises(DOMException); }; /** * Used for attributes whose value must be a constant from a particular * enumeration and which can be animated. */ interface SVGAnimatedEnumeration { /** * The base value of the given attribute before applying any animations. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an * attempt to change the value of a read only attribute. */ attribute unsigned short baseVal setraises(DOMException); /** * If the given attribute or property is being animated, contains the * current animated value of the attribute or property. If the given * attribute or property is not currently being animated, contains the * same value as baseVal. */ readonly attribute unsigned short animVal; }; /** * Used for attributes of basic type * <integer> which can be * animated. */ interface SVGAnimatedInteger { /** * The base value of the given attribute before applying any animations. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an * attempt to change the value of a read only attribute. */ attribute long baseVal setraises(DOMException); /** * If the given attribute or property is being animated, contains the * current animated value of the attribute or property. If the given * attribute or property is not currently being animated, contains the * same value as baseVal. */ readonly attribute long animVal; }; /** * Used for attributes of basic type * <number>. */ interface SVGNumber { /** * The value of the given attribute. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an * attempt to change the value of a read only attribute. */ attribute float value setraises(DOMException); }; /** * Used for attributes of basic type * <number> which can be * animated. */ interface SVGAnimatedNumber { /** * The base value of the given attribute before applying any animations. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an * attempt to change the value of a read only attribute. */ attribute float baseVal setraises(DOMException); /** * If the given attribute or property is being animated, contains the * current animated value of the attribute or property. If the given * attribute or property is not currently being animated, contains the * same value as baseVal. */ readonly attribute float animVal; }; /** *

This interface defines a list of SVGNumber objects.

* *

SVGNumberList has the same attributes and methods as other * SVGxxxList interfaces. Implementers may consider using a single base class * to implement the various SVGxxxList interfaces.

* *

An SVGNumberList object can be designated as read only, * which means that attempts to modify the object will result in an exception * being thrown, as described below.

*/ interface SVGNumberList { /** * The number of items in the list. */ readonly attribute unsigned long numberOfItems; /** * Clears all existing current items from the list, with the result being * an empty list. * * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. */ void clear() raises(DOMException); /** * Clears all existing current items from the list and re-initializes the * list to hold the single item specified by the parameter. If the inserted * item is already in a list, it is removed from its previous list before * it is inserted into this list. The inserted item is the item itself and * not a copy. * * @param newItem The item which should become the only member of the list. * @return The item being inserted into the list. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. */ SVGNumber initialize(in SVGNumber newItem) raises(DOMException); /** * Returns the specified item from the list. The returned item is the * item itself and not a copy. Any changes made to the item are * immediately reflected in the list. * * @param index The index of the item from the list which is to be * returned. The first item is number 0. * @return The selected item. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ SVGNumber getItem(in unsigned long index) raises(DOMException); /** * Inserts a new item into the list at the specified position. The first * item is number 0. If newItem is already in a list, it is * removed from its previous list before it is inserted into this list. * The inserted item is the item itself and not a copy. If the item is * already in this list, note that the index of the item to insert * before is before the removal of the item. * * @param newItem The item which is to be inserted into the list. * @param index The index of the item before which the new item is to be * inserted. The first item is number 0. If the index is equal to 0, * then the new item is inserted at the front of the list. If the index * is greater than or equal to numberOfItems, then the new item is * appended to the end of the list. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. */ SVGNumber insertItemBefore(in SVGNumber newItem, in unsigned long index) raises(DOMException); /** * Replaces an existing item in the list with a new item. If * newItem is already in a list, it is removed from its * previous list before it is inserted into this list. The inserted item * is the item itself and not a copy. If the item is already in this * list, note that the index of the item to replace is before * the removal of the item. * * @param newItem The item which is to be inserted into the list. * @param index The index of the item which is to be replaced. The first * item is number 0. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ SVGNumber replaceItem(in SVGNumber newItem, in unsigned long index) raises(DOMException); /** * Removes an existing item from the list. * * @param index The index of the item which is to be removed. The first * item is number 0. * @return The removed item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ SVGNumber removeItem(in unsigned long index) raises(DOMException); /** * Inserts a new item at the end of the list. If newItem is * already in a list, it is removed from its previous list before it is * inserted into this list. The inserted item is the item itself and * not a copy. * * @param newItem The item which is to be inserted. The first item is * number 0. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. */ SVGNumber appendItem(in SVGNumber newItem) raises(DOMException); }; /** * Used for attributes which take a list of numbers and which can be animated. */ interface SVGAnimatedNumberList { /** * The base value of the given attribute before applying any animations. */ readonly attribute SVGNumberList baseVal; /** * A read only SVGNumberList representing the current animated value of * the given attribute. If the given attribute is not currently being * animated, then the SVGNumberList will have the same contents * as baseVal. The object referenced by animVal will always * be distinct from the one referenced by baseVal, even when * the attribute is not animated. */ readonly attribute SVGNumberList animVal; }; /** *

The SVGLength interface corresponds to the * <length> basic data type.

* *

An SVGLength object can be designated as read only, * which means that attempts to modify the object will result in an exception * being thrown, as described below.

*/ interface SVGLength { /** * The unit type is not one of predefined unit types. It is invalid to * attempt to define a new value of this type or to attempt to switch an * existing value to this type. * * @defgroup Length Unit Types */ const unsigned short SVG_LENGTHTYPE_UNKNOWN = 0; /** * No unit type was provided (i.e., a unitless value was specified), which * indicates a value in user units. * * @defgroup Length Unit Types */ const unsigned short SVG_LENGTHTYPE_NUMBER = 1; /** * A percentage value was specified. * * @defgroup Length Unit Types */ const unsigned short SVG_LENGTHTYPE_PERCENTAGE = 2; /** * A value was specified using the em units defined in CSS2. * * @defgroup Length Unit Types */ const unsigned short SVG_LENGTHTYPE_EMS = 3; /** * A value was specified using the ex units defined in CSS2. * * @defgroup Length Unit Types */ const unsigned short SVG_LENGTHTYPE_EXS = 4; /** * A value was specified using the px units defined in CSS2. * * @defgroup Length Unit Types */ const unsigned short SVG_LENGTHTYPE_PX = 5; /** * A value was specified using the cm units defined in CSS2. * * @defgroup Length Unit Types */ const unsigned short SVG_LENGTHTYPE_CM = 6; /** * A value was specified using the mm units defined in CSS2. * * @defgroup Length Unit Types */ const unsigned short SVG_LENGTHTYPE_MM = 7; /** * A value was specified using the in units defined in CSS2. * * @defgroup Length Unit Types */ const unsigned short SVG_LENGTHTYPE_IN = 8; /** * A value was specified using the pt units defined in CSS2. * * @defgroup Length Unit Types */ const unsigned short SVG_LENGTHTYPE_PT = 9; /** * A value was specified using the pc units defined in CSS2. * * @defgroup Length Unit Types */ const unsigned short SVG_LENGTHTYPE_PC = 10; /** * The type of the value as specified by one of the SVG_LENGTHTYPE_* * constants defined on this interface. */ readonly attribute unsigned short unitType; /** * The value as a floating point value, in user units. Setting this * attribute will cause valueInSpecifiedUnits and * valueAsString to be updated automatically to reflect this setting. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the length * corresponds to a read only attribute or when the object itself is * read only. */ attribute float value setraises(DOMException); /** * The value as a floating point value, in the units expressed by * unitType. Setting this attribute will cause value and * valueAsString to be updated automatically to reflect this setting. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the length * corresponds to a read only attribute or when the object itself is * read only. */ attribute float valueInSpecifiedUnits setraises(DOMException); /** * The value as a string value, in the units expressed by unitType. * Setting this attribute will cause value, * valueInSpecifiedUnits and unitType * to be updated automatically to reflect this * setting. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the length * corresponds to a read only attribute or when the object itself is * read only. * @setraises DOMException(SYNTAX_ERR) Raised if the assigned string cannot * be parsed as a valid <length>. */ attribute DOMString valueAsString setraises(DOMException); /** * Reset the value as a number with an associated unitType, thereby * replacing the values for all of the attributes on the object. * * @param unitType The unit type for the value (e.g., SVG_LENGTHTYPE_MM). * @param valueInSpecifiedUnits The new value. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the length * corresponds to a read only attribute or when the object itself is * read only. * @raises DOMException(NOT_SUPPORTED_ERR) Raised if unitType is SVG_LENGTHTYPE_UNKNOWN * or not a valid unit type constant (one of the other SVG_LENGTHTYPE_* constants * defined on this interface). */ void newValueSpecifiedUnits(in unsigned short unitType, in float valueInSpecifiedUnits) raises(DOMException); /** * Preserve the same underlying stored value, but reset the stored unit * identifier to the given unitType. Object attributes * unitType, valueInSpecifiedUnits and valueAsString * might be modified as a result of this method. For example, if the * original value were "0.5cm" and the method was invoked to convert to * millimeters, then the unitType would be changed to * SVG_LENGTHTYPE_MM, valueInSpecifiedUnits would be changed * to the numeric value 5 and valueAsString would be changed to * "5mm". * * @param unitType The unit type to switch to (e.g., SVG_LENGTHTYPE_MM). * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the length * corresponds to a read only attribute or when the object itself is * read only. * @raises DOMException(NOT_SUPPORTED_ERR) Raised if unitType is SVG_LENGTHTYPE_UNKNOWN * or not a valid unit type constant (one of the other SVG_LENGTHTYPE_* constants * defined on this interface). */ void convertToSpecifiedUnits(in unsigned short unitType) raises(DOMException); }; /** * Used for attributes of basic type * <length> which can be * animated. */ interface SVGAnimatedLength { /** * The base value of the given attribute before applying any animations. */ readonly attribute SVGLength baseVal; /** * A read only SVGLength representing the current animated value of * the given attribute. If the given attribute is not currently being * animated, then the SVGLength will have the same contents * as baseVal. The object referenced by animVal will always * be distinct from the one referenced by baseVal, even when * the attribute is not animated. */ readonly attribute SVGLength animVal; }; /** *

This interface defines a list of SVGLength objects.

* *

SVGLengthList has the same attributes and methods as other * SVGxxxList interfaces. Implementers may consider using a single base class * to implement the various SVGxxxList interfaces.

* *

An SVGLengthList object can be designated as read only, * which means that attempts to modify the object will result in an exception * being thrown, as described below.

*/ interface SVGLengthList { /** * The number of items in the list. */ readonly attribute unsigned long numberOfItems; /** * Clears all existing current items from the list, with the result being * an empty list. * * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. */ void clear() raises(DOMException); /** * Clears all existing current items from the list and re-initializes the * list to hold the single item specified by the parameter. If the inserted * item is already in a list, it is removed from its previous list before * it is inserted into this list. The inserted item is the item itself and * not a copy. * * @param newItem The item which should become the only member of the list. * @return The item being inserted into the list. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. */ SVGLength initialize(in SVGLength newItem) raises(DOMException); /** * Returns the specified item from the list. The returned item is the * item itself and not a copy. Any changes made to the item are * immediately reflected in the list. * * @param index The index of the item from the list which is to be * returned. The first item is number 0. * @return The selected item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. */ SVGLength getItem(in unsigned long index) raises(DOMException); /** * Inserts a new item into the list at the specified position. The first * item is number 0. If newItem is already in a list, it is * removed from its previous list before it is inserted into this list. * The inserted item is the item itself and not a copy. If the item is * already in this list, note that the index of the item to insert * before is before the removal of the item. * * @param newItem The item which is to be inserted into the list. * @param index The index of the item before which the new item is to be * inserted. The first item is number 0. If the index is equal to 0, * then the new item is inserted at the front of the list. If the index * is greater than or equal to numberOfItems, then the new item is * appended to the end of the list. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. */ SVGLength insertItemBefore(in SVGLength newItem, in unsigned long index) raises(DOMException); /** * Replaces an existing item in the list with a new item. If * newItem is already in a list, it is removed from its * previous list before it is inserted into this list. The inserted item * is the item itself and not a copy. If the item is already in this * list, note that the index of the item to replace is before * the removal of the item. * * @param newItem The item which is to be inserted into the list. * @param index The index of the item which is to be replaced. The first * item is number 0. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ SVGLength replaceItem(in SVGLength newItem, in unsigned long index) raises(DOMException); /** * Removes an existing item from the list. * * @param index The index of the item which is to be removed. The first * item is number 0. * @return The removed item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ SVGLength removeItem(in unsigned long index) raises(DOMException); /** * Inserts a new item at the end of the list. If newItem is * already in a list, it is removed from its previous list before it is * inserted into this list. The inserted item is the item itself and * not a copy. * * @param newItem The item which is to be inserted. The first item is * number 0. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. */ SVGLength appendItem(in SVGLength newItem) raises(DOMException); }; /** * Used for attributes of type SVGLengthList which can be animated. */ interface SVGAnimatedLengthList { /** * The base value of the given attribute before applying any animations. */ readonly attribute SVGLengthList baseVal; /** * A read only SVGLengthList representing the current animated value of * the given attribute. If the given attribute is not currently being * animated, then the SVGLengthList will have the same contents * as baseVal. The object referenced by animVal will always * be distinct from the one referenced by baseVal, even when * the attribute is not animated. */ readonly attribute SVGLengthList animVal; }; /** *

The SVGAngle interface corresponds to the * <angle> basic data type.

* *

An SVGAngle object can be designated as read only, * which means that attempts to modify the object will result in an exception * being thrown, as described below.

*/ interface SVGAngle { /** * The unit type is not one of predefined unit types. It is invalid to * attempt to define a new value of this type or to attempt to switch an * existing value to this type. * * @defgroup Angle Unit Types */ const unsigned short SVG_ANGLETYPE_UNKNOWN = 0; /** * No unit type was provided (i.e., a unitless value was specified). For * angles, a unitless value is treated the same as if degrees were * specified. * * @defgroup Angle Unit Types */ const unsigned short SVG_ANGLETYPE_UNSPECIFIED = 1; /** * The unit type was explicitly set to degrees. * * @defgroup Angle Unit Types */ const unsigned short SVG_ANGLETYPE_DEG = 2; /** * The unit type is radians. * * @defgroup Angle Unit Types */ const unsigned short SVG_ANGLETYPE_RAD = 3; /** * The unit type is radians. * * @defgroup Angle Unit Types */ const unsigned short SVG_ANGLETYPE_GRAD = 4; /** * The type of the value as specified by one of the SVG_ANGLETYPE_* * constants defined on this interface. */ readonly attribute unsigned short unitType; /** * The angle value as a floating point value, in degrees. Setting this * attribute will cause valueInSpecifiedUnits and * valueAsString to be updated automatically to reflect this setting. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the angle * corresponds to a read only attribute or when the object itself is * read only. */ attribute float value setraises(DOMException); /** * The angle value as a floating point value, in the units expressed by * unitType. Setting this attribute will cause value and * valueAsString to be updated automatically to reflect this setting. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the angle * corresponds to a read only attribute or when the object itself is * read only. */ attribute float valueInSpecifiedUnits setraises(DOMException); /** * The angle value as a string value, in the units expressed by * unitType. Setting this attribute will cause value, * valueInSpecifiedUnits and unitType * to be updated automatically to reflect * this setting. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the angle * corresponds to a read only attribute or when the object itself is * read only. * @setraises DOMException(SYNTAX_ERR) Raised if the assigned string cannot * be parsed as a valid <angle>. */ attribute DOMString valueAsString setraises(DOMException); /** * Reset the value as a number with an associated unitType, thereby * replacing the values for all of the attributes on the object. * * @param unitType The unit type for the value (e.g., SVG_ANGLETYPE_DEG). * @param valueInSpecifiedUnits The angle value. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the angle * corresponds to a read only attribute or when the object itself is * read only. * @raises DOMException(NOT_SUPPORTED_ERR) Raised if unitType is SVG_ANGLETYPE_UNKNOWN * or not a valid unit type constant (one of the other SVG_ANGLETYPE_* constants * defined on this interface). */ void newValueSpecifiedUnits(in unsigned short unitType, in float valueInSpecifiedUnits) raises(DOMException); /** * Preserve the same underlying stored value, but reset the stored unit * identifier to the given unitType. Object attributes * unitType, valueInSpecifiedUnits and valueAsString * might be modified as a result of this method. * * @param unitType The unit type to switch to (e.g., SVG_ANGLETYPE_DEG). * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the angle * corresponds to a read only attribute or when the object itself is * read only. * @raises DOMException(NOT_SUPPORTED_ERR) Raised if unitType is SVG_ANGLETYPE_UNKNOWN * or not a valid unit type constant (one of the other SVG_ANGLETYPE_* constants * defined on this interface). */ void convertToSpecifiedUnits(in unsigned short unitType) raises(DOMException); }; /** * Used for attributes of basic data type <angle> * that can be animated. */ interface SVGAnimatedAngle { /** * The base value of the given attribute before applying any animations. */ readonly attribute SVGAngle baseVal; /** * A read only SVGAngle representing the current animated value of * the given attribute. If the given attribute is not currently being * animated, then the SVGAngle will have the same contents * as baseVal. The object referenced by animVal will always * be distinct from the one referenced by baseVal, even when * the attribute is not animated. */ readonly attribute SVGAngle animVal; }; /** *

The SVGColor interface corresponds to color value definition for * properties 'stop-color', 'flood-color' and * 'lighting-color' and is a base class for interface SVGPaint. * It incorporates SVG's extended notion of color, which incorporates * ICC-based color specifications.

* *

Interface SVGColor does not correspond to the * <color> basic data type. For * the <color> basic data type, * the applicable DOM interfaces are defined in * DOM Level 2 Style; * in particular, see the RGBColor interface * ([DOM2STYLE], section 2.2).

* *

Note: The SVGColor interface is deprecated, and may be dropped * from future versions of the SVG specification.

*/ interface SVGColor : css::CSSValue { /** * The color type is not one of predefined types. It is invalid to attempt * to define a new value of this type or to attempt to switch an existing * value to this type. * * @defgroup Color Types */ const unsigned short SVG_COLORTYPE_UNKNOWN = 0; /** * An sRGB color has been specified without an alternative ICC color * specification. * * @defgroup Color Types */ const unsigned short SVG_COLORTYPE_RGBCOLOR = 1; /** * An sRGB color has been specified along with an alternative ICC color * specification. * * @defgroup Color Types */ const unsigned short SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2; /** * Corresponds to when keyword currentColor * has been specified. * * @defgroup Color Types */ const unsigned short SVG_COLORTYPE_CURRENTCOLOR = 3; /** * The type of the value as specified by one of the SVG_COLORTYPE_* * constants defined on this interface. */ readonly attribute unsigned short colorType; /** * The color specified in the sRGB color space. */ readonly attribute css::RGBColor rgbColor; /** * The alternate ICC color specification. */ readonly attribute SVGICCColor iccColor; /** * Modifies the color value to be the specified sRGB color without an * alternate ICC color specification. * * @param rgbColor A string that matches <color>, * which specifies the new sRGB color value. * @raises SVGException(SVG_INVALID_VALUE_ERR) Raised if rgbColor * does not match <color>. */ void setRGBColor(in DOMString rgbColor) raises(SVGException); /** * Modifies the color value to be the specified sRGB color with an * alternate ICC color specification. * * @param rgbColor A string that matches <color>, * which specifies the new sRGB color value. * @param iccColor A string that matches <icccolor>, * which specifies the alternate ICC color specification. * @raises SVGException(SVG_INVALID_VALUE_ERR) Raised if rgbColor * does not match <color> * or if iccColor does not match * <icccolor>. */ void setRGBColorICCColor(in DOMString rgbColor, in DOMString iccColor) raises(SVGException); /** * Sets the color value as specified by the parameters. If * colorType requires an RGBColor, then * rgbColor must be a string that matches * <color>; * otherwise, rgbColor. must be null. If colorType * requires an SVGICCColor, then iccColor must be a string * that matches <icccolor>; * otherwise, iccColor must be null. * * @param colorType One of the defined constants for colorType. * @param rgbColor The specification of an sRGB color, or null. * @param iccColor The specification of an ICC color, or null. * @raises SVGException(SVG_INVALID_VALUE_ERR) Raised if one of the * parameters has an invalid value. */ void setColor(in unsigned short colorType, in DOMString rgbColor, in DOMString iccColor) raises(SVGException); }; /** *

The SVGICCColor interface expresses an ICC-based color * specification.

* *

Note: The SVGICCColor interface is deprecated, and may be dropped * from future versions of the SVG specification.

*/ interface SVGICCColor { /** * The name of the color profile, which is the first parameter of an ICC * color specification. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString colorProfile setraises(DOMException); /** * The list of color values that define this ICC color. Each color value * is an arbitrary floating point number. */ readonly attribute SVGNumberList colors; }; /** *

Represents rectangular geometry. Rectangles are defined as consisting * of a (x,y) coordinate pair identifying a minimum X value, a minimum Y * value, and a width and height, which are usually constrained to be * non-negative.

* *

An SVGRect object can be designated as read only, * which means that attempts to modify the object will result in an exception * being thrown, as described below.

*/ interface SVGRect { /** * The x coordinate of the rectangle, in user units. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the rectangle * corresponds to a read only attribute or when the object itself is * read only. */ attribute float x setraises(DOMException); /** * The y coordinate of the rectangle, in user units. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the rectangle * corresponds to a read only attribute or when the object itself is * read only. */ attribute float y setraises(DOMException); /** * The width coordinate of the rectangle, in user units. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the rectangle * corresponds to a read only attribute or when the object itself is * read only. */ attribute float width setraises(DOMException); /** * The height coordinate of the rectangle, in user units. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the rectangle * corresponds to a read only attribute or when the object itself is * read only. */ attribute float height setraises(DOMException); }; /** * Used for attributes of type SVGRect which can be animated. */ interface SVGAnimatedRect { /** * The base value of the given attribute before applying any animations. */ readonly attribute SVGRect baseVal; /** * A read only SVGRect representing the current animated value of * the given attribute. If the given attribute is not currently being * animated, then the SVGRect will have the same contents * as baseVal. The object referenced by animVal will always * be distinct from the one referenced by baseVal, even when * the attribute is not animated. */ readonly attribute SVGRect animVal; }; /** * The SVGUnitTypes interface defines a commonly used set of constants * and is a base interface used by SVGGradientElement, * SVGPatternElement, SVGClipPathElement, SVGMaskElement * and SVGFilterElement. */ interface SVGUnitTypes { /** * The type is not one of predefined types. It is invalid to attempt to * define a new value of this type or to attempt to switch an existing * value to this type. * * @defgroup Unit Types */ const unsigned short SVG_UNIT_TYPE_UNKNOWN = 0; /** * Corresponds to value 'userSpaceOnUse'. * * @defgroup Unit Types */ const unsigned short SVG_UNIT_TYPE_USERSPACEONUSE = 1; /** * Corresponds to value 'objectBoundingBox'. * * @defgroup Unit Types */ const unsigned short SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2; }; /** * The SVGStylable interface is implemented on all objects * corresponding to SVG elements that can have 'style attribute', * 'class' and presentation attributes specified on them. It * is thus an ancestor interface for many of the interfaces defined in this * specification. */ interface SVGStylable { /** * Corresponds to attribute 'class' on the given element. */ readonly attribute SVGAnimatedString className; /** * Corresponds to attribute 'style attribute' on the given element. If the * user agent does not support styling * with CSS, then this attribute must always have the value of null. */ readonly attribute css::CSSStyleDeclaration style; /** * Returns the base (i.e., static) value of a given presentation * attribute as an object of type CSSValue. The returned object * is live; changes to the objects represent immediate changes to the * objects to which the CSSValue is attached. * *

Note: The getPresentationAttribute method is deprecated, * and may be dropped from future versions of the SVG specification.

* * @param name The name of the presentation attribute whose value is to be * returned. * @return The static/base value of the given presentation attribute * as a CSSValue, or null if the given attribute does not have a * specified value. */ css::CSSValue getPresentationAttribute(in DOMString name); }; /** * Interface SVGLocatable is for all elements which either have a * 'transform' attribute or don't have a 'transform' attribute * but whose content can have a bounding box in current user space. */ interface SVGLocatable { /** * The element which established the current viewport. Often, the nearest * ancestor 'svg' element. Null if the current element is the * outermost svg element. */ readonly attribute SVGElement nearestViewportElement; /** * The farthest ancestor 'svg' element. Null if the current element * is the outermost svg element. */ readonly attribute SVGElement farthestViewportElement; /** * Returns the tight bounding box in current user space (i.e., after * application of the 'transform' attribute, if any) on the * geometry of all contained graphics elements, exclusive of stroking, clipping, masking and * filter effects). Note that getBBox must return the actual bounding box * at the time the method was called, even in case the element has not * yet been rendered. * * @return An SVGRect object that defines the bounding box. */ SVGRect getBBox(); /** * Returns the transformation matrix from current user units (i.e., after * application of the 'transform' attribute, if any) to the viewport * coordinate system for the nearestViewportElement. * * @return An SVGMatrix object that defines the CTM. */ SVGMatrix getCTM(); /** * Returns the transformation matrix from current user units (i.e., after * application of the 'transform' attribute, if any) to the parent * user agent's notice of a "pixel". For display devices, ideally this * represents a physical screen pixel. For other devices or environments * where physical pixel sizes are not known, then an algorithm similar to * the CSS2 definition of a "pixel" can be used instead. Note that null * is returned if this element is not hooked into the document tree. This * method would have been more aptly named as getClientCTM, * but the name getScreenCTM is kept for historical reasons. * * @return An SVGMatrix object that defines the given * transformation matrix. */ SVGMatrix getScreenCTM(); /** * Returns the transformation matrix from the user coordinate system on the * current element (after application of the 'transform' attribute, * if any) to the user coordinate system on parameter element * (after application of its 'transform' attribute, if any). * * @param element The target element. * @return An SVGMatrix object that defines the transformation. * @raises SVGException(SVG_MATRIX_NOT_INVERTABLE) Raised if the currently * defined transformation matrices make it impossible to compute the * given matrix (e.g., because one of the transformations is singular). */ SVGMatrix getTransformToElement(in SVGElement element) raises(SVGException); }; /** * Interface SVGTransformable contains properties and methods that * apply to all elements which have attribute 'transform'. */ interface SVGTransformable : SVGLocatable { /** * Corresponds to attribute 'transform' on the given element. */ readonly attribute SVGAnimatedTransformList transform; }; /** * Interface SVGTests defines an interface which applies to all * elements which have attributes 'requiredFeatures', * 'requiredExtensions' and 'systemLanguage'. */ interface SVGTests { /** * Corresponds to attribute 'requiredFeatures' on the given element. */ readonly attribute SVGStringList requiredFeatures; /** * Corresponds to attribute 'requiredExtensions' on the given element. */ readonly attribute SVGStringList requiredExtensions; /** * Corresponds to attribute 'systemLanguage' on the given element. */ readonly attribute SVGStringList systemLanguage; /** * Returns true if the user agent supports the given extension, specified * by a URI. * * @param extension The name of the extension, expressed as a URI. * @return True or false, depending on whether the given extension is * supported. */ boolean hasExtension(in DOMString extension); }; /** * Interface SVGLangSpace defines an interface which applies to all * elements which have attributes 'xml:lang' and 'xml:space'. */ interface SVGLangSpace { /** * Corresponds to attribute 'xml:lang' on the given element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an * attempt to change the value of a read only attribute. */ attribute DOMString xmllang setraises(DOMException); /** * Corresponds to attribute 'xml:space' on the given element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an * attempt to change the value of a read only attribute. */ attribute DOMString xmlspace setraises(DOMException); }; /** * Interface SVGExternalResourcesRequired defines an interface which * applies to all elements where this element or one of its descendants can * reference an external resource. */ interface SVGExternalResourcesRequired { /** * Corresponds to attribute 'externalResourcesRequired' on the given * element. Note that the SVG DOM defines the attribute * 'externalResourcesRequired' as being of type * SVGAnimatedBoolean, whereas the SVG language definition says that * 'externalResourcesRequired' is not animated. Because the SVG * language definition states that 'externalResourcesRequired' * cannot be animated, the SVGAnimatedBoolean::animVal will always be * the same as the SVGAnimatedBoolean::baseVal. */ readonly attribute SVGAnimatedBoolean externalResourcesRequired; }; /** * Interface SVGFitToViewBox defines DOM attributes that apply to * elements which have XML attributes 'viewBox' and * 'preserveAspectRatio'. */ interface SVGFitToViewBox { /** * Corresponds to attribute 'viewBox' on the given element. */ readonly attribute SVGAnimatedRect viewBox; /** * Corresponds to attribute 'preserveAspectRatio' on the given element. */ readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio; }; /** * The SVGZoomAndPan interface defines attribute zoomAndPan and * associated constants. */ interface SVGZoomAndPan { /** * The enumeration was set to a value that is not one of predefined types. * It is invalid to attempt to define a new value of this type or to * attempt to switch an existing value to this type. * * @defgroup Zoom and Pan Types */ const unsigned short SVG_ZOOMANDPAN_UNKNOWN = 0; /** * Corresponds to value 'disable'. * * @defgroup Zoom and Pan Types */ const unsigned short SVG_ZOOMANDPAN_DISABLE = 1; /** * Corresponds to value 'magnify'. * * @defgroup Zoom and Pan Types */ const unsigned short SVG_ZOOMANDPAN_MAGNIFY = 2; /** * Corresponds to attribute 'zoomAndPan' on the given element. The * value must be one of the SVG_ZOOMANDPAN_* constants defined on this * interface. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an * attempt to change the value of a read only attribute. */ attribute unsigned short zoomAndPan setraises(DOMException); }; /** * The interface corresponds to an SVG View Specification. */ interface SVGViewSpec : SVGZoomAndPan, SVGFitToViewBox { /** * Corresponds to the transform setting on the SVG View Specification. */ readonly attribute SVGTransformList transform; /** * Corresponds to the viewTarget setting on the SVG View Specification. */ readonly attribute SVGElement viewTarget; /** * Corresponds to the viewBox setting on the SVG View Specification. */ readonly attribute DOMString viewBoxString; /** * Corresponds to the preserveAspectRatio setting on the SVG View Specification. */ readonly attribute DOMString preserveAspectRatioString; /** * Corresponds to the transform setting on the SVG View Specification. */ readonly attribute DOMString transformString; /** * Corresponds to the viewTarget setting on the SVG View Specification. */ readonly attribute DOMString viewTargetString; }; /** * Interface SVGURIReference defines an interface which applies to all * elements which have the collection of XLink attributes, such as * 'xlink:href', which define a URI reference. */ interface SVGURIReference { /** * Corresponds to attribute 'xlink:href' on * the given element. */ readonly attribute SVGAnimatedString href; }; /** *

SVG extends interface CSSRule with interface SVGCSSRule * by adding an SVGColorProfileRule rule to allow for specification of * ICC-based color.

* *

It is likely that this extension will become part of a future version of * CSS and DOM.

*/ interface SVGCSSRule : css::CSSRule { /** * The rule is an @color-profile. */ const unsigned short COLOR_PROFILE_RULE = 7; }; /** * The SVGRenderingIntent interface defines the enumerated list of * possible values for 'color-profile/rendering-intent' attributes or descriptors. */ interface SVGRenderingIntent { /** * The type is not one of predefined types. It is invalid to attempt to * define a new value of this type or to attempt to switch an existing value * to this type. * * @defgroup Rendering Intent Types */ const unsigned short RENDERING_INTENT_UNKNOWN = 0; /** * Corresponds to a value of 'auto'. * * @defgroup Rendering Intent Types */ const unsigned short RENDERING_INTENT_AUTO = 1; /** * Corresponds to a value of 'perceptual'. * * @defgroup Rendering Intent Types */ const unsigned short RENDERING_INTENT_PERCEPTUAL = 2; /** * Corresponds to a value of 'relative-colorimetric'. * * @defgroup Rendering Intent Types */ const unsigned short RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3; /** * Corresponds to a value of 'saturation'. * * @defgroup Rendering Intent Types */ const unsigned short RENDERING_INTENT_SATURATION = 4; /** * Corresponds to a value of 'absolute-colorimetric'. * * @defgroup Rendering Intent Types */ const unsigned short RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5; }; /** *

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.

* *

The SVGDocument interface contains a similar list of attributes * and methods to the HTMLDocument interface described in the * Document * Object Model (HTML) Level 1 chapter of the * [DOM1] specification.

*/ interface SVGDocument : Document, events::DocumentEvent { /** * 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>) */ readonly attribute DOMString title; /** * 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). */ readonly attribute DOMString referrer; /** * The domain name of the server that served the document, or a null string * if the server cannot be identified by a domain name. */ readonly attribute DOMString domain; /** * The complete URI of the document. */ readonly attribute DOMString URL; /** * The root 'svg' in the document hierarchy. */ readonly attribute SVGSVGElement rootElement; }; /** *

A key interface definition is the SVGSVGElement interface, * which is the interface that corresponds to the 'svg' element. This * interface contains various miscellaneous commonly-used utility * methods, such as matrix operations and the ability to control the * time of redraw on visual rendering devices.

* *

SVGSVGElement extends ViewCSS and DocumentCSS to * provide access to the computed values of properties and the override style * sheet as described in DOM Level 2 Style * [DOM2STYLE].

*/ interface SVGSVGElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGLocatable, SVGFitToViewBox, SVGZoomAndPan, events::DocumentEvent, css::ViewCSS, css::DocumentCSS { /** * Corresponds to attribute 'x' on the given 'svg' element. */ readonly attribute SVGAnimatedLength x; /** * Corresponds to attribute 'y' on the given 'svg' element. */ readonly attribute SVGAnimatedLength y; /** * Corresponds to attribute 'width' on the given 'svg' * element. */ readonly attribute SVGAnimatedLength width; /** * Corresponds to attribute 'height' on the given 'svg' * element. */ readonly attribute SVGAnimatedLength height; /** * Corresponds to attribute 'contentScriptType' on the given * 'svg' element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt to * change the value of a read only attribute. */ attribute DOMString contentScriptType setraises(DOMException); /** * Corresponds to attribute 'contentStyleType' on the given * 'svg' element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt to * change the value of a read only attribute. */ attribute DOMString contentStyleType setraises(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.

* *

The SVGRect object is read only.

*/ readonly attribute SVGRect viewport; /** * 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. */ readonly attribute float pixelUnitToMillimeterX; /** * Corresponding size of a pixel unit along the y-axis of the viewport. */ readonly attribute float pixelUnitToMillimeterY; /** * 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. */ readonly attribute float screenPixelToMillimeterX; /** * Corresponding size of a screen pixel along the y-axis of the viewport. */ readonly attribute float screenPixelToMillimeterY; /** * 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 'svg/viewBox') or to a "custom" view (i.e., a * hyperlink into a particular 'view' or other element - see * Linking into SVG content: * IRI 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. */ readonly attribute boolean useCurrentView; /** *

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:

* * *

The object itself and its contents are both read only.

*/ readonly attribute SVGViewSpec currentView; /** * On an outermost svg element, 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). *

When accessed on an 'svg' element that is not an * outermost svg element, it is undefined what behavior * this attribute has.

*/ attribute float currentScale; /** * On an outermost svg element, the corresponding translation factor * that takes into account user "magnification". *

When accessed on an 'svg' element that is not an * outermost svg element, it is undefined what behavior * this attribute has.

*/ readonly attribute SVGPoint currentTranslate; /** * Takes a time-out value which indicates that redraw shall not occur until: *
    *
  1. the corresponding unsuspendRedraw() call has been made,
  2. *
  3. an unsuspendRedrawAll() call has been made, or
  4. *
  5. its timer has timed out.
  6. *
*

In environments that do not support interactivity (e.g., print media), * then redraw shall not be suspended. * Calls to suspendRedraw() and unsuspendRedraw() should, but need not be, * made in balanced pairs.

*

To suspend redraw actions as a collection of SVG DOM changes occur, * precede the changes to the SVG DOM with a method call similar to:

*
suspendHandleID = suspendRedraw(maxWaitMilliseconds);
*

and follow the changes with a method call similar to:

*
unsuspendRedraw(suspendHandleID);
*

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.

* * @param maxWaitMilliseconds The amount of time in milliseconds * to hold off before redrawing the device. Values greater than 60 seconds * will be truncated down to 60 seconds. * @return A number which acts as a unique identifier for the given * suspendRedraw() call. This value must be passed as the parameter to the * corresponding unsuspendRedraw() method call. */ unsigned long suspendRedraw(in unsigned long maxWaitMilliseconds); /** * Cancels a specified suspendRedraw() by providing a unique * suspend handle ID that was returned by a previous suspendRedraw() call. * * @param suspendHandleID A number which acts as a unique identifier for * the desired suspendRedraw() call. The number supplied must be a value * returned from a previous call to suspendRedraw(). If an invalid * handle ID value is provided then the request to unsuspendRedraw() is * silently ignored. */ void unsuspendRedraw(in unsigned long suspendHandleID); /** * 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. * * @return Boolean indicating whether this SVG document fragment is in a * paused state. */ boolean animationsPaused(); /** * Returns the current time in seconds relative to the start time for the * current SVG document fragment. * * If getCurrentTime is called before * the document timeline has begun (for example, by script running in a * 'script' element before the document's * SVGLoad event is dispatched), * then 0 is returned. * * @return The current time in seconds, or 0 if the document timeline has not yet begun. */ float getCurrentTime(); /** * Adjusts the clock for this SVG document fragment, establishing a new * current time. * * If setCurrentTime is called * before the document timeline has begun (for example, by script running * in a 'script' element before the document's * SVGLoad event is dispatched), * then the value of seconds in the last invocation of the method * gives the time that the document will seek to once the document * timeline has begun. * * @param seconds The new current time in seconds relative to the start * time for the current SVG document fragment. */ void setCurrentTime(in float seconds); /** * Returns the list of graphics elements whose rendered content intersects * the supplied rectangle. Each candidate graphics element is to * be considered a match only if the same graphics element can be a * target of pointer events * as defined in 'pointer-events' processing. * * @param rect The test rectangle. The values are in the initial coordinate * system for the current 'svg' element. * @param referenceElement If not null, then any intersected element that * doesn't have the referenceElement as ancestor must not be included * in the returned NodeList. * @return A list of Elements whose content intersects the supplied * rectangle. This NodeList must be implemented identically to * the NodeList interface as defined in DOM Level 2 Core * ([DOM2], section 1.2) with the * exception that the interface is not * live. */ NodeList getIntersectionList(in SVGRect rect, in SVGElement referenceElement); /** * Returns the list of graphics elements whose rendered content is entirely * contained within the supplied rectangle. Each candidate graphics element is to * be considered a match only if the same graphics element can be a * target of pointer events * as defined in 'pointer-events' processing. * * @param rect The test rectangle. The values are in the initial coordinate * system for the current 'svg' element. * @param referenceElement If not null, then any intersected element that * doesn't have the referenceElement as ancestor must not be included * in the returned NodeList. * @return A list of Elements whose content is enclosed by the supplied * rectangle. This NodeList must be implemented identically to * the NodeList interface as defined in DOM Level 2 Core * ([DOM2], section 1.2) with the * exception that the interface is not * live. */ NodeList getEnclosureList(in SVGRect rect, in SVGElement referenceElement); /** * Returns true if the rendered content of the given element intersects the * supplied rectangle. Each candidate graphics element is to * be considered a match only if the same graphics element can be a * target of pointer events * as defined in 'pointer-events' processing. * * @param element The element on which to perform the given test. * @param rect The test rectangle. The values are in the initial coordinate * system for the current 'svg' element. * @return True or false, depending on whether the given element intersects * the supplied rectangle. */ boolean checkIntersection(in SVGElement element, in SVGRect rect); /** * Returns true if the rendered content of the given element is entirely * contained within the supplied rectangle. Each candidate graphics element is to * be considered a match only if the same graphics element can be a * target of pointer events * as defined in 'pointer-events' processing. * * @param element The element on which to perform the given test. * @param rect The test rectangle. The values are in the initial coordinate * system for the current 'svg' element. * @return True or false, depending on whether the given element is enclosed * by the supplied rectangle. */ boolean checkEnclosure(in SVGElement element, in 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. * * @return An SVGNumber object. */ SVGNumber createSVGNumber(); /** * Creates an SVGLength object outside of any document trees. The * object is initialized to the value of 0 user units. * * @return An SVGLength object. */ SVGLength createSVGLength(); /** * Creates an SVGAngle object outside of any document trees. The * object is initialized to the value 0 degrees (unitless). * * @return An SVGAngle object. */ 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. * * @return An SVGPoint object. */ SVGPoint createSVGPoint(); /** * Creates an SVGMatrix object outside of any document trees. The * object is initialized to the identity matrix. * * @return An SVGMatrix object. */ 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. * * @return An SVGRect object. */ SVGRect createSVGRect(); /** * Creates an SVGTransform object outside of any document trees. The * object is initialized to an identity matrix transform * (SVG_TRANSFORM_MATRIX). * * @return An SVGTransform object. */ 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). The values from the parameter matrix * are copied, the matrix parameter is not adopted as * SVGTransform::matrix. *

* * @param matrix The transform matrix. * @return An SVGTransform object. */ SVGTransform createSVGTransformFromMatrix(in 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. * * @param elementId The unique id value for an element. * @return The matching element. */ Element getElementById(in DOMString elementId); }; /** * The SVGSVGElement interface corresponds to the 'g' element. */ interface SVGGElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {}; /** * The SVGDefsElement interface corresponds to the 'defs' * element. */ interface SVGDefsElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {}; /** * The SVGDescElement interface corresponds to the 'desc' * element. */ interface SVGDescElement : SVGElement, SVGLangSpace, SVGStylable {}; /** * The SVGTitleElement interface corresponds to the 'title' * element. */ interface SVGTitleElement : SVGElement, SVGLangSpace, SVGStylable {}; /** * The SVGSymbolElement interface corresponds to the 'symbol' * element. */ interface SVGSymbolElement : SVGElement, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGFitToViewBox {}; /** * The SVGUseElement interface corresponds to the 'use' element. */ interface SVGUseElement : SVGElement, SVGURIReference, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable { /** * Corresponds to attribute 'x' on the given 'use' element. */ readonly attribute SVGAnimatedLength x; /** * Corresponds to attribute 'y' on the given 'use' element. */ readonly attribute SVGAnimatedLength y; /** * Corresponds to attribute 'width' on the given 'use' * element. */ readonly attribute SVGAnimatedLength width; /** * Corresponds to attribute 'height' on the given 'use' * element. */ readonly attribute SVGAnimatedLength height; /** * The root of the "instance tree". See description of * SVGElementInstance for a discussion on the instance tree. */ readonly attribute SVGElementInstance instanceRoot; /** * If the 'xlink:href' attribute is being animated, contains the current * animated root of the "instance tree". If the 'xlink:href' attribute * is not currently being animated, contains the same value as * instanceRoot. See description of SVGElementInstance * for a discussion on the instance tree. */ readonly attribute SVGElementInstance animatedInstanceRoot; }; /** *

For each 'use' element, the SVG DOM maintains a shadow tree (the * "instance tree") of objects of type SVGElementInstance. An * SVGElementInstance represents a single node in the instance tree. * The root object in the instance tree is pointed to by the * SVGUseElement::instanceRoot attribute on the * SVGUseElement object for the corresponding 'use' element.

* *

If the 'use' element references a simple graphics element such as * a 'rect', then there is only a single SVGElementInstance * object, and the correspondingElement attribute on this * SVGElementInstance object is the SVGRectElement that * corresponds to the referenced 'rect' element.

* *

If the 'use' element references a 'g' which contains two * 'rect' elements, then the instance tree contains three * SVGElementInstance objects, a root SVGElementInstance object * whose correspondingElement is the SVGGElement object for the * 'g', and then two child SVGElementInstance objects, each of * which has its correspondingElement that is an SVGRectElement * object.

* *

If the referenced object is itself a 'use', or if there are * 'use' subelements within the referenced object, the instance tree * will contain recursive expansion of the indirect references to form a * complete tree. For example, if a 'use' element references a * 'g', and the 'g' itself contains a 'use', and that * 'use' references a 'rect', then the instance tree for the * original (outermost) 'use' will consist of a hierarchy of * SVGElementInstance objects, as follows:

*
SVGElementInstance #1 (parentNode=null, firstChild=#2, correspondingElement is the 'g')
  SVGElementInstance #2 (parentNode=#1, firstChild=#3, correspondingElement is the other 'use')
    SVGElementInstance #3 (parentNode=#2, firstChild=null, correspondingElement is the 'rect')
*/ interface SVGElementInstance : events::EventTarget { /** * The corresponding element to which this object is an instance. For * example, if a 'use' element references a 'rect' element, * then an SVGElementInstance is created, with its * correspondingElement being the SVGRectElement object * for the 'rect' element. */ readonly attribute SVGElement correspondingElement; /** * The corresponding 'use' element to which this * SVGElementInstance object belongs. When 'use' elements are * nested (e.g., a 'use' references another 'use' which * references a graphics element such as a 'rect'), then the * correspondingUseElement is the outermost 'use' (i.e., the * one which indirectly references the 'rect', not the one with the * direct reference). */ readonly attribute SVGUseElement correspondingUseElement; /** * The parent of this SVGElementInstance within the instance tree. * All SVGElementInstance objects have a parent except the * SVGElementInstance which corresponds to the element which was * directly referenced by the 'use' element, in which case * parentNode is null. */ readonly attribute SVGElementInstance parentNode; /** * An SVGElementInstanceList that contains all children of this * SVGElementInstance within the instance tree. If there are no * children, this is an SVGElementInstanceList containing no entries * (i.e., an empty list). */ readonly attribute SVGElementInstanceList childNodes; /** * The first child of this SVGElementInstance within the instance * tree. If there is no such SVGElementInstance, this returns null. */ readonly attribute SVGElementInstance firstChild; /** * The last child of this SVGElementInstance within the instance * tree. If there is no such SVGElementInstance, this returns null. */ readonly attribute SVGElementInstance lastChild; /** * The SVGElementInstance immediately preceding this * SVGElementInstance. If there is no such SVGElementInstance, * this returns null. */ readonly attribute SVGElementInstance previousSibling; /** * The SVGElementInstance immediately following this * SVGElementInstance. If there is no such SVGElementInstance, * this returns null. */ readonly attribute SVGElementInstance nextSibling; }; /** * The SVGElementInstanceList interface provides the abstraction of an * ordered collection of SVGElementInstance objects, without defining * or constraining how this collection is implemented. */ interface SVGElementInstanceList { /** * The number of SVGElementInstance objects in the list. The range * of valid child indices is 0 to length-1 inclusive. */ readonly attribute unsigned long length; /** * Returns the indexth item in the collection. If * index is greater than or equal to the number of nodes in the * list, this returns null. * * @param index Index into the collection. * @return The SVGElementInstance object at the indexth * position in the SVGElementInstanceList, or null if that is not * a valid index. */ SVGElementInstance item(in unsigned long index); }; /** * The SVGImageElement interface corresponds to the 'image' * element. */ interface SVGImageElement : SVGElement, SVGURIReference, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable { /** * Corresponds to attribute 'x' on the given 'image' element. */ readonly attribute SVGAnimatedLength x; /** * Corresponds to attribute 'y' on the given 'image' element. */ readonly attribute SVGAnimatedLength y; /** * Corresponds to attribute 'width' on the given 'image' element. */ readonly attribute SVGAnimatedLength width; /** * Corresponds to attribute 'height' on the given 'image' element. */ readonly attribute SVGAnimatedLength height; /** * Corresponds to attribute 'preserveAspectRatio' on the given 'image' element. */ readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio; }; /** * The SVGSwitchElement interface corresponds to the 'switch' * element. */ interface SVGSwitchElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable {}; /** *

This interface provides access to an SVG document embedded by reference * in another DOM-based language. The expectation is that the interface is * implemented on DOM objects that allow such SVG document references, such as * the DOM Element object that corresponds to an HTML * 'object' element. Such DOM objects are * often also required to implement the EmbeddingElement defined in the * Window specification [WINDOW].

* *

This interface is deprecated and may be dropped from future versions of * the SVG specification. Authors are suggested to use the * contentDocument attribute on the EmbeddingElement * interface to obtain a referenced SVG document, if that interface is * available.

*/ interface GetSVGDocument { /** *

This method must return the Document object embedded content * in an embedding element, or null if there is no document.

* *

Note that this is equivalent to fetching the value of the * EmbeddingElement::contentDocument attribute of the embedding * element, if the EmbeddingElement interface is also implemented. * The author is advised to check that the document element of the returned * Document is indeed an 'svg' element instead of assuming * that that will always be the case.

* * @return The Document object for the referenced document, or null * if there is no document. */ SVGDocument getSVGDocument(); }; /** * The SVGStyleElement interface corresponds to the 'style element' * element. */ interface SVGStyleElement : SVGElement, SVGLangSpace { /** * Corresponds to attribute 'type' on the given element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString type setraises(DOMException); /** * Corresponds to attribute 'media' on the given element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString media setraises(DOMException); /** * Corresponds to attribute 'title attribute' on the given element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString title setraises(DOMException); }; /** *

Many of the SVG DOM interfaces refer to objects of class * SVGPoint. An SVGPoint is an (x, y) coordinate pair. When * used in matrix operations, an SVGPoint is treated as a vector of * the form:

* *
[x]
[y]
[1]
* *

If an SVGRect object is designated as read only, * then attempting to assign to one of its attributes will result in * an exception being thrown.

*/ interface SVGPoint { /** * The x coordinate. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised if the * SVGPoint object is read only, or corresponds to a DOM * attribute that is read only. */ attribute float x setraises(DOMException); /** * The y coordinate. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised if the * SVGPoint object is read only, or corresponds to a DOM * attribute that is read only. */ attribute float y setraises(DOMException); /** *

Applies a 2x3 matrix transformation on this SVGPoint object and * returns a new, transformed SVGPoint object:

* *
newpoint = matrix * thispoint
* * @param matrix The matrix which is to be applied to this SVGPoint * object. * @return A new SVGPoint object. */ SVGPoint matrixTransform(in SVGMatrix matrix); }; /** *

This interface defines a list of SVGPoint objects.

* *

SVGPointList has the same attributes and methods as other * SVGxxxList interfaces. Implementers may consider using a single base class * to implement the various SVGxxxList interfaces.

*/ interface SVGPointList { /** * The number of items in the list. */ readonly attribute unsigned long numberOfItems; /** * Clears all existing current items from the list, with the result being * an empty list. * * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. */ void clear() raises(DOMException); /** * Clears all existing current items from the list and re-initializes the * list to hold the single item specified by the parameter. If the inserted * item is already in a list, it is removed from its previous list before * it is inserted into this list. The inserted item is the item itself and * not a copy. * * @param newItem The item which should become the only member of the list. * @return The item being inserted into the list. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. */ SVGPoint initialize(in SVGPoint newItem) raises(DOMException); /** * Returns the specified item from the list. The returned item is the * item itself and not a copy. Any changes made to the item are * immediately reflected in the list. * * @param index The index of the item from the list which is to be * returned. The first item is number 0. * @return The selected item. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ SVGPoint getItem(in unsigned long index) raises(DOMException); /** * Inserts a new item into the list at the specified position. The first * item is number 0. If newItem is already in a list, it is * removed from its previous list before it is inserted into this list. * The inserted item is the item itself and not a copy. If the item is * already in this list, note that the index of the item to insert * before is before the removal of the item. * * @param newItem The item which is to be inserted into the list. * @param index The index of the item before which the new item is to be * inserted. The first item is number 0. If the index is equal to 0, * then the new item is inserted at the front of the list. If the index * is greater than or equal to numberOfItems, then the new item is * appended to the end of the list. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. */ SVGPoint insertItemBefore(in SVGPoint newItem, in unsigned long index) raises(DOMException); /** * Replaces an existing item in the list with a new item. If * newItem is already in a list, it is removed from its * previous list before it is inserted into this list. The inserted item * is the item itself and not a copy. If the item is already in this * list, note that the index of the item to replace is before * the removal of the item. * * @param newItem The item which is to be inserted into the list. * @param index The index of the item which is to be replaced. The first * item is number 0. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ SVGPoint replaceItem(in SVGPoint newItem, in unsigned long index) raises(DOMException); /** * Removes an existing item from the list. * * @param index The index of the item which is to be removed. The first * item is number 0. * @return The removed item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ SVGPoint removeItem(in unsigned long index) raises(DOMException); /** * Inserts a new item at the end of the list. If newItem is * already in a list, it is removed from its previous list before it is * inserted into this list. The inserted item is the item itself and * not a copy. * * @param newItem The item which is to be inserted. The first item is * number 0. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. */ SVGPoint appendItem(in SVGPoint newItem) raises(DOMException); }; /** *

Many of SVG's graphics operations utilize 2x3 matrices of the form:

* *
[a c e]
[b d f]
* *

which, when expanded into a 3x3 matrix for the purposes of matrix * arithmetic, become:

* *
[a c e]
[b d f]
[0 0 1]
*/ interface SVGMatrix { /** * The a component of the matrix. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float a setraises(DOMException); /** * The b component of the matrix. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float b setraises(DOMException); /** * The c component of the matrix. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float c setraises(DOMException); /** * The d component of the matrix. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float d setraises(DOMException); /** * The e component of the matrix. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float e setraises(DOMException); /** * The f component of the matrix. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float f setraises(DOMException); /** * Performs matrix multiplication. This matrix is post-multiplied by * another matrix, returning the resulting new matrix. * * @param secondMatrix The matrix which is post-multiplied to this matrix. * @return The resulting matrix. */ SVGMatrix multiply(in SVGMatrix secondMatrix); /** * Returns the inverse matrix. * * @return The inverse matrix. * @raises SVGException(SVG_MATRIX_NOT_INVERTABLE) Raised if this matrix is * not invertable. */ SVGMatrix inverse() raises(SVGException); /** * Post-multiplies a translation transformation on the current matrix and * returns the resulting matrix. * * @param x The distance to translate along the x-axis. * @param y The distance to translate along the y-axis. * @return The resulting matrix. */ SVGMatrix translate(in float x, in float y); /** * Post-multiplies a uniform scale transformation on the current matrix * and returns the resulting matrix. * * @param scaleFactor Scale factor in both X and Y. * @return The resulting matrix. */ SVGMatrix scale(in float scaleFactor); /** * Post-multiplies a non-uniform scale transformation on the current matrix * and returns the resulting matrix. * * @param scaleFactorX Scale factor in X. * @param scaleFactorY Scale factor in Y. * @return The resulting matrix. */ SVGMatrix scaleNonUniform(in float scaleFactorX, in float scaleFactorY); /** * Post-multiplies a rotation transformation on the current matrix and * returns the resulting matrix. * * @param angle Rotation angle. * @return The resulting matrix. */ SVGMatrix rotate(in float angle); /** * Post-multiplies a rotation transformation on the current matrix and * returns the resulting matrix. The rotation angle is determined by taking * (+/-) atan(y/x). The direction of the vector (x, y) determines whether * the positive or negative angle value is used. * * @param x The X coordinate of the vector (x,y). Must not be zero. * @param y The Y coordinate of the vector (x,y). Must not be zero. * @return The resulting matrix. * @raises SVGException(SVG_INVALID_VALUE_ERR) Raised if one of the * parameters has an invalid value. */ SVGMatrix rotateFromVector(in float x, in float y) raises(SVGException); /** * Post-multiplies the transformation [-1 0 0 1 0 0] and returns the * resulting matrix. * * @return The resulting matrix. */ SVGMatrix flipX(); /** * Post-multiplies the transformation [1 0 0 -1 0 0] and returns the * resulting matrix. * * @return The resulting matrix. */ SVGMatrix flipY(); /** * Post-multiplies a skewX transformation on the current matrix and * returns the resulting matrix. * * @param angle Skew angle. * @return The resulting matrix. */ SVGMatrix skewX(in float angle); /** * Post-multiplies a skewY transformation on the current matrix and * returns the resulting matrix. * * @param angle Skew angle. * @return The resulting matrix. */ SVGMatrix skewY(in float angle); }; /** * SVGTransform is the interface for one of the component * transformations within an SVGTransformList; thus, an * SVGTransform object corresponds to a single component (e.g., * 'scale(…)' or * 'matrix(…)') within a 'transform' * attribute specification. */ interface SVGTransform { /** * The unit type is not one of predefined types. It is invalid to attempt * to define a new value of this type or to attempt to switch an existing * value to this type. * * @defgroup Transform Types */ const unsigned short SVG_TRANSFORM_UNKNOWN = 0; /** * A 'matrix(…)' transformation. * * @defgroup Transform Types */ const unsigned short SVG_TRANSFORM_MATRIX = 1; /** * A 'translate(…)' transformation. * * @defgroup Transform Types */ const unsigned short SVG_TRANSFORM_TRANSLATE = 2; /** * A 'scale(…)' transformation. * * @defgroup Transform Types */ const unsigned short SVG_TRANSFORM_SCALE = 3; /** * A 'rotate(…)' transformation. * * @defgroup Transform Types */ const unsigned short SVG_TRANSFORM_ROTATE = 4; /** * A 'skewX(…)' transformation. * * @defgroup Transform Types */ const unsigned short SVG_TRANSFORM_SKEWX = 5; /** * A 'skewY(…)' transformation. * * @defgroup Transform Types */ const unsigned short SVG_TRANSFORM_SKEWY = 6; /** * The type of the value as specified by one of the SVG_TRANSFORM_* * constants defined on this interface. */ readonly attribute unsigned short type; /** *

The matrix that represents this transformation. The matrix * object is live, meaning that any changes made to the SVGTransform * object are immediately reflected in the matrix object and vice * versa. In case the matrix object is changed directly (i.e., * without using the methods on the SVGTransform interface itself) * then the type of the SVGTransform changes to SVG_TRANSFORM_MATRIX. *

* */ readonly attribute SVGMatrix matrix; /** *

A convenience attribute for SVG_TRANSFORM_ROTATE, * SVG_TRANSFORM_SKEWX and SVG_TRANSFORM_SKEWY. It holds * the angle that was specified.

* *

For SVG_TRANSFORM_MATRIX, SVG_TRANSFORM_TRANSLATE and * SVG_TRANSFORM_SCALE, angle will be zero.

*/ readonly attribute float angle; /** *

* Sets the transform type to SVG_TRANSFORM_MATRIX, with parameter * matrix defining the new transformation. The values * from the parameter matrix are copied, the matrix * parameter does not replace SVGTransform::matrix. *

* * @param matrix The new matrix for the transformation. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ void setMatrix(in SVGMatrix matrix) raises(DOMException); /** * Sets the transform type to SVG_TRANSFORM_TRANSLATE, with parameters * tx and ty defining the translation amounts. * * @param tx The translation amount in X. * @param ty The translation amount in Y. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ void setTranslate(in float tx, in float ty) raises(DOMException); /** * Sets the transform type to SVG_TRANSFORM_SCALE, with parameters * sx and sy defining the scale amounts. * * @param sx The scale amount in X. * @param sy The scale amount in Y. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ void setScale(in float sx, in float sy) raises(DOMException); /** * Sets the transform type to SVG_TRANSFORM_ROTATE, with parameter * angle defining the rotation angle and parameters * cx and cy defining the optional center of rotation. * * @param angle The rotation angle. * @param cx The x coordinate of center of rotation. * @param cy The y coordinate of center of rotation. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ void setRotate(in float angle, in float cx, in float cy) raises(DOMException); /** * Sets the transform type to SVG_TRANSFORM_SKEWX, with parameter * angle defining the amount of skew. * * @param angle The skew angle. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ void setSkewX(in float angle) raises(DOMException); /** * Sets the transform type to SVG_TRANSFORM_SKEWY, with parameter * angle defining the amount of skew. * * @param angle The skew angle. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ void setSkewY(in float angle) raises(DOMException); }; /** *

This interface defines a list of SVGTransform objects.

* *

The SVGTransformList and SVGTransform interfaces correspond * to the various attributes which specify a set of transformations, such as * the 'transform' attribute which is available for many of SVG's elements.

* *

SVGTransformList has the same attributes and methods as other * SVGxxxList interfaces. Implementers may consider using a single base class * to implement the various SVGxxxList interfaces.

* *

An SVGTransformList object can be designated as read only, * which means that attempts to modify the object will result in an exception * being thrown, as described below.

*/ interface SVGTransformList { /** * The number of items in the list. */ readonly attribute unsigned long numberOfItems; /** * Clears all existing current items from the list, with the result being * an empty list. * * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. */ void clear() raises(DOMException); /** * Clears all existing current items from the list and re-initializes the * list to hold the single item specified by the parameter. If the inserted * item is already in a list, it is removed from its previous list before * it is inserted into this list. The inserted item is the item itself and * not a copy. * * @param newItem The item which should become the only member of the list. * @return The item being inserted into the list. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. */ SVGTransform initialize(in SVGTransform newItem) raises(DOMException); /** * Returns the specified item from the list. The returned item is the * item itself and not a copy. Any changes made to the item are * immediately reflected in the list. * * @param index The index of the item from the list which is to be * returned. The first item is number 0. * @return The selected item. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ SVGTransform getItem(in unsigned long index) raises(DOMException); /** * Inserts a new item into the list at the specified position. The first * item is number 0. If newItem is already in a list, it is * removed from its previous list before it is inserted into this list. * The inserted item is the item itself and not a copy. If the item is * already in this list, note that the index of the item to insert * before is before the removal of the item. * * @param newItem The item which is to be inserted into the list. * @param index The index of the item before which the new item is to be * inserted. The first item is number 0. If the index is equal to 0, * then the new item is inserted at the front of the list. If the index * is greater than or equal to numberOfItems, then the new item is * appended to the end of the list. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. */ SVGTransform insertItemBefore(in SVGTransform newItem, in unsigned long index) raises(DOMException); /** * Replaces an existing item in the list with a new item. If * newItem is already in a list, it is removed from its * previous list before it is inserted into this list. The inserted item * is the item itself and not a copy. If the item is already in this * list, note that the index of the item to replace is before * the removal of the item. * * @param newItem The item which is to be inserted into the list. * @param index The index of the item which is to be replaced. The first * item is number 0. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ SVGTransform replaceItem(in SVGTransform newItem, in unsigned long index) raises(DOMException); /** * Removes an existing item from the list. * * @param index The index of the item which is to be removed. The first * item is number 0. * @return The removed item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ SVGTransform removeItem(in unsigned long index) raises(DOMException); /** * Inserts a new item at the end of the list. If newItem is * already in a list, it is removed from its previous list before it is * inserted into this list. The inserted item is the item itself and * not a copy. * * @param newItem The item which is to be inserted. The first item is * number 0. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. */ SVGTransform appendItem(in SVGTransform newItem) raises(DOMException); /** *

* Creates an SVGTransform object which is initialized to transform * of type SVG_TRANSFORM_MATRIX and whose values are the given matrix. * The values from the parameter matrix are copied, the * matrix parameter is not adopted as * SVGTransform::matrix. *

* * @param matrix The matrix which defines the transformation. * @return The returned SVGTransform object. */ SVGTransform createSVGTransformFromMatrix(in SVGMatrix matrix); /** * Consolidates the list of separate SVGTransform objects by * multiplying the equivalent transformation matrices together to result * in a list consisting of a single SVGTransform object of type * SVG_TRANSFORM_MATRIX. The consolidation operation creates new * SVGTransform object as the first and only item in the list. The * returned item is the item itself and not a copy. Any changes made * to the item are immediately reflected in the list. * * @return The resulting SVGTransform object which becomes single * item in the list. If the list was empty, then a value of null is * returned. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * corresponds to a read only attribute or when the object itself is * read only. */ SVGTransform consolidate() raises(DOMException); }; /** * Used for the various attributes which specify a set of transformations, * such as the 'transform' attribute which is available for many of * SVG's elements, and which can be animated. */ interface SVGAnimatedTransformList { /** * The base value of the given attribute before applying any animations. */ readonly attribute SVGTransformList baseVal; /** * A read only SVGTransformList representing the current animated value of * the given attribute. If the given attribute is not currently being * animated, then the SVGTransformList will have the same contents * as baseVal. The object referenced by animVal will always * be distinct from the one referenced by baseVal, even when * the attribute is not animated. */ readonly attribute SVGTransformList animVal; }; /** * The SVGPreserveAspectRatio interface corresponds to the * 'preserveAspectRatio' attribute, which is available for some of * SVG's elements. * *

An SVGPreserveAspectRatio object can be designated as read only, * which means that attempts to modify the object will result in an exception * being thrown, as described below.

*/ interface SVGPreserveAspectRatio { /** * The enumeration was set to a value that is not one of predefined types. * It is invalid to attempt to define a new value of this type or to * attempt to switch an existing value to this type. * * @defgroup Alignment Types */ const unsigned short SVG_PRESERVEASPECTRATIO_UNKNOWN = 0; /** * Corresponds to value 'none' for attribute * 'preserveAspectRatio'. * * @defgroup Alignment Types */ const unsigned short SVG_PRESERVEASPECTRATIO_NONE = 1; /** * Corresponds to value 'xMinYMin' for attribute * 'preserveAspectRatio'. * * @defgroup Alignment Types */ const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMIN = 2; /** * Corresponds to value 'xMidYMin' for attribute * 'preserveAspectRatio'. * * @defgroup Alignment Types */ const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3; /** * Corresponds to value 'xMaxYMin' for attribute * 'preserveAspectRatio'. * * @defgroup Alignment Types */ const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4; /** * Corresponds to value 'XMinYMid' for attribute * 'preserveAspectRatio'. * * @defgroup Alignment Types */ const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMID = 5; /** * Corresponds to value 'xMidYMid' for attribute * 'preserveAspectRatio'. * * @defgroup Alignment Types */ const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMID = 6; /** * Corresponds to value 'xMaxYMid' for attribute * 'preserveAspectRatio'. * * @defgroup Alignment Types */ const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMID = 7; /** * Corresponds to value 'xMinYMax' for attribute * 'preserveAspectRatio'. * * @defgroup Alignment Types */ const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMAX = 8; /** * Corresponds to value 'xMidYMax' for attribute * 'preserveAspectRatio'. * * @defgroup Alignment Types */ const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9; /** * Corresponds to value 'xMaxYMax' for attribute * 'preserveAspectRatio'. * * @defgroup Alignment Types */ const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10; /** * The enumeration was set to a value that is not one of predefined types. * It is invalid to attempt to define a new value of this type or to * attempt to switch an existing value to this type. * * @defgroup Meet-or-slice Types */ const unsigned short SVG_MEETORSLICE_UNKNOWN = 0; /** * Corresponds to value 'meet' for * attribute 'preserveAspectRatio'. * * @defgroup Meet-or-slice Types */ const unsigned short SVG_MEETORSLICE_MEET = 1; /** * Corresponds to value 'slice' for * attribute 'preserveAspectRatio'. * * @defgroup Meet-or-slice Types */ const unsigned short SVG_MEETORSLICE_SLICE = 2; /** * The type of the alignment value as specified by one of the * SVG_PRESERVEASPECTRATIO_* constants defined on this interface. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the object * corresponds to a read only attribute or when the object itself is * read only. * * @raises SVGException(SVG_INVALID_VALUE_ERR) Raised if one of the * parameters has an invalid value. */ attribute unsigned short align setraises(DOMException); /** * The type of the meet-or-slice value as specified by one of the * SVG_MEETORSLICE_* constants defined on this interface. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the object * corresponds to a read only attribute or when the object itself is * read only. * * @raises SVGException(SVG_INVALID_VALUE_ERR) Raised if one of the * parameters has an invalid value. */ attribute unsigned short meetOrSlice setraises(DOMException); }; /** * Used for attributes of type SVGPreserveAspectRatio which can be * animated. */ interface SVGAnimatedPreserveAspectRatio { /** * The base value of the given attribute before applying any animations. */ readonly attribute SVGPreserveAspectRatio baseVal; /** * A read only SVGPreserveAspectRatio representing the current animated value of * the given attribute. If the given attribute is not currently being * animated, then the SVGPreserveAspectRatio will have the same contents * as baseVal. The object referenced by animVal will always * be distinct from the one referenced by baseVal, even when * the attribute is not animated. */ readonly attribute SVGPreserveAspectRatio animVal; }; /** * The SVGPathSeg interface is a base interface that corresponds to a * single command within a path data specification. */ interface SVGPathSeg { /** * The unit type is not one of predefined types. It is invalid to attempt * to define a new value of this type or to attempt to switch an existing *value to this type. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_UNKNOWN = 0; /** * Corresponds to a "closepath" (z) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_CLOSEPATH = 1; /** * Corresponds to a "absolute moveto" (M) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_MOVETO_ABS = 2; /** * Corresponds to a "relative moveto" (m) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_MOVETO_REL = 3; /** * Corresponds to a "absolute lineto" (L) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_LINETO_ABS = 4; /** * Corresponds to a "relative lineto" (l) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_LINETO_REL = 5; /** * Corresponds to a "absolute cubic Bézier curveto" (C) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_CURVETO_CUBIC_ABS = 6; /** * Corresponds to a "relative cubic Bézier curveto" (c) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_CURVETO_CUBIC_REL = 7; /** * Corresponds to a "absolute quadratic Bézier curveto" (Q) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_CURVETO_QUADRATIC_ABS = 8; /** * Corresponds to a "relative quadratic Bézier curveto" (q) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_CURVETO_QUADRATIC_REL = 9; /** * Corresponds to a "absolute arcto" (A) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_ARC_ABS = 10; /** * Corresponds to a "relative arcto" (a) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_ARC_REL = 11; /** * Corresponds to a "absolute horizontal lineto" (H) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_LINETO_HORIZONTAL_ABS = 12; /** * Corresponds to a "relative horizontal lineto" (h) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_LINETO_HORIZONTAL_REL = 13; /** * Corresponds to a "absolute vertical lineto" (V) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_LINETO_VERTICAL_ABS = 14; /** * Corresponds to a "relative vertical lineto" (v) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_LINETO_VERTICAL_REL = 15; /** * Corresponds to a "absolute smooth cubic curveto" (S) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16; /** * Corresponds to a "relative smooth cubic curveto" (s) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17; /** * Corresponds to a "absolute smooth quadratic curveto" (T) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18; /** * Corresponds to a "relative smooth quadratic curveto" (t) path data command. * * @defgroup Path Segment Types */ const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19; /** * The type of the path segment as specified by one of the constants * defined on this interface. */ readonly attribute unsigned short pathSegType; /** * The type of the path segment, specified by the corresponding one * character command name. */ readonly attribute DOMString pathSegTypeAsLetter; }; /** * The SVGPathSegClosePath interface corresponds to a * "closepath" (z) path data command. */ interface SVGPathSegClosePath : SVGPathSeg { }; /** * The SVGPathSegMovetoAbs interface corresponds to an * "absolute moveto" (M) path data command. */ interface SVGPathSegMovetoAbs : SVGPathSeg { /** * The absolute X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * The absolute Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); }; /** * The SVGPathSegMovetoRel interface corresponds to a * "relative moveto" (m) path data command. */ interface SVGPathSegMovetoRel : SVGPathSeg { /** * The relative X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * The relative Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); }; /** * The SVGPathSegLinetoAbs interface corresponds to an * "absolute lineto" (L) path data command. */ interface SVGPathSegLinetoAbs : SVGPathSeg { /** * The absolute X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * The absolute Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); }; /** * The SVGPathSegLinetoRel interface corresponds to a * "relative lineto" (l) path data command. */ interface SVGPathSegLinetoRel : SVGPathSeg { /** * The relative X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * The relative Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); }; /** * The SVGPathSegCurvetoCubicAbs interface corresponds to an * "absolute cubic Bézier curveto" (C) path data command. */ interface SVGPathSegCurvetoCubicAbs : SVGPathSeg { /** * The absolute X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * The absolute Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); /** * The absolute X coordinate for the first control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x1 setraises(DOMException); /** * The absolute Y coordinate for the first control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y1 setraises(DOMException); /** * The absolute X coordinate for the second control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x2 setraises(DOMException); /** * The absolute Y coordinate for the second control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y2 setraises(DOMException); }; /** * The SVGPathSegCurvetoCubicRel interface corresponds to a * "relative cubic Bézier curveto" (c) path data command. */ interface SVGPathSegCurvetoCubicRel : SVGPathSeg { /** * The relative X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * The relative Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); /** * The relative X coordinate for the first control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x1 setraises(DOMException); /** * The relative Y coordinate for the first control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y1 setraises(DOMException); /** * The relative X coordinate for the second control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x2 setraises(DOMException); /** * The relative Y coordinate for the second control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y2 setraises(DOMException); }; /** * The SVGPathSegCurvetoQuadraticAbs interface corresponds to an * "absolute quadratic Bézier curveto" (Q) path data command. */ interface SVGPathSegCurvetoQuadraticAbs : SVGPathSeg { /** * The absolute X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * The absolute Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); /** * The absolute X coordinate for the first control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x1 setraises(DOMException); /** * The absolute Y coordinate for the first control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y1 setraises(DOMException); }; /** * The SVGPathSegCurvetoQuadraticRel interface corresponds to a * "relative quadratic Bézier curveto" (q) path data command. */ interface SVGPathSegCurvetoQuadraticRel : SVGPathSeg { /** * The relative X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * The relative Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); /** * The relative X coordinate for the first control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x1 setraises(DOMException); /** * The relative Y coordinate for the first control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y1 setraises(DOMException); }; /** * The SVGPathSegArcAbs interface corresponds to an * "absolute arcto" (A) path data command. */ interface SVGPathSegArcAbs : SVGPathSeg { /** * The absolute X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * The absolute Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); /** * The x-axis radius for the ellipse (i.e., r1). * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float r1 setraises(DOMException); /** * The y-axis radius for the ellipse (i.e., r2). * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float r2 setraises(DOMException); /** * The rotation angle in degrees for the ellipse's x-axis relative to the x-axis of the user coordinate system. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float angle setraises(DOMException); /** * The value of the large-arc-flag parameter. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute boolean largeArcFlag setraises(DOMException); /** * The value of the sweep-flag parameter. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute boolean sweepFlag setraises(DOMException); }; /** * The SVGPathSegArcRel interface corresponds to a * "relative arcto" (a) path data command. */ interface SVGPathSegArcRel : SVGPathSeg { /** * The relative X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * The relative Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); /** * The x-axis radius for the ellipse (i.e., r1). * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float r1 setraises(DOMException); /** * The y-axis radius for the ellipse (i.e., r2). * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float r2 setraises(DOMException); /** * The rotation angle in degrees for the ellipse's x-axis relative to the x-axis of the user coordinate system. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float angle setraises(DOMException); /** * The value of the large-arc-flag parameter. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute boolean largeArcFlag setraises(DOMException); /** * The value of the sweep-flag parameter. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute boolean sweepFlag setraises(DOMException); }; /** * The SVGPathSegLinetoHorizontalAbs interface corresponds to an * "absolute horizontal lineto" (H) path data command. */ interface SVGPathSegLinetoHorizontalAbs : SVGPathSeg { /** * The absolute X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); }; /** * The SVGPathSegLinetoHorizontalRel interface corresponds to a * "relative horizontal lineto" (h) path data command. */ interface SVGPathSegLinetoHorizontalRel : SVGPathSeg { /** * The relative X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); }; /** * The SVGPathSegLinetoVerticalAbs interface corresponds to an * "absolute vertical lineto" (V) path data command. */ interface SVGPathSegLinetoVerticalAbs : SVGPathSeg { /** * The absolute Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); }; /** * The SVGPathSegLinetoVerticalRel interface corresponds to a * "relative vertical lineto" (v) path data command. */ interface SVGPathSegLinetoVerticalRel : SVGPathSeg { /** * The relative Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); }; /** * The SVGPathSegCurvetoCubicSmoothAbs interface corresponds to an * "absolute smooth cubic curveto" (S) path data command. */ interface SVGPathSegCurvetoCubicSmoothAbs : SVGPathSeg { /** * The absolute X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * The absolute Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); /** * The absolute X coordinate for the second control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x2 setraises(DOMException); /** * The absolute Y coordinate for the second control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y2 setraises(DOMException); }; /** * The SVGPathSegCurvetoCubicSmoothRel interface corresponds to a * "relative smooth cubic curveto" (s) path data command. */ interface SVGPathSegCurvetoCubicSmoothRel : SVGPathSeg { /** * The relative X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * The relative Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); /** * The relative X coordinate for the second control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x2 setraises(DOMException); /** * The relative Y coordinate for the second control point. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y2 setraises(DOMException); }; /** * The SVGPathSegCurvetoQuadraticSmoothAbs interface corresponds to an * "absolute smooth cubic curveto" (T) path data command. */ interface SVGPathSegCurvetoQuadraticSmoothAbs : SVGPathSeg { /** * The absolute X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * The absolute Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); }; /** * The SVGPathSegCurvetoQuadraticSmoothRel interface corresponds to a * "relative smooth cubic curveto" (t) path data command. */ interface SVGPathSegCurvetoQuadraticSmoothRel : SVGPathSeg { /** * The relative X coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * The relative Y coordinate for the end point of this path segment. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); }; /** *

This interface defines a list of SVGPathSeg objects.

* *

SVGPathSegList has the same attributes and methods as other * SVGxxxList interfaces. Implementers may consider using a single base class * to implement the various SVGxxxList interfaces.

*/ interface SVGPathSegList { /** * The number of items in the list. */ readonly attribute unsigned long numberOfItems; /** * Clears all existing current items from the list, with the result being * an empty list. * * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. */ void clear() raises(DOMException); /** * Clears all existing current items from the list and re-initializes the * list to hold the single item specified by the parameter. If the inserted * item is already in a list, it is removed from its previous list before * it is inserted into this list. The inserted item is the item itself and * not a copy. * * @param newItem The item which should become the only member of the list. * @return The item being inserted into the list. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. */ SVGPathSeg initialize(in SVGPathSeg newItem) raises(DOMException); /** * Returns the specified item from the list. The returned item is the * item itself and not a copy. Any changes made to the item are * immediately reflected in the list. * * @param index The index of the item from the list which is to be * returned. The first item is number 0. * @return The selected item. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ SVGPathSeg getItem(in unsigned long index) raises(DOMException); /** * Inserts a new item into the list at the specified position. The first * item is number 0. If newItem is already in a list, it is * removed from its previous list before it is inserted into this list. * The inserted item is the item itself and not a copy. If the item is * already in this list, note that the index of the item to insert * before is before the removal of the item. * * @param newItem The item which is to be inserted into the list. * @param index The index of the item before which the new item is to be * inserted. The first item is number 0. If the index is equal to 0, * then the new item is inserted at the front of the list. If the index * is greater than or equal to numberOfItems, then the new item is * appended to the end of the list. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. */ SVGPathSeg insertItemBefore(in SVGPathSeg newItem, in unsigned long index) raises(DOMException); /** * Replaces an existing item in the list with a new item. If * newItem is already in a list, it is removed from its * previous list before it is inserted into this list. The inserted item * is the item itself and not a copy. If the item is already in this * list, note that the index of the item to replace is before * the removal of the item. * * @param newItem The item which is to be inserted into the list. * @param index The index of the item which is to be replaced. The first * item is number 0. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ SVGPathSeg replaceItem(in SVGPathSeg newItem, in unsigned long index) raises(DOMException); /** * Removes an existing item from the list. * * @param index The index of the item which is to be removed. The first * item is number 0. * @return The removed item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is * greater than or equal to numberOfItems. */ SVGPathSeg removeItem(in unsigned long index) raises(DOMException); /** * Inserts a new item at the end of the list. If newItem is * already in a list, it is removed from its previous list before it is * inserted into this list. The inserted item is the item itself and * not a copy. * * @param newItem The item which is to be inserted. The first item is * number 0. * @return The inserted item. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the list * cannot be modified. */ SVGPathSeg appendItem(in SVGPathSeg newItem) raises(DOMException); }; /** *

The SVGAnimatedPathData interface supports elements which have a 'd' * attribute which holds SVG path data, and supports the ability to animate * that attribute.

* *

The SVGAnimatedPathData interface provides two lists to access and * modify the base (i.e., static) contents of the 'd' attribute:

* * * *

and two lists to access the current animated values of the 'd' * attribute:

* * * *

Each of the two lists are always kept synchronized. Modifications to one * list will immediately cause the corresponding list to be modified. * Modifications to normalizedPathSegList might cause entries in * pathSegList to be broken into a set of normalized path segments.

* *

Additionally, the 'path/d' attribute on the 'path' element * accessed via the XML DOM (e.g., using the getAttribute() * method call) will reflect any changes made to pathSegList or * normalizedPathSegList.

*/ interface SVGAnimatedPathData { /** * Provides access to the base (i.e., static) contents of the 'd' * attribute in a form which matches one-for-one with SVG's syntax. * Thus, if the 'd' attribute has an "absolute moveto (M)" and an * "absolute arcto (A)" command, then pathSegList will have two * entries: a SVG_PATHSEG_MOVETO_ABS and a SVG_PATHSEG_ARC_ABS. */ readonly attribute SVGPathSegList pathSegList; /** *

Provides access to the base (i.e., static) contents of the * 'd' attribute in a form where all path data commands are * expressed in terms of the following subset of SVGPathSeg * types: SVG_PATHSEG_MOVETO_ABS (M), SVG_PATHSEG_LINETO_ABS (L), * SVG_PATHSEG_CURVETO_CUBIC_ABS (C) and SVG_PATHSEG_CLOSEPATH * (z). Thus, if the 'd' attribute has an "absolute moveto (M)" * and an "absolute arcto (A)" command, then pathSegList will * have one SVG_PATHSEG_MOVETO_ABS entry followed by a series of * SVG_PATHSEG_LINETO_ABS entries which approximate the arc. This * alternate representation is available to provide a simpler * interface to developers who would benefit from a more limited set * of commands.

* *

The only valid SVGPathSeg types are * SVG_PATHSEG_MOVETO_ABS (M), SVG_PATHSEG_LINETO_ABS (L), * SVG_PATHSEG_CURVETO_CUBIC_ABS (C) and SVG_PATHSEG_CLOSEPATH (z).

*/ readonly attribute SVGPathSegList normalizedPathSegList; /** * Provides access to the current animated contents of the 'd' * attribute in a form which matches one-for-one with SVG's syntax. * If the given attribute or property is being animated, contains * the current animated value of the attribute or property, and both * the object itself and its contents are read only. If the given * attribute or property is not currently being animated, contains * the same value as pathSegList. */ readonly attribute SVGPathSegList animatedPathSegList; /** * Provides access to the current animated contents of the * 'd' attribute in a form where all path data commands * are expressed in terms of the following subset of SVGPathSeg * types: SVG_PATHSEG_MOVETO_ABS (M), SVG_PATHSEG_LINETO_ABS (L), * SVG_PATHSEG_CURVETO_CUBIC_ABS (C) and SVG_PATHSEG_CLOSEPATH (z). * If the given attribute or property is being animated, contains * the current animated value of the attribute or property, and both * the object itself and its contents are read only. If the given * attribute or property is not currently being animated, contains * the same value as normalizedPathSegList. */ readonly attribute SVGPathSegList animatedNormalizedPathSegList; }; /** * The SVGPathElement interface corresponds to the 'path' * element. */ interface SVGPathElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable, SVGAnimatedPathData { /** * Corresponds to attribute pathLength on the given 'path' * element. */ readonly attribute SVGAnimatedNumber pathLength; /** * 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. * * @return The total length of the path. */ float 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. * * @param distance The distance along the path, relative to the start of * the path, as a distance in the current user coordinate system. * @return The returned point in user space. */ SVGPoint getPointAtLength(in float distance); /** * Returns the index into SVGAnimatedPathData::pathSegList which is distance * units along the path, utilizing the user agent's distance-along-a-path * algorithm. * * @param distance The distance along the path, relative to the start of * the path, as a distance in the current user coordinate system. * @return The index of the path segment, where the first path segment is * number 0. */ unsigned long getPathSegAtLength(in float distance); /** * Returns a stand-alone, parentless SVGPathSegClosePath object. * * @return A stand-alone, parentless SVGPathSegClosePath object. */ SVGPathSegClosePath createSVGPathSegClosePath(); /** * Returns a stand-alone, parentless SVGPathSegMovetoAbs object. * * @param x The absolute X coordinate for the end point of this path segment. * @param y The absolute Y coordinate for the end point of this path segment. * @return A stand-alone, parentless SVGPathSegMovetoAbs object. */ SVGPathSegMovetoAbs createSVGPathSegMovetoAbs(in float x, in float y); /** * Returns a stand-alone, parentless SVGPathSegMovetoRel object. * * @param x The relative X coordinate for the end point of this path segment. * @param y The relative Y coordinate for the end point of this path segment. * @return A stand-alone, parentless SVGPathSegMovetoRel object. */ SVGPathSegMovetoRel createSVGPathSegMovetoRel(in float x, in float y); /** * Returns a stand-alone, parentless SVGPathSegLinetoAbs object. * * @param x The absolute X coordinate for the end point of this path segment. * @param y The absolute Y coordinate for the end point of this path segment. * @return A stand-alone, parentless SVGPathSegLinetoAbs object. */ SVGPathSegLinetoAbs createSVGPathSegLinetoAbs(in float x, in float y); /** * Returns a stand-alone, parentless SVGPathSegLinetoRel object. * * @param x The relative X coordinate for the end point of this path segment. * @param y The relative Y coordinate for the end point of this path segment. * @return A stand-alone, parentless SVGPathSegLinetoRel object. */ SVGPathSegLinetoRel createSVGPathSegLinetoRel(in float x, in float y); /** * Returns a stand-alone, parentless SVGPathSegCurvetoCubicAbs object. * * @param x The absolute X coordinate for the end point of this path segment. * @param y The absolute Y coordinate for the end point of this path segment. * @param x1 The absolute X coordinate for the first control point. * @param y1 The absolute Y coordinate for the first control point. * @param x2 The absolute X coordinate for the second control point. * @param y2 The absolute Y coordinate for the second control point. * @return A stand-alone, parentless SVGPathSegCurvetoCubicAbs object. */ SVGPathSegCurvetoCubicAbs createSVGPathSegCurvetoCubicAbs(in float x, in float y, in float x1, in float y1, in float x2, in float y2); /** * Returns a stand-alone, parentless SVGPathSegCurvetoCubicRel object. * * @param x The relative X coordinate for the end point of this path segment. * @param y The relative Y coordinate for the end point of this path segment. * @param x1 The relative X coordinate for the first control point. * @param y1 The relative Y coordinate for the first control point. * @param x2 The relative X coordinate for the second control point. * @param y2 The relative Y coordinate for the second control point. * @return A stand-alone, parentless SVGPathSegCurvetoCubicRel object. */ SVGPathSegCurvetoCubicRel createSVGPathSegCurvetoCubicRel(in float x, in float y, in float x1, in float y1, in float x2, in float y2); /** * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticAbs object. * * @param x The absolute X coordinate for the end point of this path segment. * @param y The absolute Y coordinate for the end point of this path segment. * @param x1 The absolute X coordinate for the first control point. * @param y1 The absolute Y coordinate for the first control point. * @return A stand-alone, parentless SVGPathSegCurvetoQuadraticAbs object. */ SVGPathSegCurvetoQuadraticAbs createSVGPathSegCurvetoQuadraticAbs(in float x, in float y, in float x1, in float y1); /** * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticRel object. * * @param x The relative X coordinate for the end point of this path segment. * @param y The relative Y coordinate for the end point of this path segment. * @param x1 The relative X coordinate for the first control point. * @param y1 The relative Y coordinate for the first control point. * @return A stand-alone, parentless SVGPathSegCurvetoQuadraticRel object. */ SVGPathSegCurvetoQuadraticRel createSVGPathSegCurvetoQuadraticRel(in float x, in float y, in float x1, in float y1); /** * Returns a stand-alone, parentless SVGPathSegArcAbs object. * * @param x The absolute X coordinate for the end point of this path segment. * @param y The absolute Y coordinate for the end point of this path segment. * @param r1 The x-axis radius for the ellipse (i.e., r1). * @param r2 The y-axis radius for the ellipse (i.e., r2). * @param angle The rotation angle in degrees for the ellipse's x-axis relative to the x-axis of the user coordinate system. * @param largeArcFlag The value of the large-arc-flag parameter. * @param sweepFlag The value of the large-arc-flag parameter. * @return A stand-alone, parentless SVGPathSegArcAbs object. */ SVGPathSegArcAbs createSVGPathSegArcAbs(in float x, in float y, in float r1, in float r2, in float angle, in boolean largeArcFlag, in boolean sweepFlag); /** * Returns a stand-alone, parentless SVGPathSegArcRel object. * * @param x The relative X coordinate for the end point of this path segment. * @param y The relative Y coordinate for the end point of this path segment. * @param r1 The x-axis radius for the ellipse (i.e., r1). * @param r2 The y-axis radius for the ellipse (i.e., r2). * @param angle The rotation angle in degrees for the ellipse's x-axis relative to the x-axis of the user coordinate system. * @param largeArcFlag The value of the large-arc-flag parameter. * @param sweepFlag The value of the large-arc-flag parameter. * @return A stand-alone, parentless SVGPathSegArcRel object. */ SVGPathSegArcRel createSVGPathSegArcRel(in float x, in float y, in float r1, in float r2, in float angle, in boolean largeArcFlag, in boolean sweepFlag); /** * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalAbs object. * * @param x The absolute X coordinate for the end point of this path segment. * @return A stand-alone, parentless SVGPathSegLinetoHorizontalAbs object. */ SVGPathSegLinetoHorizontalAbs createSVGPathSegLinetoHorizontalAbs(in float x); /** * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalRel object. * * @param x The relative X coordinate for the end point of this path segment. * @return A stand-alone, parentless SVGPathSegLinetoHorizontalRel object. */ SVGPathSegLinetoHorizontalRel createSVGPathSegLinetoHorizontalRel(in float x); /** * Returns a stand-alone, parentless SVGPathSegLinetoVerticalAbs object. * * @param y The absolute Y coordinate for the end point of this path segment. * @return A stand-alone, parentless SVGPathSegLinetoVerticalAbs object. */ SVGPathSegLinetoVerticalAbs createSVGPathSegLinetoVerticalAbs(in float y); /** * Returns a stand-alone, parentless SVGPathSegLinetoVerticalRel object. * * @param y The relative Y coordinate for the end point of this path segment. * @return A stand-alone, parentless SVGPathSegLinetoVerticalRel object. */ SVGPathSegLinetoVerticalRel createSVGPathSegLinetoVerticalRel(in float y); /** * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothAbs object. * * @param x The absolute X coordinate for the end point of this path segment. * @param y The absolute Y coordinate for the end point of this path segment. * @param x2 The absolute X coordinate for the second control point. * @param y2 The absolute Y coordinate for the second control point. * @return A stand-alone, parentless SVGPathSegCurvetoCubicSmoothAbs object. */ SVGPathSegCurvetoCubicSmoothAbs createSVGPathSegCurvetoCubicSmoothAbs(in float x, in float y, in float x2, in float y2); /** * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothRel object. * * @param x The relative X coordinate for the end point of this path segment. * @param y The relative Y coordinate for the end point of this path segment. * @param x2 The relative X coordinate for the second control point. * @param y2 The relative Y coordinate for the second control point. * @return A stand-alone, parentless SVGPathSegCurvetoCubicSmoothRel object. */ SVGPathSegCurvetoCubicSmoothRel createSVGPathSegCurvetoCubicSmoothRel(in float x, in float y, in float x2, in float y2); /** * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothAbs object. * * @param x The absolute X coordinate for the end point of this path segment. * @param y The absolute Y coordinate for the end point of this path segment. * @return A stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothAbs object. */ SVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs(in float x, in float y); /** * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothRel object. * * @param x The relative X coordinate for the end point of this path segment. * @param y The relative Y coordinate for the end point of this path segment. * @return A stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothRel object. */ SVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel(in float x, in float y); }; /** * The SVGRectElement interface corresponds to the 'rect' * element. */ interface SVGRectElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable { /** * Corresponds to attribute 'x' on the given 'rect' element. */ readonly attribute SVGAnimatedLength x; /** * Corresponds to attribute 'y' on the given 'rect' element. */ readonly attribute SVGAnimatedLength y; /** * Corresponds to attribute 'width' on the given 'rect' element. */ readonly attribute SVGAnimatedLength width; /** * Corresponds to attribute 'height' on the given 'rect' element. */ readonly attribute SVGAnimatedLength height; /** * Corresponds to attribute 'rx' on the given 'rect' element. */ readonly attribute SVGAnimatedLength rx; /** * Corresponds to attribute 'ry' on the given 'rect' element. */ readonly attribute SVGAnimatedLength ry; }; /** * The SVGCircleElement interface corresponds to the 'circle' * element. */ interface SVGCircleElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable { /** * Corresponds to attribute 'cx' on the given 'circle' element. */ readonly attribute SVGAnimatedLength cx; /** * Corresponds to attribute 'cy' on the given 'circle' element. */ readonly attribute SVGAnimatedLength cy; /** * Corresponds to attribute 'r' on the given 'circle' element. */ readonly attribute SVGAnimatedLength r; }; /** * The SVGEllipseElement interface corresponds to the 'ellipse' * element. */ interface SVGEllipseElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable { /** * Corresponds to attribute 'cx' on the given 'ellipse' element. */ readonly attribute SVGAnimatedLength cx; /** * Corresponds to attribute 'cy' on the given 'ellipse' element. */ readonly attribute SVGAnimatedLength cy; /** * Corresponds to attribute 'rx' on the given 'ellipse' element. */ readonly attribute SVGAnimatedLength rx; /** * Corresponds to attribute 'ry' on the given 'ellipse' element. */ readonly attribute SVGAnimatedLength ry; }; /** * The SVGLineElement interface corresponds to the 'line' * element. */ interface SVGLineElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable { /** * Corresponds to attribute 'x1' on the given 'line' element. */ readonly attribute SVGAnimatedLength x1; /** * Corresponds to attribute 'y1' on the given 'line' element. */ readonly attribute SVGAnimatedLength y1; /** * Corresponds to attribute 'x2' on the given 'line' element. */ readonly attribute SVGAnimatedLength x2; /** * Corresponds to attribute 'y2' on the given 'line' element. */ readonly attribute SVGAnimatedLength y2; }; /** *

The SVGAnimatedPoints interface supports elements which have a * 'points' attribute which holds a list of * coordinate values and which support the ability to animate that * attribute.

* *

Additionally, the 'points' attribute on * the original element accessed via the XML DOM (e.g., using the * getAttribute() method call) will reflect any changes made to * points.

*/ interface SVGAnimatedPoints { /** * Provides access to the base (i.e., static) contents of the * 'points' attribute. */ readonly attribute SVGPointList points; /** * Provides access to the current animated contents of the * 'points' attribute. If the given attribute * or property is being animated, contains the current animated value of * the attribute or property. If the given attribute or property is not * currently being animated, contains the same value as points. */ readonly attribute SVGPointList animatedPoints; }; /** * The SVGPolylineElement interface corresponds to the 'polyline' * element. */ interface SVGPolylineElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable, SVGAnimatedPoints {}; /** * The SVGPolygonElement interface corresponds to the 'polygon' * element. */ interface SVGPolygonElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable, SVGAnimatedPoints {}; /** *

The SVGTextContentElement is inherited by various text-related * interfaces, such as SVGTextElement, SVGTSpanElement, * SVGTRefElement, SVGAltGlyphElement and * SVGTextPathElement.

* *

For the methods on this interface that refer to an index to a character * or a number of characters, these references are to be interpreted as an * index to a UTF-16 code unit or a number of UTF-16 code units, respectively. * This is for consistency with DOM Level 2 Core, where methods on the * CharacterData interface use UTF-16 code units as indexes and counts * within the character data. Thus for example, if the text content of a * 'text' element is a single non-BMP character, such as U+10000, then * invoking SVGTextContentElement::getNumberOfChars on that element * will return 2 since there are two UTF-16 code units (the surrogate pair) * used to represent that one character.

*/ interface SVGTextContentElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable { /** * The enumeration was set to a value that is not one of predefined types. * It is invalid to attempt to define a new value of this type or to * attempt to switch an existing value to this type. * * @defgroup lengthAdjust Types */ const unsigned short LENGTHADJUST_UNKNOWN = 0; /** * Corresponds to value 'spacing'. * * @defgroup lengthAdjust Types */ const unsigned short LENGTHADJUST_SPACING = 1; /** * Corresponds to value 'spacingAndGlyphs'. * * @defgroup lengthAdjust Types */ const unsigned short LENGTHADJUST_SPACINGANDGLYPHS = 2; /** * Corresponds to attribute 'textLength' on * the given element. */ readonly attribute SVGAnimatedLength textLength; /** * Corresponds to attribute 'lengthAdjust' on * the given element. The value must be one of the length adjust constants * defined on this interface. */ readonly attribute SVGAnimatedEnumeration lengthAdjust; /** * Returns the total number of characters available for rendering within * the current element, which includes referenced characters from * 'tref' reference, regardless of whether they will be rendered. * Effectively, this is equivalent to the length of the * Node::textContent * attribute from DOM Level 3 Core ([DOM3], * section 1.4), if that attribute also expanded 'tref' * elements. * * @return Total number of characters. */ 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 'tspan/dx' and 'tspan/dy' on * 'tspan' elements. For non-rendering environments, the user agent * shall make reasonable assumptions about glyph metrics. * * @return The text advance distance. */ float 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 'tspan/dx' and 'tspan/dy' on 'tspan' elements. For * non-rendering environments, the user agent shall make reasonable * assumptions about glyph metrics. If multiple consecutive characters are * rendered inseparably (e.g., as a single glyph or a sequence of glyphs, * or because the range encompasses half of a surrogate pair), and nchars * is greater than 0 then the measured range shall be expanded so that each * of the inseparable characters are included. * * @param charnum The index of the first character in the substring, where * the first character has an index of 0. * @param nchars The number of characters in the substring. If nchars * specifies more characters than are available, then the substring will * consist of all characters starting with charnum until the end of the * list of characters. * @return The text advance distance. * @raises DOMException(INDEX_SIZE_ERR) Raised if charnum or * nchars is negative or if charnum is greater than * or equal to the number of characters at this node. */ float getSubStringLength(in unsigned long charnum, in unsigned long nchars) raises(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. * * @param charnum The index of the character, where the first character has * an index of 0. * @return The character's start position. * @raises DOMException(INDEX_SIZE_ERR) Raised if the charnum is * negative or if charnum is greater than or equal to the * number of characters at this node. */ SVGPoint getStartPositionOfChar(in unsigned long charnum) raises(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. * * @param charnum The index of the character, where the first character has * an index of 0. * @return The character's end position. * @raises DOMException(INDEX_SIZE_ERR) Raised if the charnum is * negative or if charnum is greater than or equal to the * number of characters at this node. */ SVGPoint getEndPositionOfChar(in unsigned long charnum) raises(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. * * @param charnum The index of the character, where the first character has * an index of 0. * @return The rectangle which encloses all of the rendered glyph(s). * @raises DOMException(INDEX_SIZE_ERR) Raised if the charnum is * negative or if charnum is greater than or equal to the * number of characters at this node. */ SVGRect getExtentOfChar(in unsigned long charnum) raises(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. * * @param charnum The index of the character, where the first character has * an index of 0. * @return The rotation angle. * @raises DOMException(INDEX_SIZE_ERR) Raised if the charnum is * negative or if charnum is greater than or equal to the * number of characters at this node. */ float getRotationOfChar(in unsigned long charnum) raises(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. * * @param point A point in user space. * @return The index of the character which is at the given point, where * the first character has an index of 0. */ long getCharNumAtPosition(in SVGPoint point); /** * Causes the specified substring to be selected just as if the user * selected the substring interactively. * * @param charnum The index of the start character which is at the given * point, where the first character has an index of 0. * @param nchars The number of characters in the substring. If nchars * specifies more characters than are available, then the substring * will consist of all characters starting with charnum until the end * of the list of characters. * @raises DOMException(INDEX_SIZE_ERR) Raised if charnum or * nchars is negative or if charnum is greater * than or equal to the number of characters at this node. */ void selectSubString(in unsigned long charnum, in unsigned long nchars) raises(DOMException); }; /** * The SVGTextPositioningElement interface is inherited by text-related * interfaces: SVGTextElement, SVGTSpanElement, * SVGTRefElement and SVGAltGlyphElement. */ interface SVGTextPositioningElement : SVGTextContentElement { /** * Corresponds to attribute 'x' on the * given element. */ readonly attribute SVGAnimatedLengthList x; /** * Corresponds to attribute 'y' on the * given element. */ readonly attribute SVGAnimatedLengthList y; /** * Corresponds to attribute 'dx' on the * given element. */ readonly attribute SVGAnimatedLengthList dx; /** * Corresponds to attribute 'dy' on the * given element. */ readonly attribute SVGAnimatedLengthList dy; /** * Corresponds to attribute 'rotate' on the * given element. */ readonly attribute SVGAnimatedNumberList rotate; }; /** * The SVGTextElement interface corresponds to the 'text' * element. */ interface SVGTextElement : SVGTextPositioningElement, SVGTransformable {}; /** * The SVGTSpanElement interface corresponds to the 'tspan' * element. */ interface SVGTSpanElement : SVGTextPositioningElement {}; /** * The SVGTRefElement interface corresponds to the 'tref' * element. */ interface SVGTRefElement : SVGTextPositioningElement, SVGURIReference {}; /** * The SVGTextPathElement interface corresponds to the 'textPath' * element. */ interface SVGTextPathElement : SVGTextContentElement, SVGURIReference { /** * The enumeration was set to a value that is not one of predefined types. * It is invalid to attempt to define a new value of this type or to * attempt to switch an existing value to this type. * * @defgroup textPath Method Types */ const unsigned short TEXTPATH_METHODTYPE_UNKNOWN = 0; /** * Corresponds to value 'align'. * * @defgroup textPath Method Types */ const unsigned short TEXTPATH_METHODTYPE_ALIGN = 1; /** * Corresponds to value 'stretch'. * * @defgroup textPath Method Types */ const unsigned short TEXTPATH_METHODTYPE_STRETCH = 2; /** * The enumeration was set to a value that is not one of predefined types. * It is invalid to attempt to define a new value of this type or to * attempt to switch an existing value to this type. * * @defgroup textPath Spacing Types */ const unsigned short TEXTPATH_SPACINGTYPE_UNKNOWN = 0; /** * Corresponds to value 'auto'. * * @defgroup textPath Spacing Types */ const unsigned short TEXTPATH_SPACINGTYPE_AUTO = 1; /** * Corresponds to value 'exact'. * * @defgroup textPath Spacing Types */ const unsigned short TEXTPATH_SPACINGTYPE_EXACT = 2; /** * Corresponds to attribute 'startOffset' on the given * 'textPath' element. */ readonly attribute SVGAnimatedLength startOffset; /** * Corresponds to attribute 'method' on the given * 'textPath' element. */ readonly attribute SVGAnimatedEnumeration method; /** * Corresponds to attribute 'spacing' on the given * 'textPath' element. */ readonly attribute SVGAnimatedEnumeration spacing; }; /** * The SVGAltGlyphElement interface corresponds to the * 'altGlyph' element. */ interface SVGAltGlyphElement : SVGTextPositioningElement, SVGURIReference { /** * Corresponds to attribute 'glyphRef attribute' on the given * element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString glyphRef setraises(DOMException); /** * Corresponds to attribute 'format' on the given element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString format setraises(DOMException); }; /** * The SVGAltGlyphDefElement interface corresponds to the * 'altGlyphDef' element. */ interface SVGAltGlyphDefElement : SVGElement {}; /** * The SVGAltGlyphItemElement interface corresponds to the * 'altGlyphItem' element. */ interface SVGAltGlyphItemElement : SVGElement {}; /** * The SVGGlyphRefElement interface corresponds to the * 'glyphRef element' element. */ interface SVGGlyphRefElement : SVGElement, SVGURIReference, SVGStylable { /** * Corresponds to attribute 'glyphRef attribute' on the given * element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString glyphRef setraises(DOMException); /** * Corresponds to attribute 'format' on the given element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString format setraises(DOMException); /** * Corresponds to attribute 'x' on the given element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float x setraises(DOMException); /** * Corresponds to attribute 'y' on the given element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float y setraises(DOMException); /** * Corresponds to attribute 'dx' on the given element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float dx setraises(DOMException); /** * Corresponds to attribute 'dy' on the given element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute float dy setraises(DOMException); }; /** *

The SVGPaint interface corresponds to basic type * <paint> and represents * the values of properties 'fill' and 'stroke'.

* *

Note: The SVGPaint interface is deprecated, and may be * dropped from future versions of the SVG specification.

*/ interface SVGPaint : SVGColor { /** * The paint type is not one of predefined types. It is invalid to attempt * to define a new value of this type or to attempt to switch an existing * value to this type. * * @defgroup Paint Types */ const unsigned short SVG_PAINTTYPE_UNKNOWN = 0; /** * An sRGB color has been specified without an alternative ICC color * specification. * * @defgroup Paint Types */ const unsigned short SVG_PAINTTYPE_RGBCOLOR = 1; /** * An sRGB color has been specified along with an alternative ICC color * specification. * * @defgroup Paint Types */ const unsigned short SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR = 2; /** * Corresponds to a none value on a * <paint> specification. * * @defgroup Paint Types */ const unsigned short SVG_PAINTTYPE_NONE = 101; /** * Corresponds to a currentColor value on a * <paint> specification. * * @defgroup Paint Types */ const unsigned short SVG_PAINTTYPE_CURRENTCOLOR = 102; /** * A URI has been specified, along with an explicit * none as the backup paint method in case * the URI is unavailable or invalid. * * @defgroup Paint Types */ const unsigned short SVG_PAINTTYPE_URI_NONE = 103; /** * A URI has been specified, along with an sRGB color as the backup paint * method in case the URI is unavailable or invalid. * * @defgroup Paint Types */ const unsigned short SVG_PAINTTYPE_URI_CURRENTCOLOR = 104; /** * A URI has been specified, along with an sRGB color as the backup paint * method in case the URI is unavailable or invalid. * * @defgroup Paint Types */ const unsigned short SVG_PAINTTYPE_URI_RGBCOLOR = 105; /** * A URI has been specified, along with both an sRGB color and alternate * ICC color as the backup paint method in case the URI is unavailable or * invalid. * * @defgroup Paint Types */ const unsigned short SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106; /** * Only a URI has been specified. * * @defgroup Paint Types */ const unsigned short SVG_PAINTTYPE_URI = 107; /** * The type of paint, identified by one of the SVG_PAINTTYPE_* constants * defined on this interface. */ readonly attribute unsigned short paintType; /** * When the paintType specifies a URI, this attribute holds the URI * string. When the paintType does not specify a URI, this attribute * is null. */ readonly attribute DOMString uri; /** * Sets the paintType to SVG_PAINTTYPE_URI_NONE and sets uri * to the specified value. * * @param uri The URI for the desired paint server. */ void setUri(in DOMString uri); /** * Sets the paint as specified by the parameters. If * paintType requires a URI, then uri must be non-null; * otherwise, uri must be null. If * paintType requires an RGBColor, then rgbColor must * be a string that matches <color>; * otherwise, rgbColor must be null. If paintType * requires an SVGICCColor, then iccColor must be a * string that matches <icccolor>; * otherwise, iccColor must be null. * * @param paintType One of the defined constants for paintType. * @param uri The URI for the desired paint server, or null. * @param rgbColor The specification of an sRGB color, or null. * @param iccColor The specification of an ICC color, or null. * @raises SVGException(SVG_INVALID_VALUE_ERR) Raised if one of the * parameters has an invalid value. */ void setPaint(in unsigned short paintType, in DOMString uri, in DOMString rgbColor, in DOMString iccColor) raises(SVGException); }; /** * The SVGMarkerElement interface corresponds to the * 'marker element' element. */ interface SVGMarkerElement : SVGElement, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGFitToViewBox { /** * The marker unit type is not one of predefined types. It is invalid to * attempt to define a new value of this type or to attempt to switch an * existing value to this type. * * @defgroup Marker Unit Types */ const unsigned short SVG_MARKERUNITS_UNKNOWN = 0; /** * The value of attribute 'markerUnits' is * 'userSpaceOnUse'. * * @defgroup Marker Unit Types */ const unsigned short SVG_MARKERUNITS_USERSPACEONUSE = 1; /** * The value of attribute 'markerUnits' is * 'strokeWidth'. * * @defgroup Marker Unit Types */ const unsigned short SVG_MARKERUNITS_STROKEWIDTH = 2; /** * The marker orientation is not one of predefined types. It is invalid to * attempt to define a new value of this type or to attempt to switch an * existing value to this type. * * @defgroup Marker Orientation Types */ const unsigned short SVG_MARKER_ORIENT_UNKNOWN = 0; /** * Attribute 'orient' has value * 'auto'. * * @defgroup Marker Orientation Types */ const unsigned short SVG_MARKER_ORIENT_AUTO = 1; /** * Attribute 'orient' has an angle value. * * @defgroup Marker Orientation Types */ const unsigned short SVG_MARKER_ORIENT_ANGLE = 2; /** * Corresponds to attribute 'refX' on the given * 'marker element' element. */ readonly attribute SVGAnimatedLength refX; /** * Corresponds to attribute 'refY' on the given * 'marker element' element. */ readonly attribute SVGAnimatedLength refY; /** * Corresponds to attribute 'markerUnits' on the given * 'marker element' element. One of the Marker Unit Types * defined on this interface. */ readonly attribute SVGAnimatedEnumeration markerUnits; /** * Corresponds to attribute 'markerWidth' on the given * 'marker element' element. */ readonly attribute SVGAnimatedLength markerWidth; /** * Corresponds to attribute 'markerHeight' on the given * 'marker element' element. */ readonly attribute SVGAnimatedLength markerHeight; /** * Corresponds to attribute 'orient' on the given * 'marker element' element. One of the Marker Orientation * Types defined on this interface. */ readonly attribute SVGAnimatedEnumeration orientType; /** * Corresponds to attribute 'orient' on the given * 'marker element' element. If markerUnits is * SVG_MARKER_ORIENT_ANGLE, the angle value for attribute 'orient'; * otherwise, it will be set to zero. */ readonly attribute SVGAnimatedAngle orientAngle; /** * Sets the value of attribute 'orient' to * 'auto'. * * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ void setOrientToAuto() raises(DOMException); /** * Sets the value of attribute 'orient' to the given angle. * * @param angle The angle value to use for attribute 'orient'. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ void setOrientToAngle(in SVGAngle angle) raises(DOMException); }; /** * The SVGColorProfileElement interface corresponds to the * 'color-profile element' element. */ interface SVGColorProfileElement : SVGElement, SVGURIReference, SVGRenderingIntent { /** * Corresponds to attribute 'local' on the given element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString local; /** * Corresponds to attribute 'name' on the given element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString name; /** * Corresponds to attribute 'rendering-intent' on the given element. * The value of this attribute is the value of the the RENDERING_INTENT_* * constant defined on SVGRenderingIntent that corresponds to the * value of the 'rendering-intent' attribute. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute unsigned short renderingIntent; }; /** *

The SVGColorProfileRule interface represents an @color-profile * rule in a CSS style sheet. An @color-profile rule identifies a ICC * profile which can be referenced within a given document.

* *

Support for the SVGColorProfileRule interface is only required * in user agents that support styling with CSS.

*/ interface SVGColorProfileRule : SVGCSSRule, SVGRenderingIntent { /** * Corresponds to descriptor src within an * @color-profile rule. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString src setraises(DOMException); /** * Corresponds to descriptor 'name' within an * @color-profile rule. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString name setraises(DOMException); /** * The type of rendering intent, identified by one of the * SVGRenderingIntent constants. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute unsigned short renderingIntent setraises(DOMException); }; /** * The SVGGradientElement interface is a base interface used by * SVGLinearGradientElement and SVGRadialGradientElement. */ interface SVGGradientElement : SVGElement, SVGURIReference, SVGExternalResourcesRequired, SVGStylable, SVGUnitTypes { /** * The type is not one of predefined types. It is invalid to attempt to * define a new value of this type or to attempt to switch an existing * value to this type. * * @defgroup Spread Method Types */ const unsigned short SVG_SPREADMETHOD_UNKNOWN = 0; /** * Corresponds to value 'pad'. * * @defgroup Spread Method Types */ const unsigned short SVG_SPREADMETHOD_PAD = 1; /** * Corresponds to value 'reflect'. * * @defgroup Spread Method Types */ const unsigned short SVG_SPREADMETHOD_REFLECT = 2; /** * Corresponds to value 'repeat'. * * @defgroup Spread Method Types */ const unsigned short SVG_SPREADMETHOD_REPEAT = 3; /** * Corresponds to attribute 'gradientUnits' * on the given element. Takes one of the constants defined in * SVGUnitTypes. */ readonly attribute SVGAnimatedEnumeration gradientUnits; /** * Corresponds to attribute 'gradientTransform' * on the given element. */ readonly attribute SVGAnimatedTransformList gradientTransform; /** * Corresponds to attribute 'spreadMethod' * on the given element. One of the Spread Method Types defined on * this interface. */ readonly attribute SVGAnimatedEnumeration spreadMethod; }; /** * The SVGLinearGradientElement interface corresponds to the * 'linearGradient' element. */ interface SVGLinearGradientElement : SVGGradientElement { /** * Corresponds to attribute 'x1' on the given * 'linearGradient' element. */ readonly attribute SVGAnimatedLength x1; /** * Corresponds to attribute 'y1' on the given * 'linearGradient' element. */ readonly attribute SVGAnimatedLength y1; /** * Corresponds to attribute 'x2' on the given * 'linearGradient' element. */ readonly attribute SVGAnimatedLength x2; /** * Corresponds to attribute 'y2' on the given * 'linearGradient' element. */ readonly attribute SVGAnimatedLength y2; }; /** * The SVGRadialGradientElement interface corresponds to the * 'radialGradient' element. */ interface SVGRadialGradientElement : SVGGradientElement { /** * Corresponds to attribute 'cx' on the given * 'radialGradient' element. */ readonly attribute SVGAnimatedLength cx; /** * Corresponds to attribute 'cy' on the given * 'radialGradient' element. */ readonly attribute SVGAnimatedLength cy; /** * Corresponds to attribute 'r' on the given * 'radialGradient' element. */ readonly attribute SVGAnimatedLength r; /** * Corresponds to attribute 'fx' on the given * 'radialGradient' element. */ readonly attribute SVGAnimatedLength fx; /** * Corresponds to attribute 'fy' on the given * 'radialGradient' element. */ readonly attribute SVGAnimatedLength fy; }; /** * The SVGStopElement interface corresponds to the 'stop' * element. */ interface SVGStopElement : SVGElement, SVGStylable { /** * Corresponds to attribute 'offset' on the given 'stop' * element. */ readonly attribute SVGAnimatedNumber offset; }; /** * The SVGPatternElement interface corresponds to the 'pattern' * element. */ interface SVGPatternElement : SVGElement, SVGURIReference, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGFitToViewBox, SVGUnitTypes { /** * Corresponds to attribute 'patternUnits' on the given * 'pattern' element. Takes one of the constants defined in * SVGUnitTypes. */ readonly attribute SVGAnimatedEnumeration patternUnits; /** * Corresponds to attribute 'patternContentUnits' on the given * 'pattern' element. Takes one of the constants defined in * SVGUnitTypes. */ readonly attribute SVGAnimatedEnumeration patternContentUnits; /** * Corresponds to attribute 'patternTransform' on the given * 'pattern' element. */ readonly attribute SVGAnimatedTransformList patternTransform; /** * Corresponds to attribute 'x' on the given 'pattern' * element. */ readonly attribute SVGAnimatedLength x; /** * Corresponds to attribute 'y' on the given 'pattern' * element. */ readonly attribute SVGAnimatedLength y; /** * Corresponds to attribute 'width' on the given 'pattern' * element. */ readonly attribute SVGAnimatedLength width; /** * Corresponds to attribute 'height' on the given 'pattern' * element. */ readonly attribute SVGAnimatedLength height; }; /** * The SVGClipPathElement interface corresponds to the * 'clipPath' element. */ interface SVGClipPathElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable, SVGUnitTypes { /** * Corresponds to attribute 'clipPathUnits' on the given * 'clipPath' element. Takes one of the constants defined in * SVGUnitTypes. */ readonly attribute SVGAnimatedEnumeration clipPathUnits; }; /** * The SVGMaskElement interface corresponds to the * 'mask element' element. */ interface SVGMaskElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGUnitTypes { /** * Corresponds to attribute 'maskUnits' on the given * 'mask element' element. Takes one of the constants defined in * SVGUnitTypes. */ readonly attribute SVGAnimatedEnumeration maskUnits; /** * Corresponds to attribute 'maskContentUnits' on the given * 'mask element' element. Takes one of the constants defined in * SVGUnitTypes. */ readonly attribute SVGAnimatedEnumeration maskContentUnits; /** * Corresponds to attribute 'x' on the given 'mask element' * element. */ readonly attribute SVGAnimatedLength x; /** * Corresponds to attribute 'y' on the given 'mask element' * element. */ readonly attribute SVGAnimatedLength y; /** * Corresponds to attribute 'width' on the given * 'mask element' element. */ readonly attribute SVGAnimatedLength width; /** * Corresponds to attribute 'height' on the given * 'mask element' element. */ readonly attribute SVGAnimatedLength height; }; /** * The SVGFilterElement interface corresponds to the 'filter element' * element. */ interface SVGFilterElement : SVGElement, SVGURIReference, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGUnitTypes { /** * Corresponds to attribute 'filterUnits' on the given 'filter element' * element. Takes one of the constants defined in SVGUnitTypes. */ readonly attribute SVGAnimatedEnumeration filterUnits; /** * Corresponds to attribute 'primitiveUnits' on the given 'filter element' * element. Takes one of the constants defined in SVGUnitTypes. */ readonly attribute SVGAnimatedEnumeration primitiveUnits; /** * Corresponds to attribute 'x' on the given 'filter element' element. */ readonly attribute SVGAnimatedLength x; /** * Corresponds to attribute 'y' on the given 'filter element' element. */ readonly attribute SVGAnimatedLength y; /** * Corresponds to attribute 'width' on the given 'filter element' element. */ readonly attribute SVGAnimatedLength width; /** * Corresponds to attribute 'height' on the given 'filter element' element. */ readonly attribute SVGAnimatedLength height; /** * Corresponds to attribute 'filterRes' on the given 'filter element' * element. Contains the X component of attribute 'filterRes'. */ readonly attribute SVGAnimatedInteger filterResX; /** * Corresponds to attribute 'filterRes' on the given 'filter element' * element. Contains the Y component (possibly computed automatically) of * attribute 'filterRes'. */ readonly attribute SVGAnimatedInteger filterResY; /** * Sets the values for attribute 'filterRes'. * * @param filterResX The X component of attribute 'filterRes'. * @param filterResY The Y component of attribute 'filterRes'. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ void setFilterRes(in unsigned long filterResX, in unsigned long filterResY) raises(DOMException); }; /** * This interface defines the set of DOM attributes that are common across * the filter primitive interfaces. */ interface SVGFilterPrimitiveStandardAttributes : SVGStylable { /** * Corresponds to attribute 'x' on the given element. */ readonly attribute SVGAnimatedLength x; /** * Corresponds to attribute 'y' on the given element. */ readonly attribute SVGAnimatedLength y; /** * Corresponds to attribute 'width' on the given element. */ readonly attribute SVGAnimatedLength width; /** * Corresponds to attribute 'height' on the given element. */ readonly attribute SVGAnimatedLength height; /** * Corresponds to attribute 'result' on the given element. */ readonly attribute SVGAnimatedString result; }; /** * The SVGFEBlendElement interface corresponds to the 'feBlend' * element. */ interface SVGFEBlendElement : SVGElement, SVGFilterPrimitiveStandardAttributes { /** * The type is not one of predefined types. It is invalid to attempt to * define a new value of this type or to attempt to switch an existing * value to this type. * * @defgroup Blend Mode Types */ const unsigned short SVG_FEBLEND_MODE_UNKNOWN = 0; /** * Corresponds to value 'normal'. * * @defgroup Blend Mode Types */ const unsigned short SVG_FEBLEND_MODE_NORMAL = 1; /** * Corresponds to value 'multiply'. * * @defgroup Blend Mode Types */ const unsigned short SVG_FEBLEND_MODE_MULTIPLY = 2; /** * Corresponds to value 'screen'. * * @defgroup Blend Mode Types */ const unsigned short SVG_FEBLEND_MODE_SCREEN = 3; /** * Corresponds to value 'darken'. * * @defgroup Blend Mode Types */ const unsigned short SVG_FEBLEND_MODE_DARKEN = 4; /** * Corresponds to value 'lighten'. * * @defgroup Blend Mode Types */ const unsigned short SVG_FEBLEND_MODE_LIGHTEN = 5; /** * Corresponds to attribute 'in' on the given 'feBlend' * element. */ readonly attribute SVGAnimatedString in1; /** * Corresponds to attribute 'in2' on the given 'feBlend' * element. */ readonly attribute SVGAnimatedString in2; /** * Corresponds to attribute 'mode' on the given 'feBlend' * element. Takes one of the SVG_FEBLEND_MODE_* constants defined on * this interface. */ readonly attribute SVGAnimatedEnumeration mode; }; /** * The SVGFEColorMatrixElement interface corresponds to the * 'feColorMatrix' element. */ interface SVGFEColorMatrixElement : SVGElement, SVGFilterPrimitiveStandardAttributes { /** * The type is not one of predefined types. It is invalid to attempt to * define a new value of this type or to attempt to switch an existing * value to this type. * * @defgroup Color Matrix Types */ const unsigned short SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0; /** * Corresponds to value 'matrix'. * * @defgroup Color Matrix Types */ const unsigned short SVG_FECOLORMATRIX_TYPE_MATRIX = 1; /** * Corresponds to value 'saturate'. * * @defgroup Color Matrix Types */ const unsigned short SVG_FECOLORMATRIX_TYPE_SATURATE = 2; /** * Corresponds to value 'hueRotate'. * * @defgroup Color Matrix Types */ const unsigned short SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3; /** * Corresponds to value 'luminanceToAlpha'. * * @defgroup Color Matrix Types */ const unsigned short SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4; /** * Corresponds to attribute 'in' on the given 'feColorMatrix' * element. */ readonly attribute SVGAnimatedString in1; /** * Corresponds to attribute 'type' on the given 'feColorMatrix' * element. Takes one of the SVG_FECOLORMATRIX_TYPE_* constants defined * on this interface. */ readonly attribute SVGAnimatedEnumeration type; /** * Corresponds to attribute 'values' on the given 'feColorMatrix' * element. */ readonly attribute SVGAnimatedNumberList values; }; /** * The SVGFEComponentTransferElement interface corresponds to the * 'feComponentTransfer' element. */ interface SVGFEComponentTransferElement : SVGElement, SVGFilterPrimitiveStandardAttributes { /** * Corresponds to attribute 'in' on the given 'feComponentTransfer' * element. */ readonly attribute SVGAnimatedString in1; }; /** * This interface defines a base interface used by the component transfer * function interfaces. */ interface SVGComponentTransferFunctionElement : SVGElement { /** * The type is not one of predefined types. It is invalid to attempt to * define a new value of this type or to attempt to switch an existing * value to this type. * * @defgroup Component Transfer Types */ const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0; /** * Corresponds to value 'identity'. * * @defgroup Component Transfer Types */ const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1; /** * Corresponds to value 'table'. * * @defgroup Component Transfer Types */ const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2; /** * Corresponds to value 'discrete'. * * @defgroup Component Transfer Types */ const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3; /** * Corresponds to value 'linear'. * * @defgroup Component Transfer Types */ const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4; /** * Corresponds to value 'gamma'. * * @defgroup Component Transfer Types */ const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5; /** * Corresponds to attribute 'type' on the given * element. Takes one of the SVG_FECOMPONENTTRANSFER_TYPE_* constants defined * on this interface. */ readonly attribute SVGAnimatedEnumeration type; /** * Corresponds to attribute 'tableValues' on the given element. */ readonly attribute SVGAnimatedNumberList tableValues; /** * Corresponds to attribute 'slope' on the given element. */ readonly attribute SVGAnimatedNumber slope; /** * Corresponds to attribute 'intercept' on the given element. */ readonly attribute SVGAnimatedNumber intercept; /** * Corresponds to attribute 'amplitude' on the given element. */ readonly attribute SVGAnimatedNumber amplitude; /** * Corresponds to attribute 'exponent' on the given element. */ readonly attribute SVGAnimatedNumber exponent; /** * Corresponds to attribute 'offset' on the given element. */ readonly attribute SVGAnimatedNumber offset; }; /** * The SVGFEFuncRElement interface corresponds to the 'feFuncR' * element. */ interface SVGFEFuncRElement : SVGComponentTransferFunctionElement {}; /** * The SVGFEFuncRElement interface corresponds to the 'feFuncG' * element. */ interface SVGFEFuncGElement : SVGComponentTransferFunctionElement {}; /** * The SVGFEFuncBElement interface corresponds to the 'feFuncB' * element. */ interface SVGFEFuncBElement : SVGComponentTransferFunctionElement {}; /** * The SVGFEFuncAElement interface corresponds to the 'feFuncA' * element. */ interface SVGFEFuncAElement : SVGComponentTransferFunctionElement {}; /** * The SVGFECompositeElement interface corresponds to the * 'feComposite' element. */ interface SVGFECompositeElement : SVGElement, SVGFilterPrimitiveStandardAttributes { /** * The type is not one of predefined types. It is invalid to attempt to * define a new value of this type or to attempt to switch an existing * value to this type. * * @defgroup Composite Operators */ const unsigned short SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0; /** * Corresponds to value 'over'. * * @defgroup Composite Operators */ const unsigned short SVG_FECOMPOSITE_OPERATOR_OVER = 1; /** * Corresponds to value 'in'. * * @defgroup Composite Operators */ const unsigned short SVG_FECOMPOSITE_OPERATOR_IN = 2; /** * Corresponds to value 'out'. * * @defgroup Composite Operators */ const unsigned short SVG_FECOMPOSITE_OPERATOR_OUT = 3; /** * Corresponds to value 'atop'. * * @defgroup Composite Operators */ const unsigned short SVG_FECOMPOSITE_OPERATOR_ATOP = 4; /** * Corresponds to value 'xor'. * * @defgroup Composite Operators */ const unsigned short SVG_FECOMPOSITE_OPERATOR_XOR = 5; /** * Corresponds to value 'arithmetic'. * * @defgroup Composite Operators */ const unsigned short SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6; /** * Corresponds to attribute 'in' on the given 'feComposite' * element. */ readonly attribute SVGAnimatedString in1; /** * Corresponds to attribute 'in2' on the given 'feComposite' * element. */ readonly attribute SVGAnimatedString in2; /** * Corresponds to attribute 'operator' on the given 'feComposite' * element. Takes one of the SVG_FECOMPOSITE_OPERATOR_* constants defined * on this interface. */ readonly attribute SVGAnimatedEnumeration operator; /** * Corresponds to attribute 'k1' on the given 'feComposite' * element. */ readonly attribute SVGAnimatedNumber k1; /** * Corresponds to attribute 'k2' on the given 'feComposite' * element. */ readonly attribute SVGAnimatedNumber k2; /** * Corresponds to attribute 'k3' on the given 'feComposite' * element. */ readonly attribute SVGAnimatedNumber k3; /** * Corresponds to attribute 'k4' on the given 'feComposite' * element. */ readonly attribute SVGAnimatedNumber k4; }; /** * The SVGFEConvolveMatrixElement interface corresponds to the * 'feConvolveMatrix' element. */ interface SVGFEConvolveMatrixElement : SVGElement, SVGFilterPrimitiveStandardAttributes { /** * The type is not one of predefined types. It is invalid to attempt to * define a new value of this type or to attempt to switch an existing * value to this type. * * @defgroup Edge Mode Values */ const unsigned short SVG_EDGEMODE_UNKNOWN = 0; /** * Corresponds to value 'duplicate'. * * @defgroup Edge Mode Values */ const unsigned short SVG_EDGEMODE_DUPLICATE = 1; /** * Corresponds to value 'wrap'. * * @defgroup Edge Mode Values */ const unsigned short SVG_EDGEMODE_WRAP = 2; /** * Corresponds to value 'none'. * * @defgroup Edge Mode Values */ const unsigned short SVG_EDGEMODE_NONE = 3; /** * Corresponds to attribute 'in' on the given * 'feConvolveMatrix' element. */ readonly attribute SVGAnimatedString in1; /** * Corresponds to attribute 'order' on the given * 'feConvolveMatrix' element. */ readonly attribute SVGAnimatedInteger orderX; /** * Corresponds to attribute 'order' on the given * 'feConvolveMatrix' element. */ readonly attribute SVGAnimatedInteger orderY; /** * Corresponds to attribute 'kernelMatrix' on the given * 'feConvolveMatrix' element. */ readonly attribute SVGAnimatedNumberList kernelMatrix; /** * Corresponds to attribute 'divisor' on the given * 'feConvolveMatrix' element. */ readonly attribute SVGAnimatedNumber divisor; /** * Corresponds to attribute 'bias' on the given * 'feConvolveMatrix' element. */ readonly attribute SVGAnimatedNumber bias; /** * Corresponds to attribute 'targetX' on the given * 'feConvolveMatrix' element. */ readonly attribute SVGAnimatedInteger targetX; /** * Corresponds to attribute 'targetY' on the given * 'feConvolveMatrix' element. */ readonly attribute SVGAnimatedInteger targetY; /** * Corresponds to attribute 'edgeMode' on the given * 'feConvolveMatrix' element. Takes one of the SVG_EDGEMODE_* * constants defined on this interface. */ readonly attribute SVGAnimatedEnumeration edgeMode; /** * Corresponds to attribute 'kernelUnitLength' on the given * 'feConvolveMatrix' element. */ readonly attribute SVGAnimatedNumber kernelUnitLengthX; /** * Corresponds to attribute 'kernelUnitLength' on the given * 'feConvolveMatrix' element. */ readonly attribute SVGAnimatedNumber kernelUnitLengthY; /** * Corresponds to attribute 'preserveAlpha' on the given * 'feConvolveMatrix' element. */ readonly attribute SVGAnimatedBoolean preserveAlpha; }; /** * The SVGFEDiffuseLightingElement interface corresponds to the * 'feDiffuseLighting' element. */ interface SVGFEDiffuseLightingElement : SVGElement, SVGFilterPrimitiveStandardAttributes { /** * Corresponds to attribute 'in' on the given 'feDiffuseLighting' * element. */ readonly attribute SVGAnimatedString in1; /** * Corresponds to attribute 'surfaceScale' on the given * 'feDiffuseLighting' element. */ readonly attribute SVGAnimatedNumber surfaceScale; /** * Corresponds to attribute 'diffuseConstant' on the given * 'feDiffuseLighting' element. */ readonly attribute SVGAnimatedNumber diffuseConstant; /** * Corresponds to attribute 'kernelUnitLength' on the given * 'feDiffuseLighting' element. */ readonly attribute SVGAnimatedNumber kernelUnitLengthX; /** * Corresponds to attribute 'kernelUnitLength' on the given * 'feDiffuseLighting' element. */ readonly attribute SVGAnimatedNumber kernelUnitLengthY; }; /** * The SVGFEDistantLightElement interface corresponds to the * 'feDistantLight' element. */ interface SVGFEDistantLightElement : SVGElement { /** * Corresponds to attribute 'azimuth' on the given * 'feDistantLight' element. */ readonly attribute SVGAnimatedNumber azimuth; /** * Corresponds to attribute 'elevation' on the given * 'feDistantLight' element. */ readonly attribute SVGAnimatedNumber elevation; }; /** * The SVGFEPointLightElement interface corresponds to the * 'fePointLight' element. */ interface SVGFEPointLightElement : SVGElement { /** * Corresponds to attribute 'x' on the given * 'fePointLight' element. */ readonly attribute SVGAnimatedNumber x; /** * Corresponds to attribute 'y' on the given * 'fePointLight' element. */ readonly attribute SVGAnimatedNumber y; /** * Corresponds to attribute 'z' on the given * 'fePointLight' element. */ readonly attribute SVGAnimatedNumber z; }; /** * The SVGFESpotLightElement interface corresponds to the * 'feSpotLight' element. */ interface SVGFESpotLightElement : SVGElement { /** * Corresponds to attribute 'x' on the given * 'feSpotLight' element. */ readonly attribute SVGAnimatedNumber x; /** * Corresponds to attribute 'y' on the given * 'feSpotLight' element. */ readonly attribute SVGAnimatedNumber y; /** * Corresponds to attribute 'z' on the given * 'feSpotLight' element. */ readonly attribute SVGAnimatedNumber z; /** * Corresponds to attribute 'pointsAtX' on the given * 'feSpotLight' element. */ readonly attribute SVGAnimatedNumber pointsAtX; /** * Corresponds to attribute 'pointsAtY' on the given * 'feSpotLight' element. */ readonly attribute SVGAnimatedNumber pointsAtY; /** * Corresponds to attribute 'pointsAtZ' on the given * 'feSpotLight' element. */ readonly attribute SVGAnimatedNumber pointsAtZ; /** * Corresponds to attribute 'specularExponent' on the given * 'feSpotLight' element. */ readonly attribute SVGAnimatedNumber specularExponent; /** * Corresponds to attribute 'limitingConeAngle' on the given * 'feSpotLight' element. */ readonly attribute SVGAnimatedNumber limitingConeAngle; }; /** * The SVGFEDisplacementMapElement interface corresponds to the * 'feDisplacementMap' element. */ interface SVGFEDisplacementMapElement : SVGElement, SVGFilterPrimitiveStandardAttributes { /** * The type is not one of predefined types. It is invalid to attempt to * define a new value of this type or to attempt to switch an existing * value to this type. * * @defgroup Channel Selectors */ const unsigned short SVG_CHANNEL_UNKNOWN = 0; /** * Corresponds to value 'R'. * * @defgroup Channel Selectors */ const unsigned short SVG_CHANNEL_R = 1; /** * Corresponds to value 'G'. * * @defgroup Channel Selectors */ const unsigned short SVG_CHANNEL_G = 2; /** * Corresponds to value 'B'. * * @defgroup Channel Selectors */ const unsigned short SVG_CHANNEL_B = 3; /** * Corresponds to value 'A'. * * @defgroup Channel Selectors */ const unsigned short SVG_CHANNEL_A = 4; /** * Corresponds to attribute 'in' on the given 'feDisplacementMap' * element. */ readonly attribute SVGAnimatedString in1; /** * Corresponds to attribute 'in2' on the given 'feDisplacementMap' * element. */ readonly attribute SVGAnimatedString in2; /** * Corresponds to attribute 'scale' on the given 'feDisplacementMap' * element. */ readonly attribute SVGAnimatedNumber scale; /** * Corresponds to attribute 'xChannelSelector' on the given * 'feDisplacementMap' element. Takes one of the SVG_CHANNEL_* * constants defined on this interface. */ readonly attribute SVGAnimatedEnumeration xChannelSelector; /** * Corresponds to attribute 'yChannelSelector' on the given * 'feDisplacementMap' element. Takes one of the SVG_CHANNEL_* * constants defined on this interface. */ readonly attribute SVGAnimatedEnumeration yChannelSelector; }; /** * The SVGFEFloodElement interface corresponds to the * 'feFlood' element. */ interface SVGFEFloodElement : SVGElement, SVGFilterPrimitiveStandardAttributes { }; /** * The SVGFEGaussianBlurElement interface corresponds to the * 'feGaussianBlur' element. */ interface SVGFEGaussianBlurElement : SVGElement, SVGFilterPrimitiveStandardAttributes { /** * Corresponds to attribute 'in' on the given * 'feGaussianBlur' element. */ readonly attribute SVGAnimatedString in1; /** * Corresponds to attribute 'stdDeviation' on the given * 'feGaussianBlur' element. Contains the X component * of attribute 'stdDeviation'. */ readonly attribute SVGAnimatedNumber stdDeviationX; /** * Corresponds to attribute 'stdDeviation' on the given * 'feGaussianBlur' element. Contains the Y component * (possibly computed automatically) of attribute 'stdDeviation'. */ readonly attribute SVGAnimatedNumber stdDeviationY; /** * Sets the values for attribute 'stdDeviation'. * * @param stdDeviationX The X component of attribute 'stdDeviation'. * @param stdDeviationY The Y component of attribute 'stdDeviation'. * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ void setStdDeviation(in float stdDeviationX, in float stdDeviationY) raises(DOMException); }; /** * The SVGFEImageElement interface corresponds to the * 'feImage' element. */ interface SVGFEImageElement : SVGElement, SVGURIReference, SVGLangSpace, SVGExternalResourcesRequired, SVGFilterPrimitiveStandardAttributes { /** * Corresponds to attribute 'preserveAspectRatio' on the given * 'feImage' element. */ readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio; }; /** * The SVGFEMergeElement interface corresponds to the * 'feMerge' element. */ interface SVGFEMergeElement : SVGElement, SVGFilterPrimitiveStandardAttributes {}; /** * The SVGFEMergeNodeElement interface corresponds to the * 'feMergeNode' element. */ interface SVGFEMergeNodeElement : SVGElement { /** * Corresponds to attribute 'in' on the given 'feMergeNode' * element. */ readonly attribute SVGAnimatedString in1; }; /** * The SVGFEMorphologyElement interface corresponds to the * 'feMorphology' element. */ interface SVGFEMorphologyElement : SVGElement, SVGFilterPrimitiveStandardAttributes { /** * The type is not one of predefined types. It is invalid to attempt to * define a new value of this type or to attempt to switch an existing * value to this type. * * @defgroup Morphology Operators */ const unsigned short SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0; /** * Corresponds to value 'erode'. * * @defgroup Morphology Operators */ const unsigned short SVG_MORPHOLOGY_OPERATOR_ERODE = 1; /** * Corresponds to value 'dilate'. * * @defgroup Morphology Operators */ const unsigned short SVG_MORPHOLOGY_OPERATOR_DILATE = 2; /** * Corresponds to attribute 'in' on the given 'feMorphology' * element. */ readonly attribute SVGAnimatedString in1; /** * Corresponds to attribute 'operator' on the given 'feMorphology' * element. Takes one of the SVG_MORPHOLOGY_OPERATOR_* constants * defined on this interface. */ readonly attribute SVGAnimatedEnumeration operator; /** * Corresponds to attribute 'radius' on the given 'feMorphology' * element. */ readonly attribute SVGAnimatedNumber radiusX; /** * Corresponds to attribute 'radius' on the given 'feMorphology' * element. */ readonly attribute SVGAnimatedNumber radiusY; }; /** * The SVGFEOffsetElement interface corresponds to the * 'feOffset' element. */ interface SVGFEOffsetElement : SVGElement, SVGFilterPrimitiveStandardAttributes { /** * Corresponds to attribute 'in' on the given 'feOffset' * element. */ readonly attribute SVGAnimatedString in1; /** * Corresponds to attribute 'dx' on the given 'feOffset' * element. */ readonly attribute SVGAnimatedNumber dx; /** * Corresponds to attribute 'dy' on the given 'feOffset' * element. */ readonly attribute SVGAnimatedNumber dy; }; /** * The SVGFESpecularLightingElement interface corresponds to the * 'feSpecularLighting' element. */ interface SVGFESpecularLightingElement : SVGElement, SVGFilterPrimitiveStandardAttributes { /** * Corresponds to attribute 'in' on the given 'feSpecularLighting' * element. */ readonly attribute SVGAnimatedString in1; /** * Corresponds to attribute 'surfaceScale' on the given * 'feSpecularLighting' element. */ readonly attribute SVGAnimatedNumber surfaceScale; /** * Corresponds to attribute 'specularConstant' on the given * 'feSpecularLighting' element. */ readonly attribute SVGAnimatedNumber specularConstant; /** * Corresponds to attribute 'specularExponent' on the given * 'feSpecularLighting' element. */ readonly attribute SVGAnimatedNumber specularExponent; /** * Corresponds to attribute 'kernelUnitLength' on the given * 'feSpecularLighting' element. */ readonly attribute SVGAnimatedNumber kernelUnitLengthX; /** * Corresponds to attribute 'kernelUnitLength' on the given * 'feSpecularLighting' element. */ readonly attribute SVGAnimatedNumber kernelUnitLengthY; }; /** * The SVGFETileElement interface corresponds to the * 'feTile' element. */ interface SVGFETileElement : SVGElement, SVGFilterPrimitiveStandardAttributes { /** * Corresponds to attribute 'in' on the given 'feTile' * element. */ readonly attribute SVGAnimatedString in1; }; /** * The SVGFETurbulenceElement interface corresponds to the * 'feTurbulence' element. */ interface SVGFETurbulenceElement : SVGElement, SVGFilterPrimitiveStandardAttributes { /** * The type is not one of predefined types. It is invalid to attempt to * define a new value of this type or to attempt to switch an existing * value to this type. * * @defgroup Turbulence Types */ const unsigned short SVG_TURBULENCE_TYPE_UNKNOWN = 0; /** * Corresponds to value 'fractalNoise'. * * @defgroup Turbulence Types */ const unsigned short SVG_TURBULENCE_TYPE_FRACTALNOISE = 1; /** * Corresponds to value 'turbulence'. * * @defgroup Turbulence Types */ const unsigned short SVG_TURBULENCE_TYPE_TURBULENCE = 2; /** * The type is not one of predefined types. It is invalid to attempt to * define a new value of this type or to attempt to switch an existing * value to this type. * * @defgroup Stitch Options */ const unsigned short SVG_STITCHTYPE_UNKNOWN = 0; /** * Corresponds to value 'stitch'. * * @defgroup Stitch Options */ const unsigned short SVG_STITCHTYPE_STITCH = 1; /** * Corresponds to value 'noStitch'. * * @defgroup Stitch Options */ const unsigned short SVG_STITCHTYPE_NOSTITCH = 2; /** * Corresponds to attribute 'baseFrequency' on the given * 'feTurbulence' element. Contains the X component of the * 'baseFrequency' attribute. */ readonly attribute SVGAnimatedNumber baseFrequencyX; /** * Corresponds to attribute 'baseFrequency' on the given * 'feTurbulence' element. Contains the Y component of the * (possibly computed automatically) 'baseFrequency' attribute. */ readonly attribute SVGAnimatedNumber baseFrequencyY; /** * Corresponds to attribute 'numOctaves' on the given * 'feTurbulence' element. */ readonly attribute SVGAnimatedInteger numOctaves; /** * Corresponds to attribute 'seed' on the given * 'feTurbulence' element. */ readonly attribute SVGAnimatedNumber seed; /** * Corresponds to attribute 'stitchTiles' on the given * 'feTurbulence' element. Takes one of the SVG_STITCHTYPE_* * constants defined on this interface. */ readonly attribute SVGAnimatedEnumeration stitchTiles; /** * Corresponds to attribute 'type' on the given * 'feTurbulence' element. Takes one of the SVG_TURBULENCE_TYPE_* * constants defined on this interface. */ readonly attribute SVGAnimatedEnumeration type; }; /** * The SVGCursorElement interface corresponds to the * 'cursor element' element. */ interface SVGCursorElement : SVGElement, SVGURIReference, SVGTests, SVGExternalResourcesRequired { /** * Corresponds to attribute 'x' on the given 'cursor element' * element. */ readonly attribute SVGAnimatedLength x; /** * Corresponds to attribute 'y' on the given 'cursor element' * element. */ readonly attribute SVGAnimatedLength y; }; /** * The SVGAElement interface corresponds to the 'a' element. */ interface SVGAElement : SVGElement, SVGURIReference, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable { /** * Corresponds to attribute 'target' on the given 'a' element. */ readonly attribute SVGAnimatedString target; }; /** * The SVGViewElement interface corresponds to the 'view' element. */ interface SVGViewElement : SVGElement, SVGExternalResourcesRequired, SVGFitToViewBox, SVGZoomAndPan { /** * Corresponds to attribute 'viewTarget' on the given 'view' * element. A list of DOMString values which contain the names listed in * the 'viewTarget' attribute. Each of the DOMString values can be * associated with the corresponding element using the getElementById() * method call. */ readonly attribute SVGStringList viewTarget; }; /** * The SVGScriptElement interface corresponds to the 'script' * element. */ interface SVGScriptElement : SVGElement, SVGURIReference, SVGExternalResourcesRequired { /** * Corresponds to attribute 'type' on the given 'script' * element. * * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt * to change the value of a read only attribute. */ attribute DOMString type setraises(DOMException); }; /** *

A DOM consumer can use the hasFeature of the DOMImplementation interface * to determine whether the SVG zoom event set has been implemented by a DOM * implementation. The feature string for this event set is "SVGZoomEvents". * This string is also used with the createEvent method.

* *

The zoom event handler occurs before the zoom event is processed. The * remainder of the DOM represents the previous state of the document. The * document will be updated upon normal return from the event handler.

* *

The UI event type for a zoom event is:

* *
*
SVGZoom
*
* The zoom event occurs when the user initiates an action * which causes the current view of the SVG document fragment * to be rescaled. Event handlers are only recognized on 'svg' elements. See SVGZoom event. * *
*
*/ interface SVGZoomEvent : events::UIEvent { /** *

The specified zoom rectangle in screen units.

* *

The SVGRect object is read only.

*/ readonly attribute SVGRect zoomRectScreen; /** * The scale factor from previous zoom operations that was in place before * the zoom operation occurred. */ readonly attribute float previousScale; /** *

The translation values from previous zoom operations that were in * place before the zoom operation occurred.

* *

The SVGPoint object is read only.

*/ readonly attribute SVGPoint previousTranslate; /** * The scale factor that will be in place after the zoom operation has been processed. */ readonly attribute float newScale; /** *

The translation values that will be in place after the zoom * operation has been processed.

* *

The SVGPoint object is read only.

*/ readonly attribute SVGPoint newTranslate; }; /** *

The SVGAnimationElement interface is the base interface for all * of the animation element interfaces: SVGAnimateElement, * SVGSetElement, SVGAnimateColorElement, * SVGAnimateMotionElement and SVGAnimateTransformElement.

* *

Unlike other SVG DOM interfaces, the SVG DOM does not specify * convenience DOM properties corresponding to the various language * attributes on SVG's animation elements. Specification of these * convenience properties in a way that will be compatible with future * versions of SMIL Animation is expected in a future version of SVG. The * current method for accessing and modifying the attributes on the * animation elements is to use the standard getAttribute, * setAttribute, getAttributeNS and * setAttributeNS defined in * DOM Level 2 Core * [DOM2].

*/ interface SVGAnimationElement : SVGElement, SVGTests, SVGExternalResourcesRequired, smil::ElementTimeControl { /** * The element which is being animated. */ readonly attribute SVGElement targetElement; /** * Returns the begin time, in seconds, for this animation element's current * interval, if it exists, regardless of whether the interval has begun yet. * If there is no current interval, then a DOMException with code * INVALID_STATE_ERR is thrown. * * @return The start time, in seconds, of this animation element's current * interval. * @raises DOMException(INVALID_STATE_ERR) The animation element does not * have a current interval. */ float getStartTime() raises(DOMException); /** * Returns the current time in seconds relative to time zero for the given * time container. * * @return The current time in seconds relative to time zero for the given * time container. */ float getCurrentTime(); /** * Returns the number of seconds for the simple duration for this animation. * If the simple duration is undefined (e.g., the end time is indefinite), * then an exception is raised. * * @return number of seconds for the simple duration for this animation. * @raises DOMException(NOT_SUPPORTED_ERR) The simple duration is not * determined on the given element. */ float getSimpleDuration() raises(DOMException); }; /** *

The SVGAnimateElement interface corresponds to the 'animate' * element.

* *

Object-oriented access to the attributes of the 'animate' element * via the SVG DOM is not available.

*/ interface SVGAnimateElement : SVGAnimationElement, SVGStylable {}; /** *

The SVGSetElement interface corresponds to the 'set' * element.

* *

Object-oriented access to the attributes of the 'set' element * via the SVG DOM is not available.

*/ interface SVGSetElement : SVGAnimationElement {}; /** *

The SVGAnimateMotionElement interface corresponds to the * 'animateMotion' element.

* *

Object-oriented access to the attributes of the 'animateMotion' * element via the SVG DOM is not available.

*/ interface SVGAnimateMotionElement : SVGAnimationElement {}; /** *

The SVGMPathElement interface corresponds to the 'mpath' * element.

*/ interface SVGMPathElement : SVGElement, SVGURIReference, SVGExternalResourcesRequired {}; /** *

The SVGAnimateColorElement interface corresponds to the * 'animateColor' element.

* *

Object-oriented access to the attributes of the 'animateColor' * element via the SVG DOM is not available.

*/ interface SVGAnimateColorElement : SVGAnimationElement, SVGStylable {}; /** *

The SVGAnimateTransformElement interface corresponds to the * 'animateTransform' element.

* *

Object-oriented access to the attributes of the * 'animateTransform' element via the SVG DOM is not available.

*/ interface SVGAnimateTransformElement : SVGAnimationElement {}; /** *

The SVGFontElement interface corresponds to the * 'font element' element.

* *

Object-oriented access to the attributes of the 'font element' element * via the SVG DOM is not available.

*/ interface SVGFontElement : SVGElement, SVGExternalResourcesRequired, SVGStylable {}; /** *

The SVGGlyphElement interface corresponds to the * 'glyph' element.

* *

Object-oriented access to the attributes of the 'glyph' element * via the SVG DOM is not available.

*/ interface SVGGlyphElement : SVGElement, SVGStylable {}; /** *

The SVGMissingGlyphElement interface corresponds to the * 'missing-glyph' element.

* *

Object-oriented access to the attributes of the 'missing-glyph' element * via the SVG DOM is not available.

*/ interface SVGMissingGlyphElement : SVGElement, SVGStylable {}; /** *

The SVGHKernElement interface corresponds to the * 'hkern' element.

* *

Object-oriented access to the attributes of the 'hkern' element * via the SVG DOM is not available.

*/ interface SVGHKernElement : SVGElement {}; /** *

The SVGVKernElement interface corresponds to the * 'vkern' element.

* *

Object-oriented access to the attributes of the 'vkern' element * via the SVG DOM is not available.

*/ interface SVGVKernElement : SVGElement {}; /** *

The SVGFontFaceElement interface corresponds to the * 'font-face' element.

* *

Object-oriented access to the attributes of the 'font-face' element * via the SVG DOM is not available.

*/ interface SVGFontFaceElement : SVGElement {}; /** *

The SVGFontFaceSrcElement interface corresponds to the * 'font-face-src' element.

* *

Object-oriented access to the attributes of the 'font-face-src' element * via the SVG DOM is not available.

*/ interface SVGFontFaceSrcElement : SVGElement {}; /** *

The SVGFontFaceUriElement interface corresponds to the * 'font-face-uri' element.

* *

Object-oriented access to the attributes of the 'font-face-uri' element * via the SVG DOM is not available.

*/ interface SVGFontFaceUriElement : SVGElement {}; /** *

The SVGFontFaceFormatElement interface corresponds to the * 'font-face-format' element.

* *

Object-oriented access to the attributes of the 'font-face-format' element * via the SVG DOM is not available.

*/ interface SVGFontFaceFormatElement : SVGElement {}; /** *

The SVGFontFaceNameElement interface corresponds to the * 'font-face-name' element.

* *

Object-oriented access to the attributes of the 'font-face-name' element * via the SVG DOM is not available.

*/ interface SVGFontFaceNameElement : SVGElement {}; /** * The SVGMetadataElement interface corresponds to the 'metadata' * element. */ interface SVGMetadataElement : SVGElement {}; /** * The SVGForeignObjectElement interface corresponds to the * 'foreignObject' element. */ interface SVGForeignObjectElement : SVGElement, SVGTests, SVGLangSpace, SVGExternalResourcesRequired, SVGStylable, SVGTransformable { /** * Corresponds to attribute 'x' on the given 'foreignObject' * element. */ readonly attribute SVGAnimatedLength x; /** * Corresponds to attribute 'y' on the given 'foreignObject' * element. */ readonly attribute SVGAnimatedLength y; /** * Corresponds to attribute 'width' on the given 'foreignObject' * element. */ readonly attribute SVGAnimatedLength width; /** * Corresponds to attribute 'height' on the given 'foreignObject' * element. */ readonly attribute SVGAnimatedLength height; }; }; // #endif // _SVG_IDL_