1 // File: svg.idl
2 #ifndef _SVG_IDL_
3 #define _SVG_IDL_
6 // For access to DOM2 core
7 #include "dom.idl"
9 // For access to DOM2 events
10 #include "events.idl"
12 // For access to those parts from DOM2 CSS OM used by SVG DOM.
13 #include "css.idl"
15 // For access to those parts from DOM2 Views OM used by SVG DOM.
16 #include "views.idl"
18 // For access to the SMIL OM used by SVG DOM.
19 #include "smil.idl"
21 #pragma prefix "dom.w3c.org"
22 #pragma javaPackage "org.w3c.dom"
23 module svg
24 {
25 typedef dom::DOMString DOMString;
26 typedef dom::DOMException DOMException;
27 typedef dom::Element Element;
28 typedef dom::Document Document;
29 typedef dom::NodeList NodeList;
31 // Predeclarations
32 interface SVGElement;
33 interface SVGLangSpace;
34 interface SVGExternalResourcesRequired;
35 interface SVGTests;
36 interface SVGFitToViewBox;
37 interface SVGZoomAndPan;
38 interface SVGViewSpec;
39 interface SVGURIReference;
40 interface SVGPoint;
41 interface SVGMatrix;
42 interface SVGPreserveAspectRatio;
43 interface SVGAnimatedPreserveAspectRatio;
44 interface SVGTransformList;
45 interface SVGAnimatedTransformList;
46 interface SVGTransform;
47 interface SVGICCColor;
48 interface SVGColor;
49 interface SVGPaint;
50 interface SVGTransformable;
51 interface SVGDocument;
52 interface SVGSVGElement;
53 interface SVGElementInstance;
54 interface SVGElementInstanceList;
57 exception SVGException {
58 unsigned short code;
59 };
61 // SVGExceptionCode
62 const unsigned short SVG_WRONG_TYPE_ERR = 0;
63 const unsigned short SVG_INVALID_VALUE_ERR = 1;
64 const unsigned short SVG_MATRIX_NOT_INVERTABLE = 2;
66 interface SVGElement : Element {
67 attribute DOMString id;
68 // raises DOMException on setting
69 attribute DOMString xmlbase;
70 // raises DOMException on setting
71 readonly attribute SVGSVGElement ownerSVGElement;
72 readonly attribute SVGElement viewportElement;
73 };
75 interface SVGAnimatedBoolean {
77 attribute boolean baseVal;
78 // raises DOMException on setting
79 readonly attribute boolean animVal;
80 };
82 interface SVGAnimatedString {
84 attribute DOMString baseVal;
85 // raises DOMException on setting
86 readonly attribute DOMString animVal;
87 };
89 interface SVGStringList {
91 readonly attribute unsigned long numberOfItems;
93 void clear ( )
94 raises( DOMException );
95 DOMString initialize ( in DOMString newItem )
96 raises( DOMException, SVGException );
97 DOMString getItem ( in unsigned long index )
98 raises( DOMException );
99 DOMString insertItemBefore ( in DOMString newItem, in unsigned long index )
100 raises( DOMException, SVGException );
101 DOMString replaceItem ( in DOMString newItem, in unsigned long index )
102 raises( DOMException, SVGException );
103 DOMString removeItem ( in unsigned long index )
104 raises( DOMException );
105 DOMString appendItem ( in DOMString newItem )
106 raises( DOMException, SVGException );
107 };
109 interface SVGAnimatedEnumeration {
111 attribute unsigned short baseVal;
112 // raises DOMException on setting
113 readonly attribute unsigned short animVal;
114 };
116 interface SVGAnimatedInteger {
118 attribute long baseVal;
119 // raises DOMException on setting
120 readonly attribute long animVal;
121 };
123 interface SVGNumber {
125 attribute float value;
126 // raises DOMException on setting
127 };
129 interface SVGAnimatedNumber {
131 attribute float baseVal;
132 // raises DOMException on setting
133 readonly attribute float animVal;
134 };
136 interface SVGNumberList {
138 readonly attribute unsigned long numberOfItems;
140 void clear ( )
141 raises( DOMException );
142 SVGNumber initialize ( in SVGNumber newItem )
143 raises( DOMException, SVGException );
144 SVGNumber getItem ( in unsigned long index )
145 raises( DOMException );
146 SVGNumber insertItemBefore ( in SVGNumber newItem, in unsigned long index )
147 raises( DOMException, SVGException );
148 SVGNumber replaceItem ( in SVGNumber newItem, in unsigned long index )
149 raises( DOMException, SVGException );
150 SVGNumber removeItem ( in unsigned long index )
151 raises( DOMException );
152 SVGNumber appendItem ( in SVGNumber newItem )
153 raises( DOMException, SVGException );
154 };
156 interface SVGAnimatedNumberList {
158 readonly attribute SVGNumberList baseVal;
159 readonly attribute SVGNumberList animVal;
160 };
162 interface SVGLength {
164 // Length Unit Types
165 const unsigned short SVG_LENGTHTYPE_UNKNOWN = 0;
166 const unsigned short SVG_LENGTHTYPE_NUMBER = 1;
167 const unsigned short SVG_LENGTHTYPE_PERCENTAGE = 2;
168 const unsigned short SVG_LENGTHTYPE_EMS = 3;
169 const unsigned short SVG_LENGTHTYPE_EXS = 4;
170 const unsigned short SVG_LENGTHTYPE_PX = 5;
171 const unsigned short SVG_LENGTHTYPE_CM = 6;
172 const unsigned short SVG_LENGTHTYPE_MM = 7;
173 const unsigned short SVG_LENGTHTYPE_IN = 8;
174 const unsigned short SVG_LENGTHTYPE_PT = 9;
175 const unsigned short SVG_LENGTHTYPE_PC = 10;
177 readonly attribute unsigned short unitType;
178 attribute float value;
179 // raises DOMException on setting
180 attribute float valueInSpecifiedUnits;
181 // raises DOMException on setting
182 attribute DOMString valueAsString;
183 // raises DOMException on setting
185 void newValueSpecifiedUnits ( in unsigned short unitType, in float valueInSpecifiedUnits );
186 void convertToSpecifiedUnits ( in unsigned short unitType );
187 };
189 interface SVGAnimatedLength {
191 readonly attribute SVGLength baseVal;
192 readonly attribute SVGLength animVal;
193 };
195 interface SVGLengthList {
197 readonly attribute unsigned long numberOfItems;
199 void clear ( )
200 raises( DOMException );
201 SVGLength initialize ( in SVGLength newItem )
202 raises( DOMException, SVGException );
203 SVGLength getItem ( in unsigned long index )
204 raises( DOMException );
205 SVGLength insertItemBefore ( in SVGLength newItem, in unsigned long index )
206 raises( DOMException, SVGException );
207 SVGLength replaceItem ( in SVGLength newItem, in unsigned long index )
208 raises( DOMException, SVGException );
209 SVGLength removeItem ( in unsigned long index )
210 raises( DOMException );
211 SVGLength appendItem ( in SVGLength newItem )
212 raises( DOMException, SVGException );
213 };
215 interface SVGAnimatedLengthList {
217 readonly attribute SVGLengthList baseVal;
218 readonly attribute SVGLengthList animVal;
219 };
221 interface SVGAngle {
223 // Angle Unit Types
224 const unsigned short SVG_ANGLETYPE_UNKNOWN = 0;
225 const unsigned short SVG_ANGLETYPE_UNSPECIFIED = 1;
226 const unsigned short SVG_ANGLETYPE_DEG = 2;
227 const unsigned short SVG_ANGLETYPE_RAD = 3;
228 const unsigned short SVG_ANGLETYPE_GRAD = 4;
230 readonly attribute unsigned short unitType;
231 attribute float value;
232 // raises DOMException on setting
233 attribute float valueInSpecifiedUnits;
234 // raises DOMException on setting
235 attribute DOMString valueAsString;
236 // raises DOMException on setting
238 void newValueSpecifiedUnits ( in unsigned short unitType, in float valueInSpecifiedUnits );
239 void convertToSpecifiedUnits ( in unsigned short unitType );
240 };
242 interface SVGAnimatedAngle {
244 readonly attribute SVGAngle baseVal;
245 readonly attribute SVGAngle animVal;
246 };
248 interface SVGColor : css::CSSValue {
249 // Color Types
250 const unsigned short SVG_COLORTYPE_UNKNOWN = 0;
251 const unsigned short SVG_COLORTYPE_RGBCOLOR = 1;
252 const unsigned short SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2;
253 const unsigned short SVG_COLORTYPE_CURRENTCOLOR = 3;
255 readonly attribute unsigned short colorType;
256 readonly attribute css::RGBColor rgbColor;
257 readonly attribute SVGICCColor iccColor;
259 void setRGBColor ( in DOMString rgbColor )
260 raises( SVGException );
261 void setRGBColorICCColor ( in DOMString rgbColor, in DOMString iccColor )
262 raises( SVGException );
263 void setColor ( in unsigned short colorType, in DOMString rgbColor, in DOMString iccColor )
264 raises( SVGException );
265 };
267 interface SVGICCColor {
269 attribute DOMString colorProfile;
270 // raises DOMException on setting
271 readonly attribute SVGNumberList colors;
272 };
274 interface SVGRect {
276 attribute float x;
277 // raises DOMException on setting
278 attribute float y;
279 // raises DOMException on setting
280 attribute float width;
281 // raises DOMException on setting
282 attribute float height;
283 // raises DOMException on setting
284 };
286 interface SVGAnimatedRect {
288 readonly attribute SVGRect baseVal;
289 readonly attribute SVGRect animVal;
290 };
292 interface SVGUnitTypes {
294 // Unit Types
295 const unsigned short SVG_UNIT_TYPE_UNKNOWN = 0;
296 const unsigned short SVG_UNIT_TYPE_USERSPACEONUSE = 1;
297 const unsigned short SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2;
298 };
300 interface SVGStylable {
302 readonly attribute SVGAnimatedString className;
303 readonly attribute css::CSSStyleDeclaration style;
305 css::CSSValue getPresentationAttribute ( in DOMString name );
306 };
308 interface SVGLocatable {
310 readonly attribute SVGElement nearestViewportElement;
311 readonly attribute SVGElement farthestViewportElement;
313 SVGRect getBBox ( );
314 SVGMatrix getCTM ( );
315 SVGMatrix getScreenCTM ( );
316 SVGMatrix getTransformToElement ( in SVGElement element )
317 raises( SVGException );
318 };
320 interface SVGTransformable : SVGLocatable {
321 readonly attribute SVGAnimatedTransformList transform;
322 };
324 interface SVGTests {
326 readonly attribute SVGStringList requiredFeatures;
327 readonly attribute SVGStringList requiredExtensions;
328 readonly attribute SVGStringList systemLanguage;
330 boolean hasExtension ( in DOMString extension );
331 };
333 interface SVGLangSpace {
335 attribute DOMString xmllang;
336 // raises DOMException on setting
337 attribute DOMString xmlspace;
338 // raises DOMException on setting
339 };
341 interface SVGExternalResourcesRequired {
343 readonly attribute SVGAnimatedBoolean externalResourcesRequired;
344 };
346 interface SVGFitToViewBox {
348 readonly attribute SVGAnimatedRect viewBox;
349 readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
350 };
352 interface SVGZoomAndPan {
354 // Zoom and Pan Types
355 const unsigned short SVG_ZOOMANDPAN_UNKNOWN = 0;
356 const unsigned short SVG_ZOOMANDPAN_DISABLE = 1;
357 const unsigned short SVG_ZOOMANDPAN_MAGNIFY = 2;
359 attribute unsigned short zoomAndPan;
360 // raises DOMException on setting
361 };
363 interface SVGViewSpec :
364 SVGZoomAndPan,
365 SVGFitToViewBox {
367 readonly attribute SVGTransformList transform;
368 readonly attribute SVGElement viewTarget;
369 readonly attribute DOMString viewBoxString;
370 readonly attribute DOMString preserveAspectRatioString;
371 readonly attribute DOMString transformString;
372 readonly attribute DOMString viewTargetString;
373 };
375 interface SVGURIReference {
377 readonly attribute SVGAnimatedString href;
378 };
380 interface SVGCSSRule : css::CSSRule {
381 // Additional CSS RuleType to support ICC color specifications
382 const unsigned short COLOR_PROFILE_RULE = 7;
383 };
385 interface SVGRenderingIntent {
387 // Rendering Intent Types
388 const unsigned short RENDERING_INTENT_UNKNOWN = 0;
389 const unsigned short RENDERING_INTENT_AUTO = 1;
390 const unsigned short RENDERING_INTENT_PERCEPTUAL = 2;
391 const unsigned short RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3;
392 const unsigned short RENDERING_INTENT_SATURATION = 4;
393 const unsigned short RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5;
394 };
396 interface SVGDocument :
397 Document,
398 events::DocumentEvent {
400 readonly attribute DOMString title;
401 readonly attribute DOMString referrer;
402 readonly attribute DOMString domain;
403 readonly attribute DOMString URL;
404 readonly attribute SVGSVGElement rootElement;
405 };
407 interface SVGSVGElement :
408 SVGElement,
409 SVGTests,
410 SVGLangSpace,
411 SVGExternalResourcesRequired,
412 SVGStylable,
413 SVGLocatable,
414 SVGFitToViewBox,
415 SVGZoomAndPan,
416 events::EventTarget,
417 events::DocumentEvent,
418 css::ViewCSS,
419 css::DocumentCSS {
421 readonly attribute SVGAnimatedLength x;
422 readonly attribute SVGAnimatedLength y;
423 readonly attribute SVGAnimatedLength width;
424 readonly attribute SVGAnimatedLength height;
425 attribute DOMString contentScriptType;
426 // raises DOMException on setting
427 attribute DOMString contentStyleType;
428 // raises DOMException on setting
429 readonly attribute SVGRect viewport;
430 readonly attribute float pixelUnitToMillimeterX;
431 readonly attribute float pixelUnitToMillimeterY;
432 readonly attribute float screenPixelToMillimeterX;
433 readonly attribute float screenPixelToMillimeterY;
434 attribute boolean useCurrentView;
435 // raises DOMException on setting
436 readonly attribute SVGViewSpec currentView;
437 attribute float currentScale;
438 // raises DOMException on setting
439 readonly attribute SVGPoint currentTranslate;
441 unsigned long suspendRedraw ( in unsigned long max_wait_milliseconds );
442 void unsuspendRedraw ( in unsigned long suspend_handle_id )
443 raises( DOMException );
444 void unsuspendRedrawAll ( );
445 void forceRedraw ( );
446 void pauseAnimations ( );
447 void unpauseAnimations ( );
448 boolean animationsPaused ( );
449 float getCurrentTime ( );
450 void setCurrentTime ( in float seconds );
451 NodeList getIntersectionList ( in SVGRect rect, in SVGElement referenceElement );
452 NodeList getEnclosureList ( in SVGRect rect, in SVGElement referenceElement );
453 boolean checkIntersection ( in SVGElement element, in SVGRect rect );
454 boolean checkEnclosure ( in SVGElement element, in SVGRect rect );
455 void deselectAll ( );
456 SVGNumber createSVGNumber ( );
457 SVGLength createSVGLength ( );
458 SVGAngle createSVGAngle ( );
459 SVGPoint createSVGPoint ( );
460 SVGMatrix createSVGMatrix ( );
461 SVGRect createSVGRect ( );
462 SVGTransform createSVGTransform ( );
463 SVGTransform createSVGTransformFromMatrix ( in SVGMatrix matrix );
464 Element getElementById ( in DOMString elementId );
465 };
467 interface SVGGElement :
468 SVGElement,
469 SVGTests,
470 SVGLangSpace,
471 SVGExternalResourcesRequired,
472 SVGStylable,
473 SVGTransformable,
474 events::EventTarget {};
476 interface SVGDefsElement :
477 SVGElement,
478 SVGTests,
479 SVGLangSpace,
480 SVGExternalResourcesRequired,
481 SVGStylable,
482 SVGTransformable,
483 events::EventTarget {};
485 interface SVGDescElement :
486 SVGElement,
487 SVGLangSpace,
488 SVGStylable {};
490 interface SVGTitleElement :
491 SVGElement,
492 SVGLangSpace,
493 SVGStylable {};
495 interface SVGSymbolElement :
496 SVGElement,
497 SVGLangSpace,
498 SVGExternalResourcesRequired,
499 SVGStylable,
500 SVGFitToViewBox,
501 events::EventTarget {};
503 interface SVGUseElement :
504 SVGElement,
505 SVGURIReference,
506 SVGTests,
507 SVGLangSpace,
508 SVGExternalResourcesRequired,
509 SVGStylable,
510 SVGTransformable,
511 events::EventTarget {
513 readonly attribute SVGAnimatedLength x;
514 readonly attribute SVGAnimatedLength y;
515 readonly attribute SVGAnimatedLength width;
516 readonly attribute SVGAnimatedLength height;
517 readonly attribute SVGElementInstance instanceRoot;
518 readonly attribute SVGElementInstance animatedInstanceRoot;
519 };
521 interface SVGElementInstance : events::EventTarget {
522 readonly attribute SVGElement correspondingElement;
523 readonly attribute SVGUseElement correspondingUseElement;
524 readonly attribute SVGElementInstance parentNode;
525 readonly attribute SVGElementInstanceList childNodes;
526 readonly attribute SVGElementInstance firstChild;
527 readonly attribute SVGElementInstance lastChild;
528 readonly attribute SVGElementInstance previousSibling;
529 readonly attribute SVGElementInstance nextSibling;
530 };
532 interface SVGElementInstanceList {
534 readonly attribute unsigned long length;
536 SVGElementInstance item ( in unsigned long index );
537 };
539 interface SVGImageElement :
540 SVGElement,
541 SVGURIReference,
542 SVGTests,
543 SVGLangSpace,
544 SVGExternalResourcesRequired,
545 SVGStylable,
546 SVGTransformable,
547 events::EventTarget {
549 readonly attribute SVGAnimatedLength x;
550 readonly attribute SVGAnimatedLength y;
551 readonly attribute SVGAnimatedLength width;
552 readonly attribute SVGAnimatedLength height;
553 readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
554 };
556 interface SVGSwitchElement :
557 SVGElement,
558 SVGTests,
559 SVGLangSpace,
560 SVGExternalResourcesRequired,
561 SVGStylable,
562 SVGTransformable,
563 events::EventTarget {};
565 interface GetSVGDocument {
567 SVGDocument getSVGDocument ( )
568 raises( DOMException );
569 };
571 interface SVGStyleElement : SVGElement {
572 attribute DOMString xmlspace;
573 // raises DOMException on setting
574 attribute DOMString type;
575 // raises DOMException on setting
576 attribute DOMString media;
577 // raises DOMException on setting
578 attribute DOMString title;
579 // raises DOMException on setting
580 };
582 interface SVGPoint {
584 attribute float x;
585 // raises DOMException on setting
586 attribute float y;
587 // raises DOMException on setting
589 SVGPoint matrixTransform ( in SVGMatrix matrix );
590 };
592 interface SVGPointList {
594 readonly attribute unsigned long numberOfItems;
596 void clear ( )
597 raises( DOMException );
598 SVGPoint initialize ( in SVGPoint newItem )
599 raises( DOMException, SVGException );
600 SVGPoint getItem ( in unsigned long index )
601 raises( DOMException );
602 SVGPoint insertItemBefore ( in SVGPoint newItem, in unsigned long index )
603 raises( DOMException, SVGException );
604 SVGPoint replaceItem ( in SVGPoint newItem, in unsigned long index )
605 raises( DOMException, SVGException );
606 SVGPoint removeItem ( in unsigned long index )
607 raises( DOMException );
608 SVGPoint appendItem ( in SVGPoint newItem )
609 raises( DOMException, SVGException );
610 };
612 interface SVGMatrix {
614 attribute float a;
615 // raises DOMException on setting
616 attribute float b;
617 // raises DOMException on setting
618 attribute float c;
619 // raises DOMException on setting
620 attribute float d;
621 // raises DOMException on setting
622 attribute float e;
623 // raises DOMException on setting
624 attribute float f;
625 // raises DOMException on setting
627 SVGMatrix multiply ( in SVGMatrix secondMatrix );
628 SVGMatrix inverse ( )
629 raises( SVGException );
630 SVGMatrix translate ( in float x, in float y );
631 SVGMatrix scale ( in float scaleFactor );
632 SVGMatrix scaleNonUniform ( in float scaleFactorX, in float scaleFactorY );
633 SVGMatrix rotate ( in float angle );
634 SVGMatrix rotateFromVector ( in float x, in float y )
635 raises( SVGException );
636 SVGMatrix flipX ( );
637 SVGMatrix flipY ( );
638 SVGMatrix skewX ( in float angle );
639 SVGMatrix skewY ( in float angle );
640 };
642 interface SVGTransform {
644 // Transform Types
645 const unsigned short SVG_TRANSFORM_UNKNOWN = 0;
646 const unsigned short SVG_TRANSFORM_MATRIX = 1;
647 const unsigned short SVG_TRANSFORM_TRANSLATE = 2;
648 const unsigned short SVG_TRANSFORM_SCALE = 3;
649 const unsigned short SVG_TRANSFORM_ROTATE = 4;
650 const unsigned short SVG_TRANSFORM_SKEWX = 5;
651 const unsigned short SVG_TRANSFORM_SKEWY = 6;
653 readonly attribute unsigned short type;
654 readonly attribute SVGMatrix matrix;
655 readonly attribute float angle;
657 void setMatrix ( in SVGMatrix matrix );
658 void setTranslate ( in float tx, in float ty );
659 void setScale ( in float sx, in float sy );
660 void setRotate ( in float angle, in float cx, in float cy );
661 void setSkewX ( in float angle );
662 void setSkewY ( in float angle );
663 };
665 interface SVGTransformList {
667 readonly attribute unsigned long numberOfItems;
669 void clear ( )
670 raises( DOMException );
671 SVGTransform initialize ( in SVGTransform newItem )
672 raises( DOMException, SVGException );
673 SVGTransform getItem ( in unsigned long index )
674 raises( DOMException );
675 SVGTransform insertItemBefore ( in SVGTransform newItem, in unsigned long index )
676 raises( DOMException, SVGException );
677 SVGTransform replaceItem ( in SVGTransform newItem, in unsigned long index )
678 raises( DOMException, SVGException );
679 SVGTransform removeItem ( in unsigned long index )
680 raises( DOMException );
681 SVGTransform appendItem ( in SVGTransform newItem )
682 raises( DOMException, SVGException );
683 SVGTransform createSVGTransformFromMatrix ( in SVGMatrix matrix );
684 SVGTransform consolidate ( );
685 };
687 interface SVGAnimatedTransformList {
689 readonly attribute SVGTransformList baseVal;
690 readonly attribute SVGTransformList animVal;
691 };
693 interface SVGPreserveAspectRatio {
695 // Alignment Types
696 const unsigned short SVG_PRESERVEASPECTRATIO_UNKNOWN = 0;
697 const unsigned short SVG_PRESERVEASPECTRATIO_NONE = 1;
698 const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMIN = 2;
699 const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3;
700 const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4;
701 const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMID = 5;
702 const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMID = 6;
703 const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMID = 7;
704 const unsigned short SVG_PRESERVEASPECTRATIO_XMINYMAX = 8;
705 const unsigned short SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9;
706 const unsigned short SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10;
707 // Meet-or-slice Types
708 const unsigned short SVG_MEETORSLICE_UNKNOWN = 0;
709 const unsigned short SVG_MEETORSLICE_MEET = 1;
710 const unsigned short SVG_MEETORSLICE_SLICE = 2;
712 attribute unsigned short align;
713 // raises DOMException on setting
714 attribute unsigned short meetOrSlice;
715 // raises DOMException on setting
716 };
718 interface SVGAnimatedPreserveAspectRatio {
720 readonly attribute SVGPreserveAspectRatio baseVal;
721 readonly attribute SVGPreserveAspectRatio animVal;
722 };
724 interface SVGPathSeg {
726 // Path Segment Types
727 const unsigned short PATHSEG_UNKNOWN = 0;
728 const unsigned short PATHSEG_CLOSEPATH = 1;
729 const unsigned short PATHSEG_MOVETO_ABS = 2;
730 const unsigned short PATHSEG_MOVETO_REL = 3;
731 const unsigned short PATHSEG_LINETO_ABS = 4;
732 const unsigned short PATHSEG_LINETO_REL = 5;
733 const unsigned short PATHSEG_CURVETO_CUBIC_ABS = 6;
734 const unsigned short PATHSEG_CURVETO_CUBIC_REL = 7;
735 const unsigned short PATHSEG_CURVETO_QUADRATIC_ABS = 8;
736 const unsigned short PATHSEG_CURVETO_QUADRATIC_REL = 9;
737 const unsigned short PATHSEG_ARC_ABS = 10;
738 const unsigned short PATHSEG_ARC_REL = 11;
739 const unsigned short PATHSEG_LINETO_HORIZONTAL_ABS = 12;
740 const unsigned short PATHSEG_LINETO_HORIZONTAL_REL = 13;
741 const unsigned short PATHSEG_LINETO_VERTICAL_ABS = 14;
742 const unsigned short PATHSEG_LINETO_VERTICAL_REL = 15;
743 const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;
744 const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;
745 const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;
746 const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;
748 readonly attribute unsigned short pathSegType;
749 readonly attribute DOMString pathSegTypeAsLetter;
750 };
752 interface SVGPathSegClosePath : SVGPathSeg {};
754 interface SVGPathSegMovetoAbs : SVGPathSeg {
755 attribute float x;
756 // raises DOMException on setting
757 attribute float y;
758 // raises DOMException on setting
759 };
761 interface SVGPathSegMovetoRel : SVGPathSeg {
762 attribute float x;
763 // raises DOMException on setting
764 attribute float y;
765 // raises DOMException on setting
766 };
768 interface SVGPathSegLinetoAbs : SVGPathSeg {
769 attribute float x;
770 // raises DOMException on setting
771 attribute float y;
772 // raises DOMException on setting
773 };
775 interface SVGPathSegLinetoRel : SVGPathSeg {
776 attribute float x;
777 // raises DOMException on setting
778 attribute float y;
779 // raises DOMException on setting
780 };
782 interface SVGPathSegCurvetoCubicAbs : SVGPathSeg {
783 attribute float x;
784 // raises DOMException on setting
785 attribute float y;
786 // raises DOMException on setting
787 attribute float x1;
788 // raises DOMException on setting
789 attribute float y1;
790 // raises DOMException on setting
791 attribute float x2;
792 // raises DOMException on setting
793 attribute float y2;
794 // raises DOMException on setting
795 };
797 interface SVGPathSegCurvetoCubicRel : SVGPathSeg {
798 attribute float x;
799 // raises DOMException on setting
800 attribute float y;
801 // raises DOMException on setting
802 attribute float x1;
803 // raises DOMException on setting
804 attribute float y1;
805 // raises DOMException on setting
806 attribute float x2;
807 // raises DOMException on setting
808 attribute float y2;
809 // raises DOMException on setting
810 };
812 interface SVGPathSegCurvetoQuadraticAbs : SVGPathSeg {
813 attribute float x;
814 // raises DOMException on setting
815 attribute float y;
816 // raises DOMException on setting
817 attribute float x1;
818 // raises DOMException on setting
819 attribute float y1;
820 // raises DOMException on setting
821 };
823 interface SVGPathSegCurvetoQuadraticRel : SVGPathSeg {
824 attribute float x;
825 // raises DOMException on setting
826 attribute float y;
827 // raises DOMException on setting
828 attribute float x1;
829 // raises DOMException on setting
830 attribute float y1;
831 // raises DOMException on setting
832 };
834 interface SVGPathSegArcAbs : SVGPathSeg {
835 attribute float x;
836 // raises DOMException on setting
837 attribute float y;
838 // raises DOMException on setting
839 attribute float r1;
840 // raises DOMException on setting
841 attribute float r2;
842 // raises DOMException on setting
843 attribute float angle;
844 // raises DOMException on setting
845 attribute boolean largeArcFlag;
846 // raises DOMException on setting
847 attribute boolean sweepFlag;
848 // raises DOMException on setting
849 };
851 interface SVGPathSegArcRel : SVGPathSeg {
852 attribute float x;
853 // raises DOMException on setting
854 attribute float y;
855 // raises DOMException on setting
856 attribute float r1;
857 // raises DOMException on setting
858 attribute float r2;
859 // raises DOMException on setting
860 attribute float angle;
861 // raises DOMException on setting
862 attribute boolean largeArcFlag;
863 // raises DOMException on setting
864 attribute boolean sweepFlag;
865 // raises DOMException on setting
866 };
868 interface SVGPathSegLinetoHorizontalAbs : SVGPathSeg {
869 attribute float x;
870 // raises DOMException on setting
871 };
873 interface SVGPathSegLinetoHorizontalRel : SVGPathSeg {
874 attribute float x;
875 // raises DOMException on setting
876 };
878 interface SVGPathSegLinetoVerticalAbs : SVGPathSeg {
879 attribute float y;
880 // raises DOMException on setting
881 };
883 interface SVGPathSegLinetoVerticalRel : SVGPathSeg {
884 attribute float y;
885 // raises DOMException on setting
886 };
888 interface SVGPathSegCurvetoCubicSmoothAbs : SVGPathSeg {
889 attribute float x;
890 // raises DOMException on setting
891 attribute float y;
892 // raises DOMException on setting
893 attribute float x2;
894 // raises DOMException on setting
895 attribute float y2;
896 // raises DOMException on setting
897 };
899 interface SVGPathSegCurvetoCubicSmoothRel : SVGPathSeg {
900 attribute float x;
901 // raises DOMException on setting
902 attribute float y;
903 // raises DOMException on setting
904 attribute float x2;
905 // raises DOMException on setting
906 attribute float y2;
907 // raises DOMException on setting
908 };
910 interface SVGPathSegCurvetoQuadraticSmoothAbs : SVGPathSeg {
911 attribute float x;
912 // raises DOMException on setting
913 attribute float y;
914 // raises DOMException on setting
915 };
917 interface SVGPathSegCurvetoQuadraticSmoothRel : SVGPathSeg {
918 attribute float x;
919 // raises DOMException on setting
920 attribute float y;
921 // raises DOMException on setting
922 };
924 interface SVGPathSegList {
926 readonly attribute unsigned long numberOfItems;
928 void clear ( )
929 raises( DOMException );
930 SVGPathSeg initialize ( in SVGPathSeg newItem )
931 raises( DOMException, SVGException );
932 SVGPathSeg getItem ( in unsigned long index )
933 raises( DOMException );
934 SVGPathSeg insertItemBefore ( in SVGPathSeg newItem, in unsigned long index )
935 raises( DOMException, SVGException );
936 SVGPathSeg replaceItem ( in SVGPathSeg newItem, in unsigned long index )
937 raises( DOMException, SVGException );
938 SVGPathSeg removeItem ( in unsigned long index )
939 raises( DOMException );
940 SVGPathSeg appendItem ( in SVGPathSeg newItem )
941 raises( DOMException, SVGException );
942 };
944 interface SVGAnimatedPathData {
946 readonly attribute SVGPathSegList pathSegList;
947 readonly attribute SVGPathSegList normalizedPathSegList;
948 readonly attribute SVGPathSegList animatedPathSegList;
949 readonly attribute SVGPathSegList animatedNormalizedPathSegList;
950 };
952 interface SVGPathElement :
953 SVGElement,
954 SVGTests,
955 SVGLangSpace,
956 SVGExternalResourcesRequired,
957 SVGStylable,
958 SVGTransformable,
959 events::EventTarget,
960 SVGAnimatedPathData {
962 readonly attribute SVGAnimatedNumber pathLength;
964 float getTotalLength ( );
965 SVGPoint getPointAtLength ( in float distance );
966 unsigned long getPathSegAtLength ( in float distance );
967 SVGPathSegClosePath createSVGPathSegClosePath ( );
968 SVGPathSegMovetoAbs createSVGPathSegMovetoAbs ( in float x, in float y );
969 SVGPathSegMovetoRel createSVGPathSegMovetoRel ( in float x, in float y );
970 SVGPathSegLinetoAbs createSVGPathSegLinetoAbs ( in float x, in float y );
971 SVGPathSegLinetoRel createSVGPathSegLinetoRel ( in float x, in float y );
972 SVGPathSegCurvetoCubicAbs createSVGPathSegCurvetoCubicAbs ( in float x, in float y, in float x1, in float y1, in float x2, in float y2 );
973 SVGPathSegCurvetoCubicRel createSVGPathSegCurvetoCubicRel ( in float x, in float y, in float x1, in float y1, in float x2, in float y2 );
974 SVGPathSegCurvetoQuadraticAbs createSVGPathSegCurvetoQuadraticAbs ( in float x, in float y, in float x1, in float y1 );
975 SVGPathSegCurvetoQuadraticRel createSVGPathSegCurvetoQuadraticRel ( in float x, in float y, in float x1, in float y1 );
976 SVGPathSegArcAbs createSVGPathSegArcAbs ( in float x, in float y, in float r1, in float r2, in float angle, in boolean largeArcFlag, in boolean sweepFlag );
977 SVGPathSegArcRel createSVGPathSegArcRel ( in float x, in float y, in float r1, in float r2, in float angle, in boolean largeArcFlag, in boolean sweepFlag );
978 SVGPathSegLinetoHorizontalAbs createSVGPathSegLinetoHorizontalAbs ( in float x );
979 SVGPathSegLinetoHorizontalRel createSVGPathSegLinetoHorizontalRel ( in float x );
980 SVGPathSegLinetoVerticalAbs createSVGPathSegLinetoVerticalAbs ( in float y );
981 SVGPathSegLinetoVerticalRel createSVGPathSegLinetoVerticalRel ( in float y );
982 SVGPathSegCurvetoCubicSmoothAbs createSVGPathSegCurvetoCubicSmoothAbs ( in float x, in float y, in float x2, in float y2 );
983 SVGPathSegCurvetoCubicSmoothRel createSVGPathSegCurvetoCubicSmoothRel ( in float x, in float y, in float x2, in float y2 );
984 SVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs ( in float x, in float y );
985 SVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel ( in float x, in float y );
986 };
988 interface SVGRectElement :
989 SVGElement,
990 SVGTests,
991 SVGLangSpace,
992 SVGExternalResourcesRequired,
993 SVGStylable,
994 SVGTransformable,
995 events::EventTarget {
997 readonly attribute SVGAnimatedLength x;
998 readonly attribute SVGAnimatedLength y;
999 readonly attribute SVGAnimatedLength width;
1000 readonly attribute SVGAnimatedLength height;
1001 readonly attribute SVGAnimatedLength rx;
1002 readonly attribute SVGAnimatedLength ry;
1003 };
1005 interface SVGCircleElement :
1006 SVGElement,
1007 SVGTests,
1008 SVGLangSpace,
1009 SVGExternalResourcesRequired,
1010 SVGStylable,
1011 SVGTransformable,
1012 events::EventTarget {
1014 readonly attribute SVGAnimatedLength cx;
1015 readonly attribute SVGAnimatedLength cy;
1016 readonly attribute SVGAnimatedLength r;
1017 };
1019 interface SVGEllipseElement :
1020 SVGElement,
1021 SVGTests,
1022 SVGLangSpace,
1023 SVGExternalResourcesRequired,
1024 SVGStylable,
1025 SVGTransformable,
1026 events::EventTarget {
1028 readonly attribute SVGAnimatedLength cx;
1029 readonly attribute SVGAnimatedLength cy;
1030 readonly attribute SVGAnimatedLength rx;
1031 readonly attribute SVGAnimatedLength ry;
1032 };
1034 interface SVGLineElement :
1035 SVGElement,
1036 SVGTests,
1037 SVGLangSpace,
1038 SVGExternalResourcesRequired,
1039 SVGStylable,
1040 SVGTransformable,
1041 events::EventTarget {
1043 readonly attribute SVGAnimatedLength x1;
1044 readonly attribute SVGAnimatedLength y1;
1045 readonly attribute SVGAnimatedLength x2;
1046 readonly attribute SVGAnimatedLength y2;
1047 };
1049 interface SVGAnimatedPoints {
1051 readonly attribute SVGPointList points;
1052 readonly attribute SVGPointList animatedPoints;
1053 };
1055 interface SVGPolylineElement :
1056 SVGElement,
1057 SVGTests,
1058 SVGLangSpace,
1059 SVGExternalResourcesRequired,
1060 SVGStylable,
1061 SVGTransformable,
1062 events::EventTarget,
1063 SVGAnimatedPoints {};
1065 interface SVGPolygonElement :
1066 SVGElement,
1067 SVGTests,
1068 SVGLangSpace,
1069 SVGExternalResourcesRequired,
1070 SVGStylable,
1071 SVGTransformable,
1072 events::EventTarget,
1073 SVGAnimatedPoints {};
1075 interface SVGTextContentElement :
1076 SVGElement,
1077 SVGTests,
1078 SVGLangSpace,
1079 SVGExternalResourcesRequired,
1080 SVGStylable,
1081 events::EventTarget {
1083 // lengthAdjust Types
1084 const unsigned short LENGTHADJUST_UNKNOWN = 0;
1085 const unsigned short LENGTHADJUST_SPACING = 1;
1086 const unsigned short LENGTHADJUST_SPACINGANDGLYPHS = 2;
1088 readonly attribute SVGAnimatedLength textLength;
1089 readonly attribute SVGAnimatedEnumeration lengthAdjust;
1091 long getNumberOfChars ( );
1092 float getComputedTextLength ( );
1093 float getSubStringLength ( in unsigned long charnum, in unsigned long nchars )
1094 raises( DOMException );
1095 SVGPoint getStartPositionOfChar ( in unsigned long charnum )
1096 raises( DOMException );
1097 SVGPoint getEndPositionOfChar ( in unsigned long charnum )
1098 raises( DOMException );
1099 SVGRect getExtentOfChar ( in unsigned long charnum )
1100 raises( DOMException );
1101 float getRotationOfChar ( in unsigned long charnum )
1102 raises( DOMException );
1103 long getCharNumAtPosition ( in SVGPoint point );
1104 void selectSubString ( in unsigned long charnum, in unsigned long nchars )
1105 raises( DOMException );
1106 };
1108 interface SVGTextPositioningElement : SVGTextContentElement {
1109 readonly attribute SVGAnimatedLengthList x;
1110 readonly attribute SVGAnimatedLengthList y;
1111 readonly attribute SVGAnimatedLengthList dx;
1112 readonly attribute SVGAnimatedLengthList dy;
1113 readonly attribute SVGAnimatedNumberList rotate;
1114 };
1116 interface SVGTextElement :
1117 SVGTextPositioningElement,
1118 SVGTransformable {};
1120 interface SVGTSpanElement : SVGTextPositioningElement {};
1122 interface SVGTRefElement :
1123 SVGTextPositioningElement,
1124 SVGURIReference {};
1126 interface SVGTextPathElement :
1127 SVGTextContentElement,
1128 SVGURIReference {
1130 // textPath Method Types
1131 const unsigned short TEXTPATH_METHODTYPE_UNKNOWN = 0;
1132 const unsigned short TEXTPATH_METHODTYPE_ALIGN = 1;
1133 const unsigned short TEXTPATH_METHODTYPE_STRETCH = 2;
1134 // textPath Spacing Types
1135 const unsigned short TEXTPATH_SPACINGTYPE_UNKNOWN = 0;
1136 const unsigned short TEXTPATH_SPACINGTYPE_AUTO = 1;
1137 const unsigned short TEXTPATH_SPACINGTYPE_EXACT = 2;
1139 readonly attribute SVGAnimatedLength startOffset;
1140 readonly attribute SVGAnimatedEnumeration method;
1141 readonly attribute SVGAnimatedEnumeration spacing;
1142 };
1144 interface SVGAltGlyphElement :
1145 SVGTextPositioningElement,
1146 SVGURIReference {
1148 attribute DOMString glyphRef;
1149 // raises DOMException on setting
1150 attribute DOMString format;
1151 // raises DOMException on setting
1152 };
1154 interface SVGAltGlyphDefElement : SVGElement {};
1156 interface SVGAltGlyphItemElement : SVGElement {};
1158 interface SVGGlyphRefElement :
1159 SVGElement,
1160 SVGURIReference,
1161 SVGStylable {
1163 attribute DOMString glyphRef;
1164 // raises DOMException on setting
1165 attribute DOMString format;
1166 // raises DOMException on setting
1167 attribute float x;
1168 // raises DOMException on setting
1169 attribute float y;
1170 // raises DOMException on setting
1171 attribute float dx;
1172 // raises DOMException on setting
1173 attribute float dy;
1174 // raises DOMException on setting
1175 };
1177 interface SVGPaint : SVGColor {
1178 // Paint Types
1179 const unsigned short SVG_PAINTTYPE_UNKNOWN = 0;
1180 const unsigned short SVG_PAINTTYPE_RGBCOLOR = 1;
1181 const unsigned short SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR = 2;
1182 const unsigned short SVG_PAINTTYPE_NONE = 101;
1183 const unsigned short SVG_PAINTTYPE_CURRENTCOLOR = 102;
1184 const unsigned short SVG_PAINTTYPE_URI_NONE = 103;
1185 const unsigned short SVG_PAINTTYPE_URI_CURRENTCOLOR = 104;
1186 const unsigned short SVG_PAINTTYPE_URI_RGBCOLOR = 105;
1187 const unsigned short SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106;
1188 const unsigned short SVG_PAINTTYPE_URI = 107;
1190 readonly attribute unsigned short paintType;
1191 readonly attribute DOMString uri;
1193 void setUri ( in DOMString uri );
1194 void setPaint ( in unsigned short paintType, in DOMString uri, in DOMString rgbColor, in DOMString iccColor )
1195 raises( SVGException );
1196 };
1198 interface SVGMarkerElement :
1199 SVGElement,
1200 SVGLangSpace,
1201 SVGExternalResourcesRequired,
1202 SVGStylable,
1203 SVGFitToViewBox {
1205 // Marker Unit Types
1206 const unsigned short SVG_MARKERUNITS_UNKNOWN = 0;
1207 const unsigned short SVG_MARKERUNITS_USERSPACEONUSE = 1;
1208 const unsigned short SVG_MARKERUNITS_STROKEWIDTH = 2;
1209 // Marker Orientation Types
1210 const unsigned short SVG_MARKER_ORIENT_UNKNOWN = 0;
1211 const unsigned short SVG_MARKER_ORIENT_AUTO = 1;
1212 const unsigned short SVG_MARKER_ORIENT_ANGLE = 2;
1214 readonly attribute SVGAnimatedLength refX;
1215 readonly attribute SVGAnimatedLength refY;
1216 readonly attribute SVGAnimatedEnumeration markerUnits;
1217 readonly attribute SVGAnimatedLength markerWidth;
1218 readonly attribute SVGAnimatedLength markerHeight;
1219 readonly attribute SVGAnimatedEnumeration orientType;
1220 readonly attribute SVGAnimatedAngle orientAngle;
1222 void setOrientToAuto ( );
1223 void setOrientToAngle ( in SVGAngle angle );
1224 };
1226 interface SVGColorProfileElement :
1227 SVGElement,
1228 SVGURIReference,
1229 SVGRenderingIntent {
1231 attribute DOMString local;
1232 // raises DOMException on setting
1233 attribute DOMString name;
1234 // raises DOMException on setting
1235 attribute unsigned short renderingIntent;
1236 // raises DOMException on setting
1237 };
1239 interface SVGColorProfileRule :
1240 SVGCSSRule,
1241 SVGRenderingIntent {
1243 attribute DOMString src;
1244 // raises DOMException on setting
1245 attribute DOMString name;
1246 // raises DOMException on setting
1247 attribute unsigned short renderingIntent;
1248 // raises DOMException on setting
1249 };
1251 interface SVGGradientElement :
1252 SVGElement,
1253 SVGURIReference,
1254 SVGExternalResourcesRequired,
1255 SVGStylable,
1256 SVGUnitTypes {
1258 // Spread Method Types
1259 const unsigned short SVG_SPREADMETHOD_UNKNOWN = 0;
1260 const unsigned short SVG_SPREADMETHOD_PAD = 1;
1261 const unsigned short SVG_SPREADMETHOD_REFLECT = 2;
1262 const unsigned short SVG_SPREADMETHOD_REPEAT = 3;
1264 readonly attribute SVGAnimatedEnumeration gradientUnits;
1265 readonly attribute SVGAnimatedTransformList gradientTransform;
1266 readonly attribute SVGAnimatedEnumeration spreadMethod;
1267 };
1269 interface SVGLinearGradientElement : SVGGradientElement {
1270 readonly attribute SVGAnimatedLength x1;
1271 readonly attribute SVGAnimatedLength y1;
1272 readonly attribute SVGAnimatedLength x2;
1273 readonly attribute SVGAnimatedLength y2;
1274 };
1276 interface SVGRadialGradientElement : SVGGradientElement {
1277 readonly attribute SVGAnimatedLength cx;
1278 readonly attribute SVGAnimatedLength cy;
1279 readonly attribute SVGAnimatedLength r;
1280 readonly attribute SVGAnimatedLength fx;
1281 readonly attribute SVGAnimatedLength fy;
1282 };
1284 interface SVGStopElement :
1285 SVGElement,
1286 SVGStylable {
1288 readonly attribute SVGAnimatedNumber offset;
1289 };
1291 interface SVGPatternElement :
1292 SVGElement,
1293 SVGURIReference,
1294 SVGTests,
1295 SVGLangSpace,
1296 SVGExternalResourcesRequired,
1297 SVGStylable,
1298 SVGFitToViewBox,
1299 SVGUnitTypes {
1301 readonly attribute SVGAnimatedEnumeration patternUnits;
1302 readonly attribute SVGAnimatedEnumeration patternContentUnits;
1303 readonly attribute SVGAnimatedTransformList patternTransform;
1304 readonly attribute SVGAnimatedLength x;
1305 readonly attribute SVGAnimatedLength y;
1306 readonly attribute SVGAnimatedLength width;
1307 readonly attribute SVGAnimatedLength height;
1308 };
1310 interface SVGClipPathElement :
1311 SVGElement,
1312 SVGTests,
1313 SVGLangSpace,
1314 SVGExternalResourcesRequired,
1315 SVGStylable,
1316 SVGTransformable,
1317 SVGUnitTypes {
1319 readonly attribute SVGAnimatedEnumeration clipPathUnits;
1320 };
1322 interface SVGMaskElement :
1323 SVGElement,
1324 SVGTests,
1325 SVGLangSpace,
1326 SVGExternalResourcesRequired,
1327 SVGStylable,
1328 SVGUnitTypes {
1330 readonly attribute SVGAnimatedEnumeration maskUnits;
1331 readonly attribute SVGAnimatedEnumeration maskContentUnits;
1332 readonly attribute SVGAnimatedLength x;
1333 readonly attribute SVGAnimatedLength y;
1334 readonly attribute SVGAnimatedLength width;
1335 readonly attribute SVGAnimatedLength height;
1336 };
1338 interface SVGFilterElement :
1339 SVGElement,
1340 SVGURIReference,
1341 SVGLangSpace,
1342 SVGExternalResourcesRequired,
1343 SVGStylable,
1344 SVGUnitTypes {
1346 readonly attribute SVGAnimatedEnumeration filterUnits;
1347 readonly attribute SVGAnimatedEnumeration primitiveUnits;
1348 readonly attribute SVGAnimatedLength x;
1349 readonly attribute SVGAnimatedLength y;
1350 readonly attribute SVGAnimatedLength width;
1351 readonly attribute SVGAnimatedLength height;
1352 readonly attribute SVGAnimatedInteger filterResX;
1353 readonly attribute SVGAnimatedInteger filterResY;
1355 void setFilterRes ( in unsigned long filterResX, in unsigned long filterResY );
1356 };
1358 interface SVGFilterPrimitiveStandardAttributes : SVGStylable {
1359 readonly attribute SVGAnimatedLength x;
1360 readonly attribute SVGAnimatedLength y;
1361 readonly attribute SVGAnimatedLength width;
1362 readonly attribute SVGAnimatedLength height;
1363 readonly attribute SVGAnimatedString result;
1364 };
1366 interface SVGFEBlendElement :
1367 SVGElement,
1368 SVGFilterPrimitiveStandardAttributes {
1370 // Blend Mode Types
1371 const unsigned short SVG_FEBLEND_MODE_UNKNOWN = 0;
1372 const unsigned short SVG_FEBLEND_MODE_NORMAL = 1;
1373 const unsigned short SVG_FEBLEND_MODE_MULTIPLY = 2;
1374 const unsigned short SVG_FEBLEND_MODE_SCREEN = 3;
1375 const unsigned short SVG_FEBLEND_MODE_DARKEN = 4;
1376 const unsigned short SVG_FEBLEND_MODE_LIGHTEN = 5;
1378 readonly attribute SVGAnimatedString in1;
1379 readonly attribute SVGAnimatedString in2;
1380 readonly attribute SVGAnimatedEnumeration mode;
1381 };
1383 interface SVGFEColorMatrixElement :
1384 SVGElement,
1385 SVGFilterPrimitiveStandardAttributes {
1387 // Color Matrix Types
1388 const unsigned short SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0;
1389 const unsigned short SVG_FECOLORMATRIX_TYPE_MATRIX = 1;
1390 const unsigned short SVG_FECOLORMATRIX_TYPE_SATURATE = 2;
1391 const unsigned short SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3;
1392 const unsigned short SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4;
1394 readonly attribute SVGAnimatedString in1;
1395 readonly attribute SVGAnimatedEnumeration type;
1396 readonly attribute SVGAnimatedNumberList values;
1397 };
1399 interface SVGFEComponentTransferElement :
1400 SVGElement,
1401 SVGFilterPrimitiveStandardAttributes {
1403 readonly attribute SVGAnimatedString in1;
1404 };
1406 interface SVGComponentTransferFunctionElement : SVGElement {
1407 // Component Transfer Types
1408 const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0;
1409 const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1;
1410 const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2;
1411 const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3;
1412 const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4;
1413 const unsigned short SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5;
1415 readonly attribute SVGAnimatedEnumeration type;
1416 readonly attribute SVGAnimatedNumberList tableValues;
1417 readonly attribute SVGAnimatedNumber slope;
1418 readonly attribute SVGAnimatedNumber intercept;
1419 readonly attribute SVGAnimatedNumber amplitude;
1420 readonly attribute SVGAnimatedNumber exponent;
1421 readonly attribute SVGAnimatedNumber offset;
1422 };
1424 interface SVGFEFuncRElement : SVGComponentTransferFunctionElement {};
1426 interface SVGFEFuncGElement : SVGComponentTransferFunctionElement {};
1428 interface SVGFEFuncBElement : SVGComponentTransferFunctionElement {};
1430 interface SVGFEFuncAElement : SVGComponentTransferFunctionElement {};
1432 interface SVGFECompositeElement :
1433 SVGElement,
1434 SVGFilterPrimitiveStandardAttributes {
1436 // Composite Operators
1437 const unsigned short SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0;
1438 const unsigned short SVG_FECOMPOSITE_OPERATOR_OVER = 1;
1439 const unsigned short SVG_FECOMPOSITE_OPERATOR_IN = 2;
1440 const unsigned short SVG_FECOMPOSITE_OPERATOR_OUT = 3;
1441 const unsigned short SVG_FECOMPOSITE_OPERATOR_ATOP = 4;
1442 const unsigned short SVG_FECOMPOSITE_OPERATOR_XOR = 5;
1443 const unsigned short SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6;
1445 readonly attribute SVGAnimatedString in1;
1446 readonly attribute SVGAnimatedString in2;
1447 readonly attribute SVGAnimatedEnumeration operator;
1448 readonly attribute SVGAnimatedNumber k1;
1449 readonly attribute SVGAnimatedNumber k2;
1450 readonly attribute SVGAnimatedNumber k3;
1451 readonly attribute SVGAnimatedNumber k4;
1452 };
1454 interface SVGFEConvolveMatrixElement :
1455 SVGElement,
1456 SVGFilterPrimitiveStandardAttributes {
1458 // Edge Mode Values
1459 const unsigned short SVG_EDGEMODE_UNKNOWN = 0;
1460 const unsigned short SVG_EDGEMODE_DUPLICATE = 1;
1461 const unsigned short SVG_EDGEMODE_WRAP = 2;
1462 const unsigned short SVG_EDGEMODE_NONE = 3;
1464 readonly attribute SVGAnimatedInteger orderX;
1465 readonly attribute SVGAnimatedInteger orderY;
1466 readonly attribute SVGAnimatedNumberList kernelMatrix;
1467 readonly attribute SVGAnimatedNumber divisor;
1468 readonly attribute SVGAnimatedNumber bias;
1469 readonly attribute SVGAnimatedInteger targetX;
1470 readonly attribute SVGAnimatedInteger targetY;
1471 readonly attribute SVGAnimatedEnumeration edgeMode;
1472 readonly attribute SVGAnimatedLength kernelUnitLengthX;
1473 readonly attribute SVGAnimatedLength kernelUnitLengthY;
1474 readonly attribute SVGAnimatedBoolean preserveAlpha;
1475 };
1477 interface SVGFEDiffuseLightingElement :
1478 SVGElement,
1479 SVGFilterPrimitiveStandardAttributes {
1481 readonly attribute SVGAnimatedString in1;
1482 readonly attribute SVGAnimatedNumber surfaceScale;
1483 readonly attribute SVGAnimatedNumber diffuseConstant;
1484 };
1486 interface SVGFEDistantLightElement : SVGElement {
1487 readonly attribute SVGAnimatedNumber azimuth;
1488 readonly attribute SVGAnimatedNumber elevation;
1489 };
1491 interface SVGFEPointLightElement : SVGElement {
1492 readonly attribute SVGAnimatedNumber x;
1493 readonly attribute SVGAnimatedNumber y;
1494 readonly attribute SVGAnimatedNumber z;
1495 };
1497 interface SVGFESpotLightElement : SVGElement {
1498 readonly attribute SVGAnimatedNumber x;
1499 readonly attribute SVGAnimatedNumber y;
1500 readonly attribute SVGAnimatedNumber z;
1501 readonly attribute SVGAnimatedNumber pointsAtX;
1502 readonly attribute SVGAnimatedNumber pointsAtY;
1503 readonly attribute SVGAnimatedNumber pointsAtZ;
1504 readonly attribute SVGAnimatedNumber specularExponent;
1505 readonly attribute SVGAnimatedNumber limitingConeAngle;
1506 };
1508 interface SVGFEDisplacementMapElement :
1509 SVGElement,
1510 SVGFilterPrimitiveStandardAttributes {
1512 // Channel Selectors
1513 const unsigned short SVG_CHANNEL_UNKNOWN = 0;
1514 const unsigned short SVG_CHANNEL_R = 1;
1515 const unsigned short SVG_CHANNEL_G = 2;
1516 const unsigned short SVG_CHANNEL_B = 3;
1517 const unsigned short SVG_CHANNEL_A = 4;
1519 readonly attribute SVGAnimatedString in1;
1520 readonly attribute SVGAnimatedString in2;
1521 readonly attribute SVGAnimatedNumber scale;
1522 readonly attribute SVGAnimatedEnumeration xChannelSelector;
1523 readonly attribute SVGAnimatedEnumeration yChannelSelector;
1524 };
1526 interface SVGFEFloodElement :
1527 SVGElement,
1528 SVGFilterPrimitiveStandardAttributes {
1530 readonly attribute SVGAnimatedString in1;
1531 };
1533 interface SVGFEGaussianBlurElement :
1534 SVGElement,
1535 SVGFilterPrimitiveStandardAttributes {
1537 readonly attribute SVGAnimatedString in1;
1538 readonly attribute SVGAnimatedNumber stdDeviationX;
1539 readonly attribute SVGAnimatedNumber stdDeviationY;
1541 void setStdDeviation ( in float stdDeviationX, in float stdDeviationY );
1542 };
1544 interface SVGFEImageElement :
1545 SVGElement,
1546 SVGURIReference,
1547 SVGLangSpace,
1548 SVGExternalResourcesRequired,
1549 SVGFilterPrimitiveStandardAttributes {};
1551 interface SVGFEMergeElement :
1552 SVGElement,
1553 SVGFilterPrimitiveStandardAttributes {};
1555 interface SVGFEMergeNodeElement : SVGElement {
1556 readonly attribute SVGAnimatedString in1;
1557 };
1559 interface SVGFEMorphologyElement :
1560 SVGElement,
1561 SVGFilterPrimitiveStandardAttributes {
1563 // Morphology Operators
1564 const unsigned short SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0;
1565 const unsigned short SVG_MORPHOLOGY_OPERATOR_ERODE = 1;
1566 const unsigned short SVG_MORPHOLOGY_OPERATOR_DILATE = 2;
1568 readonly attribute SVGAnimatedString in1;
1569 readonly attribute SVGAnimatedEnumeration operator;
1570 readonly attribute SVGAnimatedLength radiusX;
1571 readonly attribute SVGAnimatedLength radiusY;
1572 };
1574 interface SVGFEOffsetElement :
1575 SVGElement,
1576 SVGFilterPrimitiveStandardAttributes {
1578 readonly attribute SVGAnimatedString in1;
1579 readonly attribute SVGAnimatedNumber dx;
1580 readonly attribute SVGAnimatedNumber dy;
1581 };
1583 interface SVGFESpecularLightingElement :
1584 SVGElement,
1585 SVGFilterPrimitiveStandardAttributes {
1587 readonly attribute SVGAnimatedString in1;
1588 readonly attribute SVGAnimatedNumber surfaceScale;
1589 readonly attribute SVGAnimatedNumber specularConstant;
1590 readonly attribute SVGAnimatedNumber specularExponent;
1591 };
1593 interface SVGFETileElement :
1594 SVGElement,
1595 SVGFilterPrimitiveStandardAttributes {
1597 readonly attribute SVGAnimatedString in1;
1598 };
1600 interface SVGFETurbulenceElement :
1601 SVGElement,
1602 SVGFilterPrimitiveStandardAttributes {
1604 // Turbulence Types
1605 const unsigned short SVG_TURBULENCE_TYPE_UNKNOWN = 0;
1606 const unsigned short SVG_TURBULENCE_TYPE_FRACTALNOISE = 1;
1607 const unsigned short SVG_TURBULENCE_TYPE_TURBULENCE = 2;
1608 // Stitch Options
1609 const unsigned short SVG_STITCHTYPE_UNKNOWN = 0;
1610 const unsigned short SVG_STITCHTYPE_STITCH = 1;
1611 const unsigned short SVG_STITCHTYPE_NOSTITCH = 2;
1613 readonly attribute SVGAnimatedNumber baseFrequencyX;
1614 readonly attribute SVGAnimatedNumber baseFrequencyY;
1615 readonly attribute SVGAnimatedInteger numOctaves;
1616 readonly attribute SVGAnimatedNumber seed;
1617 readonly attribute SVGAnimatedEnumeration stitchTiles;
1618 readonly attribute SVGAnimatedEnumeration type;
1619 };
1621 interface SVGCursorElement :
1622 SVGElement,
1623 SVGURIReference,
1624 SVGTests,
1625 SVGExternalResourcesRequired {
1627 readonly attribute SVGAnimatedLength x;
1628 readonly attribute SVGAnimatedLength y;
1629 };
1631 interface SVGAElement :
1632 SVGElement,
1633 SVGURIReference,
1634 SVGTests,
1635 SVGLangSpace,
1636 SVGExternalResourcesRequired,
1637 SVGStylable,
1638 SVGTransformable,
1639 events::EventTarget {
1641 readonly attribute SVGAnimatedString target;
1642 };
1644 interface SVGViewElement :
1645 SVGElement,
1646 SVGExternalResourcesRequired,
1647 SVGFitToViewBox,
1648 SVGZoomAndPan {
1650 readonly attribute SVGStringList viewTarget;
1651 };
1653 interface SVGScriptElement :
1654 SVGElement,
1655 SVGURIReference,
1656 SVGExternalResourcesRequired {
1658 attribute DOMString type;
1659 // raises DOMException on setting
1660 };
1662 interface SVGEvent : events::Event {};
1664 interface SVGZoomEvent : events::UIEvent {
1665 readonly attribute SVGRect zoomRectScreen;
1666 readonly attribute float previousScale;
1667 readonly attribute SVGPoint previousTranslate;
1668 readonly attribute float newScale;
1669 readonly attribute SVGPoint newTranslate;
1670 };
1672 interface SVGAnimationElement :
1673 SVGElement,
1674 SVGTests,
1675 SVGExternalResourcesRequired,
1676 smil::ElementTimeControl,
1677 events::EventTarget {
1679 readonly attribute SVGElement targetElement;
1681 float getStartTime ( );
1682 float getCurrentTime ( );
1683 float getSimpleDuration ( )
1684 raises( DOMException );
1685 };
1687 interface SVGAnimateElement : SVGAnimationElement {};
1689 interface SVGSetElement : SVGAnimationElement {};
1691 interface SVGAnimateMotionElement : SVGAnimationElement {};
1693 interface SVGMPathElement :
1694 SVGElement,
1695 SVGURIReference,
1696 SVGExternalResourcesRequired {};
1698 interface SVGAnimateColorElement : SVGAnimationElement {};
1700 interface SVGAnimateTransformElement : SVGAnimationElement {};
1702 interface SVGFontElement :
1703 SVGElement,
1704 SVGExternalResourcesRequired,
1705 SVGStylable {};
1707 interface SVGGlyphElement :
1708 SVGElement,
1709 SVGStylable {};
1711 interface SVGMissingGlyphElement :
1712 SVGElement,
1713 SVGStylable {};
1715 interface SVGHKernElement : SVGElement {};
1717 interface SVGVKernElement : SVGElement {};
1719 interface SVGFontFaceElement : SVGElement {};
1721 interface SVGFontFaceSrcElement : SVGElement {};
1723 interface SVGFontFaceUriElement : SVGElement {};
1725 interface SVGFontFaceFormatElement : SVGElement {};
1727 interface SVGFontFaceNameElement : SVGElement {};
1729 interface SVGDefinitionSrcElement : SVGElement {};
1731 interface SVGMetadataElement : SVGElement {};
1733 interface SVGForeignObjectElement :
1734 SVGElement,
1735 SVGTests,
1736 SVGLangSpace,
1737 SVGExternalResourcesRequired,
1738 SVGStylable,
1739 SVGTransformable,
1740 events::EventTarget {
1742 readonly attribute SVGAnimatedLength x;
1743 readonly attribute SVGAnimatedLength y;
1744 readonly attribute SVGAnimatedLength width;
1745 readonly attribute SVGAnimatedLength height;
1746 };
1749 };
1751 #endif // _SVG_IDL_