--- a/master/svg.idl Tue Aug 21 14:50:30 2012 +1000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7628 +0,0 @@
-// NOTE: This file is no longer used with the new JS-based build scripts.
-// It will disappear soon.
-
-
-// // 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;
-
- /**
- * <p>SMIL Animation supports several methods for controlling the behavior of
- * animation: <code>beginElement()</code>, <code>beginElementAt()</code>,
- * <code>endElement()</code> and <code>endElementAt()</code>. 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:</p>
- *
- * <pre><animate begin="indefinite" end="indefinite" .../></pre>
- *
- * <p>If a DOM method call is made to begin or end the element (using
- * <code>beginElement()</code>, <code>beginElementAt()</code>,
- * <code>endElement()</code> or <code>endElementAt()</code>), 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
- * <a href="http://www.w3.org/TR/2001/REC-smil-animation-20010904/#Timing-EvaluationOfBeginEndTimeLists">Evaluation of begin and end time lists</a>.</p>
- *
- * <ul>
- * <li>The instance time associated with a <code>beginElement()</code> or
- * <code>endElement()</code> call is the current presentation time at the
- * time of the DOM method call.</li>
- *
- * <li>The instance time associated with a <code>beginElementAt()</code> or
- * <code>endElementAt()</code> call is the current presentation time at the
- * time of the DOM method call, plus or minus the specified offset.</li>
- *
- * <li>Note that <code>beginElement()</code> is subject to the <a>'animate/restart'</a>
- * attribute in the same manner that event-based begin timing is. Refer
- * also to <a href="http://www.w3.org/TR/2001/REC-smil-animation-20010904/#Restart">SMIL Animation: Restarting animation</a>
- * ([<a href='refs.html#ref-SMILANIM'>SMILANIM</a>], section 3.3.7).</li>
- * </ul>
- *
- * <p>The expectation of the following interface is that an instance of the
- * <a>ElementTimeControl</a> interface can be obtained by using binding-specific
- * casting methods on an instance of an animation element. A DOM application
- * can use the <a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-5CED94D7">hasFeature</a>
- * method of the <a>DOMImplementation</a> interface to determine whether the
- * <a>ElementTimeControl</a> interface is supported or not. The feature string
- * for this interface is "TimeControl".</p>
- */
- interface ElementTimeControl {
-
- /**
- * Creates a begin instance time for the current time. The new instance
- * time is added to the <a href="http://www.w3.org/TR/2001/REC-smil-animation-20010904/#Timing-BeginEnd-InstanceTimesLists"><em>begin instance times list</em></a>.
- * The behavior of this method is equivalent to <code>beginElementAt(0)</code>.
- */
- void beginElement();
-
- /**
- * Creates a begin instance time for the current time plus the specified
- * offset. The new instance time is added to the
- * <a href="http://www.w3.org/TR/2001/REC-smil-animation-20010904/#Timing-BeginEnd-InstanceTimesLists"><em>begin instance times list</em></a>.
- *
- * @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
- * <a href="http://www.w3.org/TR/2001/REC-smil-animation-20010904/#Timing-BeginEnd-InstanceTimesLists"><em>end instance times list</em></a>.
- * The behavior of this method is equivalent to <code>endElementAt(0)</code>.
- */
- void endElement();
-
- /**
- * Creates a end instance time for the current time plus the specified
- * offset. The new instance time is added to the
- * <a href="http://www.w3.org/TR/2001/REC-smil-animation-20010904/#Timing-BeginEnd-InstanceTimesLists"><em>end instance times list</em></a>.
- *
- * @param offset offset from the current document time, in seconds, at
- * which to end the element.
- */
- void endElementAt(in float offset);
- };
-
- /**
- * <p>The <a>TimeEvent</a>
- * interface, defined in <a
- * href="http://www.w3.org/TR/2001/REC-smil-animation-20010904/#DOMSupport">
- * SMIL Animation: Supported interfaces</a>, provides specific
- * contextual information associated with Time events.</p>
- * <p>The different types of events that can occur are:</p>
- * <dl>
- * <dt><strong>beginEvent</strong></dt>
- * <dd>
- * 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
- * <a>ElementTimeControl::beginElement</a> or
- * <a>ElementTimeControl::beginElementAt</a> 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.
- * <ul>
- * <li>Bubbles: No</li>
- * <li>Cancelable: No</li>
- * <li>Context Info: None</li>
- * </ul>
- * </dd>
- * <dt><strong>endEvent</strong></dt>
- * <dd>
- * 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
- * <a>ElementTimeControl::endElement</a> or <a>ElementTimeControl::endElementAt</a>
- * 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.
- * <ul>
- * <li>Bubbles: No</li>
- * <li>Cancelable: No</li>
- * <li>Context Info: None</li>
- * </ul>
- * </dd>
- * <dt><strong>repeatEvent</strong></dt>
- * <dd>
- * This event is raised when an element local timeline
- * repeats. It will be raised each time the element repeats,
- * after the first iteration.<br />
- * 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.
- * <ul>
- * <li>Bubbles: No</li>
- * <li>Cancelable: No</li>
- * <li>Context Info: detail (current iteration)</li>
- * </ul>
- * </dd>
- * </dl>
- */
- interface TimeEvent : events::Event {
-
- /**
- * The <a>view</a> attribute identifies the <a>AbstractView</a>
- * [<a href='refs.html#ref-DOM2VIEWS'>DOM2VIEWS</a>] 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 <a>initTimeEvent</a> method is used to initialize the value of a
- * <a>TimeEvent</a> created through the <a>DocumentEvent</a> interface. This
- * method may only be called before the <a>TimeEvent</a> 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 <a>AbstractView</a>.
- * @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 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 <em>SVGException code</em> group.
- */
- unsigned short code;
- };
-
- /**
- * <p>Raised when an object of the wrong type is passed to an operation.</p>
- *
- * <p>Note that no operation is defined to raise an <a>SVGException</a> with
- * this code in SVG 1.1 Second Edition. The constant remains defined here
- * for consistency with SVG 1.1 First Edition.</p>
- *
- * @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;
-
- /**
- * <p>Raised when an attempt is made to invert a matrix that is not
- * invertible.</p>
- *
- * <p>Note the unusual spelling of this constant, which is necessary for
- * compatibility with existing content.</p>
- *
- * @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 <a>SVGPathElement</a> interface for the
- * <a>'path'</a> element) derive from the <a>SVGElement</a> interface.
- */
- interface SVGElement : Element {
-
- /**
- * The value of the <a>'id'</a> attribute on the given element, or the
- * empty string if <a>'id'</a> is not present.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString id setraises(DOMException);
-
- /**
- * Corresponds to attribute <a>'xml:base'</a> on the given element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString xmlbase setraises(DOMException);
-
- /**
- * The nearest ancestor <a>'svg'</a> element. Null if the given element is
- * the <a>outermost svg element</a>.
- */
- readonly attribute SVGSVGElement ownerSVGElement;
-
- /**
- * The element which established the current viewport. Often, the nearest
- * ancestor <a>'svg'</a> element. Null if the given element is the
- * <a>outermost svg element</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a>baseVal</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a>baseVal</a>.
- */
- readonly attribute DOMString animVal;
- };
-
- /**
- * <p>This interface defines a list of DOMString values.</p>
- *
- * <p><a>SVGStringList</a> has the same attributes and methods as other
- * SVGxxxList interfaces. Implementers may consider using a single base class
- * to implement the various SVGxxxList interfaces.</p>
- */
- 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 <a>numberOfItems</a>.
- */
- 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 <a>numberOfItems</a>, 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 <a>numberOfItems</a>.
- */
- 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 <a>numberOfItems</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a>baseVal</a>.
- */
- readonly attribute unsigned short animVal;
- };
-
- /**
- * Used for attributes of basic type
- * <a href='types.html#DataTypeInteger'><integer></a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a>baseVal</a>.
- */
- readonly attribute long animVal;
- };
-
- /**
- * Used for attributes of basic type
- * <a href='types.html#DataTypeNumber'><number></a>.
- */
- interface SVGNumber {
-
- /**
- * The value of the given attribute.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an
- * attempt to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float value setraises(DOMException);
- };
-
- /**
- * Used for attributes of basic type
- * <a href='types.html#DataTypeNumber'><number></a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a>baseVal</a>.
- */
- readonly attribute float animVal;
- };
-
- /**
- * <p>This interface defines a list of SVGNumber objects.</p>
- *
- * <p><a>SVGNumberList</a> has the same attributes and methods as other
- * SVGxxxList interfaces. Implementers may consider using a single base class
- * to implement the various SVGxxxList interfaces.</p>
- *
- * <p id="ReadOnlyNumberList">An <a>SVGNumberList</a> object can be designated as <em>read only</em>,
- * which means that attempts to modify the object will result in an exception
- * being thrown, as described below.</p>
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyNumberList">read only</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyNumberList">read only</a>.
- */
- 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 <a>numberOfItems</a>.
- */
- 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 <var>newItem</var> 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 <i>before</i> 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 <a>numberOfItems</a>, 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyNumberList">read only</a>.
- */
- SVGNumber insertItemBefore(in SVGNumber newItem, in unsigned long index) raises(DOMException);
-
- /**
- * Replaces an existing item in the list with a new item. If
- * <var>newItem</var> 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 <i>before</i>
- * 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyNumberList">read only</a>.
- * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is
- * greater than or equal to <a>numberOfItems</a>.
- */
- 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 <a>numberOfItems</a>.
- */
- SVGNumber removeItem(in unsigned long index) raises(DOMException);
-
- /**
- * Inserts a new item at the end of the list. If <var>newItem</var> 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 <a href="#ReadOnlyNumberList">read only</a> <a>SVGNumberList</a> representing the current animated value of
- * the given attribute. If the given attribute is not currently being
- * animated, then the <a>SVGNumberList</a> will have the same contents
- * as <a>baseVal</a>. The object referenced by <a>animVal</a> will always
- * be distinct from the one referenced by <a>baseVal</a>, even when
- * the attribute is not animated.
- */
- readonly attribute SVGNumberList animVal;
- };
-
- /**
- * <p>The <a>SVGLength</a> interface corresponds to the
- * <a href='types.html#DataTypeLength'><length></a> basic data type.</p>
- *
- * <p id="ReadOnlyLength">An <a>SVGLength</a> object can be designated as <em>read only</em>,
- * which means that attempts to modify the object will result in an exception
- * being thrown, as described below.</p>
- */
- 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 <a>valueInSpecifiedUnits</a> and
- * <a>valueAsString</a> to be updated automatically to reflect this setting.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the length
- * corresponds to a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyLength">read only</a>.
- */
- attribute float value setraises(DOMException);
-
- /**
- * The value as a floating point value, in the units expressed by
- * <a>unitType</a>. Setting this attribute will cause <a>value</a> and
- * <a>valueAsString</a> to be updated automatically to reflect this setting.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the length
- * corresponds to a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyLength">read only</a>.
- */
- attribute float valueInSpecifiedUnits setraises(DOMException);
-
- /**
- * The value as a string value, in the units expressed by <a>unitType</a>.
- * Setting this attribute will cause <a>value</a>,
- * <a>valueInSpecifiedUnits</a> and <a>unitType</a>
- * to be updated automatically to reflect this
- * setting.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the length
- * corresponds to a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyLength">read only</a>.
- * @setraises DOMException(SYNTAX_ERR) Raised if the assigned string cannot
- * be parsed as a valid <a><length></a>.
- */
- attribute DOMString valueAsString setraises(DOMException);
-
- /**
- * Reset the value as a number with an associated <a>unitType</a>, thereby
- * replacing the values for all of the attributes on the object.
- *
- * @param unitType The unit type for the value (e.g., <a>SVG_LENGTHTYPE_MM</a>).
- * @param valueInSpecifiedUnits The new value.
- * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the length
- * corresponds to a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyLength">read only</a>.
- * @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 <var>unitType</var>. Object attributes
- * <a>unitType</a>, <a>valueInSpecifiedUnits</a> and <a>valueAsString</a>
- * 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 <a>unitType</a> would be changed to
- * <a>SVG_LENGTHTYPE_MM</a>, <a>valueInSpecifiedUnits</a> would be changed
- * to the numeric value 5 and <a>valueAsString</a> would be changed to
- * "5mm".
- *
- * @param unitType The unit type to switch to (e.g., <a>SVG_LENGTHTYPE_MM</a>).
- * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the length
- * corresponds to a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyLength">read only</a>.
- * @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
- * <a href='types.html#DataTypeLength'><length></a> which can be
- * animated.
- */
- interface SVGAnimatedLength {
-
- /**
- * The base value of the given attribute before applying any animations.
- */
- readonly attribute SVGLength baseVal;
-
- /**
- * A <a href="#ReadOnlyLength">read only</a> <a>SVGLength</a> representing the current animated value of
- * the given attribute. If the given attribute is not currently being
- * animated, then the <a>SVGLength</a> will have the same contents
- * as <a>baseVal</a>. The object referenced by <a>animVal</a> will always
- * be distinct from the one referenced by <a>baseVal</a>, even when
- * the attribute is not animated.
- */
- readonly attribute SVGLength animVal;
- };
-
- /**
- * <p>This interface defines a list of SVGLength objects.</p>
- *
- * <p><a>SVGLengthList</a> has the same attributes and methods as other
- * SVGxxxList interfaces. Implementers may consider using a single base class
- * to implement the various SVGxxxList interfaces.</p>
- *
- * <p id="ReadOnlyLengthList">An <a>SVGLengthList</a> object can be designated as <em>read only</em>,
- * which means that attempts to modify the object will result in an exception
- * being thrown, as described below.</p>
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyLengthList">read only</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyLengthList">read only</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyLengthList">read only</a>.
- */
- 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 <var>newItem</var> 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 <i>before</i> 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 <a>numberOfItems</a>, 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyLengthList">read only</a>.
- */
- SVGLength insertItemBefore(in SVGLength newItem, in unsigned long index) raises(DOMException);
-
- /**
- * Replaces an existing item in the list with a new item. If
- * <var>newItem</var> 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 <i>before</i>
- * 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyLengthList">read only</a>.
- * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is
- * greater than or equal to <a>numberOfItems</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyLengthList">read only</a>.
- * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is
- * greater than or equal to <a>numberOfItems</a>.
- */
- SVGLength removeItem(in unsigned long index) raises(DOMException);
-
- /**
- * Inserts a new item at the end of the list. If <var>newItem</var> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyLengthList">read only</a>.
- */
- SVGLength appendItem(in SVGLength newItem) raises(DOMException);
- };
-
- /**
- * Used for attributes of type <a>SVGLengthList</a> which can be animated.
- */
- interface SVGAnimatedLengthList {
-
- /**
- * The base value of the given attribute before applying any animations.
- */
- readonly attribute SVGLengthList baseVal;
-
- /**
- * A <a href="#ReadOnlyLengthList">read only</a> <a>SVGLengthList</a> representing the current animated value of
- * the given attribute. If the given attribute is not currently being
- * animated, then the <a>SVGLengthList</a> will have the same contents
- * as <a>baseVal</a>. The object referenced by <a>animVal</a> will always
- * be distinct from the one referenced by <a>baseVal</a>, even when
- * the attribute is not animated.
- */
- readonly attribute SVGLengthList animVal;
- };
-
- /**
- * <p>The <a>SVGAngle</a> interface corresponds to the
- * <a href='types.html#DataTypeAngle'><angle></a> basic data type.</p>
- *
- * <p id="ReadOnlyAngle">An <a>SVGAngle</a> object can be designated as <em>read only</em>,
- * which means that attempts to modify the object will result in an exception
- * being thrown, as described below.</p>
- */
- 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 <a>valueInSpecifiedUnits</a> and
- * <a>valueAsString</a> to be updated automatically to reflect this setting.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the angle
- * corresponds to a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyAngle">read only</a>.
- */
- attribute float value setraises(DOMException);
-
- /**
- * The angle value as a floating point value, in the units expressed by
- * <a>unitType</a>. Setting this attribute will cause <a>value</a> and
- * <a>valueAsString</a> to be updated automatically to reflect this setting.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the angle
- * corresponds to a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyAngle">read only</a>.
- */
- attribute float valueInSpecifiedUnits setraises(DOMException);
-
- /**
- * The angle value as a string value, in the units expressed by
- * <a>unitType</a>. Setting this attribute will cause <a>value</a>,
- * <a>valueInSpecifiedUnits</a> and <a>unitType</a>
- * to be updated automatically to reflect
- * this setting.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the angle
- * corresponds to a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyAngle">read only</a>.
- * @setraises DOMException(SYNTAX_ERR) Raised if the assigned string cannot
- * be parsed as a valid <a><angle></a>.
- */
- attribute DOMString valueAsString setraises(DOMException);
-
- /**
- * Reset the value as a number with an associated <a>unitType</a>, thereby
- * replacing the values for all of the attributes on the object.
- *
- * @param unitType The unit type for the value (e.g., <a>SVG_ANGLETYPE_DEG</a>).
- * @param valueInSpecifiedUnits The angle value.
- * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the angle
- * corresponds to a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyAngle">read only</a>.
- * @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 <var>unitType</var>. Object attributes
- * <a>unitType</a>, <a>valueInSpecifiedUnits</a> and <a>valueAsString</a>
- * might be modified as a result of this method.
- *
- * @param unitType The unit type to switch to (e.g., <a>SVG_ANGLETYPE_DEG</a>).
- * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the angle
- * corresponds to a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyAngle">read only</a>.
- * @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 <a href='types.html#DataTypeAngle'><angle></a>
- * that can be animated.
- */
- interface SVGAnimatedAngle {
-
- /**
- * The base value of the given attribute before applying any animations.
- */
- readonly attribute SVGAngle baseVal;
-
- /**
- * A <a href="#ReadOnlyAngle">read only</a> <a>SVGAngle</a> representing the current animated value of
- * the given attribute. If the given attribute is not currently being
- * animated, then the <a>SVGAngle</a> will have the same contents
- * as <a>baseVal</a>. The object referenced by <a>animVal</a> will always
- * be distinct from the one referenced by <a>baseVal</a>, even when
- * the attribute is not animated.
- */
- readonly attribute SVGAngle animVal;
- };
-
- /**
- * <p>The <a>SVGColor</a> interface corresponds to color value definition for
- * properties <a>'stop-color'</a>, <a>'flood-color'</a> and
- * <a>'lighting-color'</a> and is a base class for interface <a>SVGPaint</a>.
- * It incorporates SVG's extended notion of color, which incorporates
- * ICC-based color specifications.</p>
- *
- * <p>Interface <a>SVGColor</a> does <em>not</em> correspond to the
- * <a href='types.html#DataTypeColor'><color></a> basic data type. For
- * the <a href='types.html#DataTypeColor'><color></a> basic data type,
- * the applicable DOM interfaces are defined in
- * <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/'>DOM Level 2 Style</a>;
- * in particular, see the <a>RGBColor</a> interface
- * ([<a href='refs.html#ref-DOM2STYLE'>DOM2STYLE</a>], section 2.2).</p>
- *
- * <p>Note: The <a>SVGColor</a> interface is deprecated, and may be dropped
- * from future versions of the SVG specification.</p>
- */
- 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 <span class='attr-value'>currentColor</span>
- * 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 <a href='types.html#DataTypeColor'><color></a>,
- * which specifies the new sRGB color value.
- * @raises SVGException(SVG_INVALID_VALUE_ERR) Raised if <var>rgbColor</var>
- * does not match <a href='types.html#DataTypeColor'><color></a>.
- */
- 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 <a href='types.html#DataTypeColor'><color></a>,
- * which specifies the new sRGB color value.
- * @param iccColor A string that matches <a href='types.html#DataTypeICCColor'><icccolor></a>,
- * which specifies the alternate ICC color specification.
- * @raises SVGException(SVG_INVALID_VALUE_ERR) Raised if <var>rgbColor</var>
- * does not match <a href='types.html#DataTypeColor'><color></a>
- * or if <var>iccColor</var> does not match
- * <a href='types.html#DataTypeICCColor'><icccolor></a>.
- */
- void setRGBColorICCColor(in DOMString rgbColor, in DOMString iccColor) raises(SVGException);
-
- /**
- * Sets the color value as specified by the parameters. If
- * <var>colorType</var> requires an <a>RGBColor</a>, then
- * <var>rgbColor</var> must be a string that matches
- * <a href='types.html#DataTypeColor'><color></a>;
- * otherwise, <var>rgbColor</var>. must be null. If <var>colorType</var>
- * requires an <a>SVGICCColor</a>, then <var>iccColor</var> must be a string
- * that matches <a href='types.html#DataTypeICCColor'><icccolor></a>;
- * otherwise, <var>iccColor</var> must be null.
- *
- * @param colorType One of the defined constants for <a>colorType</a>.
- * @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);
- };
-
- /**
- * <p>The <a>SVGICCColor</a> interface expresses an ICC-based color
- * specification.</p>
- *
- * <p>Note: The <a>SVGICCColor</a> interface is deprecated, and may be dropped
- * from future versions of the SVG specification.</p>
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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;
- };
-
- /**
- * <p>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.</p>
- *
- * <p id="ReadOnlyRect">An <a>SVGRect</a> object can be designated as <em>read only</em>,
- * which means that attempts to modify the object will result in an exception
- * being thrown, as described below.</p>
- */
- interface SVGRect {
-
- /**
- * The <var>x</var> coordinate of the rectangle, in user units.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the rectangle
- * corresponds to a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyRect">read only</a>.
- */
- attribute float x setraises(DOMException);
-
- /**
- * The <var>y</var> coordinate of the rectangle, in user units.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the rectangle
- * corresponds to a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyRect">read only</a>.
- */
- attribute float y setraises(DOMException);
-
- /**
- * The <var>width</var> coordinate of the rectangle, in user units.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the rectangle
- * corresponds to a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyRect">read only</a>.
- */
- attribute float width setraises(DOMException);
-
- /**
- * The <var>height</var> coordinate of the rectangle, in user units.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised when the rectangle
- * corresponds to a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyRect">read only</a>.
- */
- attribute float height setraises(DOMException);
- };
-
- /**
- * Used for attributes of type <a>SVGRect</a> which can be animated.
- */
- interface SVGAnimatedRect {
-
- /**
- * The base value of the given attribute before applying any animations.
- */
- readonly attribute SVGRect baseVal;
-
- /**
- * A <a href="#ReadOnlyRect">read only</a> <a>SVGRect</a> representing the current animated value of
- * the given attribute. If the given attribute is not currently being
- * animated, then the <a>SVGRect</a> will have the same contents
- * as <a>baseVal</a>. The object referenced by <a>animVal</a> will always
- * be distinct from the one referenced by <a>baseVal</a>, even when
- * the attribute is not animated.
- */
- readonly attribute SVGRect animVal;
- };
-
- /**
- * The <a>SVGUnitTypes</a> interface defines a commonly used set of constants
- * and is a base interface used by <a>SVGGradientElement</a>,
- * <a>SVGPatternElement</a>, <a>SVGClipPathElement</a>, <a>SVGMaskElement</a>
- * and <a>SVGFilterElement</a>.
- */
- 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 <span class='attr-value'>'userSpaceOnUse'</span>.
- *
- * @defgroup Unit Types
- */
- const unsigned short SVG_UNIT_TYPE_USERSPACEONUSE = 1;
-
- /**
- * Corresponds to value <span class='attr-value'>'objectBoundingBox'</span>.
- *
- * @defgroup Unit Types
- */
- const unsigned short SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;
- };
-
- /**
- * The <a>SVGStylable</a> interface is implemented on all objects
- * corresponding to SVG elements that can have <a>'style attribute'</a>,
- * <a>'class'</a> and <a>presentation attributes</a> specified on them. It
- * is thus an ancestor interface for many of the interfaces defined in this
- * specification.
- */
- interface SVGStylable {
-
- /**
- * Corresponds to attribute <a>'class'</a> on the given element.
- */
- readonly attribute SVGAnimatedString className;
-
- /**
- * Corresponds to attribute <a>'style attribute'</a> on the given element. If the
- * user agent does not support <a href='styling.html#StylingWithCSS'>styling
- * with CSS</a>, 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 <a>presentation
- * attribute</a> as an object of type <a>CSSValue</a>. The returned object
- * is live; changes to the objects represent immediate changes to the
- * objects to which the <a>CSSValue</a> is attached.
- *
- * <p>Note: The <code>getPresentationAttribute</code> method is deprecated,
- * and may be dropped from future versions of the SVG specification.</p>
- *
- * @param name The name of the presentation attribute whose value is to be
- * returned.
- * @return The static/base value of the given <a>presentation attribute</a>
- * as a <a>CSSValue</a>, or null if the given attribute does not have a
- * specified value.
- */
- css::CSSValue getPresentationAttribute(in DOMString name);
- };
-
- /**
- * Interface <a>SVGLocatable</a> is for all elements which either have a
- * <a>'transform'</a> attribute or don't have a <a>'transform'</a> 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 <a>'svg'</a> element. Null if the current element is the
- * <a>outermost svg element</a>.
- */
- readonly attribute SVGElement nearestViewportElement;
-
- /**
- * The farthest ancestor <a>'svg'</a> element. Null if the current element
- * is the <a>outermost svg element</a>.
- */
- readonly attribute SVGElement farthestViewportElement;
-
- /**
- * Returns the tight bounding box in current user space (i.e., after
- * application of the <a>'transform'</a> 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 <a>SVGRect</a> object that defines the bounding box.
- */
- SVGRect getBBox();
-
- /**
- * Returns the tight stroke bounding box in current user space (i.e., after
- * application of the <a>'transform'</a> attribute, if any) on the
- * geometry of all contained graphics elements, exclusive of clipping, masking, markers and
- * filter effects but inclusive of stroking). The stroke bounding box takes the
- * properties <a>'stroke-width'</a>, <a>'stroke-linecap'</a>, <a>'stroke-linejoin'</a>,
- * <a>'stroke-miterlimit'</a>, <a>'stroke-dasharray'</a> and <a>'stroke-dashoffset'</a>
- * into account. If no stroke is applied to the graphics elements, the bounding box in
- * current user space gets returned (see <a>getBBox</a>). Note that getStrokeBBox must
- * return the actual stroke bounding box at the time the method was called,
- * even in case the element has not yet been rendered.
- *
- * @return An <a>SVGRect</a> object that defines the stroke bounding box.
- */
- SVGRect getStrokeBBox();
-
- /**
- * Returns the transformation matrix from current user units (i.e., after
- * application of the <a>'transform'</a> attribute, if any) to the viewport
- * coordinate system for the <a>nearestViewportElement</a>.
- *
- * @return An <a>SVGMatrix</a> object that defines the CTM.
- */
- SVGMatrix getCTM();
-
- /**
- * Returns the transformation matrix from current user units (i.e., after
- * application of the <a>'transform'</a> 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 <code>getClientCTM</code>,
- * but the name <code>getScreenCTM</code> is kept for historical reasons.
- *
- * @return An <a>SVGMatrix</a> 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 <a>'transform'</a> attribute,
- * if any) to the user coordinate system on parameter <var>element</var>
- * (after application of its <a>'transform'</a> attribute, if any).
- *
- * @param element The target element.
- * @return An <a>SVGMatrix</a> 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 <a>SVGTransformable</a> contains properties and methods that
- * apply to all elements which have attribute <a>'transform'</a>.
- */
- interface SVGTransformable : SVGLocatable {
-
- /**
- * Corresponds to attribute <a>'transform'</a> on the given element.
- */
- readonly attribute SVGAnimatedTransformList transform;
- };
-
- /**
- * Interface <a>SVGTests</a> defines an interface which applies to all
- * elements which have attributes <a>'requiredFeatures'</a>,
- * <a>'requiredExtensions'</a> and <a>'systemLanguage'</a>.
- */
- interface SVGTests {
-
- /**
- * Corresponds to attribute <a>'requiredFeatures'</a> on the given element.
- */
- readonly attribute SVGStringList requiredFeatures;
-
- /**
- * Corresponds to attribute <a>'requiredExtensions'</a> on the given element.
- */
- readonly attribute SVGStringList requiredExtensions;
-
- /**
- * Corresponds to attribute <a>'systemLanguage'</a> 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 <a>SVGLangSpace</a> defines an interface which applies to all
- * elements which have attributes <a>'xml:lang'</a> and <a>'xml:space'</a>.
- */
- interface SVGLangSpace {
-
- /**
- * Corresponds to attribute <a>'xml:lang'</a> on the given element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an
- * attempt to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString xmllang setraises(DOMException);
-
- /**
- * Corresponds to attribute <a>'xml:space'</a> on the given element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an
- * attempt to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString xmlspace setraises(DOMException);
- };
-
- /**
- * Interface <a>SVGFitToViewBox</a> defines DOM attributes that apply to
- * elements which have XML attributes <a>'viewBox'</a> and
- * <a>'preserveAspectRatio'</a>.
- */
- interface SVGFitToViewBox {
-
- /**
- * Corresponds to attribute <a>'viewBox'</a> on the given element.
- */
- readonly attribute SVGAnimatedRect viewBox;
-
- /**
- * Corresponds to attribute <a>'preserveAspectRatio'</a> on the given element.
- */
- readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
- };
-
- /**
- * The <a>SVGZoomAndPan</a> interface defines attribute <a>zoomAndPan</a> 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 <span class='attr-value'>'disable'</span>.
- *
- * @defgroup Zoom and Pan Types
- */
- const unsigned short SVG_ZOOMANDPAN_DISABLE = 1;
-
- /**
- * Corresponds to value <span class='attr-value'>'magnify'</span>.
- *
- * @defgroup Zoom and Pan Types
- */
- const unsigned short SVG_ZOOMANDPAN_MAGNIFY = 2;
-
- /**
- * Corresponds to attribute <a>'zoomAndPan'</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a>SVGURIReference</a> defines an interface which applies to all
- * elements which have the collection of XLink attributes, such as
- * <span class='attr-name'>'xlink:href'</span>, which define a URI reference.
- */
- interface SVGURIReference {
-
- /**
- * Corresponds to attribute <span class='attr-name'>'xlink:href'</span> on
- * the given element.
- */
- readonly attribute SVGAnimatedString href;
- };
-
- /**
- * <p>SVG extends interface <a>CSSRule</a> with interface <a>SVGCSSRule</a>
- * by adding an <a>SVGColorProfileRule</a> rule to allow for specification of
- * ICC-based color.</p>
- *
- * <p>It is likely that this extension will become part of a future version of
- * CSS and DOM.</p>
- */
- interface SVGCSSRule : css::CSSRule {
-
- /**
- * The rule is an <a href='http://www.w3.org/TR/SVG/color.html#InterfaceSVGColorProfileRule'>@color-profile</a>.
- */
- const unsigned short COLOR_PROFILE_RULE = 7;
- };
-
- /**
- * The <a>SVGRenderingIntent</a> interface defines the enumerated list of
- * possible values for <a>'color-profile/rendering-intent'</a> 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 <span class ='attr-value'>'auto'</span>.
- *
- * @defgroup Rendering Intent Types
- */
- const unsigned short RENDERING_INTENT_AUTO = 1;
-
- /**
- * Corresponds to a value of <span class ='attr-value'>'perceptual'</span>.
- *
- * @defgroup Rendering Intent Types
- */
- const unsigned short RENDERING_INTENT_PERCEPTUAL = 2;
-
- /**
- * Corresponds to a value of <span class ='attr-value'>'relative-colorimetric'</span>.
- *
- * @defgroup Rendering Intent Types
- */
- const unsigned short RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3;
-
- /**
- * Corresponds to a value of <span class ='attr-value'>'saturation'</span>.
- *
- * @defgroup Rendering Intent Types
- */
- const unsigned short RENDERING_INTENT_SATURATION = 4;
-
- /**
- * Corresponds to a value of <span class='attr-value'>'absolute-colorimetric'</span>.
- *
- * @defgroup Rendering Intent Types
- */
- const unsigned short RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5;
- };
-
- /**
- * <p>When an <a>'svg'</a> element is embedded inline as
- * a component of a document from another namespace, such as when an
- * <a>'svg'</a> element is embedded inline within an
- * XHTML document [<a href="refs.html#ref-XHTML">XHTML</a>], then an
- * <a>SVGDocument</a> 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.</p>
- *
- * <p>However, an <a>SVGDocument</a> object will indeed exist when the
- * root element of the XML document hierarchy is an
- * <a>'svg'</a> element, such as when viewing a stand-alone SVG file (i.e., a
- * file with MIME type "image/svg+xml"). In this case, the <a>SVGDocument</a>
- * object will be the root object of the document object model hierarchy.</p>
- *
- * <p>In the case where an SVG document is embedded by reference,
- * such as when an XHTML document has an <span class="element-name">'object'</span>
- * element whose <span class="attr-name">'href'</span> attribute references an SVG
- * document (i.e., a document whose MIME type is "image/svg+xml"
- * and whose root element is thus an <a>'svg'</a> 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
- * <a>SVGDocument</a> object.</p>
- *
- * <p>The <a>SVGDocument</a> interface contains a similar list of attributes
- * and methods to the HTMLDocument interface described in the
- * <a href="http://www.w3.org/TR/REC-DOM-Level-1/level-one-html.html">Document
- * Object Model (HTML) Level 1</a> chapter of the
- * [<a href="refs.html#ref-DOM1">DOM1</a>] specification.</p>
- */
- interface SVGDocument :
- Document,
- events::DocumentEvent {
-
- /**
- * The title of a document as specified by the <a>'title'</a> sub-element of
- * the <a>'svg'</a> root element (i.e.,
- * <span class="code-fragment"><svg><title>Here is the title</title>...</svg></span>)
- */
- 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 <a>'svg'</a> in the document hierarchy.
- */
- readonly attribute SVGSVGElement rootElement;
- };
-
- /**
- * <p>A key interface definition is the <a>SVGSVGElement</a> interface,
- * which is the interface that corresponds to the <a>'svg'</a> 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.</p>
- *
- * <p><a>SVGSVGElement</a> extends <a>ViewCSS</a> and <a>DocumentCSS</a> to
- * provide access to the computed values of properties and the override style
- * sheet as described in <a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/"><cite>DOM Level 2 Style</cite></a>
- * [<a href="refs.html#ref-DOM2STYLE">DOM2STYLE</a>].</p>
- */
- interface SVGSVGElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGLocatable,
- SVGFitToViewBox,
- SVGZoomAndPan,
- events::DocumentEvent,
- css::ViewCSS,
- css::DocumentCSS {
-
- /**
- * Corresponds to attribute <a>'x'</a> on the given <a>'svg'</a> element.
- */
- readonly attribute SVGAnimatedLength x;
-
- /**
- * Corresponds to attribute <a>'y'</a> on the given <a>'svg'</a> element.
- */
- readonly attribute SVGAnimatedLength y;
-
- /**
- * Corresponds to attribute <a>'width'</a> on the given <a>'svg'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength width;
-
- /**
- * Corresponds to attribute <a>'height'</a> on the given <a>'svg'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength height;
-
- /**
- * <p>The position and size of the viewport (implicit or explicit) that
- * corresponds to this <a>'svg'</a> 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., <a>'svg'</a> element represents the root of the document
- * tree), if this SVG document is embedded as part of another document (e.g.,
- * via the HTML <span class='element-name'>'object'</span> 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.</p>
- *
- * <p>The <a>SVGRect</a> object is <a href="types.html#ReadOnlyRect">read only</a>.</p>
- */
- 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 <a>'svg'</a>
- * element such as <a>'svg/viewBox'</a>) or to a "custom" view (i.e., a
- * hyperlink into a particular <a>'view'</a> or other element - see
- * <a href="linking.html#LinksIntoSVG">Linking into SVG content:
- * IRI fragments and SVG views</a>). 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;
-
- /**
- * <p>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:</p>
- * <ul>
- * <li>
- * If the initial view was a "standard" view, then:
- * <ul>
- * <li>the values for <a>SVGFitToViewBox::viewBox</a>,
- * <a>SVGFitToViewBox::preserveAspectRatio</a> and
- * <a>SVGZoomAndPan::zoomAndPan</a> within <a>currentView</a>
- * will match the values for the corresponding DOM attributes
- * that are on SVGSVGElement directly</li>
- *
- * <li>the values for <a>SVGViewSpec::transform</a> and
- * <a>SVGViewSpec::viewTarget</a> within <a>currentView</a>
- * will be null</li>
- * </ul>
- * </li>
- * <li>
- * If the initial view was a link into a <a>'view'</a> element, then:
- * <ul>
- * <li>the values for <a>SVGFitToViewBox::viewBox</a>,
- * <a>SVGFitToViewBox::preserveAspectRatio</a> and
- * <a>SVGZoomAndPan::zoomAndPan</a> within <a>currentView</a>
- * will correspond to the corresponding attributes for the
- * given <a>'view'</a> element</li>
- *
- * <li>the values for <a>SVGViewSpec::transform</a> and
- * <a>SVGViewSpec::viewTarget</a> within <a>currentView</a>
- * will be null</li>
- * </ul>
- * </li>
- * <li>
- * If the initial view was a link into another element (i.e.,
- * other than a <a>'view'</a>), then:
- * <ul>
- * <li>the values for <a>SVGFitToViewBox::viewBox</a>,
- * <a>SVGFitToViewBox::preserveAspectRatio</a> and
- * <a>SVGZoomAndPan::zoomAndPan</a> within <a>currentView</a>
- * will match the values for the corresponding DOM attributes
- * that are on SVGSVGElement directly for the closest ancestor
- * <a>'svg'</a> element</li>
- *
- * <li>the values for <a>SVGViewSpec::transform</a> within
- * <a>currentView</a> will be null</li>
- *
- * <li>the <a>SVGViewSpec::viewTarget</a> within
- * <a>currentView</a> will represent the target of the
- * link</li>
- * </ul>
- * </li>
- * <li>
- * If the initial view was a link into the SVG document fragment
- * using an SVG view specification fragment identifier (i.e.,
- * #svgView(...)), then:
- * <ul>
- * <li>the values for <a>SVGFitToViewBox::viewBox</a>,
- * <a>SVGFitToViewBox::preserveAspectRatio</a>,
- * <a>SVGZoomAndPan::zoomAndPan</a>,
- * <a>SVGViewSpec::transform</a> and
- * <a>SVGViewSpec::viewTarget</a> within <a>currentView</a>
- * will correspond to the values from the SVG view
- * specification fragment identifier</li>
- * </ul>
- * </li>
- * </ul>
- *
- * <p>The object itself and its contents are both read only.</p>
- */
- readonly attribute SVGViewSpec currentView;
-
- /**
- * On an <a>outermost svg element</a>, this attribute indicates the
- * current scale factor
- * relative to the initial view to take into account user
- * magnification and panning operations, as described under
- * <a href='interact.html#ZoomAndPanAttribute'>Magnification
- * and panning</a>. DOM attributes <a>currentScale</a> and
- * <a>currentTranslate</a>
- * 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., <span class='attr-value'>zoomAndPan="magnify"</span>),
- * then the effect is as if an extra transformation were placed at the
- * outermost level on the SVG document fragment (i.e., outside the
- * <a>outermost svg element</a>).
- * <p>When accessed on an <a>'svg'</a> element that is not an
- * <a>outermost svg element</a>, it is undefined what behavior
- * this attribute has.</p>
- */
- attribute float currentScale;
-
- /**
- * On an <a>outermost svg element</a>, the corresponding translation factor
- * that takes into account user "magnification".
- * <p>When accessed on an <a>'svg'</a> element that is not an
- * <a>outermost svg element</a>, it is undefined what behavior
- * this attribute has.</p>
- */
- readonly attribute SVGPoint currentTranslate;
-
- /**
- * This method is deprecated, and is only kept due to
- * compatibility with legacy content. Calling this method has no
- * effect on redrawing.
- *
- * @param maxWaitMilliseconds This parameter is ignored.
- * @return The returned value is always <span class="attr-value">1</span>.
- */
- unsigned long suspendRedraw(in unsigned long maxWaitMilliseconds);
-
- /**
- * This method is deprecated, and is only kept due to
- * compatibility with legacy content. Calling this method has no
- * effect on redrawing.
- *
- * @param suspendHandleID This parameter is ignored.
- */
- void unsuspendRedraw(in unsigned long suspendHandleID);
-
- /**
- * This method is deprecated, and is only kept due to
- * compatibility with legacy content. Calling this method has no
- * effect on redrawing.
- */
- 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 <a>'svg'</a>
- * 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 <span class="dom-method-name">getCurrentTime</span> is called before
- * the document timeline has begun (for example, by script running in a
- * <a>'script'</a> element before the document's
- * <a href="interact.html#LoadEvent">SVGLoad</a> 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 <span class="dom-method-name">setCurrentTime</span> is called
- * before the document timeline has begun (for example, by script running
- * in a <a>'script'</a> element before the document's
- * <a href="interact.html#LoadEvent">SVGLoad</a> event is dispatched),
- * then the value of <var>seconds</var> 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
- * <a href="interact.html#PointerEventsProperty">target of pointer events</a>
- * as defined in <a>'pointer-events'</a> processing.
- *
- * @param rect The test rectangle. The values are in the <a>initial coordinate
- * system</a> for the current <a>'svg'</a> 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 <a>NodeList</a> must be implemented identically to
- * the <a>NodeList</a> interface as defined in DOM Level 2 Core
- * ([<a href="refs.html#ref-DOM2">DOM2</a>], section 1.2) with the
- * exception that the interface is not
- * <a href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#td-live">live</a>.
- */
- 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
- * <a href="interact.html#PointerEventsProperty">target of pointer events</a>
- * as defined in <a>'pointer-events'</a> processing.
- *
- * @param rect The test rectangle. The values are in the <a>initial coordinate
- * system</a> for the current <a>'svg'</a> 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 <a>NodeList</a> must be implemented identically to
- * the <a>NodeList</a> interface as defined in DOM Level 2 Core
- * ([<a href="refs.html#ref-DOM2">DOM2</a>], section 1.2) with the
- * exception that the interface is not
- * <a href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#td-live">live</a>.
- */
- 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
- * <a href="interact.html#PointerEventsProperty">target of pointer events</a>
- * as defined in <a>'pointer-events'</a> processing.
- *
- * @param element The element on which to perform the given test.
- * @param rect The test rectangle. The values are in the <a>initial coordinate
- * system</a> for the current <a>'svg'</a> 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
- * <a href="interact.html#PointerEventsProperty">target of pointer events</a>
- * as defined in <a>'pointer-events'</a> processing.
- *
- * @param element The element on which to perform the given test.
- * @param rect The test rectangle. The values are in the <a>initial coordinate
- * system</a> for the current <a>'svg'</a> 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 <a>SVGNumber</a> object outside of any document trees. The
- * object is initialized to a value of zero.
- *
- * @return An <a>SVGNumber</a> object.
- */
- SVGNumber createSVGNumber();
-
- /**
- * Creates an <a>SVGLength</a> object outside of any document trees. The
- * object is initialized to the value of 0 user units.
- *
- * @return An <a>SVGLength</a> object.
- */
- SVGLength createSVGLength();
-
- /**
- * Creates an <a>SVGAngle</a> object outside of any document trees. The
- * object is initialized to the value 0 degrees (unitless).
- *
- * @return An <a>SVGAngle</a> object.
- */
- SVGAngle createSVGAngle();
-
- /**
- * Creates an <a>SVGPoint</a> object outside of any document trees. The
- * object is initialized to the point (0,0) in the user coordinate system.
- *
- * @return An <a>SVGPoint</a> object.
- */
- SVGPoint createSVGPoint();
-
- /**
- * Creates an <a>SVGMatrix</a> object outside of any document trees. The
- * object is initialized to the identity matrix.
- *
- * @return An <a>SVGMatrix</a> object.
- */
- SVGMatrix createSVGMatrix();
-
- /**
- * Creates an <a>SVGRect</a> object outside of any document trees. The
- * object is initialized such that all values are set to 0 user units.
- *
- * @return An <a>SVGRect</a> object.
- */
- SVGRect createSVGRect();
-
- /**
- * Creates an <a>SVGTransform</a> object outside of any document trees. The
- * object is initialized to an identity matrix transform
- * (SVG_TRANSFORM_MATRIX).
- *
- * @return An <a>SVGTransform</a> object.
- */
- SVGTransform createSVGTransform();
-
- /**
- * <p xmlns:edit="http://xmlns.grorg.org/SVGT12NG/">
- * Creates an <a>SVGTransform</a> 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 <var>matrix</var>
- * are copied, the <var>matrix</var> parameter is not adopted as
- * <a edit:format="expanded">SVGTransform::matrix</a>.
- * </p>
- *
- * @param matrix The transform matrix.
- * @return An <a>SVGTransform</a> 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
- * <var>elementId</var>. 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 <a>SVGSVGElement</a> interface corresponds to the <a>'g'</a> element.
- */
- interface SVGGElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable {};
-
- /**
- * The <a>SVGDefsElement</a> interface corresponds to the <a>'defs'</a>
- * element.
- */
- interface SVGDefsElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable {};
-
- /**
- * The <a>SVGDescElement</a> interface corresponds to the <a>'desc'</a>
- * element.
- */
- interface SVGDescElement :
- SVGElement,
- SVGLangSpace,
- SVGStylable {};
-
- /**
- * The <a>SVGTitleElement</a> interface corresponds to the <a>'title'</a>
- * element.
- */
- interface SVGTitleElement :
- SVGElement,
- SVGLangSpace,
- SVGStylable {};
-
- /**
- * The <a>SVGSymbolElement</a> interface corresponds to the <a>'symbol'</a>
- * element.
- */
- interface SVGSymbolElement :
- SVGElement,
- SVGLangSpace,
- SVGStylable,
- SVGFitToViewBox {};
-
- /**
- * The <a>SVGUseElement</a> interface corresponds to the <a>'use'</a> element.
- */
- interface SVGUseElement :
- SVGElement,
- SVGURIReference,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable {
-
- /**
- * Corresponds to attribute <a>'x'</a> on the given <a>'use'</a> element.
- */
- readonly attribute SVGAnimatedLength x;
-
- /**
- * Corresponds to attribute <a>'y'</a> on the given <a>'use'</a> element.
- */
- readonly attribute SVGAnimatedLength y;
-
- /**
- * Corresponds to attribute <a>'width'</a> on the given <a>'use'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength width;
-
- /**
- * Corresponds to attribute <a>'height'</a> on the given <a>'use'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength height;
-
- /**
- * The root of the "instance tree". See description of
- * <a>SVGElementInstance</a> for a discussion on the instance tree.
- */
- readonly attribute SVGElementInstance instanceRoot;
-
- /**
- * If the <a>'xlink:href'</a> attribute is being animated, contains the current
- * animated root of the "instance tree". If the <a>'xlink:href'</a> attribute
- * is not currently being animated, contains the same value as
- * <a>instanceRoot</a>. See description of <a>SVGElementInstance</a>
- * for a discussion on the instance tree.
- */
- readonly attribute SVGElementInstance animatedInstanceRoot;
- };
-
- /**
- * <p>For each <a>'use'</a> element, the SVG DOM maintains a shadow tree (the
- * "instance tree") of objects of type <a>SVGElementInstance</a>. An
- * <a>SVGElementInstance</a> represents a single node in the instance tree.
- * The root object in the instance tree is pointed to by the
- * <a>SVGUseElement::instanceRoot</a> attribute on the
- * <a>SVGUseElement</a> object for the corresponding <a>'use'</a> element.</p>
- *
- * <p>If the <a>'use'</a> element references a simple graphics element such as
- * a <a>'rect'</a>, then there is only a single <a>SVGElementInstance</a>
- * object, and the <a>correspondingElement</a> attribute on this
- * <a>SVGElementInstance</a> object is the <a>SVGRectElement</a> that
- * corresponds to the referenced <a>'rect'</a> element.</p>
- *
- * <p>If the <a>'use'</a> element references a <a>'g'</a> which contains two
- * <a>'rect'</a> elements, then the instance tree contains three
- * <a>SVGElementInstance</a> objects, a root <a>SVGElementInstance</a> object
- * whose <a>correspondingElement</a> is the <a>SVGGElement</a> object for the
- * <a>'g'</a>, and then two child <a>SVGElementInstance</a> objects, each of
- * which has its <a>correspondingElement</a> that is an <a>SVGRectElement</a>
- * object.</p>
- *
- * <p>If the referenced object is itself a <a>'use'</a>, or if there are
- * <a>'use'</a> 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 <a>'use'</a> element references a
- * <a>'g'</a>, and the <a>'g'</a> itself contains a <a>'use'</a>, and that
- * <a>'use'</a> references a <a>'rect'</a>, then the instance tree for the
- * original (outermost) <a>'use'</a> will consist of a hierarchy of
- * <a>SVGElementInstance</a> objects, as follows:</p>
- *
-<pre>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')
-</pre>
- */
- interface SVGElementInstance : events::EventTarget {
-
- /**
- * The corresponding element to which this object is an instance. For
- * example, if a <a>'use'</a> element references a <a>'rect'</a> element,
- * then an <a>SVGElementInstance</a> is created, with its
- * <a>correspondingElement</a> being the <a>SVGRectElement</a> object
- * for the <a>'rect'</a> element.
- */
- readonly attribute SVGElement correspondingElement;
-
- /**
- * The corresponding <a>'use'</a> element to which this
- * <a>SVGElementInstance</a> object belongs. When <a>'use'</a> elements are
- * nested (e.g., a <a>'use'</a> references another <a>'use'</a> which
- * references a graphics element such as a <a>'rect'</a>), then the
- * <a>correspondingUseElement</a> is the outermost <a>'use'</a> (i.e., the
- * one which indirectly references the <a>'rect'</a>, not the one with the
- * direct reference).
- */
- readonly attribute SVGUseElement correspondingUseElement;
-
- /**
- * The parent of this <a>SVGElementInstance</a> within the instance tree.
- * All <a>SVGElementInstance</a> objects have a parent except the
- * <a>SVGElementInstance</a> which corresponds to the element which was
- * directly referenced by the <a>'use'</a> element, in which case
- * <a>parentNode</a> is null.
- */
- readonly attribute SVGElementInstance parentNode;
-
- /**
- * An <a>SVGElementInstanceList</a> that contains all children of this
- * <a>SVGElementInstance</a> within the instance tree. If there are no
- * children, this is an <a>SVGElementInstanceList</a> containing no entries
- * (i.e., an empty list).
- */
- readonly attribute SVGElementInstanceList childNodes;
-
- /**
- * The first child of this <a>SVGElementInstance</a> within the instance
- * tree. If there is no such <a>SVGElementInstance</a>, this returns null.
- */
- readonly attribute SVGElementInstance firstChild;
-
- /**
- * The last child of this <a>SVGElementInstance</a> within the instance
- * tree. If there is no such <a>SVGElementInstance</a>, this returns null.
- */
- readonly attribute SVGElementInstance lastChild;
-
- /**
- * The <a>SVGElementInstance</a> immediately preceding this
- * <a>SVGElementInstance</a>. If there is no such <a>SVGElementInstance</a>,
- * this returns null.
- */
- readonly attribute SVGElementInstance previousSibling;
-
- /**
- * The <a>SVGElementInstance</a> immediately following this
- * <a>SVGElementInstance</a>. If there is no such <a>SVGElementInstance</a>,
- * this returns null.
- */
- readonly attribute SVGElementInstance nextSibling;
- };
-
- /**
- * The <a>SVGElementInstanceList</a> interface provides the abstraction of an
- * ordered collection of <a>SVGElementInstance</a> objects, without defining
- * or constraining how this collection is implemented.
- */
- interface SVGElementInstanceList {
-
- /**
- * The number of <a>SVGElementInstance</a> objects in the list. The range
- * of valid child indices is 0 to <a>length</a>-1 inclusive.
- */
- readonly attribute unsigned long length;
-
- /**
- * Returns the <var>index</var>th item in the collection. If
- * <var>index</var> is greater than or equal to the number of nodes in the
- * list, this returns null.
- *
- * @param index Index into the collection.
- * @return The <a>SVGElementInstance</a> object at the <var>index</var>th
- * position in the <a>SVGElementInstanceList</a>, or null if that is not
- * a valid index.
- */
- SVGElementInstance item(in unsigned long index);
- };
-
- /**
- * The <a>SVGImageElement</a> interface corresponds to the <a>'image'</a>
- * element.
- */
- interface SVGImageElement :
- SVGElement,
- SVGURIReference,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable {
-
- /**
- * Corresponds to attribute <a>'x'</a> on the given <a>'image'</a> element.
- */
- readonly attribute SVGAnimatedLength x;
-
- /**
- * Corresponds to attribute <a>'y'</a> on the given <a>'image'</a> element.
- */
- readonly attribute SVGAnimatedLength y;
-
- /**
- * Corresponds to attribute <a>'width'</a> on the given <a>'image'</a> element.
- */
- readonly attribute SVGAnimatedLength width;
-
- /**
- * Corresponds to attribute <a>'height'</a> on the given <a>'image'</a> element.
- */
- readonly attribute SVGAnimatedLength height;
-
- /**
- * Corresponds to attribute <a>'preserveAspectRatio'</a> on the given <a>'image'</a> element.
- */
- readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
- };
-
- /**
- * The <a>SVGSwitchElement</a> interface corresponds to the <a>'switch'</a>
- * element.
- */
- interface SVGSwitchElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable {};
-
- /**
- * <p>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 <a>Element</a> object that corresponds to an HTML
- * <span class='element-name'>'object'</span> element. Such DOM objects are
- * often also required to implement the <a>EmbeddingElement</a> defined in the
- * Window specification [<a href="refs.html#ref-WINDOW">WINDOW</a>].</p>
- *
- * <p>This interface is deprecated and may be dropped from future versions of
- * the SVG specification. Authors are suggested to use the
- * <code>contentDocument</code> attribute on the <a>EmbeddingElement</a>
- * interface to obtain a referenced SVG document, if that interface is
- * available.</p>
- */
- interface GetSVGDocument {
-
- /**
- * <p> This method must return the <a>Document</a> object embedded content
- * in an embedding element, or null if there is no document.</p>
- *
- * <p>Note that this is equivalent to fetching the value of the
- * <code>EmbeddingElement::contentDocument</code> attribute of the embedding
- * element, if the <a>EmbeddingElement</a> interface is also implemented.
- * The author is advised to check that the document element of the returned
- * <a>Document</a> is indeed an <a>'svg'</a> element instead of assuming
- * that that will always be the case.</p>
- *
- * @return The <a>Document</a> object for the referenced document, or null
- * if there is no document.
- */
- SVGDocument getSVGDocument();
- };
-
- /**
- * The <a>SVGStyleElement</a> interface corresponds to the <a>'style element'</a>
- * element.
- */
- interface SVGStyleElement : SVGElement,
- SVGLangSpace {
-
- /**
- * Corresponds to attribute <a>'type'</a> on the given element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString type setraises(DOMException);
-
- /**
- * Corresponds to attribute <a>'media'</a> on the given element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString media setraises(DOMException);
-
- /**
- * Corresponds to attribute <a>'title attribute'</a> on the given element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString title setraises(DOMException);
- };
-
- /**
- * <p>Many of the SVG DOM interfaces refer to objects of class
- * <a>SVGPoint</a>. An <a>SVGPoint</a> is an (x, y) coordinate pair. When
- * used in matrix operations, an <a>SVGPoint</a> is treated as a vector of
- * the form:</p>
- *
- * <pre>
-[x]
-[y]
-[1]</pre>
- *
- * <p>If an <a>SVGPoint</a> object is designated as <em>read only</em>,
- * then attempting to assign to one of its attributes will result in
- * an exception being thrown.</p>
- */
- interface SVGPoint {
-
- /**
- * The x coordinate.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised if the
- * <a>SVGPoint</a> 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
- * <a>SVGPoint</a> object is read only, or corresponds to a DOM
- * attribute that is read only.
- */
- attribute float y setraises(DOMException);
-
- /**
- * <p>Applies a 2x3 matrix transformation on this <a>SVGPoint</a> object and
- * returns a new, transformed <a>SVGPoint</a> object:</p>
- *
- * <pre>newpoint = matrix * thispoint</pre>
- *
- * @param matrix The matrix which is to be applied to this <a>SVGPoint</a>
- * object.
- * @return A new <a>SVGPoint</a> object.
- */
- SVGPoint matrixTransform(in SVGMatrix matrix);
- };
-
- /**
- * <p>This interface defines a list of SVGPoint objects.</p>
- *
- * <p><a>SVGPointList</a> has the same attributes and methods as other
- * SVGxxxList interfaces. Implementers may consider using a single base class
- * to implement the various SVGxxxList interfaces.</p>
- */
- 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 <a>numberOfItems</a>.
- */
- 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 <var>newItem</var> 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 <i>before</i> 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 <a>numberOfItems</a>, 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
- * <var>newItem</var> 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 <i>before</i>
- * 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 <a>numberOfItems</a>.
- */
- 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 <a>numberOfItems</a>.
- */
- SVGPoint removeItem(in unsigned long index) raises(DOMException);
-
- /**
- * Inserts a new item at the end of the list. If <var>newItem</var> 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);
- };
-
- /**
- * <p>Many of SVG's graphics operations utilize 2x3 matrices of the form:</p>
- *
- * <pre>
-[a c e]
-[b d f]</pre>
- *
- * <p>which, when expanded into a 3x3 matrix for the purposes of matrix
- * arithmetic, become:</p>
- *
- * <pre>
-[a c e]
-[b d f]
-[0 0 1]</pre>
- */
- interface SVGMatrix {
-
- /**
- * The <var>a</var> component of the matrix.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float a setraises(DOMException);
-
- /**
- * The <var>b</var> component of the matrix.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float b setraises(DOMException);
-
- /**
- * The <var>c</var> component of the matrix.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float c setraises(DOMException);
-
- /**
- * The <var>d</var> component of the matrix.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float d setraises(DOMException);
-
- /**
- * The <var>e</var> component of the matrix.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float e setraises(DOMException);
-
- /**
- * The <var>f</var> component of the matrix.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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);
- };
-
- /**
- * <a>SVGTransform</a> is the interface for one of the component
- * transformations within an <a>SVGTransformList</a>; thus, an
- * <a>SVGTransform</a> object corresponds to a single component (e.g.,
- * <span class='attr-value'>'scale(…)'</span> or
- * <span class='attr-value'>'matrix(…)'</span>) within a <a>'transform'</a>
- * 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 <span class='attr-value'>'matrix(…)'</span> transformation.
- *
- * @defgroup Transform Types
- */
- const unsigned short SVG_TRANSFORM_MATRIX = 1;
-
- /**
- * A <span class='attr-value'>'translate(…)'</span> transformation.
- *
- * @defgroup Transform Types
- */
- const unsigned short SVG_TRANSFORM_TRANSLATE = 2;
-
- /**
- * A <span class='attr-value'>'scale(…)'</span> transformation.
- *
- * @defgroup Transform Types
- */
- const unsigned short SVG_TRANSFORM_SCALE = 3;
-
- /**
- * A <span class='attr-value'>'rotate(…)'</span> transformation.
- *
- * @defgroup Transform Types
- */
- const unsigned short SVG_TRANSFORM_ROTATE = 4;
-
- /**
- * A <span class='attr-value'>'skewX(…)'</span> transformation.
- *
- * @defgroup Transform Types
- */
- const unsigned short SVG_TRANSFORM_SKEWX = 5;
-
- /**
- * A <span class='attr-value'>'skewY(…)'</span> 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;
-
- /**
- * <p>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.
- * </p>
- * <ul>
- * <li>For SVG_TRANSFORM_MATRIX, the matrix contains the
- * <a>SVGMatrix::a</a>, <a>SVGMatrix::b</a>, <a>SVGMatrix::c</a>, <a>SVGMatrix::d</a>, <a>SVGMatrix::e</a>,
- * <a>SVGMatrix::f</a> values supplied by the user.</li>
- * <li>For SVG_TRANSFORM_TRANSLATE, <a>SVGMatrix::e</a> and <a>SVGMatrix::f</a>
- * represent the translation amounts (<a>SVGMatrix::a</a>=1, <a>SVGMatrix::b</a>=0,
- * <a>SVGMatrix::c</a>=0 and <a>SVGMatrix::d</a>=1).</li>
- * <li>For SVG_TRANSFORM_SCALE, <a>SVGMatrix::a</a> and <a>SVGMatrix::d</a>
- * represent the scale amounts (<a>SVGMatrix::b</a>=0, <a>SVGMatrix::c</a>=0,
- * <a>SVGMatrix::e</a>=0 and <a>SVGMatrix::f</a>=0).</li>
- * <li>For SVG_TRANSFORM_SKEWX and SVG_TRANSFORM_SKEWY,
- * <a>SVGMatrix::a</a>, <a>SVGMatrix::b</a>, <a>SVGMatrix::c</a> and <a>SVGMatrix::d</a>
- * represent the matrix which will result in the given skew
- * (<a>SVGMatrix::e</a>=0 and <a>SVGMatrix::f</a>=0).</li>
- * <li>For SVG_TRANSFORM_ROTATE,
- * <a>SVGMatrix::a</a>, <a>SVGMatrix::b</a>, <a>SVGMatrix::c</a>, <a>SVGMatrix::d</a>,
- * <a>SVGMatrix::e</a> and <a>SVGMatrix::f</a> together represent the matrix
- * which will result in the given rotation. When the rotation is around
- * the center point (0, 0), <a>SVGMatrix::e</a> and <a>SVGMatrix::f</a> will be zero.</li>
- * </ul>
- */
- readonly attribute SVGMatrix matrix;
-
- /**
- * <p>A convenience attribute for SVG_TRANSFORM_ROTATE,
- * SVG_TRANSFORM_SKEWX and SVG_TRANSFORM_SKEWY. It holds
- * the angle that was specified.</p>
- *
- * <p>For SVG_TRANSFORM_MATRIX, SVG_TRANSFORM_TRANSLATE and
- * SVG_TRANSFORM_SCALE, <a>angle</a> will be zero.</p>
- */
- readonly attribute float angle;
-
- /**
- * <p xmlns:edit="http://xmlns.grorg.org/SVGT12NG/">
- * Sets the transform type to SVG_TRANSFORM_MATRIX, with parameter
- * <var>matrix</var> defining the new transformation. The values
- * from the parameter <var>matrix</var> are copied, the <var>matrix</var>
- * parameter does not replace <a edit:format="expanded">SVGTransform::matrix</a>.
- * </p>
- *
- * @param matrix The new matrix for the transformation.
- * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- void setMatrix(in SVGMatrix matrix) raises(DOMException);
-
- /**
- * Sets the transform type to SVG_TRANSFORM_TRANSLATE, with parameters
- * <var>tx</var> and <var>ty</var> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- void setTranslate(in float tx, in float ty) raises(DOMException);
-
- /**
- * Sets the transform type to SVG_TRANSFORM_SCALE, with parameters
- * <var>sx</var> and <var>sy</var> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- void setScale(in float sx, in float sy) raises(DOMException);
-
- /**
- * Sets the transform type to SVG_TRANSFORM_ROTATE, with parameter
- * <var>angle</var> defining the rotation angle and parameters
- * <var>cx</var> and <var>cy</var> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- void setRotate(in float angle, in float cx, in float cy) raises(DOMException);
-
- /**
- * Sets the transform type to SVG_TRANSFORM_SKEWX, with parameter
- * <var>angle</var> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- void setSkewX(in float angle) raises(DOMException);
-
- /**
- * Sets the transform type to SVG_TRANSFORM_SKEWY, with parameter
- * <var>angle</var> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- void setSkewY(in float angle) raises(DOMException);
- };
-
- /**
- * <p>This interface defines a list of SVGTransform objects.</p>
- *
- * <p>The <a>SVGTransformList</a> and <a>SVGTransform</a> interfaces correspond
- * to the various attributes which specify a set of transformations, such as
- * the <a>'transform'</a> attribute which is available for many of SVG's elements.</p>
- *
- * <p><a>SVGTransformList</a> has the same attributes and methods as other
- * SVGxxxList interfaces. Implementers may consider using a single base class
- * to implement the various SVGxxxList interfaces.</p>
- *
- * <p id="ReadOnlyTransformList">An <a>SVGTransformList</a> object can be designated as <em>read only</em>,
- * which means that attempts to modify the object will result in an exception
- * being thrown, as described below.</p>
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyTransformList">read only</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyTransformList">read only</a>.
- */
- 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 <a>numberOfItems</a>.
- */
- 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 <var>newItem</var> 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 <i>before</i> 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 <a>numberOfItems</a>, 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyTransformList">read only</a>.
- */
- SVGTransform insertItemBefore(in SVGTransform newItem, in unsigned long index) raises(DOMException);
-
- /**
- * Replaces an existing item in the list with a new item. If
- * <var>newItem</var> 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 <i>before</i>
- * 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyTransformList">read only</a>.
- * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is
- * greater than or equal to <a>numberOfItems</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyTransformList">read only</a>.
- * @raises DOMException(INDEX_SIZE_ERR) Raised if the index number is
- * greater than or equal to <a>numberOfItems</a>.
- */
- SVGTransform removeItem(in unsigned long index) raises(DOMException);
-
- /**
- * Inserts a new item at the end of the list. If <var>newItem</var> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyTransformList">read only</a>.
- */
- SVGTransform appendItem(in SVGTransform newItem) raises(DOMException);
-
- /**
- * <p xmlns:edit="http://xmlns.grorg.org/SVGT12NG/">
- * Creates an <a>SVGTransform</a> object which is initialized to transform
- * of type SVG_TRANSFORM_MATRIX and whose values are the given matrix.
- * The values from the parameter <var>matrix</var> are copied, the
- * <var>matrix</var> parameter is not adopted as
- * <a edit:format="expanded">SVGTransform::matrix</a>.
- * </p>
- *
- * @param matrix The matrix which defines the transformation.
- * @return The returned <a>SVGTransform</a> object.
- */
- SVGTransform createSVGTransformFromMatrix(in SVGMatrix matrix);
-
- /**
- * Consolidates the list of separate <a>SVGTransform</a> objects by
- * multiplying the equivalent transformation matrices together to result
- * in a list consisting of a single <a>SVGTransform</a> 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 <a>SVGTransform</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyTransformList">read only</a>.
- */
- SVGTransform consolidate() raises(DOMException);
- };
-
- /**
- * Used for the various attributes which specify a set of transformations,
- * such as the <a>'transform'</a> 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 <a href="#ReadOnlyTransformList">read only</a> <a>SVGTransformList</a> representing the current animated value of
- * the given attribute. If the given attribute is not currently being
- * animated, then the <a>SVGTransformList</a> will have the same contents
- * as <a>baseVal</a>. The object referenced by <a>animVal</a> will always
- * be distinct from the one referenced by <a>baseVal</a>, even when
- * the attribute is not animated.
- */
- readonly attribute SVGTransformList animVal;
- };
-
- /**
- * The <a>SVGPreserveAspectRatio</a> interface corresponds to the
- * <a>'preserveAspectRatio'</a> attribute, which is available for some of
- * SVG's elements.
- *
- * <p id="ReadOnlyPreserveAspectRatio">An <a>SVGPreserveAspectRatio</a> object can be designated as <em>read only</em>,
- * which means that attempts to modify the object will result in an exception
- * being thrown, as described below.</p>
- */
- 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 <span class='attr-value'>'none'</span> for attribute
- * <a>'preserveAspectRatio'</a>.
- *
- * @defgroup Alignment Types
- */
- const unsigned short SVG_PRESERVEASPECTRATIO_NONE = 1;
-
- /**
- * Corresponds to value <span class='attr-value'>'xMinYMin'</span> for attribute
- * <a>'preserveAspectRatio'</a>.
- *
- * @defgroup Alignment Types
- */
- const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMIN = 2;
-
- /**
- * Corresponds to value <span class='attr-value'>'xMidYMin'</span> for attribute
- * <a>'preserveAspectRatio'</a>.
- *
- * @defgroup Alignment Types
- */
- const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3;
-
- /**
- * Corresponds to value <span class='attr-value'>'xMaxYMin'</span> for attribute
- * <a>'preserveAspectRatio'</a>.
- *
- * @defgroup Alignment Types
- */
- const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4;
-
- /**
- * Corresponds to value <span class='attr-value'>'XMinYMid'</span> for attribute
- * <a>'preserveAspectRatio'</a>.
- *
- * @defgroup Alignment Types
- */
- const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMID = 5;
-
- /**
- * Corresponds to value <span class='attr-value'>'xMidYMid'</span> for attribute
- * <a>'preserveAspectRatio'</a>.
- *
- * @defgroup Alignment Types
- */
- const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMID = 6;
-
- /**
- * Corresponds to value <span class='attr-value'>'xMaxYMid'</span> for attribute
- * <a>'preserveAspectRatio'</a>.
- *
- * @defgroup Alignment Types
- */
- const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMID = 7;
-
- /**
- * Corresponds to value <span class='attr-value'>'xMinYMax'</span> for attribute
- * <a>'preserveAspectRatio'</a>.
- *
- * @defgroup Alignment Types
- */
- const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMAX = 8;
-
- /**
- * Corresponds to value <span class='attr-value'>'xMidYMax'</span> for attribute
- * <a>'preserveAspectRatio'</a>.
- *
- * @defgroup Alignment Types
- */
- const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9;
-
- /**
- * Corresponds to value <span class='attr-value'>'xMaxYMax'</span> for attribute
- * <a>'preserveAspectRatio'</a>.
- *
- * @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 <span class='attr-value'>'meet'</span> for
- * attribute <a>'preserveAspectRatio'</a>.
- *
- * @defgroup Meet-or-slice Types
- */
- const unsigned short SVG_MEETORSLICE_MEET = 1;
-
- /**
- * Corresponds to value <span class='attr-value'>'slice'</span> for
- * attribute <a>'preserveAspectRatio'</a>.
- *
- * @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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyPreserveAspectRatio">read only</a>.
- *
- * @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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a> or when the object itself is
- * <a href="#ReadOnlyPreserveAspectRatio">read only</a>.
- *
- * @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 <a>SVGPreserveAspectRatio</a> which can be
- * animated.
- */
- interface SVGAnimatedPreserveAspectRatio {
-
- /**
- * The base value of the given attribute before applying any animations.
- */
- readonly attribute SVGPreserveAspectRatio baseVal;
-
- /**
- * A <a href="#ReadOnlyPreserveAspectRatio">read only</a> <a>SVGPreserveAspectRatio</a> representing the current animated value of
- * the given attribute. If the given attribute is not currently being
- * animated, then the <a>SVGPreserveAspectRatio</a> will have the same contents
- * as <a>baseVal</a>. The object referenced by <a>animVal</a> will always
- * be distinct from the one referenced by <a>baseVal</a>, even when
- * the attribute is not animated.
- */
- readonly attribute SVGPreserveAspectRatio animVal;
- };
-
- /**
- * The <a>SVGPathSeg</a> 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 <a>SVGPathSegClosePath</a> interface corresponds to a
- * "closepath" (z) path data command.
- */
- interface SVGPathSegClosePath : SVGPathSeg {
- };
-
- /**
- * The <a>SVGPathSegMovetoAbs</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegMovetoRel</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegLinetoAbs</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegLinetoRel</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegCurvetoCubicAbs</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y2 setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegCurvetoCubicRel</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y2 setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegCurvetoQuadraticAbs</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y1 setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegCurvetoQuadraticRel</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y1 setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegArcAbs</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute boolean sweepFlag setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegArcRel</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute boolean sweepFlag setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegLinetoHorizontalAbs</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float x setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegLinetoHorizontalRel</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float x setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegLinetoVerticalAbs</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegLinetoVerticalRel</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegCurvetoCubicSmoothAbs</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y2 setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegCurvetoCubicSmoothRel</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y2 setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegCurvetoQuadraticSmoothAbs</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y setraises(DOMException);
- };
-
- /**
- * The <a>SVGPathSegCurvetoQuadraticSmoothRel</a> 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y setraises(DOMException);
- };
-
- /**
- * <p>This interface defines a list of SVGPathSeg objects.</p>
- *
- * <p><a>SVGPathSegList</a> has the same attributes and methods as other
- * SVGxxxList interfaces. Implementers may consider using a single base class
- * to implement the various SVGxxxList interfaces.</p>
- */
- 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 <a>numberOfItems</a>.
- */
- 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 <var>newItem</var> 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 <i>before</i> 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 <a>numberOfItems</a>, 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
- * <var>newItem</var> 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 <i>before</i>
- * 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 <a>numberOfItems</a>.
- */
- 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 <a>numberOfItems</a>.
- */
- SVGPathSeg removeItem(in unsigned long index) raises(DOMException);
-
- /**
- * Inserts a new item at the end of the list. If <var>newItem</var> 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);
- };
-
- /**
- * <p>The SVGAnimatedPathData interface supports elements which have a <span class='attr-name'>'d'</span>
- * attribute which holds SVG path data, and supports the ability to animate
- * that attribute.</p>
- *
- * <p>The <a>SVGAnimatedPathData</a> interface provides two lists to access and
- * modify the base (i.e., static) contents of the <span class='attr-name'>'d'</span> attribute:</p>
- *
- * <ul>
- * <li>DOM attribute <a>pathSegList</a> provides access to the static/base
- * contents of the <span class='attr-name'>'d'</span> attribute in a form which matches one-for-one
- * with SVG's syntax.</li>
- *
- * <li>DOM attribute <a>normalizedPathSegList</a> provides normalized access
- * to the static/base contents of the <span class='attr-name'>'d'</span> attribute where all path
- * data commands are expressed in terms of the following subset of
- * <a>SVGPathSeg</a> types:
- * SVG_PATHSEG_MOVETO_ABS (M),
- * SVG_PATHSEG_LINETO_ABS (L),
- * SVG_PATHSEG_CURVETO_CUBIC_ABS (C) and
- * SVG_PATHSEG_CLOSEPATH (z).</li>
- * </ul>
- *
- * <p>and two lists to access the current animated values of the <span class='attr-name'>'d'</span>
- * attribute:</p>
- *
- * <ul>
- * <li>DOM attribute <a>animatedPathSegList</a> provides access to the current
- * animated contents of the <span class='attr-name'>'d'</span> attribute in a form which matches
- * one-for-one with SVG's syntax.</li>
- *
- * <li>DOM attribute <a>animatedNormalizedPathSegList</a> provides
- * normalized access to the current animated contents of the <span class='attr-name'>'d'</span>
- * attribute where all path data commands are expressed in terms of the
- * following subset of <a>SVGPathSeg</a> types:
- * SVG_PATHSEG_MOVETO_ABS (M),
- * SVG_PATHSEG_LINETO_ABS (L),
- * SVG_PATHSEG_CURVETO_CUBIC_ABS (C) and
- * SVG_PATHSEG_CLOSEPATH (z).</li>
- * </ul>
- *
- * <p>Each of the two lists are always kept synchronized. Modifications to one
- * list will immediately cause the corresponding list to be modified.
- * Modifications to <a>normalizedPathSegList</a> might cause entries in
- * <a>pathSegList</a> to be broken into a set of normalized path segments.</p>
- *
- * <p>Additionally, the <a>'path/d'</a> attribute on the <a>'path'</a> element
- * accessed via the XML DOM (e.g., using the <code>getAttribute()</code>
- * method call) will reflect any changes made to <a>pathSegList</a> or
- * <a>normalizedPathSegList</a>.</p>
- */
- interface SVGAnimatedPathData {
-
- /**
- * Provides access to the base (i.e., static) contents of the <span class='attr-name'>'d'</span>
- * attribute in a form which matches one-for-one with SVG's syntax.
- * Thus, if the <span class='attr-name'>'d'</span> attribute has an "absolute moveto (M)" and an
- * "absolute arcto (A)" command, then <a>pathSegList</a> will have two
- * entries: a SVG_PATHSEG_MOVETO_ABS and a SVG_PATHSEG_ARC_ABS.
- */
- readonly attribute SVGPathSegList pathSegList;
-
- /**
- * <p>Provides access to the base (i.e., static) contents of the
- * <span class='attr-name'>'d'</span> attribute in a form where all path data commands are
- * expressed in terms of the following subset of <a>SVGPathSeg</a>
- * 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 <span class='attr-name'>'d'</span> 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.</p>
- *
- * <p>The only valid <a>SVGPathSeg</a> types are
- * SVG_PATHSEG_MOVETO_ABS (M), SVG_PATHSEG_LINETO_ABS (L),
- * SVG_PATHSEG_CURVETO_CUBIC_ABS (C) and SVG_PATHSEG_CLOSEPATH (z).</p>
- */
- readonly attribute SVGPathSegList normalizedPathSegList;
-
- /**
- * Provides access to the current animated contents of the <span class='attr-name'>'d'</span>
- * 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 <a>pathSegList</a>.
- */
- readonly attribute SVGPathSegList animatedPathSegList;
-
- /**
- * Provides access to the current animated contents of the
- * <span class='attr-name'>'d'</span> attribute in a form where all path data commands
- * are expressed in terms of the following subset of <a>SVGPathSeg</a>
- * 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 <a>normalizedPathSegList</a>.
- */
- readonly attribute SVGPathSegList animatedNormalizedPathSegList;
- };
-
- /**
- * The <a>SVGPathElement</a> interface corresponds to the <a>'path'</a>
- * element.
- */
- interface SVGPathElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable,
- SVGAnimatedPathData {
-
- /**
- * Corresponds to attribute <a>pathLength</a> on the given <a>'path'</a>
- * 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 <var>distance</var>
- * 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 <a>SVGAnimatedPathData::pathSegList</a> which is <var>distance</var>
- * 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 <a>SVGPathSegClosePath</a> object.
- *
- * @return A stand-alone, parentless <a>SVGPathSegClosePath</a> object.
- */
- SVGPathSegClosePath createSVGPathSegClosePath();
-
- /**
- * Returns a stand-alone, parentless <a>SVGPathSegMovetoAbs</a> 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 <a>SVGPathSegMovetoAbs</a> object.
- */
- SVGPathSegMovetoAbs createSVGPathSegMovetoAbs(in float x, in float y);
-
- /**
- * Returns a stand-alone, parentless <a>SVGPathSegMovetoRel</a> 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 <a>SVGPathSegMovetoRel</a> object.
- */
- SVGPathSegMovetoRel createSVGPathSegMovetoRel(in float x, in float y);
-
- /**
- * Returns a stand-alone, parentless <a>SVGPathSegLinetoAbs</a> 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 <a>SVGPathSegLinetoAbs</a> object.
- */
- SVGPathSegLinetoAbs createSVGPathSegLinetoAbs(in float x, in float y);
-
- /**
- * Returns a stand-alone, parentless <a>SVGPathSegLinetoRel</a> 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 <a>SVGPathSegLinetoRel</a> object.
- */
- SVGPathSegLinetoRel createSVGPathSegLinetoRel(in float x, in float y);
-
- /**
- * Returns a stand-alone, parentless <a>SVGPathSegCurvetoCubicAbs</a> 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 <a>SVGPathSegCurvetoCubicAbs</a> 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 <a>SVGPathSegCurvetoCubicRel</a> 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 <a>SVGPathSegCurvetoCubicRel</a> 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 <a>SVGPathSegCurvetoQuadraticAbs</a> 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 <a>SVGPathSegCurvetoQuadraticAbs</a> object.
- */
- SVGPathSegCurvetoQuadraticAbs createSVGPathSegCurvetoQuadraticAbs(in float x, in float y, in float x1, in float y1);
-
- /**
- * Returns a stand-alone, parentless <a>SVGPathSegCurvetoQuadraticRel</a> 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 <a>SVGPathSegCurvetoQuadraticRel</a> object.
- */
- SVGPathSegCurvetoQuadraticRel createSVGPathSegCurvetoQuadraticRel(in float x, in float y, in float x1, in float y1);
-
- /**
- * Returns a stand-alone, parentless <a>SVGPathSegArcAbs</a> 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 <a>SVGPathSegArcAbs</a> 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 <a>SVGPathSegArcRel</a> 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 <a>SVGPathSegArcRel</a> 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 <a>SVGPathSegLinetoHorizontalAbs</a> object.
- *
- * @param x The absolute X coordinate for the end point of this path segment.
- * @return A stand-alone, parentless <a>SVGPathSegLinetoHorizontalAbs</a> object.
- */
- SVGPathSegLinetoHorizontalAbs createSVGPathSegLinetoHorizontalAbs(in float x);
-
- /**
- * Returns a stand-alone, parentless <a>SVGPathSegLinetoHorizontalRel</a> object.
- *
- * @param x The relative X coordinate for the end point of this path segment.
- * @return A stand-alone, parentless <a>SVGPathSegLinetoHorizontalRel</a> object.
- */
- SVGPathSegLinetoHorizontalRel createSVGPathSegLinetoHorizontalRel(in float x);
-
- /**
- * Returns a stand-alone, parentless <a>SVGPathSegLinetoVerticalAbs</a> object.
- *
- * @param y The absolute Y coordinate for the end point of this path segment.
- * @return A stand-alone, parentless <a>SVGPathSegLinetoVerticalAbs</a> object.
- */
- SVGPathSegLinetoVerticalAbs createSVGPathSegLinetoVerticalAbs(in float y);
-
- /**
- * Returns a stand-alone, parentless <a>SVGPathSegLinetoVerticalRel</a> object.
- *
- * @param y The relative Y coordinate for the end point of this path segment.
- * @return A stand-alone, parentless <a>SVGPathSegLinetoVerticalRel</a> object.
- */
- SVGPathSegLinetoVerticalRel createSVGPathSegLinetoVerticalRel(in float y);
-
- /**
- * Returns a stand-alone, parentless <a>SVGPathSegCurvetoCubicSmoothAbs</a> 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 <a>SVGPathSegCurvetoCubicSmoothAbs</a> object.
- */
- SVGPathSegCurvetoCubicSmoothAbs createSVGPathSegCurvetoCubicSmoothAbs(in float x, in float y, in float x2, in float y2);
-
- /**
- * Returns a stand-alone, parentless <a>SVGPathSegCurvetoCubicSmoothRel</a> 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 <a>SVGPathSegCurvetoCubicSmoothRel</a> object.
- */
- SVGPathSegCurvetoCubicSmoothRel createSVGPathSegCurvetoCubicSmoothRel(in float x, in float y, in float x2, in float y2);
-
- /**
- * Returns a stand-alone, parentless <a>SVGPathSegCurvetoQuadraticSmoothAbs</a> 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 <a>SVGPathSegCurvetoQuadraticSmoothAbs</a> object.
- */
- SVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs(in float x, in float y);
-
- /**
- * Returns a stand-alone, parentless <a>SVGPathSegCurvetoQuadraticSmoothRel</a> 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 <a>SVGPathSegCurvetoQuadraticSmoothRel</a> object.
- */
- SVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel(in float x, in float y);
- };
-
- /**
- * The <a>SVGRectElement</a> interface corresponds to the <a>'rect'</a>
- * element.
- */
- interface SVGRectElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable {
-
- /**
- * Corresponds to attribute <a>'x'</a> on the given <a>'rect'</a> element.
- */
- readonly attribute SVGAnimatedLength x;
-
- /**
- * Corresponds to attribute <a>'y'</a> on the given <a>'rect'</a> element.
- */
- readonly attribute SVGAnimatedLength y;
-
- /**
- * Corresponds to attribute <a>'width'</a> on the given <a>'rect'</a> element.
- */
- readonly attribute SVGAnimatedLength width;
-
- /**
- * Corresponds to attribute <a>'height'</a> on the given <a>'rect'</a> element.
- */
- readonly attribute SVGAnimatedLength height;
-
- /**
- * Corresponds to attribute <a>'rx'</a> on the given <a>'rect'</a> element.
- */
- readonly attribute SVGAnimatedLength rx;
-
- /**
- * Corresponds to attribute <a>'ry'</a> on the given <a>'rect'</a> element.
- */
- readonly attribute SVGAnimatedLength ry;
- };
-
- /**
- * The <a>SVGCircleElement</a> interface corresponds to the <a>'circle'</a>
- * element.
- */
- interface SVGCircleElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable {
-
- /**
- * Corresponds to attribute <a>'cx'</a> on the given <a>'circle'</a> element.
- */
- readonly attribute SVGAnimatedLength cx;
-
- /**
- * Corresponds to attribute <a>'cy'</a> on the given <a>'circle'</a> element.
- */
- readonly attribute SVGAnimatedLength cy;
-
- /**
- * Corresponds to attribute <a>'r'</a> on the given <a>'circle'</a> element.
- */
- readonly attribute SVGAnimatedLength r;
- };
-
- /**
- * The <a>SVGEllipseElement</a> interface corresponds to the <a>'ellipse'</a>
- * element.
- */
- interface SVGEllipseElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable {
-
- /**
- * Corresponds to attribute <a>'cx'</a> on the given <a>'ellipse'</a> element.
- */
- readonly attribute SVGAnimatedLength cx;
-
- /**
- * Corresponds to attribute <a>'cy'</a> on the given <a>'ellipse'</a> element.
- */
- readonly attribute SVGAnimatedLength cy;
-
- /**
- * Corresponds to attribute <a>'rx'</a> on the given <a>'ellipse'</a> element.
- */
- readonly attribute SVGAnimatedLength rx;
-
- /**
- * Corresponds to attribute <a>'ry'</a> on the given <a>'ellipse'</a> element.
- */
- readonly attribute SVGAnimatedLength ry;
- };
-
- /**
- * The <a>SVGLineElement</a> interface corresponds to the <a>'line'</a>
- * element.
- */
- interface SVGLineElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable {
-
- /**
- * Corresponds to attribute <a>'x1'</a> on the given <a>'line'</a> element.
- */
- readonly attribute SVGAnimatedLength x1;
-
- /**
- * Corresponds to attribute <a>'y1'</a> on the given <a>'line'</a> element.
- */
- readonly attribute SVGAnimatedLength y1;
-
- /**
- * Corresponds to attribute <a>'x2'</a> on the given <a>'line'</a> element.
- */
- readonly attribute SVGAnimatedLength x2;
-
- /**
- * Corresponds to attribute <a>'y2'</a> on the given <a>'line'</a> element.
- */
- readonly attribute SVGAnimatedLength y2;
- };
-
- /**
- * <p>The <a>SVGAnimatedPoints</a> interface supports elements which have a
- * <span class='attr-name'>'points'</span> attribute which holds a list of
- * coordinate values and which support the ability to animate that
- * attribute.</p>
- *
- * <p>Additionally, the <span class='attr-name'>'points'</span> attribute on
- * the original element accessed via the XML DOM (e.g., using the
- * <code>getAttribute()</code> method call) will reflect any changes made to
- * <a>points</a>.</p>
- */
- interface SVGAnimatedPoints {
-
- /**
- * Provides access to the base (i.e., static) contents of the
- * <span class='attr-name'>'points'</span> attribute.
- */
- readonly attribute SVGPointList points;
-
- /**
- * Provides access to the current animated contents of the
- * <span class='attr-name'>'points'</span> 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 <a>points</a>.
- */
- readonly attribute SVGPointList animatedPoints;
- };
-
- /**
- * The <a>SVGPolylineElement</a> interface corresponds to the <a>'polyline'</a>
- * element.
- */
- interface SVGPolylineElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable,
- SVGAnimatedPoints {};
-
- /**
- * The <a>SVGPolygonElement</a> interface corresponds to the <a>'polygon'</a>
- * element.
- */
- interface SVGPolygonElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable,
- SVGAnimatedPoints {};
-
- /**
- * <p>The <a>SVGTextContentElement</a> is inherited by various text-related
- * interfaces, such as <a>SVGTextElement</a>, <a>SVGTSpanElement</a>,
- * <a>SVGTRefElement</a>, <a>SVGAltGlyphElement</a> and
- * <a>SVGTextPathElement</a>.</p>
- *
- * <p>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
- * <a>CharacterData</a> interface use UTF-16 code units as indexes and counts
- * within the character data. Thus for example, if the text content of a
- * <a>'text'</a> element is a single non-BMP character, such as U+10000, then
- * invoking <a>SVGTextContentElement::getNumberOfChars</a> on that element
- * will return 2 since there are two UTF-16 code units (the surrogate pair)
- * used to represent that one character.</p>
- */
- interface SVGTextContentElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- 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 <span class='attr-value'>'spacing'</span>.
- *
- * @defgroup lengthAdjust Types
- */
- const unsigned short LENGTHADJUST_SPACING = 1;
-
- /**
- * Corresponds to value <span class='attr-value'>'spacingAndGlyphs'</span>.
- *
- * @defgroup lengthAdjust Types
- */
- const unsigned short LENGTHADJUST_SPACINGANDGLYPHS = 2;
-
- /**
- * Corresponds to attribute <span class='attr-name'>'textLength'</span> on
- * the given element.
- */
- readonly attribute SVGAnimatedLength textLength;
-
- /**
- * Corresponds to attribute <span class='attr-name'>'lengthAdjust'</span> 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
- * <a>'tref'</a> reference, regardless of whether they will be rendered.
- * Effectively, this is equivalent to the length of the
- * <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#Node3-textContent">Node::textContent</a>
- * attribute from DOM Level 3 Core ([<a href="refs.html#ref-DOM3">DOM3</a>],
- * section 1.4), if that attribute also expanded <a>'tref'</a>
- * 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
- * <a>'letter-spacing'</a> and <a>'word-spacing'</a> and
- * adjustments due to attributes <a>'tspan/dx'</a> and <a>'tspan/dy'</a> on
- * <a>'tspan'</a> 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
- * <a>'letter-spacing'</a> and <a>'word-spacing'</a> and adjustments due to
- * attributes <a>'tspan/dx'</a> and <a>'tspan/dy'</a> on <a>'tspan'</a> 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 <var>charnum</var> or
- * <var>nchars</var> is negative or if <var>charnum</var> 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 <a>'letter-spacing'</a> and
- * <a>'word-spacing'</a> and adjustments due to attributes
- * <span class='attr-name'>'x'</span>, <span class='attr-name'>'y'</span>,
- * <span class='attr-name'>'dx'</span> and
- * <span class='attr-name'>'dy'</span>. 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 <var>charnum</var> is
- * negative or if <var>charnum</var> 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 <em>not</em> take into
- * account the effects of any inter-character adjustments to prepare for
- * the next character, such as properties
- * <a>'letter-spacing'</a> and <a>'word-spacing'</a> and adjustments due to
- * attributes <span class='attr-name'>'x'</span>,
- * <span class='attr-name'>'y'</span>, <span class='attr-name'>'dx'</span>
- * and <span class='attr-name'>'dy'</span>. 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 <var>charnum</var> is
- * negative or if <var>charnum</var> 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 <var>charnum</var> is
- * negative or if <var>charnum</var> 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
- * <a>'glyph-orientation-horizontal'</a> and
- * <a>'glyph-orientation-vertical'</a>; 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 <var>charnum</var> is
- * negative or if <var>charnum</var> 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 <var>charnum</var> or
- * <var>nchars</var> is negative or if <var>charnum</var> 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 <a>SVGTextPositioningElement</a> interface is inherited by text-related
- * interfaces: <a>SVGTextElement</a>, <a>SVGTSpanElement</a>,
- * <a>SVGTRefElement</a> and <a>SVGAltGlyphElement</a>.
- */
- interface SVGTextPositioningElement : SVGTextContentElement {
-
- /**
- * Corresponds to attribute <span class='attr-name'>'x'</span> on the
- * given element.
- */
- readonly attribute SVGAnimatedLengthList x;
-
- /**
- * Corresponds to attribute <span class='attr-name'>'y'</span> on the
- * given element.
- */
- readonly attribute SVGAnimatedLengthList y;
-
- /**
- * Corresponds to attribute <span class='attr-name'>'dx'</span> on the
- * given element.
- */
- readonly attribute SVGAnimatedLengthList dx;
-
- /**
- * Corresponds to attribute <span class='attr-name'>'dy'</span> on the
- * given element.
- */
- readonly attribute SVGAnimatedLengthList dy;
-
- /**
- * Corresponds to attribute <span class='attr-name'>'rotate'</span> on the
- * given element.
- */
- readonly attribute SVGAnimatedNumberList rotate;
- };
-
- /**
- * The <a>SVGTextElement</a> interface corresponds to the <a>'text'</a>
- * element.
- */
- interface SVGTextElement :
- SVGTextPositioningElement,
- SVGTransformable {};
-
- /**
- * The <a>SVGTSpanElement</a> interface corresponds to the <a>'tspan'</a>
- * element.
- */
- interface SVGTSpanElement : SVGTextPositioningElement {};
-
- /**
- * The <a>SVGTRefElement</a> interface corresponds to the <a>'tref'</a>
- * element.
- */
- interface SVGTRefElement :
- SVGTextPositioningElement,
- SVGURIReference {};
-
- /**
- * The <a>SVGTextPathElement</a> interface corresponds to the <a>'textPath'</a>
- * 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 <span class='attr-value'>'align'</span>.
- *
- * @defgroup textPath Method Types
- */
- const unsigned short TEXTPATH_METHODTYPE_ALIGN = 1;
-
- /**
- * Corresponds to value <span class='attr-value'>'stretch'</span>.
- *
- * @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 <span class='attr-value'>'auto'</span>.
- *
- * @defgroup textPath Spacing Types
- */
- const unsigned short TEXTPATH_SPACINGTYPE_AUTO = 1;
-
- /**
- * Corresponds to value <span class='attr-value'>'exact'</span>.
- *
- * @defgroup textPath Spacing Types
- */
- const unsigned short TEXTPATH_SPACINGTYPE_EXACT = 2;
-
- /**
- * Corresponds to attribute <a>'startOffset'</a> on the given
- * <a>'textPath'</a> element.
- */
- readonly attribute SVGAnimatedLength startOffset;
-
- /**
- * Corresponds to attribute <a>'method'</a> on the given
- * <a>'textPath'</a> element.
- */
- readonly attribute SVGAnimatedEnumeration method;
-
- /**
- * Corresponds to attribute <a>'spacing'</a> on the given
- * <a>'textPath'</a> element.
- */
- readonly attribute SVGAnimatedEnumeration spacing;
- };
-
- /**
- * The <a>SVGAltGlyphElement</a> interface corresponds to the
- * <a>'altGlyph'</a> element.
- */
- interface SVGAltGlyphElement :
- SVGTextPositioningElement,
- SVGURIReference {
-
- /**
- * Corresponds to attribute <a>'glyphRef attribute'</a> on the given
- * element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString glyphRef setraises(DOMException);
-
- /**
- * Corresponds to attribute <a>'format'</a> on the given element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString format setraises(DOMException);
- };
-
- /**
- * The <a>SVGAltGlyphDefElement</a> interface corresponds to the
- * <a>'altGlyphDef'</a> element.
- */
- interface SVGAltGlyphDefElement : SVGElement {};
-
- /**
- * The <a>SVGAltGlyphItemElement</a> interface corresponds to the
- * <a>'altGlyphItem'</a> element.
- */
- interface SVGAltGlyphItemElement : SVGElement {};
-
- /**
- * The <a>SVGGlyphRefElement</a> interface corresponds to the
- * <a>'glyphRef element'</a> element.
- */
- interface SVGGlyphRefElement :
- SVGElement,
- SVGURIReference,
- SVGStylable {
-
- /**
- * Corresponds to attribute <a>'glyphRef attribute'</a> on the given
- * element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString glyphRef setraises(DOMException);
-
- /**
- * Corresponds to attribute <a>'format'</a> on the given element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString format setraises(DOMException);
-
- /**
- * Corresponds to attribute <a>'x'</a> on the given element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float x setraises(DOMException);
-
- /**
- * Corresponds to attribute <a>'y'</a> on the given element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float y setraises(DOMException);
-
- /**
- * Corresponds to attribute <a>'dx'</a> on the given element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float dx setraises(DOMException);
-
- /**
- * Corresponds to attribute <a>'dy'</a> on the given element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute float dy setraises(DOMException);
- };
-
- /**
- * <p>The <a>SVGPaint</a> interface corresponds to basic type
- * <a href='painting.html#SpecifyingPaint'><paint></a> and represents
- * the values of properties <a>'fill'</a> and <a>'stroke'</a>.</p>
- *
- * <p>Note: The <a>SVGPaint</a> interface is deprecated, and may be
- * dropped from future versions of the SVG specification.</p>
- */
- 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 <span class='prop-value'>none</span> value on a
- * <a href='painting.html#SpecifyingPaint'><paint></a> specification.
- *
- * @defgroup Paint Types
- */
- const unsigned short SVG_PAINTTYPE_NONE = 101;
-
- /**
- * Corresponds to a <span class='prop-value'>currentColor</span> value on a
- * <a href='painting.html#SpecifyingPaint'><paint></a> specification.
- *
- * @defgroup Paint Types
- */
- const unsigned short SVG_PAINTTYPE_CURRENTCOLOR = 102;
-
- /**
- * A URI has been specified, along with an explicit
- * <span class='prop-value'>none</span> 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 <a>paintType</a> specifies a URI, this attribute holds the URI
- * string. When the <a>paintType</a> does not specify a URI, this attribute
- * is null.
- */
- readonly attribute DOMString uri;
-
- /**
- * Sets the <a>paintType</a> to SVG_PAINTTYPE_URI_NONE and sets <a>uri</a>
- * 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
- * <var>paintType</var> requires a URI, then <var>uri</var> must be non-null;
- * otherwise, <var>uri</var> must be null. If
- * <var>paintType</var> requires an <a>RGBColor</a>, then <var>rgbColor</var> must
- * be a string that matches <a href='types.html#DataTypeColor'><color></a>;
- * otherwise, <var>rgbColor</var> must be null. If <var>paintType</var>
- * requires an <a>SVGICCColor</a>, then <var>iccColor</var> must be a
- * string that matches <a href='types.html#DataTypeICCColor'><icccolor></a>;
- * otherwise, <var>iccColor</var> must be null.
- *
- * @param paintType One of the defined constants for <a>paintType</a>.
- * @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 <a>SVGMarkerElement</a> interface corresponds to the
- * <a>'marker element'</a> element.
- */
- interface SVGMarkerElement :
- SVGElement,
- SVGLangSpace,
- 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 <a>'markerUnits'</a> is
- * <span class='attr-value'>'userSpaceOnUse'</span>.
- *
- * @defgroup Marker Unit Types
- */
- const unsigned short SVG_MARKERUNITS_USERSPACEONUSE = 1;
-
- /**
- * The value of attribute <a>'markerUnits'</a> is
- * <span class='attr-value'>'strokeWidth'</span>.
- *
- * @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 <a>'orient'</a> has value
- * <span class='attr-value'>'auto'</span>.
- *
- * @defgroup Marker Orientation Types
- */
- const unsigned short SVG_MARKER_ORIENT_AUTO = 1;
-
- /**
- * Attribute <a>'orient'</a> has an angle value.
- *
- * @defgroup Marker Orientation Types
- */
- const unsigned short SVG_MARKER_ORIENT_ANGLE = 2;
-
- /**
- * Corresponds to attribute <a>'refX'</a> on the given
- * <a>'marker element'</a> element.
- */
- readonly attribute SVGAnimatedLength refX;
-
- /**
- * Corresponds to attribute <a>'refY'</a> on the given
- * <a>'marker element'</a> element.
- */
- readonly attribute SVGAnimatedLength refY;
-
- /**
- * Corresponds to attribute <a>'markerUnits'</a> on the given
- * <a>'marker element'</a> element. One of the Marker Unit Types
- * defined on this interface.
- */
- readonly attribute SVGAnimatedEnumeration markerUnits;
-
- /**
- * Corresponds to attribute <a>'markerWidth'</a> on the given
- * <a>'marker element'</a> element.
- */
- readonly attribute SVGAnimatedLength markerWidth;
-
- /**
- * Corresponds to attribute <a>'markerHeight'</a> on the given
- * <a>'marker element'</a> element.
- */
- readonly attribute SVGAnimatedLength markerHeight;
-
- /**
- * Corresponds to attribute <a>'orient'</a> on the given
- * <a>'marker element'</a> element. One of the Marker Orientation
- * Types defined on this interface.
- */
- readonly attribute SVGAnimatedEnumeration orientType;
-
- /**
- * Corresponds to attribute <a>'orient'</a> on the given
- * <a>'marker element'</a> element. If <a>markerUnits</a> is
- * SVG_MARKER_ORIENT_ANGLE, the angle value for attribute <a>'orient'</a>;
- * otherwise, it will be set to zero.
- */
- readonly attribute SVGAnimatedAngle orientAngle;
-
- /**
- * Sets the value of attribute <a>'orient'</a> to
- * <span class='attr-value'>'auto'</span>.
- *
- * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- void setOrientToAuto() raises(DOMException);
-
- /**
- * Sets the value of attribute <a>'orient'</a> to the given angle.
- *
- * @param angle The angle value to use for attribute <a>'orient'</a>.
- * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- void setOrientToAngle(in SVGAngle angle) raises(DOMException);
- };
-
- /**
- * The <a>SVGColorProfileElement</a> interface corresponds to the
- * <a>'color-profile element'</a> element.
- */
- interface SVGColorProfileElement :
- SVGElement,
- SVGURIReference,
- SVGRenderingIntent {
-
- /**
- * Corresponds to attribute <a>'local'</a> on the given element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString local;
-
- /**
- * Corresponds to attribute <a>'name'</a> on the given element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString name;
-
- /**
- * Corresponds to attribute <a>'rendering-intent'</a> on the given element.
- * The value of this attribute is the value of the the RENDERING_INTENT_*
- * constant defined on <a>SVGRenderingIntent</a> that corresponds to the
- * value of the <a>'rendering-intent'</a> attribute.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute unsigned short renderingIntent;
- };
-
- /**
- * <p>The <a>SVGColorProfileRule</a> 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.</p>
- *
- * <p>Support for the <a>SVGColorProfileRule</a> interface is only required
- * in user agents that support <a href='styling.html#StylingWithCSS'>styling with CSS</a>.</p>
- */
- interface SVGColorProfileRule :
- SVGCSSRule,
- SVGRenderingIntent {
-
- /**
- * Corresponds to descriptor <span class='property'>src</span> within an
- * @color-profile rule.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString src setraises(DOMException);
-
- /**
- * Corresponds to descriptor <span class='property'>'name'</span> within an
- * @color-profile rule.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString name setraises(DOMException);
-
- /**
- * The type of rendering intent, identified by one of the
- * <a>SVGRenderingIntent</a> constants.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute unsigned short renderingIntent setraises(DOMException);
- };
-
- /**
- * The <a>SVGSolidColorElement</a> interface correspond to the
- * <a>'solidColor'</a> element.
- */
- interface SVGSolidColorelement :
- SVGElement,
- SVGStylable {};
-
- /**
- * The <a>SVGGradientElement</a> interface is a base interface used by
- * <a>SVGLinearGradientElement</a> and <a>SVGRadialGradientElement</a>.
- */
- interface SVGGradientElement :
- SVGElement,
- SVGURIReference,
- 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 <span class='attr-value'>'pad'</span>.
- *
- * @defgroup Spread Method Types
- */
- const unsigned short SVG_SPREADMETHOD_PAD = 1;
-
- /**
- * Corresponds to value <span class='attr-value'>'reflect'</span>.
- *
- * @defgroup Spread Method Types
- */
- const unsigned short SVG_SPREADMETHOD_REFLECT = 2;
-
- /**
- * Corresponds to value <span class='attr-value'>'repeat'</span>.
- *
- * @defgroup Spread Method Types
- */
- const unsigned short SVG_SPREADMETHOD_REPEAT = 3;
-
- /**
- * Corresponds to attribute <span class='attr-name'>'gradientUnits'</span>
- * on the given element. Takes one of the constants defined in
- * <a>SVGUnitTypes</a>.
- */
- readonly attribute SVGAnimatedEnumeration gradientUnits;
-
- /**
- * Corresponds to attribute <span class='attr-name'>'gradientTransform'</span>
- * on the given element.
- */
- readonly attribute SVGAnimatedTransformList gradientTransform;
-
- /**
- * Corresponds to attribute <span class='attr-name'>'spreadMethod'</span>
- * on the given element. One of the Spread Method Types defined on
- * this interface.
- */
- readonly attribute SVGAnimatedEnumeration spreadMethod;
- };
-
- /**
- * The <a>SVGLinearGradientElement</a> interface corresponds to the
- * <a>'linearGradient'</a> element.
- */
- interface SVGLinearGradientElement : SVGGradientElement {
-
- /**
- * Corresponds to attribute <a>'x1'</a> on the given
- * <a>'linearGradient'</a> element.
- */
- readonly attribute SVGAnimatedLength x1;
-
- /**
- * Corresponds to attribute <a>'y1'</a> on the given
- * <a>'linearGradient'</a> element.
- */
- readonly attribute SVGAnimatedLength y1;
-
- /**
- * Corresponds to attribute <a>'x2'</a> on the given
- * <a>'linearGradient'</a> element.
- */
- readonly attribute SVGAnimatedLength x2;
-
- /**
- * Corresponds to attribute <a>'y2'</a> on the given
- * <a>'linearGradient'</a> element.
- */
- readonly attribute SVGAnimatedLength y2;
- };
-
- /**
- * The <a>SVGRadialGradientElement</a> interface corresponds to the
- * <a>'radialGradient'</a> element.
- */
- interface SVGRadialGradientElement : SVGGradientElement {
-
- /**
- * Corresponds to attribute <a>'cx'</a> on the given
- * <a>'radialGradient'</a> element.
- */
- readonly attribute SVGAnimatedLength cx;
-
- /**
- * Corresponds to attribute <a>'cy'</a> on the given
- * <a>'radialGradient'</a> element.
- */
- readonly attribute SVGAnimatedLength cy;
-
- /**
- * Corresponds to attribute <a>'r'</a> on the given
- * <a>'radialGradient'</a> element.
- */
- readonly attribute SVGAnimatedLength r;
-
- /**
- * Corresponds to attribute <a>'fx'</a> on the given
- * <a>'radialGradient'</a> element.
- */
- readonly attribute SVGAnimatedLength fx;
-
- /**
- * Corresponds to attribute <a>'fy'</a> on the given
- * <a>'radialGradient'</a> element.
- */
- readonly attribute SVGAnimatedLength fy;
-
- /**
- * Corresponds to attribute <a>'fr'</a> on the given
- * <a>'radialGradient'</a> element.
- */
- readonly attribute SVGAnimatedLength fr;
- };
-
- /**
- * The <a>SVGMeshGradientElement</a> interface corresponds to the
- * <a>'meshGradient'</a> element.
- */
- interface SVGMeshGradientElement : SVGGradientElement {
-
- /**
- * Corresponds to attribute <a>'x'</a> on the given
- * <a>'meshGradient'</a> element.
- */
- readonly attribute SVGAnimatedLength x;
-
- /**
- * Corresponds to attribute <a>'y'</a> on the given
- * <a>'meshGradient'</a> element.
- */
- readonly attribute SVGAnimatedLength y;
- };
-
- /**
- * The <a>SVGStopElement</a> interface corresponds to the <a>'stop'</a>
- * element.
- */
- interface SVGStopElement :
- SVGElement,
- SVGStylable {
-
- /**
- * Corresponds to attribute <a>'offset'</a> on the given <a>'stop'</a>
- * element.
- */
- readonly attribute SVGAnimatedNumber offset;
- };
-
- /**
- * The <a>SVGPatternElement</a> interface corresponds to the <a>'pattern'</a>
- * element.
- */
- interface SVGPatternElement :
- SVGElement,
- SVGURIReference,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGFitToViewBox,
- SVGUnitTypes {
-
- /**
- * Corresponds to attribute <a>'patternUnits'</a> on the given
- * <a>'pattern'</a> element. Takes one of the constants defined in
- * <a>SVGUnitTypes</a>.
- */
- readonly attribute SVGAnimatedEnumeration patternUnits;
-
- /**
- * Corresponds to attribute <a>'patternContentUnits'</a> on the given
- * <a>'pattern'</a> element. Takes one of the constants defined in
- * <a>SVGUnitTypes</a>.
- */
- readonly attribute SVGAnimatedEnumeration patternContentUnits;
-
- /**
- * Corresponds to attribute <a>'patternTransform'</a> on the given
- * <a>'pattern'</a> element.
- */
- readonly attribute SVGAnimatedTransformList patternTransform;
-
- /**
- * Corresponds to attribute <a>'x'</a> on the given <a>'pattern'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength x;
-
- /**
- * Corresponds to attribute <a>'y'</a> on the given <a>'pattern'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength y;
-
- /**
- * Corresponds to attribute <a>'width'</a> on the given <a>'pattern'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength width;
-
- /**
- * Corresponds to attribute <a>'height'</a> on the given <a>'pattern'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength height;
- };
-
- /**
- * The <a>SVGClipPathElement</a> interface corresponds to the
- * <a>'clipPath'</a> element.
- */
- interface SVGClipPathElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable,
- SVGUnitTypes {
-
- /**
- * Corresponds to attribute <a>'clipPathUnits'</a> on the given
- * <a>'clipPath'</a> element. Takes one of the constants defined in
- * <a>SVGUnitTypes</a>.
- */
- readonly attribute SVGAnimatedEnumeration clipPathUnits;
- };
-
-
- /**
- * The <a>SVGMaskElement</a> interface corresponds to the
- * <a>'mask element'</a> element.
- */
- interface SVGMaskElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGUnitTypes {
-
- /**
- * Corresponds to value <span class='attr-value'>'luminance'</span>.
- *
- * @defgroup Mask Types
- */
- const unsigned short SVG_MASKTYPE_LUMINANCE = 0;
-
- /**
- * Corresponds to value <span class='attr-value'>'alpha'</span>.
- *
- * @defgroup Mask Types
- */
- const unsigned short SVG_MASKTYPE_ALPHA = 1;
-
- /**
- * Corresponds to attribute <a>'maskUnits'</a> on the given
- * <a>'mask element'</a> element. Takes one of the constants defined in
- * <a>SVGUnitTypes</a>.
- */
- readonly attribute SVGAnimatedEnumeration maskUnits;
-
- /**
- * Corresponds to attribute <a>'maskContentUnits'</a> on the given
- * <a>'mask element'</a> element. Takes one of the constants defined in
- * <a>SVGUnitTypes</a>.
- */
- readonly attribute SVGAnimatedEnumeration maskContentUnits;
-
- /**
- * Corresponds to attribute <a>'maskType'</a> on the given
- * <a>'mask element'</a> element. Takes one of the Mask Types constants
- * defined in this interface.
- *
- * <div class="note">This will highly likely become a WebIDL Enum in future
- * (as soon as our toolchain supports it) so implementors are discouraged
- * from implementing this attribute for the time being.</div>
- */
- readonly attribute SVGAnimatedEnumeration maskType;
-
- /**
- * Corresponds to attribute <a>'x'</a> on the given <a>'mask element'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength x;
-
- /**
- * Corresponds to attribute <a>'y'</a> on the given <a>'mask element'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength y;
-
- /**
- * Corresponds to attribute <a>'width'</a> on the given
- * <a>'mask element'</a> element.
- */
- readonly attribute SVGAnimatedLength width;
-
- /**
- * Corresponds to attribute <a>'height'</a> on the given
- * <a>'mask element'</a> element.
- */
- readonly attribute SVGAnimatedLength height;
- };
-
- /**
- * The <a>SVGFilterElement</a> interface corresponds to the <a>'filter element'</a>
- * element.
- */
- interface SVGFilterElement :
- SVGElement,
- SVGURIReference,
- SVGLangSpace,
- SVGStylable,
- SVGUnitTypes {
-
- /**
- * Corresponds to attribute <a>'filterUnits'</a> on the given <a>'filter element'</a>
- * element. Takes one of the constants defined in <a>SVGUnitTypes</a>.
- */
- readonly attribute SVGAnimatedEnumeration filterUnits;
-
- /**
- * Corresponds to attribute <a>'primitiveUnits'</a> on the given <a>'filter element'</a>
- * element. Takes one of the constants defined in <a>SVGUnitTypes</a>.
- */
- readonly attribute SVGAnimatedEnumeration primitiveUnits;
-
- /**
- * Corresponds to attribute <a>'x'</a> on the given <a>'filter element'</a> element.
- */
- readonly attribute SVGAnimatedLength x;
-
- /**
- * Corresponds to attribute <a>'y'</a> on the given <a>'filter element'</a> element.
- */
- readonly attribute SVGAnimatedLength y;
-
- /**
- * Corresponds to attribute <a>'width'</a> on the given <a>'filter element'</a> element.
- */
- readonly attribute SVGAnimatedLength width;
-
- /**
- * Corresponds to attribute <a>'height'</a> on the given <a>'filter element'</a> element.
- */
- readonly attribute SVGAnimatedLength height;
-
- /**
- * Corresponds to attribute <a>'filterRes'</a> on the given <a>'filter element'</a>
- * element. Contains the X component of attribute <a>'filterRes'</a>.
- */
- readonly attribute SVGAnimatedInteger filterResX;
-
- /**
- * Corresponds to attribute <a>'filterRes'</a> on the given <a>'filter element'</a>
- * element. Contains the Y component (possibly computed automatically) of
- * attribute <a>'filterRes'</a>.
- */
- readonly attribute SVGAnimatedInteger filterResY;
-
- /**
- * Sets the values for attribute <a>'filterRes'</a>.
- *
- * @param filterResX The X component of attribute <a>'filterRes'</a>.
- * @param filterResY The Y component of attribute <a>'filterRes'</a>.
- * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- 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 <a>'x'</a> on the given element.
- */
- readonly attribute SVGAnimatedLength x;
-
- /**
- * Corresponds to attribute <a>'y'</a> on the given element.
- */
- readonly attribute SVGAnimatedLength y;
-
- /**
- * Corresponds to attribute <a>'width'</a> on the given element.
- */
- readonly attribute SVGAnimatedLength width;
-
- /**
- * Corresponds to attribute <a>'height'</a> on the given element.
- */
- readonly attribute SVGAnimatedLength height;
-
- /**
- * Corresponds to attribute <a>'result'</a> on the given element.
- */
- readonly attribute SVGAnimatedString result;
- };
-
- /**
- * The <a>SVGFEBlendElement</a> interface corresponds to the <a>'feBlend'</a>
- * 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 <span class="attr-value">'normal'</span>.
- *
- * @defgroup Blend Mode Types
- */
- const unsigned short SVG_FEBLEND_MODE_NORMAL = 1;
-
- /**
- * Corresponds to value <span class="attr-value">'multiply'</span>.
- *
- * @defgroup Blend Mode Types
- */
- const unsigned short SVG_FEBLEND_MODE_MULTIPLY = 2;
-
- /**
- * Corresponds to value <span class="attr-value">'screen'</span>.
- *
- * @defgroup Blend Mode Types
- */
- const unsigned short SVG_FEBLEND_MODE_SCREEN = 3;
-
- /**
- * Corresponds to value <span class="attr-value">'darken'</span>.
- *
- * @defgroup Blend Mode Types
- */
- const unsigned short SVG_FEBLEND_MODE_DARKEN = 4;
-
- /**
- * Corresponds to value <span class="attr-value">'lighten'</span>.
- *
- * @defgroup Blend Mode Types
- */
- const unsigned short SVG_FEBLEND_MODE_LIGHTEN = 5;
-
- /**
- * Corresponds to attribute <a>'in'</a> on the given <a>'feBlend'</a>
- * element.
- */
- readonly attribute SVGAnimatedString in1;
-
- /**
- * Corresponds to attribute <a>'in2'</a> on the given <a>'feBlend'</a>
- * element.
- */
- readonly attribute SVGAnimatedString in2;
-
- /**
- * Corresponds to attribute <a>'mode'</a> on the given <a>'feBlend'</a>
- * element. Takes one of the SVG_FEBLEND_MODE_* constants defined on
- * this interface.
- */
- readonly attribute SVGAnimatedEnumeration mode;
- };
-
- /**
- * The <a>SVGFEColorMatrixElement</a> interface corresponds to the
- * <a>'feColorMatrix'</a> 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 <span class="attr-value">'matrix'</span>.
- *
- * @defgroup Color Matrix Types
- */
- const unsigned short SVG_FECOLORMATRIX_TYPE_MATRIX = 1;
-
- /**
- * Corresponds to value <span class="attr-value">'saturate'</span>.
- *
- * @defgroup Color Matrix Types
- */
- const unsigned short SVG_FECOLORMATRIX_TYPE_SATURATE = 2;
-
- /**
- * Corresponds to value <span class="attr-value">'hueRotate'</span>.
- *
- * @defgroup Color Matrix Types
- */
- const unsigned short SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3;
-
- /**
- * Corresponds to value <span class="attr-value">'luminanceToAlpha'</span>.
- *
- * @defgroup Color Matrix Types
- */
- const unsigned short SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;
-
- /**
- * Corresponds to attribute <a>'in'</a> on the given <a>'feColorMatrix'</a>
- * element.
- */
- readonly attribute SVGAnimatedString in1;
-
- /**
- * Corresponds to attribute <a>'type'</a> on the given <a>'feColorMatrix'</a>
- * element. Takes one of the SVG_FECOLORMATRIX_TYPE_* constants defined
- * on this interface.
- */
- readonly attribute SVGAnimatedEnumeration type;
-
- /**
- * Corresponds to attribute <a>'values'</a> on the given <a>'feColorMatrix'</a>
- * element.
- */
- readonly attribute SVGAnimatedNumberList values;
- };
-
- /**
- * The <a>SVGFEComponentTransferElement</a> interface corresponds to the
- * <a>'feComponentTransfer'</a> element.
- */
- interface SVGFEComponentTransferElement :
- SVGElement,
- SVGFilterPrimitiveStandardAttributes {
-
- /**
- * Corresponds to attribute <a>'in'</a> on the given <a>'feComponentTransfer'</a>
- * 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 <span class="attr-value">'identity'</span>.
- *
- * @defgroup Component Transfer Types
- */
- const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1;
-
- /**
- * Corresponds to value <span class="attr-value">'table'</span>.
- *
- * @defgroup Component Transfer Types
- */
- const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2;
-
- /**
- * Corresponds to value <span class="attr-value">'discrete'</span>.
- *
- * @defgroup Component Transfer Types
- */
- const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3;
-
- /**
- * Corresponds to value <span class="attr-value">'linear'</span>.
- *
- * @defgroup Component Transfer Types
- */
- const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4;
-
- /**
- * Corresponds to value <span class="attr-value">'gamma'</span>.
- *
- * @defgroup Component Transfer Types
- */
- const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5;
-
- /**
- * Corresponds to attribute <a>'type'</a> on the given
- * element. Takes one of the SVG_FECOMPONENTTRANSFER_TYPE_* constants defined
- * on this interface.
- */
- readonly attribute SVGAnimatedEnumeration type;
-
- /**
- * Corresponds to attribute <a>'tableValues'</a> on the given element.
- */
- readonly attribute SVGAnimatedNumberList tableValues;
-
- /**
- * Corresponds to attribute <a>'slope'</a> on the given element.
- */
- readonly attribute SVGAnimatedNumber slope;
-
- /**
- * Corresponds to attribute <a>'intercept'</a> on the given element.
- */
- readonly attribute SVGAnimatedNumber intercept;
-
- /**
- * Corresponds to attribute <a>'amplitude'</a> on the given element.
- */
- readonly attribute SVGAnimatedNumber amplitude;
-
- /**
- * Corresponds to attribute <a>'exponent'</a> on the given element.
- */
- readonly attribute SVGAnimatedNumber exponent;
-
- /**
- * Corresponds to attribute <a>'offset'</a> on the given element.
- */
- readonly attribute SVGAnimatedNumber offset;
- };
-
- /**
- * The <a>SVGFEFuncRElement</a> interface corresponds to the <a>'feFuncR'</a>
- * element.
- */
- interface SVGFEFuncRElement : SVGComponentTransferFunctionElement {};
-
- /**
- * The <a>SVGFEFuncRElement</a> interface corresponds to the <a>'feFuncG'</a>
- * element.
- */
- interface SVGFEFuncGElement : SVGComponentTransferFunctionElement {};
-
- /**
- * The <a>SVGFEFuncBElement</a> interface corresponds to the <a>'feFuncB'</a>
- * element.
- */
- interface SVGFEFuncBElement : SVGComponentTransferFunctionElement {};
-
- /**
- * The <a>SVGFEFuncAElement</a> interface corresponds to the <a>'feFuncA'</a>
- * element.
- */
- interface SVGFEFuncAElement : SVGComponentTransferFunctionElement {};
-
- /**
- * The <a>SVGFECompositeElement</a> interface corresponds to the
- * <a>'feComposite'</a> 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 <span class="attr-value">'over'</span>.
- *
- * @defgroup Composite Operators
- */
- const unsigned short SVG_FECOMPOSITE_OPERATOR_OVER = 1;
-
- /**
- * Corresponds to value <span class="attr-value">'in'</span>.
- *
- * @defgroup Composite Operators
- */
- const unsigned short SVG_FECOMPOSITE_OPERATOR_IN = 2;
-
- /**
- * Corresponds to value <span class="attr-value">'out'</span>.
- *
- * @defgroup Composite Operators
- */
- const unsigned short SVG_FECOMPOSITE_OPERATOR_OUT = 3;
-
- /**
- * Corresponds to value <span class="attr-value">'atop'</span>.
- *
- * @defgroup Composite Operators
- */
- const unsigned short SVG_FECOMPOSITE_OPERATOR_ATOP = 4;
-
- /**
- * Corresponds to value <span class="attr-value">'xor'</span>.
- *
- * @defgroup Composite Operators
- */
- const unsigned short SVG_FECOMPOSITE_OPERATOR_XOR = 5;
-
- /**
- * Corresponds to value <span class="attr-value">'arithmetic'</span>.
- *
- * @defgroup Composite Operators
- */
- const unsigned short SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;
-
- /**
- * Corresponds to attribute <a>'in'</a> on the given <a>'feComposite'</a>
- * element.
- */
- readonly attribute SVGAnimatedString in1;
-
- /**
- * Corresponds to attribute <a>'in2'</a> on the given <a>'feComposite'</a>
- * element.
- */
- readonly attribute SVGAnimatedString in2;
-
- /**
- * Corresponds to attribute <a>'operator'</a> on the given <a>'feComposite'</a>
- * element. Takes one of the SVG_FECOMPOSITE_OPERATOR_* constants defined
- * on this interface.
- */
- readonly attribute SVGAnimatedEnumeration operator;
-
- /**
- * Corresponds to attribute <a>'k1'</a> on the given <a>'feComposite'</a>
- * element.
- */
- readonly attribute SVGAnimatedNumber k1;
-
- /**
- * Corresponds to attribute <a>'k2'</a> on the given <a>'feComposite'</a>
- * element.
- */
- readonly attribute SVGAnimatedNumber k2;
-
- /**
- * Corresponds to attribute <a>'k3'</a> on the given <a>'feComposite'</a>
- * element.
- */
- readonly attribute SVGAnimatedNumber k3;
-
- /**
- * Corresponds to attribute <a>'k4'</a> on the given <a>'feComposite'</a>
- * element.
- */
- readonly attribute SVGAnimatedNumber k4;
- };
-
- /**
- * The <a>SVGFEConvolveMatrixElement</a> interface corresponds to the
- * <a>'feConvolveMatrix'</a> 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 <span class="attr-value">'duplicate'</span>.
- *
- * @defgroup Edge Mode Values
- */
- const unsigned short SVG_EDGEMODE_DUPLICATE = 1;
-
- /**
- * Corresponds to value <span class="attr-value">'wrap'</span>.
- *
- * @defgroup Edge Mode Values
- */
- const unsigned short SVG_EDGEMODE_WRAP = 2;
-
- /**
- * Corresponds to value <span class="attr-value">'none'</span>.
- *
- * @defgroup Edge Mode Values
- */
- const unsigned short SVG_EDGEMODE_NONE = 3;
-
- /**
- * Corresponds to attribute <a>'in'</a> on the given
- * <a>'feConvolveMatrix'</a> element.
- */
- readonly attribute SVGAnimatedString in1;
-
- /**
- * Corresponds to attribute <a>'order'</a> on the given
- * <a>'feConvolveMatrix'</a> element.
- */
- readonly attribute SVGAnimatedInteger orderX;
-
- /**
- * Corresponds to attribute <a>'order'</a> on the given
- * <a>'feConvolveMatrix'</a> element.
- */
- readonly attribute SVGAnimatedInteger orderY;
-
- /**
- * Corresponds to attribute <a>'kernelMatrix'</a> on the given
- * <a>'feConvolveMatrix'</a> element.
- */
- readonly attribute SVGAnimatedNumberList kernelMatrix;
-
- /**
- * Corresponds to attribute <a>'divisor'</a> on the given
- * <a>'feConvolveMatrix'</a> element.
- */
- readonly attribute SVGAnimatedNumber divisor;
-
- /**
- * Corresponds to attribute <a>'bias'</a> on the given
- * <a>'feConvolveMatrix'</a> element.
- */
- readonly attribute SVGAnimatedNumber bias;
-
- /**
- * Corresponds to attribute <a>'targetX'</a> on the given
- * <a>'feConvolveMatrix'</a> element.
- */
- readonly attribute SVGAnimatedInteger targetX;
-
- /**
- * Corresponds to attribute <a>'targetY'</a> on the given
- * <a>'feConvolveMatrix'</a> element.
- */
- readonly attribute SVGAnimatedInteger targetY;
-
- /**
- * Corresponds to attribute <a>'edgeMode'</a> on the given
- * <a>'feConvolveMatrix'</a> element. Takes one of the SVG_EDGEMODE_*
- * constants defined on this interface.
- */
- readonly attribute SVGAnimatedEnumeration edgeMode;
-
- /**
- * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
- * <a>'feConvolveMatrix'</a> element.
- */
- readonly attribute SVGAnimatedNumber kernelUnitLengthX;
-
- /**
- * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
- * <a>'feConvolveMatrix'</a> element.
- */
- readonly attribute SVGAnimatedNumber kernelUnitLengthY;
-
- /**
- * Corresponds to attribute <a>'preserveAlpha'</a> on the given
- * <a>'feConvolveMatrix'</a> element.
- */
- readonly attribute SVGAnimatedBoolean preserveAlpha;
- };
-
- /**
- * The <a>SVGFEDiffuseLightingElement</a> interface corresponds to the
- * <a>'feDiffuseLighting'</a> element.
- */
- interface SVGFEDiffuseLightingElement :
- SVGElement,
- SVGFilterPrimitiveStandardAttributes {
-
- /**
- * Corresponds to attribute <a>'in'</a> on the given <a>'feDiffuseLighting'</a>
- * element.
- */
- readonly attribute SVGAnimatedString in1;
-
- /**
- * Corresponds to attribute <a>'surfaceScale'</a> on the given
- * <a>'feDiffuseLighting'</a> element.
- */
- readonly attribute SVGAnimatedNumber surfaceScale;
-
- /**
- * Corresponds to attribute <a>'diffuseConstant'</a> on the given
- * <a>'feDiffuseLighting'</a> element.
- */
- readonly attribute SVGAnimatedNumber diffuseConstant;
-
- /**
- * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
- * <a>'feDiffuseLighting'</a> element.
- */
- readonly attribute SVGAnimatedNumber kernelUnitLengthX;
-
- /**
- * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
- * <a>'feDiffuseLighting'</a> element.
- */
- readonly attribute SVGAnimatedNumber kernelUnitLengthY;
- };
-
- /**
- * The <a>SVGFEDistantLightElement</a> interface corresponds to the
- * <a>'feDistantLight'</a> element.
- */
- interface SVGFEDistantLightElement : SVGElement {
-
- /**
- * Corresponds to attribute <a>'azimuth'</a> on the given
- * <a>'feDistantLight'</a> element.
- */
- readonly attribute SVGAnimatedNumber azimuth;
-
- /**
- * Corresponds to attribute <a>'elevation'</a> on the given
- * <a>'feDistantLight'</a> element.
- */
- readonly attribute SVGAnimatedNumber elevation;
- };
-
- /**
- * The <a>SVGFEPointLightElement</a> interface corresponds to the
- * <a>'fePointLight'</a> element.
- */
- interface SVGFEPointLightElement : SVGElement {
-
- /**
- * Corresponds to attribute <a>'x'</a> on the given
- * <a>'fePointLight'</a> element.
- */
- readonly attribute SVGAnimatedNumber x;
-
- /**
- * Corresponds to attribute <a>'y'</a> on the given
- * <a>'fePointLight'</a> element.
- */
- readonly attribute SVGAnimatedNumber y;
-
- /**
- * Corresponds to attribute <a>'z'</a> on the given
- * <a>'fePointLight'</a> element.
- */
- readonly attribute SVGAnimatedNumber z;
- };
-
- /**
- * The <a>SVGFESpotLightElement</a> interface corresponds to the
- * <a>'feSpotLight'</a> element.
- */
- interface SVGFESpotLightElement : SVGElement {
-
- /**
- * Corresponds to attribute <a>'x'</a> on the given
- * <a>'feSpotLight'</a> element.
- */
- readonly attribute SVGAnimatedNumber x;
-
- /**
- * Corresponds to attribute <a>'y'</a> on the given
- * <a>'feSpotLight'</a> element.
- */
- readonly attribute SVGAnimatedNumber y;
-
- /**
- * Corresponds to attribute <a>'z'</a> on the given
- * <a>'feSpotLight'</a> element.
- */
- readonly attribute SVGAnimatedNumber z;
-
- /**
- * Corresponds to attribute <a>'pointsAtX'</a> on the given
- * <a>'feSpotLight'</a> element.
- */
- readonly attribute SVGAnimatedNumber pointsAtX;
-
- /**
- * Corresponds to attribute <a>'pointsAtY'</a> on the given
- * <a>'feSpotLight'</a> element.
- */
- readonly attribute SVGAnimatedNumber pointsAtY;
-
- /**
- * Corresponds to attribute <a>'pointsAtZ'</a> on the given
- * <a>'feSpotLight'</a> element.
- */
- readonly attribute SVGAnimatedNumber pointsAtZ;
-
- /**
- * Corresponds to attribute <a>'specularExponent'</a> on the given
- * <a>'feSpotLight'</a> element.
- */
- readonly attribute SVGAnimatedNumber specularExponent;
-
- /**
- * Corresponds to attribute <a>'limitingConeAngle'</a> on the given
- * <a>'feSpotLight'</a> element.
- */
- readonly attribute SVGAnimatedNumber limitingConeAngle;
- };
-
- /**
- * The <a>SVGFEDisplacementMapElement</a> interface corresponds to the
- * <a>'feDisplacementMap'</a> 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 <span class="attr-value">'R'</span>.
- *
- * @defgroup Channel Selectors
- */
- const unsigned short SVG_CHANNEL_R = 1;
-
- /**
- * Corresponds to value <span class="attr-value">'G'</span>.
- *
- * @defgroup Channel Selectors
- */
- const unsigned short SVG_CHANNEL_G = 2;
-
- /**
- * Corresponds to value <span class="attr-value">'B'</span>.
- *
- * @defgroup Channel Selectors
- */
- const unsigned short SVG_CHANNEL_B = 3;
-
- /**
- * Corresponds to value <span class="attr-value">'A'</span>.
- *
- * @defgroup Channel Selectors
- */
- const unsigned short SVG_CHANNEL_A = 4;
-
- /**
- * Corresponds to attribute <a>'in'</a> on the given <a>'feDisplacementMap'</a>
- * element.
- */
- readonly attribute SVGAnimatedString in1;
-
- /**
- * Corresponds to attribute <a>'in2'</a> on the given <a>'feDisplacementMap'</a>
- * element.
- */
- readonly attribute SVGAnimatedString in2;
-
- /**
- * Corresponds to attribute <a>'scale'</a> on the given <a>'feDisplacementMap'</a>
- * element.
- */
- readonly attribute SVGAnimatedNumber scale;
-
- /**
- * Corresponds to attribute <a>'xChannelSelector'</a> on the given
- * <a>'feDisplacementMap'</a> element. Takes one of the SVG_CHANNEL_*
- * constants defined on this interface.
- */
- readonly attribute SVGAnimatedEnumeration xChannelSelector;
-
- /**
- * Corresponds to attribute <a>'yChannelSelector'</a> on the given
- * <a>'feDisplacementMap'</a> element. Takes one of the SVG_CHANNEL_*
- * constants defined on this interface.
- */
- readonly attribute SVGAnimatedEnumeration yChannelSelector;
- };
-
- /**
- * The <a>SVGFEFloodElement</a> interface corresponds to the
- * <a>'feFlood'</a> element.
- */
- interface SVGFEFloodElement :
- SVGElement,
- SVGFilterPrimitiveStandardAttributes {
- };
-
- /**
- * The <a>SVGFEGaussianBlurElement</a> interface corresponds to the
- * <a>'feGaussianBlur'</a> element.
- */
- interface SVGFEGaussianBlurElement :
- SVGElement,
- SVGFilterPrimitiveStandardAttributes {
-
- /**
- * Corresponds to attribute <a>'in'</a> on the given
- * <a>'feGaussianBlur'</a> element.
- */
- readonly attribute SVGAnimatedString in1;
-
- /**
- * Corresponds to attribute <a>'stdDeviation'</a> on the given
- * <a>'feGaussianBlur'</a> element. Contains the X component
- * of attribute <a>'stdDeviation'</a>.
- */
- readonly attribute SVGAnimatedNumber stdDeviationX;
-
- /**
- * Corresponds to attribute <a>'stdDeviation'</a> on the given
- * <a>'feGaussianBlur'</a> element. Contains the Y component
- * (possibly computed automatically) of attribute <a>'stdDeviation'</a>.
- */
- readonly attribute SVGAnimatedNumber stdDeviationY;
-
- /**
- * Sets the values for attribute <a>'stdDeviation'</a>.
- *
- * @param stdDeviationX The X component of attribute <a>'stdDeviation'</a>.
- * @param stdDeviationY The Y component of attribute <a>'stdDeviation'</a>.
- * @raises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- void setStdDeviation(in float stdDeviationX, in float stdDeviationY) raises(DOMException);
- };
-
- /**
- * The <a>SVGFEImageElement</a> interface corresponds to the
- * <a>'feImage'</a> element.
- */
- interface SVGFEImageElement :
- SVGElement,
- SVGURIReference,
- SVGLangSpace,
- SVGFilterPrimitiveStandardAttributes {
-
- /**
- * Corresponds to attribute <a>'preserveAspectRatio'</a> on the given
- * <a>'feImage'</a> element.
- */
- readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
- };
-
- /**
- * The <a>SVGFEMergeElement</a> interface corresponds to the
- * <a>'feMerge'</a> element.
- */
- interface SVGFEMergeElement :
- SVGElement,
- SVGFilterPrimitiveStandardAttributes {};
-
- /**
- * The <a>SVGFEMergeNodeElement</a> interface corresponds to the
- * <a>'feMergeNode'</a> element.
- */
- interface SVGFEMergeNodeElement : SVGElement {
-
- /**
- * Corresponds to attribute <a>'in'</a> on the given <a>'feMergeNode'</a>
- * element.
- */
- readonly attribute SVGAnimatedString in1;
- };
-
- /**
- * The <a>SVGFEMorphologyElement</a> interface corresponds to the
- * <a>'feMorphology'</a> 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 <span class="attr-value">'erode'</span>.
- *
- * @defgroup Morphology Operators
- */
- const unsigned short SVG_MORPHOLOGY_OPERATOR_ERODE = 1;
-
- /**
- * Corresponds to value <span class="attr-value">'dilate'</span>.
- *
- * @defgroup Morphology Operators
- */
- const unsigned short SVG_MORPHOLOGY_OPERATOR_DILATE = 2;
-
- /**
- * Corresponds to attribute <a>'in'</a> on the given <a>'feMorphology'</a>
- * element.
- */
- readonly attribute SVGAnimatedString in1;
-
- /**
- * Corresponds to attribute <a>'operator'</a> on the given <a>'feMorphology'</a>
- * element. Takes one of the SVG_MORPHOLOGY_OPERATOR_* constants
- * defined on this interface.
- */
- readonly attribute SVGAnimatedEnumeration operator;
-
- /**
- * Corresponds to attribute <a>'radius'</a> on the given <a>'feMorphology'</a>
- * element.
- */
- readonly attribute SVGAnimatedNumber radiusX;
-
- /**
- * Corresponds to attribute <a>'radius'</a> on the given <a>'feMorphology'</a>
- * element.
- */
- readonly attribute SVGAnimatedNumber radiusY;
- };
-
- /**
- * The <a>SVGFEOffsetElement</a> interface corresponds to the
- * <a>'feOffset'</a> element.
- */
- interface SVGFEOffsetElement :
- SVGElement,
- SVGFilterPrimitiveStandardAttributes {
-
- /**
- * Corresponds to attribute <a>'in'</a> on the given <a>'feOffset'</a>
- * element.
- */
- readonly attribute SVGAnimatedString in1;
-
- /**
- * Corresponds to attribute <a>'dx'</a> on the given <a>'feOffset'</a>
- * element.
- */
- readonly attribute SVGAnimatedNumber dx;
-
- /**
- * Corresponds to attribute <a>'dy'</a> on the given <a>'feOffset'</a>
- * element.
- */
- readonly attribute SVGAnimatedNumber dy;
- };
-
- /**
- * The <a>SVGFESpecularLightingElement</a> interface corresponds to the
- * <a>'feSpecularLighting'</a> element.
- */
- interface SVGFESpecularLightingElement :
- SVGElement,
- SVGFilterPrimitiveStandardAttributes {
-
- /**
- * Corresponds to attribute <a>'in'</a> on the given <a>'feSpecularLighting'</a>
- * element.
- */
- readonly attribute SVGAnimatedString in1;
-
- /**
- * Corresponds to attribute <a>'surfaceScale'</a> on the given
- * <a>'feSpecularLighting'</a> element.
- */
- readonly attribute SVGAnimatedNumber surfaceScale;
-
- /**
- * Corresponds to attribute <a>'specularConstant'</a> on the given
- * <a>'feSpecularLighting'</a> element.
- */
- readonly attribute SVGAnimatedNumber specularConstant;
-
- /**
- * Corresponds to attribute <a>'specularExponent'</a> on the given
- * <a>'feSpecularLighting'</a> element.
- */
- readonly attribute SVGAnimatedNumber specularExponent;
-
- /**
- * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
- * <a>'feSpecularLighting'</a> element.
- */
- readonly attribute SVGAnimatedNumber kernelUnitLengthX;
-
- /**
- * Corresponds to attribute <a>'kernelUnitLength'</a> on the given
- * <a>'feSpecularLighting'</a> element.
- */
- readonly attribute SVGAnimatedNumber kernelUnitLengthY;
- };
-
- /**
- * The <a>SVGFETileElement</a> interface corresponds to the
- * <a>'feTile'</a> element.
- */
- interface SVGFETileElement :
- SVGElement,
- SVGFilterPrimitiveStandardAttributes {
-
- /**
- * Corresponds to attribute <a>'in'</a> on the given <a>'feTile'</a>
- * element.
- */
- readonly attribute SVGAnimatedString in1;
- };
-
- /**
- * The <a>SVGFETurbulenceElement</a> interface corresponds to the
- * <a>'feTurbulence'</a> 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 <span class="attr-value">'fractalNoise'</span>.
- *
- * @defgroup Turbulence Types
- */
- const unsigned short SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
-
- /**
- * Corresponds to value <span class="attr-value">'turbulence'</span>.
- *
- * @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 <span class="attr-value">'stitch'</span>.
- *
- * @defgroup Stitch Options
- */
- const unsigned short SVG_STITCHTYPE_STITCH = 1;
-
- /**
- * Corresponds to value <span class="attr-value">'noStitch'</span>.
- *
- * @defgroup Stitch Options
- */
- const unsigned short SVG_STITCHTYPE_NOSTITCH = 2;
-
- /**
- * Corresponds to attribute <a>'baseFrequency'</a> on the given
- * <a>'feTurbulence'</a> element. Contains the X component of the
- * <a>'baseFrequency'</a> attribute.
- */
- readonly attribute SVGAnimatedNumber baseFrequencyX;
-
- /**
- * Corresponds to attribute <a>'baseFrequency'</a> on the given
- * <a>'feTurbulence'</a> element. Contains the Y component of the
- * (possibly computed automatically) <a>'baseFrequency'</a> attribute.
- */
- readonly attribute SVGAnimatedNumber baseFrequencyY;
-
- /**
- * Corresponds to attribute <a>'numOctaves'</a> on the given
- * <a>'feTurbulence'</a> element.
- */
- readonly attribute SVGAnimatedInteger numOctaves;
-
- /**
- * Corresponds to attribute <a>'seed'</a> on the given
- * <a>'feTurbulence'</a> element.
- */
- readonly attribute SVGAnimatedNumber seed;
-
- /**
- * Corresponds to attribute <a>'stitchTiles'</a> on the given
- * <a>'feTurbulence'</a> element. Takes one of the SVG_STITCHTYPE_*
- * constants defined on this interface.
- */
- readonly attribute SVGAnimatedEnumeration stitchTiles;
-
- /**
- * Corresponds to attribute <a>'type'</a> on the given
- * <a>'feTurbulence'</a> element. Takes one of the SVG_TURBULENCE_TYPE_*
- * constants defined on this interface.
- */
- readonly attribute SVGAnimatedEnumeration type;
- };
-
- /**
- * The <a>SVGCursorElement</a> interface corresponds to the
- * <a>'cursor element'</a> element.
- */
- interface SVGCursorElement :
- SVGElement,
- SVGURIReference,
- SVGTests {
-
- /**
- * Corresponds to attribute <a>'x'</a> on the given <a>'cursor element'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength x;
-
- /**
- * Corresponds to attribute <a>'y'</a> on the given <a>'cursor element'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength y;
- };
-
- /**
- * The <a>SVGAElement</a> interface corresponds to the <a>'a'</a> element.
- */
- interface SVGAElement :
- SVGElement,
- SVGURIReference,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable {
-
- /**
- * Corresponds to attribute <a>'target'</a> on the given <a>'a'</a> element.
- */
- readonly attribute SVGAnimatedString target;
- };
-
- /**
- * The <a>SVGViewElement</a> interface corresponds to the <a>'view'</a> element.
- */
- interface SVGViewElement :
- SVGElement,
- SVGFitToViewBox,
- SVGZoomAndPan {
-
- /**
- * Corresponds to attribute <a>'viewTarget'</a> on the given <a>'view'</a>
- * element. A list of DOMString values which contain the names listed in
- * the <a>'viewTarget'</a> attribute. Each of the DOMString values can be
- * associated with the corresponding element using the getElementById()
- * method call.
- */
- readonly attribute SVGStringList viewTarget;
- };
-
- /**
- * The <a>SVGScriptElement</a> interface corresponds to the <a>'script'</a>
- * element.
- */
- interface SVGScriptElement :
- SVGElement,
- SVGURIReference {
-
- /**
- * Corresponds to attribute <a>'type'</a> on the given <a>'script'</a>
- * element.
- *
- * @setraises DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
- * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only attribute</a>.
- */
- attribute DOMString type setraises(DOMException);
- };
-
- /**
- * <p>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.</p>
- *
- * <p>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.</p>
- *
- * <p>The UI event type for a zoom event is:</p>
- *
- * <dl>
- * <dt><strong>SVGZoom</strong></dt>
- * <dd>
- * 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 <a>'svg'</a> elements. See <a href="interact.html#ZoomEvent">SVGZoom event</a>.
- * <ul>
- * <li>Bubbles: Yes</li>
- * <li>Cancelable: No</li>
- * <li>Context Info: zoomRectScreen, previousScale,
- * previousTranslate, newScale, newTranslate, screenX,
- * screenY, clientX, clientY, altKey, ctrlKey, shiftKey,
- * metaKey, relatedNode.<br/>
- * (screenX, screenY, clientX and clientY indicate the
- * center of the zoom area, with clientX and clientY in
- * viewport coordinates for the corresponding <a>'svg'</a> element. relatedNode is
- * the corresponding <a>'svg'</a>
- * element.)</li>
- * </ul>
- * </dd>
- * </dl>
- */
- interface SVGZoomEvent : events::UIEvent {
-
- /**
- * <p>The specified zoom rectangle in screen units.</p>
- *
- * <p>The <a>SVGRect</a> object is read only.</p>
- */
- readonly attribute SVGRect zoomRectScreen;
-
- /**
- * The scale factor from previous zoom operations that was in place before
- * the zoom operation occurred.
- */
- readonly attribute float previousScale;
-
- /**
- * <p>The translation values from previous zoom operations that were in
- * place before the zoom operation occurred.</p>
- *
- * <p>The <a>SVGPoint</a> object is read only.</p>
- */
- readonly attribute SVGPoint previousTranslate;
-
- /**
- * The scale factor that will be in place after the zoom operation has been processed.
- */
- readonly attribute float newScale;
-
- /**
- * <p>The translation values that will be in place after the zoom
- * operation has been processed.</p>
- *
- * <p>The <a>SVGPoint</a> object is read only.</p>
- */
- readonly attribute SVGPoint newTranslate;
- };
-
- /**
- * <p>The <a>SVGAnimationElement</a> interface is the base interface for all
- * of the animation element interfaces: <a>SVGAnimateElement</a>,
- * <a>SVGSetElement</a>, <a>SVGAnimateColorElement</a>,
- * <a>SVGAnimateMotionElement</a> and <a>SVGAnimateTransformElement</a>.</p>
- *
- * <p>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 <code>getAttribute</code>,
- * <code>setAttribute</code>, <code>getAttributeNS</code> and
- * <code>setAttributeNS</code> defined in
- * <a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/">DOM Level 2 Core</a>
- * [<a href="refs.html#ref-DOM2">DOM2</a>].</p>
- */
- interface SVGAnimationElement :
- SVGElement,
- SVGTests,
- 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);
- };
-
- /**
- * <p>The <a>SVGAnimateElement</a> interface corresponds to the <a>'animate'</a>
- * element.</p>
- *
- * <p>Object-oriented access to the attributes of the <a>'animate'</a> element
- * via the SVG DOM is not available.</p>
- */
- interface SVGAnimateElement : SVGAnimationElement, SVGStylable {};
-
- /**
- * <p>The <a>SVGSetElement</a> interface corresponds to the <a>'set'</a>
- * element.</p>
- *
- * <p>Object-oriented access to the attributes of the <a>'set'</a> element
- * via the SVG DOM is not available.</p>
- */
- interface SVGSetElement : SVGAnimationElement {};
-
- /**
- * <p>The <a>SVGAnimateMotionElement</a> interface corresponds to the
- * <a>'animateMotion'</a> element.</p>
- *
- * <p>Object-oriented access to the attributes of the <a>'animateMotion'</a>
- * element via the SVG DOM is not available.</p>
- */
- interface SVGAnimateMotionElement : SVGAnimationElement {};
-
- /**
- * <p>The <a>SVGMPathElement</a> interface corresponds to the <a>'mpath'</a>
- * element.</p>
- */
- interface SVGMPathElement :
- SVGElement,
- SVGURIReference {};
-
- /**
- * <p>The <a>SVGAnimateColorElement</a> interface corresponds to the
- * <a>'animateColor'</a> element.</p>
- *
- * <p>Object-oriented access to the attributes of the <a>'animateColor'</a>
- * element via the SVG DOM is not available.</p>
- */
- interface SVGAnimateColorElement : SVGAnimationElement, SVGStylable {};
-
- /**
- * <p>The <a>SVGAnimateTransformElement</a> interface corresponds to the
- * <a>'animateTransform'</a> element.</p>
- *
- * <p>Object-oriented access to the attributes of the
- * <a>'animateTransform'</a> element via the SVG DOM is not available.</p>
- */
- interface SVGAnimateTransformElement : SVGAnimationElement {};
-
- /**
- * <p>The <a>SVGFontElement</a> interface corresponds to the
- * <a>'font element'</a> element.</p>
- *
- * <p>Object-oriented access to the attributes of the <a>'font element'</a> element
- * via the SVG DOM is not available.</p>
- */
- interface SVGFontElement :
- SVGElement,
- SVGStylable {};
-
- /**
- * <p>The <a>SVGGlyphElement</a> interface corresponds to the
- * <a>'glyph'</a> element.</p>
- *
- * <p>Object-oriented access to the attributes of the <a>'glyph'</a> element
- * via the SVG DOM is not available.</p>
- */
- interface SVGGlyphElement :
- SVGElement,
- SVGStylable {};
-
- /**
- * <p>The <a>SVGMissingGlyphElement</a> interface corresponds to the
- * <a>'missing-glyph'</a> element.</p>
- *
- * <p>Object-oriented access to the attributes of the <a>'missing-glyph'</a> element
- * via the SVG DOM is not available.</p>
- */
- interface SVGMissingGlyphElement :
- SVGElement,
- SVGStylable {};
-
- /**
- * <p>The <a>SVGHKernElement</a> interface corresponds to the
- * <a>'hkern'</a> element.</p>
- *
- * <p>Object-oriented access to the attributes of the <a>'hkern'</a> element
- * via the SVG DOM is not available.</p>
- */
- interface SVGHKernElement : SVGElement {};
-
- /**
- * <p>The <a>SVGVKernElement</a> interface corresponds to the
- * <a>'vkern'</a> element.</p>
- *
- * <p>Object-oriented access to the attributes of the <a>'vkern'</a> element
- * via the SVG DOM is not available.</p>
- */
- interface SVGVKernElement : SVGElement {};
-
- /**
- * <p>The <a>SVGFontFaceElement</a> interface corresponds to the
- * <a>'font-face'</a> element.</p>
- *
- * <p>Object-oriented access to the attributes of the <a>'font-face'</a> element
- * via the SVG DOM is not available.</p>
- */
- interface SVGFontFaceElement : SVGElement {};
-
- /**
- * <p>The <a>SVGFontFaceSrcElement</a> interface corresponds to the
- * <a>'font-face-src'</a> element.</p>
- *
- * <p>Object-oriented access to the attributes of the <a>'font-face-src'</a> element
- * via the SVG DOM is not available.</p>
- */
- interface SVGFontFaceSrcElement : SVGElement {};
-
- /**
- * <p>The <a>SVGFontFaceUriElement</a> interface corresponds to the
- * <a>'font-face-uri'</a> element.</p>
- *
- * <p>Object-oriented access to the attributes of the <a>'font-face-uri'</a> element
- * via the SVG DOM is not available.</p>
- */
- interface SVGFontFaceUriElement : SVGElement {};
-
- /**
- * <p>The <a>SVGFontFaceFormatElement</a> interface corresponds to the
- * <a>'font-face-format'</a> element.</p>
- *
- * <p>Object-oriented access to the attributes of the <a>'font-face-format'</a> element
- * via the SVG DOM is not available.</p>
- */
- interface SVGFontFaceFormatElement : SVGElement {};
-
- /**
- * <p>The <a>SVGFontFaceNameElement</a> interface corresponds to the
- * <a>'font-face-name'</a> element.</p>
- *
- * <p>Object-oriented access to the attributes of the <a>'font-face-name'</a> element
- * via the SVG DOM is not available.</p>
- */
- interface SVGFontFaceNameElement : SVGElement {};
-
- /**
- * The <a>SVGMetadataElement</a> interface corresponds to the <a>'metadata'</a>
- * element.
- */
- interface SVGMetadataElement : SVGElement {};
-
- /**
- * The <a>SVGForeignObjectElement</a> interface corresponds to the
- * <a>'foreignObject'</a> element.
- */
- interface SVGForeignObjectElement :
- SVGElement,
- SVGTests,
- SVGLangSpace,
- SVGStylable,
- SVGTransformable {
-
- /**
- * Corresponds to attribute <a>'x'</a> on the given <a>'foreignObject'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength x;
-
- /**
- * Corresponds to attribute <a>'y'</a> on the given <a>'foreignObject'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength y;
-
- /**
- * Corresponds to attribute <a>'width'</a> on the given <a>'foreignObject'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength width;
-
- /**
- * Corresponds to attribute <a>'height'</a> on the given <a>'foreignObject'</a>
- * element.
- */
- readonly attribute SVGAnimatedLength height;
- };
-};
-
-// #endif // _SVG_IDL_