Code

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