- From: SVG Working Group repository <cam@mcc.id.au>
- Date: Mon, 20 Aug 2012 21:57:57 -0700
- To: public-svg-wg@w3.org
details: https://svgwg.org/hg/svg2/rev/d8854f9430c4 branches: changeset: 332:d8854f9430c4 user: Cameron McCormack <cam@mcc.id.au> date: Tue Aug 21 14:58:27 2012 +1000 description: Separate svg.idl file no longer needed. diffstat: master/svg.idl | 7628 -------------------------------------------------------- 1 files changed, 0 insertions(+), 7628 deletions(-) diffs (7633 lines): diff --git a/master/svg.idl b/master/svg.idl deleted file mode 100644 --- a/master/svg.idl +++ /dev/null @@ -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_
Received on Tuesday, 21 August 2012 04:59:11 UTC