Code

Added a bunch of comments to filter effects rendering code
[inkscape.git] / src / dom / svg / svg.h
1 #ifndef __SVG_H__
2 #define __SVG_H__
4 /**
5  * Phoebe DOM Implementation.
6  *
7  * This is a C++ approximation of the W3C DOM model, which follows
8  * fairly closely the specifications in the various .idl files, copies of
9  * which are provided for reference.  Most important is this one:
10  *
11  * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
12  *
13  * Authors:
14  *   Bob Jamison
15  *
16  * Copyright (C) 2005 Bob Jamison
17  *
18  *  This library is free software; you can redistribute it and/or
19  *  modify it under the terms of the GNU Lesser General Public
20  *  License as published by the Free Software Foundation; either
21  *  version 2.1 of the License, or (at your option) any later version.
22  *
23  *  This library is distributed in the hope that it will be useful,
24  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
25  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
26  *  Lesser General Public License for more details.
27  *
28  *  You should have received a copy of the GNU Lesser General Public
29  *  License along with this library; if not, write to the Free Software
30  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
31  */
34 // For access to DOM2 core
35 #include "dom/dom.h"
37 // For access to DOM2 events
38 #include "dom/events.h"
40 // For access to those parts from DOM2 CSS OM used by SVG DOM.
41 #include "dom/css.h"
43 // For access to those parts from DOM2 Views OM used by SVG DOM.
44 #include "dom/views.h"
46 // For access to the SMIL OM used by SVG DOM.
47 #include "dom/smil.h"
51 #include "svgtypes.h"
53 #include <math.h>
57 namespace org
58 {
59 namespace w3c
60 {
61 namespace dom
62 {
63 namespace svg
64 {
67 //local definitions
68 typedef dom::DOMString DOMString;
69 typedef dom::DOMException DOMException;
70 typedef dom::Element Element;
71 typedef dom::Document Document;
72 typedef dom::NodeList NodeList;
76 class SVGSVGElement;
80 /*#########################################################################
81 ## SVGElement
82 #########################################################################*/
84 /**
85  *
86  */
87 class SVGElement : virtual public Element
88 {
89 public:
91     /**
92      *
93      */
94     virtual DOMString getId() =0;
96     /**
97      *
98      */
99     virtual void setId(const DOMString &val)
100                        throw (DOMException) =0;
102     /**
103      *
104      */
105     virtual DOMString getXmlBase() = 0;
107     /**
108      *
109      */
110     virtual void setXmlBase(const DOMString &val)
111                             throw (DOMException) = 0;
113     /**
114      *
115      */
116     virtual SVGSVGElement *getOwnerSVGElement() = 0;
118     /**
119      *
120      */
121     virtual SVGElement *getViewportElement() = 0;
124     //##################
125     //# Non-API methods
126     //##################
129     /**
130      *
131      */
132     virtual ~SVGElement() {}
135 };
139 /*#########################################################################
140 ## SVGDocument
141 #########################################################################*/
143 /**
144  *
145  */
146 class SVGDocument : virtual public Document,
147                     virtual public events::DocumentEvent
149 public:
152     /**
153      *
154      */
155     virtual DOMString getTitle() =0;
157     /**
158      *
159      */
160     virtual DOMString getReferrer() =0;
162     /**
163      *
164      */
165     virtual DOMString getDomain() =0;
167     /**
168      *
169      */
170     virtual DOMString getURL() =0;
172     /**
173      *
174      */
175     virtual SVGSVGElement *getRootElement() =0;
178     //##################
179     //# Non-API methods
180     //##################
182     /**
183      *
184      */
185     virtual ~SVGDocument() {}
187 };
191 /*#########################################################################
192 ## SVGSVGElement
193 #########################################################################*/
195 /**
196  *
197  */
198 class SVGSVGElement : virtual public SVGElement,
199                       public SVGTests,
200                       public SVGLangSpace,
201                       public SVGExternalResourcesRequired,
202                       public SVGStylable,
203                       public SVGLocatable,
204                       public SVGFitToViewBox,
205                       public SVGZoomAndPan,
206                       public events::EventTarget,
207                       public events::DocumentEvent,
208                       public css::ViewCSS,
209                       public css::DocumentCSS
211 public:
213     /**
214      *
215      */
216     virtual SVGAnimatedLength getX() =0;
218     /**
219      *
220      */
221     virtual SVGAnimatedLength getY() =0;
223     /**
224      *
225      */
226     virtual SVGAnimatedLength getWidth() =0;
228     /**
229      *
230      */
231     virtual SVGAnimatedLength getHeight() =0;
233     /**
234      *
235      */
236     virtual DOMString getContentScriptType() =0;
238     /**
239      *
240      */
241     virtual void setContentScriptType(const DOMString &val)
242                                      throw (DOMException) =0;
245     /**
246      *
247      */
248     virtual DOMString getContentStyleType() =0;
250     /**
251      *
252      */
253     virtual void setContentStyleType(const DOMString &val)
254                                      throw (DOMException) =0;
256     /**
257      *
258      */
259     virtual SVGRect getViewport() =0;
261     /**
262      *
263      */
264     virtual double getPixelUnitToMillimeterX() =0;
266     /**
267      *
268      */
269     virtual double getPixelUnitToMillimeterY() =0;
271     /**
272      *
273      */
274     virtual double getScreenPixelToMillimeterX() =0;
276     /**
277      *
278      */
279     virtual double getScreenPixelToMillimeterY() =0;
282     /**
283      *
284      */
285     virtual bool getUseCurrentView() =0;
287     /**
288      *
289      */
290     virtual void setUseCurrentView(bool val) throw (DOMException) =0;
292     /**
293      *
294      */
295     virtual SVGViewSpec getCurrentView() =0;
298     /**
299      *
300      */
301     virtual double getCurrentScale() =0;
303     /**
304      *
305      */
306     virtual void setCurrentScale(double val)
307                                  throw (DOMException) =0;
310     /**
311      *
312      */
313     virtual SVGPoint getCurrentTranslate() =0;
316     /**
317      *
318      */
319     virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds ) =0;
321     /**
322      *
323      */
324     virtual void unsuspendRedraw (unsigned long suspend_handle_id )
325                                   throw( DOMException ) =0;
327     /**
328      *
329      */
330     virtual void unsuspendRedrawAll (  ) =0;
332     /**
333      *
334      */
335     virtual void forceRedraw (  ) =0;
337     /**
338      *
339      */
340     virtual void pauseAnimations (  ) =0;
342     /**
343      *
344      */
345     virtual void unpauseAnimations (  ) =0;
347     /**
348      *
349      */
350     virtual bool animationsPaused (  ) =0;
352     /**
353      *
354      */
355     virtual double getCurrentTime (  ) =0;
357     /**
358      *
359      */
360     virtual void setCurrentTime (double seconds ) =0;
362     /**
363      *
364      */
365     virtual NodeList getIntersectionList (const SVGRect &rect,
366                                           const SVGElement *referenceElement ) =0;
368     /**
369      *
370      */
371     virtual NodeList getEnclosureList (const SVGRect &rect,
372                                        const SVGElement *referenceElement ) =0;
374     /**
375      *
376      */
377     virtual bool checkIntersection (const SVGElement *element, const SVGRect &rect ) =0;
379     /**
380      *
381      */
382     virtual bool checkEnclosure (const SVGElement *element, const SVGRect &rect ) =0;
384     /**
385      *
386      */
387     virtual void deselectAll (  ) =0;
389     /**
390      *
391      */
392     virtual SVGNumber createSVGNumber (  ) =0;
394     /**
395      *
396      */
397     virtual SVGLength createSVGLength (  ) =0;
399     /**
400      *
401      */
402     virtual SVGAngle createSVGAngle (  ) =0;
404     /**
405      *
406      */
407     virtual SVGPoint createSVGPoint (  ) =0;
409     /**
410      *
411      */
412     virtual SVGMatrix createSVGMatrix (  ) =0;
414     /**
415      *
416      */
417     virtual SVGRect createSVGRect (  ) =0;
419     /**
420      *
421      */
422     virtual SVGTransform createSVGTransform (  ) =0;
424     /**
425      *
426      */
427     virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix ) =0;
429     /**
430      *
431      */
432     virtual Element *getElementById (const DOMString& elementId ) =0;
436     //##################
437     //# Non-API methods
438     //##################
440     /**
441      *
442      */
443     virtual ~SVGSVGElement() {}
445 };
449 /*#########################################################################
450 ## SVGGElement
451 #########################################################################*/
453 /**
454  *
455  */
456 class SVGGElement : virtual public SVGElement,
457                     public SVGTests,
458                     public SVGLangSpace,
459                     public SVGExternalResourcesRequired,
460                     public SVGStylable,
461                     public SVGTransformable,
462                     public events::EventTarget
464 public:
466     //##################
467     //# Non-API methods
468     //##################
470     /**
471      *
472      */
473     virtual ~SVGGElement() {}
475 };
480 /*#########################################################################
481 ## SVGDefsElement
482 #########################################################################*/
484 /**
485  *
486  */
487 class SVGDefsElement :
488                     virtual public SVGElement,
489                     public SVGTests,
490                     public SVGLangSpace,
491                     public SVGExternalResourcesRequired,
492                     public SVGStylable,
493                     public SVGTransformable,
494                     public events::EventTarget
496 public:
498     //##################
499     //# Non-API methods
500     //##################
502     /**
503      *
504      */
505     virtual ~SVGDefsElement() {}
507 };
512 /*#########################################################################
513 ## SVGDescElement
514 #########################################################################*/
516 /**
517  *
518  */
519 class SVGDescElement :
520                     virtual public SVGElement,
521                     public SVGLangSpace,
522                     public SVGStylable
524 public:
526     //##################
527     //# Non-API methods
528     //##################
530     /**
531      *
532      */
533     virtual ~SVGDescElement() {}
535 };
540 /*#########################################################################
541 ## SVGTitleElement
542 #########################################################################*/
544 /**
545  *
546  */
547 class SVGTitleElement :
548                     virtual public SVGElement,
549                     public SVGLangSpace,
550                     public SVGStylable
552 public:
554     //##################
555     //# Non-API methods
556     //##################
558     /**
559      *
560      */
561     virtual ~SVGTitleElement() {}
563 };
568 /*#########################################################################
569 ## SVGSymbolElement
570 #########################################################################*/
572 /**
573  *
574  */
575 class SVGSymbolElement :
576                     virtual public SVGElement,
577                     public SVGLangSpace,
578                     public SVGExternalResourcesRequired,
579                     public SVGStylable,
580                     public SVGFitToViewBox,
581                     public events::EventTarget
583 public:
585     //##################
586     //# Non-API methods
587     //##################
589     /**
590      *
591      */
592     virtual ~SVGSymbolElement() {}
594 };
599 /*#########################################################################
600 ## SVGUseElement
601 #########################################################################*/
603 /**
604  *
605  */
606 class SVGUseElement :
607                     virtual public SVGElement,
608                     public SVGURIReference,
609                     public SVGTests,
610                     public SVGLangSpace,
611                     public SVGExternalResourcesRequired,
612                     public SVGStylable,
613                     public SVGTransformable,
614                     public events::EventTarget
616 public:
621     /**
622      *
623      */
624     virtual SVGAnimatedLength getX() =0;
626     /**
627      *
628      */
629     virtual SVGAnimatedLength getY() =0;
631     /**
632      *
633      */
634     virtual SVGAnimatedLength getWidth() =0;
636     /**
637      *
638      */
639     virtual SVGAnimatedLength getHeight() =0;
641     /**
642      *
643      */
644     virtual SVGElementInstance getInstanceRoot() =0;
646     /**
647      *
648      */
649     virtual SVGElementInstance getAnimatedInstanceRoot() =0;
653     //##################
654     //# Non-API methods
655     //##################
657     /**
658      *
659      */
660     virtual ~SVGUseElement() {}
662 };
670 /*#########################################################################
671 ## SVGImageElement
672 #########################################################################*/
674 /**
675  *
676  */
677 class SVGImageElement :
678                     virtual public SVGElement,
679                     public SVGURIReference,
680                     public SVGTests,
681                     public SVGLangSpace,
682                     public SVGExternalResourcesRequired,
683                     public SVGStylable,
684                     public SVGTransformable,
685                     public events::EventTarget
687 public:
690     /**
691      *
692      */
693     virtual SVGAnimatedLength getX() =0;
695     /**
696      *
697      */
698     virtual SVGAnimatedLength getY() =0;
700     /**
701      *
702      */
703     virtual SVGAnimatedLength getWidth() =0;
705     /**
706      *
707      */
708     virtual SVGAnimatedLength getHeight() =0;
711     /**
712      *
713      */
714     virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio() =0;
718     //##################
719     //# Non-API methods
720     //##################
722     /**
723      *
724      */
725     virtual ~SVGImageElement() {}
727 };
734 /*#########################################################################
735 ## SVGSwitchElement
736 #########################################################################*/
738 /**
739  *
740  */
741 class SVGSwitchElement :
742                     virtual public SVGElement,
743                     public SVGTests,
744                     public SVGLangSpace,
745                     public SVGExternalResourcesRequired,
746                     public SVGStylable,
747                     public SVGTransformable,
748                     public events::EventTarget
750 public:
752     //##################
753     //# Non-API methods
754     //##################
756     /**
757      *
758      */
759     virtual ~SVGSwitchElement() {}
761 };
766 /*#########################################################################
767 ## GetSVGDocument
768 #########################################################################*/
770 /**
771  *
772  */
773 class GetSVGDocument
775 public:
777     /**
778      *
779      */
780     virtual SVGDocument *getSVGDocument (  )
781                     throw( DOMException ) =0;
783     //##################
784     //# Non-API methods
785     //##################
787     /**
788      *
789      */
790     virtual ~GetSVGDocument() {}
792 };
799 /*#########################################################################
800 ## SVGStyleElement
801 #########################################################################*/
803 /**
804  *
805  */
806 class SVGStyleElement : virtual public SVGElement
808 public:
810     /**
811      *
812      */
813     virtual DOMString getXmlspace() = 0;
815     /**
816      *
817      */
818     virtual void setXmlspace(const DOMString &val)
819                              throw (DOMException) =0;
821     /**
822      *
823      */
824     virtual DOMString getType() = 0;
826     /**
827      *
828      */
829     virtual void setType(const DOMString &val)
830                          throw (DOMException) =0;
832     /**
833      *
834      */
835     virtual DOMString getMedia() = 0;
837     /**
838      *
839      */
840     virtual void setMedia(const DOMString &val)
841                           throw (DOMException) =0;
843     /**
844      *
845      */
846     virtual DOMString getTitle() = 0;
848     /**
849      *
850      */
851     virtual void setTitle(const DOMString &val)
852                           throw (DOMException) =0;
856     //##################
857     //# Non-API methods
858     //##################
860     /**
861      *
862      */
863     virtual ~SVGStyleElement() {}
865 };
872 /*#########################################################################
873 ## SVGPathElement
874 #########################################################################*/
876 /**
877  *
878  */
879 class SVGPathElement :
880                     virtual public SVGElement,
881                     public SVGTests,
882                     public SVGLangSpace,
883                     public SVGExternalResourcesRequired,
884                     public SVGStylable,
885                     public SVGTransformable,
886                     public events::EventTarget,
887                     public SVGAnimatedPathData
889 public:
894     /**
895      *
896      */
897     virtual SVGAnimatedNumber getPathLength() =0;
899     /**
900      *
901      */
902     virtual double getTotalLength (  ) =0;
904     /**
905      *
906      */
907     virtual SVGPoint getPointAtLength (double distance ) =0;
909     /**
910      *
911      */
912     virtual unsigned long getPathSegAtLength (double distance ) =0;
914     /**
915      *
916      */
917     virtual SVGPathSegClosePath
918               createSVGPathSegClosePath (  ) =0;
920     /**
921      *
922      */
923     virtual SVGPathSegMovetoAbs
924               createSVGPathSegMovetoAbs (double x, double y ) =0;
926     /**
927      *
928      */
929     virtual SVGPathSegMovetoRel
930               createSVGPathSegMovetoRel (double x, double y ) =0;
932     /**
933      *
934      */
935     virtual SVGPathSegLinetoAbs
936               createSVGPathSegLinetoAbs (double x, double y ) =0;
938     /**
939      *
940      */
941     virtual SVGPathSegLinetoRel
942               createSVGPathSegLinetoRel (double x, double y ) =0;
944     /**
945      *
946      */
947     virtual SVGPathSegCurvetoCubicAbs
948               createSVGPathSegCurvetoCubicAbs (double x, double y,
949                         double x1, double y1, double x2, double y2 ) =0;
951     /**
952      *
953      */
954     virtual SVGPathSegCurvetoCubicRel
955               createSVGPathSegCurvetoCubicRel (double x, double y,
956                         double x1, double y1, double x2, double y2 ) =0;
958     /**
959      *
960      */
961     virtual SVGPathSegCurvetoQuadraticAbs
962               createSVGPathSegCurvetoQuadraticAbs (double x, double y,
963                          double x1, double y1 ) =0;
965     /**
966      *
967      */
968     virtual SVGPathSegCurvetoQuadraticRel
969               createSVGPathSegCurvetoQuadraticRel (double x, double y,
970                          double x1, double y1 ) =0;
972     /**
973      *
974      */
975     virtual SVGPathSegArcAbs
976               createSVGPathSegArcAbs (double x, double y,
977                          double r1, double r2, double angle,
978                          bool largeArcFlag, bool sweepFlag ) =0;
980     /**
981      *
982      */
983     virtual SVGPathSegArcRel
984               createSVGPathSegArcRel (double x, double y, double r1,
985                          double r2, double angle, bool largeArcFlag,
986                          bool sweepFlag ) =0;
988     /**
989      *
990      */
991     virtual SVGPathSegLinetoHorizontalAbs
992               createSVGPathSegLinetoHorizontalAbs (double x ) =0;
994     /**
995      *
996      */
997     virtual SVGPathSegLinetoHorizontalRel
998               createSVGPathSegLinetoHorizontalRel (double x ) =0;
1000     /**
1001      *
1002      */
1003     virtual SVGPathSegLinetoVerticalAbs
1004               createSVGPathSegLinetoVerticalAbs (double y ) =0;
1006     /**
1007      *
1008      */
1009     virtual SVGPathSegLinetoVerticalRel
1010               createSVGPathSegLinetoVerticalRel (double y ) =0;
1012     /**
1013      *
1014      */
1015     virtual SVGPathSegCurvetoCubicSmoothAbs
1016               createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
1017                                              double x2, double y2 ) =0;
1019     /**
1020      *
1021      */
1022     virtual SVGPathSegCurvetoCubicSmoothRel
1023               createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
1024                                                       double x2, double y2 ) =0;
1026     /**
1027      *
1028      */
1029     virtual SVGPathSegCurvetoQuadraticSmoothAbs
1030               createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y ) =0;
1032     /**
1033      *
1034      */
1035     virtual SVGPathSegCurvetoQuadraticSmoothRel
1036               createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y ) =0;
1040     //##################
1041     //# Non-API methods
1042     //##################
1044     /**
1045      *
1046      */
1047     virtual ~SVGPathElement() {}
1049 };
1056 /*#########################################################################
1057 ## SVGRectElement
1058 #########################################################################*/
1060 /**
1061  *
1062  */
1063 class SVGRectElement :
1064                     virtual public SVGElement,
1065                     public SVGTests,
1066                     public SVGLangSpace,
1067                     public SVGExternalResourcesRequired,
1068                     public SVGStylable,
1069                     public SVGTransformable,
1070                     public events::EventTarget
1072 public:
1074     /**
1075      *
1076      */
1077     virtual SVGAnimatedLength getX() =0;
1079     /**
1080      *
1081      */
1082     virtual SVGAnimatedLength getY() =0;
1084     /**
1085      *
1086      */
1087     virtual SVGAnimatedLength getWidth() =0;
1089     /**
1090      *
1091      */
1092     virtual SVGAnimatedLength getHeight() =0;
1095     /**
1096      *
1097      */
1098     virtual SVGAnimatedLength getRx() =0;
1100     /**
1101      *
1102      */
1103     virtual SVGAnimatedLength getRy() =0;
1107     //##################
1108     //# Non-API methods
1109     //##################
1111     /**
1112      *
1113      */
1114     virtual ~SVGRectElement() {}
1116 };
1123 /*#########################################################################
1124 ## SVGCircleElement
1125 #########################################################################*/
1127 /**
1128  *
1129  */
1130 class SVGCircleElement :
1131                     virtual public SVGElement,
1132                     public SVGTests,
1133                     public SVGLangSpace,
1134                     public SVGExternalResourcesRequired,
1135                     public SVGStylable,
1136                     public SVGTransformable,
1137                     public events::EventTarget
1139 public:
1141     /**
1142      *
1143      */
1144     virtual SVGAnimatedLength getCx() =0;
1146     /**
1147      *
1148      */
1149     virtual SVGAnimatedLength getCy() =0;
1151     /**
1152      *
1153      */
1154     virtual SVGAnimatedLength getR() =0;
1158     //##################
1159     //# Non-API methods
1160     //##################
1162     /**
1163      *
1164      */
1165     virtual ~SVGCircleElement() {}
1167 };
1174 /*#########################################################################
1175 ## SVGEllipseElement
1176 #########################################################################*/
1178 /**
1179  *
1180  */
1181 class SVGEllipseElement :
1182                     virtual public SVGElement,
1183                     public SVGTests,
1184                     public SVGLangSpace,
1185                     public SVGExternalResourcesRequired,
1186                     public SVGStylable,
1187                     public SVGTransformable,
1188                     public events::EventTarget
1190 public:
1191     /**
1192      *
1193      */
1194     virtual SVGAnimatedLength getCx() =0;
1196     /**
1197      *
1198      */
1199     virtual SVGAnimatedLength getCy() =0;
1201     /**
1202      *
1203      */
1204     virtual SVGAnimatedLength getRx() =0;
1206     /**
1207      *
1208      */
1209     virtual SVGAnimatedLength getRy() =0;
1212     //##################
1213     //# Non-API methods
1214     //##################
1216     /**
1217      *
1218      */
1219     virtual ~SVGEllipseElement() {}
1221 };
1228 /*#########################################################################
1229 ## SVGLineElement
1230 #########################################################################*/
1232 /**
1233  *
1234  */
1235 class SVGLineElement :
1236                     virtual public SVGElement,
1237                     public SVGTests,
1238                     public SVGLangSpace,
1239                     public SVGExternalResourcesRequired,
1240                     public SVGStylable,
1241                     public SVGTransformable,
1242                     public events::EventTarget
1244 public:
1245     /**
1246      *
1247      */
1248     virtual SVGAnimatedLength getX1() =0;
1250     /**
1251      *
1252      */
1253     virtual SVGAnimatedLength getY1() =0;
1255     /**
1256      *
1257      */
1258     virtual SVGAnimatedLength getX2() =0;
1260     /**
1261      *
1262      */
1263     virtual SVGAnimatedLength getY2() =0;
1265     //##################
1266     //# Non-API methods
1267     //##################
1269     /**
1270      *
1271      */
1272     virtual ~SVGLineElement() {}
1274 };
1279 /*#########################################################################
1280 ## SVGPolylineElement
1281 #########################################################################*/
1283 /**
1284  *
1285  */
1286 class SVGPolylineElement :
1287                     virtual public SVGElement,
1288                     public SVGTests,
1289                     public SVGLangSpace,
1290                     public SVGExternalResourcesRequired,
1291                     public SVGStylable,
1292                     public SVGTransformable,
1293                     public events::EventTarget,
1294                     public SVGAnimatedPoints
1296 public:
1298     //##################
1299     //# Non-API methods
1300     //##################
1302     /**
1303      *
1304      */
1305     virtual ~SVGPolylineElement() {}
1307 };
1312 /*#########################################################################
1313 ## SVGPolygonElement
1314 #########################################################################*/
1316 /**
1317  *
1318  */
1319 class SVGPolygonElement :
1320                     virtual public SVGElement,
1321                     public SVGTests,
1322                     public SVGLangSpace,
1323                     public SVGExternalResourcesRequired,
1324                     public SVGStylable,
1325                     public SVGTransformable,
1326                     public events::EventTarget,
1327                     public SVGAnimatedPoints
1329 public:
1331     //##################
1332     //# Non-API methods
1333     //##################
1335     /**
1336      *
1337      */
1338     virtual ~SVGPolygonElement() {}
1340 };
1345 /*#########################################################################
1346 ## SVGTextContentElement
1347 #########################################################################*/
1349 /**
1350  *
1351  */
1352 class SVGTextContentElement :
1353                     virtual public SVGElement,
1354                     public SVGTests,
1355                     public SVGLangSpace,
1356                     public SVGExternalResourcesRequired,
1357                     public SVGStylable,
1358                     public events::EventTarget
1360 public:
1364     /**
1365      * lengthAdjust Types
1366      */
1367     typedef enum
1368         {
1369         LENGTHADJUST_UNKNOWN          = 0,
1370         LENGTHADJUST_SPACING          = 1,
1371         LENGTHADJUST_SPACINGANDGLYPHS = 2
1372         } LengthAdjustType;
1375     /**
1376      *
1377      */
1378     virtual SVGAnimatedLength getTextLength() =0;
1381     /**
1382      *
1383      */
1384     virtual SVGAnimatedEnumeration getLengthAdjust() =0;
1387     /**
1388      *
1389      */
1390     virtual long getNumberOfChars (  ) =0;
1392     /**
1393      *
1394      */
1395     virtual double getComputedTextLength (  ) =0;
1397     /**
1398      *
1399      */
1400     virtual double getSubStringLength (unsigned long charnum, unsigned long nchars )
1401                                      throw( DOMException ) =0;
1403     /**
1404      *
1405      */
1406     virtual SVGPoint getStartPositionOfChar (unsigned long charnum )
1407                                               throw( DOMException ) =0;
1409     /**
1410      *
1411      */
1412     virtual SVGPoint getEndPositionOfChar (unsigned long charnum )
1413                                            throw( DOMException ) =0;
1415     /**
1416      *
1417      */
1418     virtual SVGRect getExtentOfChar (unsigned long charnum )
1419                                       throw( DOMException ) =0;
1421     /**
1422      *
1423      */
1424     virtual double getRotationOfChar (unsigned long charnum )
1425                                      throw( DOMException ) =0;
1427     /**
1428      *
1429      */
1430     virtual long getCharNumAtPosition (const SVGPoint &point ) =0;
1432     /**
1433      *
1434      */
1435     virtual void selectSubString (unsigned long charnum, unsigned long nchars )
1436                                   throw( DOMException ) =0;
1440     //##################
1441     //# Non-API methods
1442     //##################
1444     /**
1445      *
1446      */
1447     virtual ~SVGTextContentElement() {}
1449 };
1456 /*#########################################################################
1457 ## SVGTextPositioningElement
1458 #########################################################################*/
1460 /**
1461  *
1462  */
1463 class SVGTextPositioningElement : virtual public SVGTextContentElement
1465 public:
1467     /**
1468      *
1469      */
1470     virtual SVGAnimatedLength getX() =0;
1472     /**
1473      *
1474      */
1475     virtual SVGAnimatedLength getY() =0;
1477     /**
1478      *
1479      */
1480     virtual SVGAnimatedLength getDx() =0;
1482     /**
1483      *
1484      */
1485     virtual SVGAnimatedLength getDy() =0;
1488     /**
1489      *
1490      */
1491     virtual SVGAnimatedNumberList getRotate() =0;
1495     //##################
1496     //# Non-API methods
1497     //##################
1499     /**
1500      *
1501      */
1502     virtual ~SVGTextPositioningElement() {}
1504 };
1511 /*#########################################################################
1512 ## SVGTextElement
1513 #########################################################################*/
1515 /**
1516  *
1517  */
1518 class SVGTextElement : virtual public SVGTextPositioningElement,
1519                        public SVGTransformable
1521 public:
1523     //##################
1524     //# Non-API methods
1525     //##################
1527     /**
1528      *
1529      */
1530     virtual ~SVGTextElement() {}
1532 };
1537 /*#########################################################################
1538 ## SVGTSpanElement
1539 #########################################################################*/
1541 /**
1542  *
1543  */
1544 class SVGTSpanElement : virtual public SVGTextPositioningElement
1546 public:
1548     //##################
1549     //# Non-API methods
1550     //##################
1552     /**
1553      *
1554      */
1555     virtual ~SVGTSpanElement() {}
1557 };
1562 /*#########################################################################
1563 ## SVGTRefElement
1564 #########################################################################*/
1566 /**
1567  *
1568  */
1569 class SVGTRefElement :
1570                     virtual public SVGTextPositioningElement,
1571                     public SVGURIReference
1573 public:
1575     //##################
1576     //# Non-API methods
1577     //##################
1579     /**
1580      *
1581      */
1582     virtual ~SVGTRefElement() {}
1584 };
1589 /*#########################################################################
1590 ## SVGTextPathElement
1591 #########################################################################*/
1593 /**
1594  *
1595  */
1596 class SVGTextPathElement :
1597                     virtual public SVGTextContentElement,
1598                     public SVGURIReference
1600 public:
1604     /**
1605      * textPath Method Types
1606      */
1607     typedef enum
1608         {
1609         TEXTPATH_METHODTYPE_UNKNOWN   = 0,
1610         TEXTPATH_METHODTYPE_ALIGN     = 1,
1611         TEXTPATH_METHODTYPE_STRETCH   = 2
1612         } TextPathMethodType;
1614     /**
1615      * textPath Spacing Types
1616      */
1617     typedef enum
1618         {
1619         TEXTPATH_SPACINGTYPE_UNKNOWN  = 0,
1620         TEXTPATH_SPACINGTYPE_AUTO     = 1,
1621         TEXTPATH_SPACINGTYPE_EXACT    = 2
1622         } TextPathSpacingType;
1625     /**
1626      *
1627      */
1628     virtual SVGAnimatedLength getStartOffset() =0;
1630     /**
1631      *
1632      */
1633     virtual SVGAnimatedEnumeration getMethod() =0;
1635     /**
1636      *
1637      */
1638     virtual SVGAnimatedEnumeration getSpacing() =0;
1642     //##################
1643     //# Non-API methods
1644     //##################
1646     /**
1647      *
1648      */
1649     virtual ~SVGTextPathElement() {}
1651 };
1658 /*#########################################################################
1659 ## SVGAltGlyphElement
1660 #########################################################################*/
1662 /**
1663  *
1664  */
1665 class SVGAltGlyphElement :
1666                     virtual public SVGTextPositioningElement,
1667                     public SVGURIReference
1669 public:
1671     /**
1672      *
1673      */
1674     virtual DOMString getGlyphRef() =0;
1676     /**
1677      *
1678      */
1679     virtual void setGlyphRef(const DOMString &val)
1680                                      throw (DOMException) =0;
1682     /**
1683      *
1684      */
1685     virtual DOMString getFormat() =0;
1687     /**
1688      *
1689      */
1690     virtual void setFormat(const DOMString &val)
1691                                      throw (DOMException) =0;
1696     //##################
1697     //# Non-API methods
1698     //##################
1700     /**
1701      *
1702      */
1703     virtual ~SVGAltGlyphElement() {}
1705 };
1712 /*#########################################################################
1713 ## SVGAltGlyphDefElement
1714 #########################################################################*/
1716 /**
1717  *
1718  */
1719 class SVGAltGlyphDefElement : virtual public SVGElement
1721 public:
1723     //##################
1724     //# Non-API methods
1725     //##################
1727     /**
1728      *
1729      */
1730     virtual ~SVGAltGlyphDefElement() {}
1732 };
1737 /*#########################################################################
1738 ## SVGAltGlyphItemElement
1739 #########################################################################*/
1741 /**
1742  *
1743  */
1744 class SVGAltGlyphItemElement : virtual public SVGElement
1746 public:
1748     //##################
1749     //# Non-API methods
1750     //##################
1752     /**
1753      *
1754      */
1755     virtual ~SVGAltGlyphItemElement() {}
1757 };
1762 /*#########################################################################
1763 ## SVGGlyphRefElement
1764 #########################################################################*/
1766 /**
1767  *
1768  */
1769 class SVGGlyphRefElement : virtual public SVGElement,
1770                            public SVGURIReference,
1771                            public SVGStylable
1773 public:
1774     /**
1775      *
1776      */
1777     virtual DOMString getGlyphRef() =0;
1779     /**
1780      *
1781      */
1782     virtual void setGlyphRef(const DOMString &val)
1783                              throw (DOMException) =0;
1785     /**
1786      *
1787      */
1788     virtual DOMString getFormat() =0;
1790     /**
1791      *
1792      */
1793     virtual void setFormat(const DOMString &val)
1794                            throw (DOMException) =0;
1796     /**
1797      *
1798      */
1799     virtual double getX() = 0;
1801     /**
1802      *
1803      */
1804     virtual void setX(double val) throw (DOMException) =0;
1806     /**
1807      *
1808      */
1809     virtual double getY() = 0;
1811     /**
1812      *
1813      */
1814     virtual void setY(double val) throw (DOMException) =0;
1816     /**
1817      *
1818      */
1819     virtual double getDx() = 0;
1821     /**
1822      *
1823      */
1824     virtual void setDx(double val) throw (DOMException) =0;
1826     /**
1827      *
1828      */
1829     virtual double getDy() = 0;
1831     /**
1832      *
1833      */
1834     virtual void setDy(double val) throw (DOMException) =0;
1839     //##################
1840     //# Non-API methods
1841     //##################
1843     /**
1844      *
1845      */
1846     virtual ~SVGGlyphRefElement() {}
1848 };
1854 /*#########################################################################
1855 ## SVGMarkerElement
1856 #########################################################################*/
1858 /**
1859  *
1860  */
1861 class SVGMarkerElement :
1862                     virtual public SVGElement,
1863                     public SVGLangSpace,
1864                     public SVGExternalResourcesRequired,
1865                     public SVGStylable,
1866                     public SVGFitToViewBox
1868 public:
1872     /**
1873      * Marker Unit Types
1874      */
1875     typedef enum
1876         {
1877         SVG_MARKERUNITS_UNKNOWN        = 0,
1878         SVG_MARKERUNITS_USERSPACEONUSE = 1,
1879         SVG_MARKERUNITS_STROKEWIDTH    = 2
1880         } MarkerUnitType;
1882     /**
1883      * Marker Orientation Types
1884      */
1885     typedef enum
1886         {
1887         SVG_MARKER_ORIENT_UNKNOWN      = 0,
1888         SVG_MARKER_ORIENT_AUTO         = 1,
1889         SVG_MARKER_ORIENT_ANGLE        = 2
1890         } MarkerOrientationType;
1893     /**
1894      *
1895      */
1896     virtual SVGAnimatedLength getRefX() =0;
1898     /**
1899      *
1900      */
1901     virtual SVGAnimatedLength getRefY() =0;
1903     /**
1904      *
1905      */
1906     virtual SVGAnimatedEnumeration getMarkerUnits() =0;
1908     /**
1909      *
1910      */
1911     virtual SVGAnimatedLength getMarkerWidth() =0;
1913     /**
1914      *
1915      */
1916     virtual SVGAnimatedLength getMarkerHeight() =0;
1918     /**
1919      *
1920      */
1921     virtual SVGAnimatedEnumeration getOrientType() =0;
1923     /**
1924      *
1925      */
1926     virtual SVGAnimatedAngle getOrientAngle() =0;
1929     /**
1930      *
1931      */
1932     virtual void setOrientToAuto (  ) =0;
1934     /**
1935      *
1936      */
1937     virtual void setOrientToAngle (const SVGAngle &angle) =0;
1941     //##################
1942     //# Non-API methods
1943     //##################
1945     /**
1946      *
1947      */
1948     virtual ~SVGMarkerElement() {}
1950 };
1957 /*#########################################################################
1958 ## SVGColorProfileElement
1959 #########################################################################*/
1961 /**
1962  *
1963  */
1964 class SVGColorProfileElement :
1965                     virtual public SVGElement,
1966                     public SVGURIReference,
1967                     public SVGRenderingIntent
1969 public:
1970     /**
1971      *
1972      */
1973     virtual DOMString getLocal() =0;
1975     /**
1976      *
1977      */
1978     virtual void setLocal(const DOMString &val)
1979                           throw (DOMException) =0;
1981     /**
1982      *
1983      */
1984     virtual DOMString getName() =0;
1986     /**
1987      *
1988      */
1989     virtual void setName(const DOMString &val)
1990                          throw (DOMException) =0;
1992     /**
1993      *
1994      */
1995     virtual unsigned short getRenderingIntent() =0;
1997     /**
1998      *
1999      */
2000     virtual void setRenderingIntent(unsigned short val)
2001                                     throw (DOMException) =0;
2005     //##################
2006     //# Non-API methods
2007     //##################
2009     /**
2010      *
2011      */
2012     virtual ~SVGColorProfileElement() {}
2014 };
2019 /*#########################################################################
2020 ## SVGGradientElement
2021 #########################################################################*/
2023 /**
2024  *
2025  */
2026 class SVGGradientElement :
2027                     virtual public SVGElement,
2028                     public SVGURIReference,
2029                     public SVGExternalResourcesRequired,
2030                     public SVGStylable,
2031                     public SVGUnitTypes
2033 public:
2037     /**
2038      * Spread Method Types
2039      */
2040     typedef enum
2041         {
2042         SVG_SPREADMETHOD_UNKNOWN = 0,
2043         SVG_SPREADMETHOD_PAD     = 1,
2044         SVG_SPREADMETHOD_REFLECT = 2,
2045         SVG_SPREADMETHOD_REPEAT  = 3
2046         } SpreadMethodType;
2049     /**
2050      *
2051      */
2052     virtual SVGAnimatedEnumeration getGradientUnits() =0;
2054     /**
2055      *
2056      */
2057     virtual SVGAnimatedTransformList getGradientTransform() =0;
2059     /**
2060      *
2061      */
2062     virtual SVGAnimatedEnumeration getSpreadMethod() =0;
2066     //##################
2067     //# Non-API methods
2068     //##################
2070     /**
2071      *
2072      */
2073     virtual ~SVGGradientElement() {}
2075 };
2082 /*#########################################################################
2083 ## SVGLinearGradientElement
2084 #########################################################################*/
2086 /**
2087  *
2088  */
2089 class SVGLinearGradientElement : virtual public SVGGradientElement
2091 public:
2094     /**
2095      *
2096      */
2097     virtual SVGAnimatedLength getX1() =0;
2099     /**
2100      *
2101      */
2102     virtual SVGAnimatedLength getY1() =0;
2104     /**
2105      *
2106      */
2107     virtual SVGAnimatedLength getX2() =0;
2109     /**
2110      *
2111      */
2112     virtual SVGAnimatedLength getY2() =0;
2115     //##################
2116     //# Non-API methods
2117     //##################
2119     /**
2120      *
2121      */
2122     virtual ~SVGLinearGradientElement() {}
2124 };
2131 /*#########################################################################
2132 ## SVGRadialGradientElement
2133 #########################################################################*/
2135 /**
2136  *
2137  */
2138 class SVGRadialGradientElement : virtual public SVGGradientElement
2140 public:
2143     /**
2144      *
2145      */
2146     virtual SVGAnimatedLength getCx() =0;
2149     /**
2150      *
2151      */
2152     virtual SVGAnimatedLength getCy() =0;
2155     /**
2156      *
2157      */
2158     virtual SVGAnimatedLength getR() =0;
2161     /**
2162      *
2163      */
2164     virtual SVGAnimatedLength getFx() =0;
2167     /**
2168      *
2169      */
2170     virtual SVGAnimatedLength getFy() =0;
2175     //##################
2176     //# Non-API methods
2177     //##################
2179     /**
2180      *
2181      */
2182     virtual ~SVGRadialGradientElement() {}
2184 };
2191 /*#########################################################################
2192 ## SVGStopElement
2193 #########################################################################*/
2195 /**
2196  *
2197  */
2198 class SVGStopElement :
2199                     virtual public SVGElement,
2200                     public SVGStylable
2202 public:
2204     /**
2205      *
2206      */
2207     virtual SVGAnimatedNumber getOffset() =0;
2211     //##################
2212     //# Non-API methods
2213     //##################
2215     /**
2216      *
2217      */
2218     virtual ~SVGStopElement() {}
2220 };
2227 /*#########################################################################
2228 ## SVGPatternElement
2229 #########################################################################*/
2231 /**
2232  *
2233  */
2234 class SVGPatternElement :
2235                     virtual public SVGElement,
2236                     public SVGURIReference,
2237                     public SVGTests,
2238                     public SVGLangSpace,
2239                     public SVGExternalResourcesRequired,
2240                     public SVGStylable,
2241                     public SVGFitToViewBox,
2242                     public SVGUnitTypes
2244 public:
2249     /**
2250      *
2251      */
2252     virtual SVGAnimatedEnumeration getPatternUnits() =0;
2254     /**
2255      *
2256      */
2257     virtual SVGAnimatedEnumeration getPatternContentUnits() =0;
2259     /**
2260      *
2261      */
2262     virtual SVGAnimatedTransformList getPatternTransform() =0;
2264     /**
2265      *
2266      */
2267     virtual SVGAnimatedLength getX() =0;
2269     /**
2270      *
2271      */
2272     virtual SVGAnimatedLength getY() =0;
2274     /**
2275      *
2276      */
2277     virtual SVGAnimatedLength getWidth() =0;
2279     /**
2280      *
2281      */
2282     virtual SVGAnimatedLength getHeight() =0;
2286     //##################
2287     //# Non-API methods
2288     //##################
2290     /**
2291      *
2292      */
2293     virtual ~SVGPatternElement() {}
2295 };
2302 /*#########################################################################
2303 ## SVGClipPathElement
2304 #########################################################################*/
2306 /**
2307  *
2308  */
2309 class SVGClipPathElement :
2310                     virtual public SVGElement,
2311                     public SVGTests,
2312                     public SVGLangSpace,
2313                     public SVGExternalResourcesRequired,
2314                     public SVGStylable,
2315                     public SVGTransformable,
2316                     public SVGUnitTypes
2318 public:
2319     /**
2320      *
2321      */
2322     virtual SVGAnimatedEnumeration getClipPathUnits() =0;
2327     //##################
2328     //# Non-API methods
2329     //##################
2331     /**
2332      *
2333      */
2334     virtual ~SVGClipPathElement() {}
2336 };
2343 /*#########################################################################
2344 ## SVGMaskElement
2345 #########################################################################*/
2347 /**
2348  *
2349  */
2350 class SVGMaskElement :
2351                     virtual public SVGElement,
2352                     public SVGTests,
2353                     public SVGLangSpace,
2354                     public SVGExternalResourcesRequired,
2355                     public SVGStylable,
2356                     public SVGUnitTypes
2358 public:
2362     /**
2363      *
2364      */
2365     virtual SVGAnimatedEnumeration getMaskUnits() =0;
2367     /**
2368      *
2369      */
2370     virtual SVGAnimatedEnumeration getMaskContentUnits() =0;
2372     /**
2373      *
2374      */
2375     virtual SVGAnimatedLength getX() =0;
2377     /**
2378      *
2379      */
2380     virtual SVGAnimatedLength getY() =0;
2382     /**
2383      *
2384      */
2385     virtual SVGAnimatedLength getWidth() =0;
2387     /**
2388      *
2389      */
2390     virtual SVGAnimatedLength getHeight() =0;
2392     //##################
2393     //# Non-API methods
2394     //##################
2396     /**
2397      *
2398      */
2399     virtual ~SVGMaskElement() {}
2401 };
2408 /*#########################################################################
2409 ## SVGFilterElement
2410 #########################################################################*/
2412 /**
2413  *
2414  */
2415 class SVGFilterElement :
2416                     virtual public SVGElement,
2417                     public SVGURIReference,
2418                     public SVGLangSpace,
2419                     public SVGExternalResourcesRequired,
2420                     public SVGStylable,
2421                     public SVGUnitTypes
2423 public:
2427     /**
2428      *
2429      */
2430     virtual SVGAnimatedEnumeration getFilterUnits() =0;
2432     /**
2433      *
2434      */
2435     virtual SVGAnimatedEnumeration getPrimitiveUnits() =0;
2437     /**
2438      *
2439      */
2440     virtual SVGAnimatedLength getX() =0;
2442     /**
2443      *
2444      */
2445     virtual SVGAnimatedLength getY() =0;
2447     /**
2448      *
2449      */
2450     virtual SVGAnimatedLength getWidth() =0;
2452     /**
2453      *
2454      */
2455     virtual SVGAnimatedLength getHeight() =0;
2458     /**
2459      *
2460      */
2461     virtual SVGAnimatedInteger getFilterResX() =0;
2463     /**
2464      *
2465      */
2466     virtual SVGAnimatedInteger getFilterResY() =0;
2468     /**
2469      *
2470      */
2471     virtual void setFilterRes (unsigned long filterResX,
2472                                unsigned long filterResY ) =0;
2476     //##################
2477     //# Non-API methods
2478     //##################
2480     /**
2481      *
2482      */
2483     virtual ~SVGFilterElement() {}
2485 };
2491 /*#########################################################################
2492 ## SVGFEBlendElement
2493 #########################################################################*/
2495 /**
2496  *
2497  */
2498 class SVGFEBlendElement :
2499                     virtual public SVGElement,
2500                     public SVGFilterPrimitiveStandardAttributes
2502 public:
2505     /**
2506      * Blend Mode Types
2507      */
2508     typedef enum
2509         {
2510         SVG_FEBLEND_MODE_UNKNOWN  = 0,
2511         SVG_FEBLEND_MODE_NORMAL   = 1,
2512         SVG_FEBLEND_MODE_MULTIPLY = 2,
2513         SVG_FEBLEND_MODE_SCREEN   = 3,
2514         SVG_FEBLEND_MODE_DARKEN   = 4,
2515         SVG_FEBLEND_MODE_LIGHTEN  = 5
2516         } BlendModeType;
2518     /**
2519      *
2520      */
2521     virtual SVGAnimatedString getIn1() =0;
2523     /**
2524      *
2525      */
2526     virtual SVGAnimatedString getIn2() =0;
2528     /**
2529      *
2530      */
2531     virtual SVGAnimatedEnumeration getMode() =0;
2534     //##################
2535     //# Non-API methods
2536     //##################
2538     /**
2539      *
2540      */
2541     virtual ~SVGFEBlendElement() {}
2543 };
2550 /*#########################################################################
2551 ## SVGFEColorMatrixElement
2552 #########################################################################*/
2554 /**
2555  *
2556  */
2557 class SVGFEColorMatrixElement :
2558                     virtual public SVGElement,
2559                     public SVGFilterPrimitiveStandardAttributes
2561 public:
2565     /**
2566      * Color Matrix Types
2567      */
2568     typedef enum
2569         {
2570         SVG_FECOLORMATRIX_TYPE_UNKNOWN          = 0,
2571         SVG_FECOLORMATRIX_TYPE_MATRIX           = 1,
2572         SVG_FECOLORMATRIX_TYPE_SATURATE         = 2,
2573         SVG_FECOLORMATRIX_TYPE_HUEROTATE        = 3,
2574         SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4
2575         } ColorMatrixType;
2578     /**
2579      *
2580      */
2581     virtual SVGAnimatedString getIn1() =0;
2583     /**
2584      *
2585      */
2586     virtual SVGAnimatedEnumeration getType() =0;
2588     /**
2589      *
2590      */
2591     virtual SVGAnimatedNumberList getValues() =0;
2595     //##################
2596     //# Non-API methods
2597     //##################
2599     /**
2600      *
2601      */
2602     virtual ~SVGFEColorMatrixElement() {}
2604 };
2611 /*#########################################################################
2612 ## SVGFEComponentTransferElement
2613 #########################################################################*/
2615 /**
2616  *
2617  */
2618 class SVGFEComponentTransferElement :
2619                     virtual public SVGElement,
2620                     public SVGFilterPrimitiveStandardAttributes
2622 public:
2623     /**
2624      *
2625      */
2626     virtual SVGAnimatedString getIn1() =0;
2628     //##################
2629     //# Non-API methods
2630     //##################
2632     /**
2633      *
2634      */
2635     virtual ~SVGFEComponentTransferElement() {}
2637 };
2644 /*#########################################################################
2645 ## SVGComponentTransferFunctionElement
2646 #########################################################################*/
2648 /**
2649  *
2650  */
2651 class SVGComponentTransferFunctionElement : virtual public SVGElement
2653 public:
2656     /**
2657      * Component Transfer Types
2658      */
2659     typedef enum
2660         {
2661         SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN  = 0,
2662         SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,
2663         SVG_FECOMPONENTTRANSFER_TYPE_TABLE    = 2,
2664         SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,
2665         SVG_FECOMPONENTTRANSFER_TYPE_LINEAR   = 4,
2666         SVG_FECOMPONENTTRANSFER_TYPE_GAMMA    = 5
2667         } ComponentTransferType;
2670     /**
2671      *
2672      */
2673     virtual SVGAnimatedEnumeration getType() =0;
2675     /**
2676      *
2677      */
2678     virtual SVGAnimatedNumberList getTableValues() =0;
2680     /**
2681      *
2682      */
2683     virtual SVGAnimatedNumber getSlope() =0;
2685     /**
2686      *
2687      */
2688     virtual SVGAnimatedNumber getIntercept() =0;
2690     /**
2691      *
2692      */
2693     virtual SVGAnimatedNumber getAmplitude() =0;
2695     /**
2696      *
2697      */
2698     virtual SVGAnimatedNumber getExponent() =0;
2700     /**
2701      *
2702      */
2703     virtual SVGAnimatedNumber getOffset() =0;
2706     //##################
2707     //# Non-API methods
2708     //##################
2710     /**
2711      *
2712      */
2713     virtual ~SVGComponentTransferFunctionElement() {}
2715 };
2722 /*#########################################################################
2723 ## SVGFEFuncRElement
2724 #########################################################################*/
2726 /**
2727  *
2728  */
2729 class SVGFEFuncRElement : virtual public SVGComponentTransferFunctionElement
2731 public:
2733     //##################
2734     //# Non-API methods
2735     //##################
2737     /**
2738      *
2739      */
2740     virtual ~SVGFEFuncRElement() {}
2742 };
2747 /*#########################################################################
2748 ## SVGFEFuncGElement
2749 #########################################################################*/
2751 /**
2752  *
2753  */
2754 class SVGFEFuncGElement : public virtual SVGComponentTransferFunctionElement
2756 public:
2758     //##################
2759     //# Non-API methods
2760     //##################
2762     /**
2763      *
2764      */
2765     virtual ~SVGFEFuncGElement() {}
2767 };
2772 /*#########################################################################
2773 ## SVGFEFuncBElement
2774 #########################################################################*/
2776 /**
2777  *
2778  */
2779 class SVGFEFuncBElement : virtual public SVGComponentTransferFunctionElement
2781 public:
2783     //##################
2784     //# Non-API methods
2785     //##################
2787     /**
2788      *
2789      */
2790     virtual ~SVGFEFuncBElement() {}
2792 };
2797 /*#########################################################################
2798 ## SVGFEFuncAElement
2799 #########################################################################*/
2801 /**
2802  *
2803  */
2804 class SVGFEFuncAElement : virtual public SVGComponentTransferFunctionElement
2806 public:
2808     //##################
2809     //# Non-API methods
2810     //##################
2812     /**
2813      *
2814      */
2815     virtual ~SVGFEFuncAElement() {}
2817 };
2822 /*#########################################################################
2823 ## SVGFECompositeElement
2824 #########################################################################*/
2826 /**
2827  *
2828  */
2829 class SVGFECompositeElement :
2830                     virtual public SVGElement,
2831                     public SVGFilterPrimitiveStandardAttributes
2833 public:
2837     /**
2838      *  Composite Operators
2839      */
2840     typedef enum
2841         {
2842         SVG_FECOMPOSITE_OPERATOR_UNKNOWN    = 0,
2843         SVG_FECOMPOSITE_OPERATOR_OVER       = 1,
2844         SVG_FECOMPOSITE_OPERATOR_IN         = 2,
2845         SVG_FECOMPOSITE_OPERATOR_OUT        = 3,
2846         SVG_FECOMPOSITE_OPERATOR_ATOP       = 4,
2847         SVG_FECOMPOSITE_OPERATOR_XOR        = 5,
2848         SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6
2849         } CompositeOperatorType;
2851     /**
2852      *
2853      */
2854     virtual SVGAnimatedString getIn1() =0;
2856     /**
2857      *
2858      */
2859     virtual SVGAnimatedString getIn2() =0;
2861     /**
2862      *
2863      */
2864     virtual SVGAnimatedEnumeration getOperator() =0;
2866     /**
2867      *
2868      */
2869     virtual SVGAnimatedNumber getK1() =0;
2871     /**
2872      *
2873      */
2874     virtual SVGAnimatedNumber getK2() =0;
2876     /**
2877      *
2878      */
2879     virtual SVGAnimatedNumber getK3() =0;
2881     /**
2882      *
2883      */
2884     virtual SVGAnimatedNumber getK4() =0;
2888     //##################
2889     //# Non-API methods
2890     //##################
2892     /**
2893      *
2894      */
2895     virtual ~SVGFECompositeElement() {}
2897 };
2904 /*#########################################################################
2905 ## SVGFEConvolveMatrixElement
2906 #########################################################################*/
2908 /**
2909  *
2910  */
2911 class SVGFEConvolveMatrixElement :
2912                     virtual public SVGElement,
2913                     public SVGFilterPrimitiveStandardAttributes
2915 public:
2919     /**
2920      * Edge Mode Values
2921      */
2922     typedef enum
2923         {
2924         SVG_EDGEMODE_UNKNOWN   = 0,
2925         SVG_EDGEMODE_DUPLICATE = 1,
2926         SVG_EDGEMODE_WRAP      = 2,
2927         SVG_EDGEMODE_NONE      = 3
2928         } EdgeModeType;
2931     /**
2932      *
2933      */
2934     virtual SVGAnimatedInteger getOrderX() =0;
2936     /**
2937      *
2938      */
2939     virtual SVGAnimatedInteger getOrderY() =0;
2941     /**
2942      *
2943      */
2944     virtual SVGAnimatedNumberList getKernelMatrix() =0;
2946     /**
2947      *
2948      */
2949     virtual SVGAnimatedNumber getDivisor() =0;
2951     /**
2952      *
2953      */
2954     virtual SVGAnimatedNumber getBias() =0;
2956     /**
2957      *
2958      */
2959     virtual SVGAnimatedInteger getTargetX() =0;
2961     /**
2962      *
2963      */
2964     virtual SVGAnimatedInteger getTargetY() =0;
2966     /**
2967      *
2968      */
2969     virtual SVGAnimatedEnumeration getEdgeMode() =0;
2971     /**
2972      *
2973      */
2974     virtual SVGAnimatedLength getKernelUnitLengthX() =0;
2976     /**
2977      *
2978      */
2979     virtual SVGAnimatedLength getKernelUnitLengthY() =0;
2981     /**
2982      *
2983      */
2984     virtual SVGAnimatedBoolean getPreserveAlpha() =0;
2988     //##################
2989     //# Non-API methods
2990     //##################
2992     /**
2993      *
2994      */
2995     virtual ~SVGFEConvolveMatrixElement() {}
2997 };
3004 /*#########################################################################
3005 ## SVGFEDiffuseLightingElement
3006 #########################################################################*/
3008 /**
3009  *
3010  */
3011 class SVGFEDiffuseLightingElement :
3012                     virtual public SVGElement,
3013                     public SVGFilterPrimitiveStandardAttributes
3015 public:
3017     /**
3018      *
3019      */
3020     virtual SVGAnimatedString getIn1() =0;
3022     /**
3023      *
3024      */
3025     virtual SVGAnimatedNumber getSurfaceScale() =0;
3027     /**
3028      *
3029      */
3030     virtual SVGAnimatedNumber getDiffuseConstant() =0;
3034     //##################
3035     //# Non-API methods
3036     //##################
3038     /**
3039      *
3040      */
3041     virtual ~SVGFEDiffuseLightingElement() {}
3043 };
3050 /*#########################################################################
3051 ## SVGFEDistantLightElement
3052 #########################################################################*/
3054 /**
3055  *
3056  */
3057 class SVGFEDistantLightElement : virtual public SVGElement
3059 public:
3061     /**
3062      *
3063      */
3064     virtual SVGAnimatedNumber getAzimuth() =0;
3067     /**
3068      *
3069      */
3070     virtual SVGAnimatedNumber getElevation() =0;
3074     //##################
3075     //# Non-API methods
3076     //##################
3078     /**
3079      *
3080      */
3081     virtual ~SVGFEDistantLightElement() {}
3083 };
3090 /*#########################################################################
3091 ## SVGFEPointLightElement
3092 #########################################################################*/
3094 /**
3095  *
3096  */
3097 class SVGFEPointLightElement : virtual public SVGElement
3099 public:
3100     /**
3101      *
3102      */
3103     virtual SVGAnimatedNumber getX() =0;
3106     /**
3107      *
3108      */
3109     virtual SVGAnimatedNumber getY() =0;
3111     /**
3112      *
3113      */
3114     virtual SVGAnimatedNumber getZ() =0;
3116     //##################
3117     //# Non-API methods
3118     //##################
3120     /**
3121      *
3122      */
3123     virtual ~SVGFEPointLightElement() {}
3125 };
3132 /*#########################################################################
3133 ## SVGFESpotLightElement
3134 #########################################################################*/
3136 /**
3137  *
3138  */
3139 class SVGFESpotLightElement : virtual public SVGElement
3141 public:
3143     /**
3144      *
3145      */
3146     virtual SVGAnimatedNumber getX() =0;
3149     /**
3150      *
3151      */
3152     virtual SVGAnimatedNumber getY() =0;
3154     /**
3155      *
3156      */
3157     virtual SVGAnimatedNumber getZ() =0;
3159     /**
3160      *
3161      */
3162     virtual SVGAnimatedNumber getPointsAtX() =0;
3164     /**
3165      *
3166      */
3167     virtual SVGAnimatedNumber getPointsAtY() =0;
3169     /**
3170      *
3171      */
3172     virtual SVGAnimatedNumber getPointsAtZ() =0;
3174     /**
3175      *
3176      */
3177     virtual SVGAnimatedNumber getSpecularExponent() =0;
3179     /**
3180      *
3181      */
3182     virtual SVGAnimatedNumber getLimitingConeAngle() =0;
3186     //##################
3187     //# Non-API methods
3188     //##################
3190     /**
3191      *
3192      */
3193     virtual ~SVGFESpotLightElement() {}
3195 };
3202 /*#########################################################################
3203 ## SVGFEDisplacementMapElement
3204 #########################################################################*/
3206 /**
3207  *
3208  */
3209 class SVGFEDisplacementMapElement :
3210                     virtual public SVGElement,
3211                     public SVGFilterPrimitiveStandardAttributes
3213 public:
3217     /**
3218      *  Channel Selectors
3219      */
3220     typedef enum
3221         {
3222         SVG_CHANNEL_UNKNOWN = 0,
3223         SVG_CHANNEL_R       = 1,
3224         SVG_CHANNEL_G       = 2,
3225         SVG_CHANNEL_B       = 3,
3226         SVG_CHANNEL_A       = 4
3227         } ChannelSelector;
3229     /**
3230      *
3231      */
3232     virtual SVGAnimatedString getIn1() =0;
3234     /**
3235      *
3236      */
3237     virtual SVGAnimatedString getIn2() =0;
3240     /**
3241      *
3242      */
3243     virtual SVGAnimatedNumber getScale() =0;
3245     /**
3246      *
3247      */
3248     virtual SVGAnimatedEnumeration getXChannelSelector() =0;
3250     /**
3251      *
3252      */
3253     virtual SVGAnimatedEnumeration getYChannelSelector() =0;
3257     //##################
3258     //# Non-API methods
3259     //##################
3261     /**
3262      *
3263      */
3264     virtual ~SVGFEDisplacementMapElement() {}
3266 };
3273 /*#########################################################################
3274 ## SVGFEFloodElement
3275 #########################################################################*/
3277 /**
3278  *
3279  */
3280 class SVGFEFloodElement :
3281                     virtual public SVGElement,
3282                     public SVGFilterPrimitiveStandardAttributes
3284 public:
3285     /**
3286      *
3287      */
3288     virtual SVGAnimatedString getIn1() =0;
3291     //##################
3292     //# Non-API methods
3293     //##################
3295     /**
3296      *
3297      */
3298     virtual ~SVGFEFloodElement() {}
3300 };
3307 /*#########################################################################
3308 ## SVGFEGaussianBlurElement
3309 #########################################################################*/
3311 /**
3312  *
3313  */
3314 class SVGFEGaussianBlurElement :
3315                     virtual public SVGElement,
3316                     public SVGFilterPrimitiveStandardAttributes
3318 public:
3319     /**
3320      *
3321      */
3322     virtual SVGAnimatedString getIn1() =0;
3325     /**
3326      *
3327      */
3328     virtual SVGAnimatedNumber getStdDeviationX() =0;
3330     /**
3331      *
3332      */
3333     virtual SVGAnimatedNumber getStdDeviationY() =0;
3336     /**
3337      *
3338      */
3339     virtual void setStdDeviation (double stdDeviationX, double stdDeviationY ) =0;
3343     //##################
3344     //# Non-API methods
3345     //##################
3347     /**
3348      *
3349      */
3350     virtual ~SVGFEGaussianBlurElement() {}
3352 };
3359 /*#########################################################################
3360 ## SVGFEImageElement
3361 #########################################################################*/
3363 /**
3364  *
3365  */
3366 class SVGFEImageElement :
3367                     virtual public SVGElement,
3368                     public SVGURIReference,
3369                     public SVGLangSpace,
3370                     public SVGExternalResourcesRequired,
3371                     public SVGFilterPrimitiveStandardAttributes
3373 public:
3375     //##################
3376     //# Non-API methods
3377     //##################
3379     /**
3380      *
3381      */
3382     virtual ~SVGFEImageElement() {}
3384 };
3389 /*#########################################################################
3390 ## SVGFEMergeElement
3391 #########################################################################*/
3393 /**
3394  *
3395  */
3396 class SVGFEMergeElement :
3397                     virtual public SVGElement,
3398                     public SVGFilterPrimitiveStandardAttributes
3400 public:
3402     //##################
3403     //# Non-API methods
3404     //##################
3406     /**
3407      *
3408      */
3409     virtual ~SVGFEMergeElement() {}
3411 };
3416 /*#########################################################################
3417 ## SVGFEMergeNodeElement
3418 #########################################################################*/
3420 /**
3421  *
3422  */
3423 class SVGFEMergeNodeElement : virtual public SVGElement
3425 public:
3426     /**
3427      *
3428      */
3429     virtual SVGAnimatedString getIn1() =0;
3432     //##################
3433     //# Non-API methods
3434     //##################
3436     /**
3437      *
3438      */
3439     virtual ~SVGFEMergeNodeElement() {}
3441 };
3448 /*#########################################################################
3449 ## SVGFEMorphologyElement
3450 #########################################################################*/
3452 /**
3453  *
3454  */
3455 class SVGFEMorphologyElement :
3456                     virtual public SVGElement,
3457                     public SVGFilterPrimitiveStandardAttributes
3459 public:
3463     /**
3464      *  Morphology Operators
3465      */
3466     typedef enum
3467         {
3468         SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0,
3469         SVG_MORPHOLOGY_OPERATOR_ERODE   = 1,
3470         SVG_MORPHOLOGY_OPERATOR_DILATE  = 2
3471         } MorphologyOperatorType;
3474     /**
3475      *
3476      */
3477     virtual SVGAnimatedString getIn1() =0;
3480     /**
3481      *
3482      */
3483     virtual SVGAnimatedEnumeration getOperator() =0;
3485     /**
3486      *
3487      */
3488     virtual SVGAnimatedLength getRadiusX() =0;
3490     /**
3491      *
3492      */
3493     virtual SVGAnimatedLength getRadiusY() =0;
3497     //##################
3498     //# Non-API methods
3499     //##################
3501     /**
3502      *
3503      */
3504     virtual ~SVGFEMorphologyElement() {}
3506 };
3513 /*#########################################################################
3514 ## SVGFEOffsetElement
3515 #########################################################################*/
3517 /**
3518  *
3519  */
3520 class SVGFEOffsetElement :
3521                     virtual public SVGElement,
3522                     public SVGFilterPrimitiveStandardAttributes
3524 public:
3528     /**
3529      *
3530      */
3531     virtual SVGAnimatedString getIn1() =0;
3533     /**
3534      *
3535      */
3536     virtual SVGAnimatedLength getDx() =0;
3538     /**
3539      *
3540      */
3541     virtual SVGAnimatedLength getDy() =0;
3546     //##################
3547     //# Non-API methods
3548     //##################
3550     /**
3551      *
3552      */
3553     virtual ~SVGFEOffsetElement() {}
3555 };
3562 /*#########################################################################
3563 ## SVGFESpecularLightingElement
3564 #########################################################################*/
3566 /**
3567  *
3568  */
3569 class SVGFESpecularLightingElement :
3570                     virtual public SVGElement,
3571                     public SVGFilterPrimitiveStandardAttributes
3573 public:
3575     /**
3576      *
3577      */
3578     virtual SVGAnimatedString getIn1() =0;
3580     /**
3581      *
3582      */
3583     virtual SVGAnimatedNumber getSurfaceScale() =0;
3585     /**
3586      *
3587      */
3588     virtual SVGAnimatedNumber getSpecularConstant() =0;
3590     /**
3591      *
3592      */
3593     virtual SVGAnimatedNumber getSpecularExponent() =0;
3596     //##################
3597     //# Non-API methods
3598     //##################
3600     /**
3601      *
3602      */
3603     virtual ~SVGFESpecularLightingElement() {}
3605 };
3612 /*#########################################################################
3613 ## SVGFETileElement
3614 #########################################################################*/
3616 /**
3617  *
3618  */
3619 class SVGFETileElement :
3620                     virtual public SVGElement,
3621                     public SVGFilterPrimitiveStandardAttributes
3623 public:
3626     /**
3627      *
3628      */
3629     virtual SVGAnimatedString getIn1() =0;
3633     //##################
3634     //# Non-API methods
3635     //##################
3637     /**
3638      *
3639      */
3640     virtual ~SVGFETileElement() {}
3642 };
3649 /*#########################################################################
3650 ## SVGFETurbulenceElement
3651 #########################################################################*/
3653 /**
3654  *
3655  */
3656 class SVGFETurbulenceElement :
3657                     virtual public SVGElement,
3658                     public SVGFilterPrimitiveStandardAttributes
3660 public:
3664     /**
3665      *  Turbulence Types
3666      */
3667     typedef enum
3668         {
3669         SVG_TURBULENCE_TYPE_UNKNOWN      = 0,
3670         SVG_TURBULENCE_TYPE_FRACTALNOISE = 1,
3671         SVG_TURBULENCE_TYPE_TURBULENCE   = 2
3672         } TurbulenceType;
3674     /**
3675      *  Stitch Options
3676      */
3677     typedef enum
3678         {
3679         SVG_STITCHTYPE_UNKNOWN  = 0,
3680         SVG_STITCHTYPE_STITCH   = 1,
3681         SVG_STITCHTYPE_NOSTITCH = 2
3682         } StitchOption;
3686     /**
3687      *
3688      */
3689     virtual SVGAnimatedNumber getBaseFrequencyX() =0;
3691     /**
3692      *
3693      */
3694     virtual SVGAnimatedNumber getBaseFrequencyY() =0;
3696     /**
3697      *
3698      */
3699     virtual SVGAnimatedInteger getNumOctaves() =0;
3701     /**
3702      *
3703      */
3704     virtual SVGAnimatedNumber getSeed() =0;
3706     /**
3707      *
3708      */
3709     virtual SVGAnimatedEnumeration getStitchTiles() =0;
3711     /**
3712      *
3713      */
3714     virtual SVGAnimatedEnumeration getType() =0;
3718     //##################
3719     //# Non-API methods
3720     //##################
3722     /**
3723      *
3724      */
3725     virtual ~SVGFETurbulenceElement() {}
3727 };
3734 /*#########################################################################
3735 ## SVGCursorElement
3736 #########################################################################*/
3738 /**
3739  *
3740  */
3741 class SVGCursorElement :
3742                     virtual public SVGElement,
3743                     public SVGURIReference,
3744                     public SVGTests,
3745                     public SVGExternalResourcesRequired
3747 public:
3748     /**
3749      *
3750      */
3751     virtual SVGAnimatedLength getX() =0;
3753     /**
3754      *
3755      */
3756     virtual SVGAnimatedLength getY() =0;
3758     //##################
3759     //# Non-API methods
3760     //##################
3762     /**
3763      *
3764      */
3765     virtual ~SVGCursorElement() {}
3767 };
3774 /*#########################################################################
3775 ## SVGAElement
3776 #########################################################################*/
3778 /**
3779  *
3780  */
3781 class SVGAElement : virtual public SVGElement,
3782                     public SVGURIReference,
3783                     public SVGTests,
3784                     public SVGLangSpace,
3785                     public SVGExternalResourcesRequired,
3786                     public SVGStylable,
3787                     public SVGTransformable,
3788                     public events::EventTarget
3790 public:
3792     /**
3793      *
3794      */
3795     virtual SVGAnimatedString getTarget() =0;
3799     //##################
3800     //# Non-API methods
3801     //##################
3803     /**
3804      *
3805      */
3806     virtual ~SVGAElement() {}
3808 };
3815 /*#########################################################################
3816 ## SVGViewElement
3817 #########################################################################*/
3819 /**
3820  *
3821  */
3822 class SVGViewElement : virtual public SVGElement,
3823                        public SVGExternalResourcesRequired,
3824                        public SVGFitToViewBox,
3825                        public SVGZoomAndPan
3827 public:
3829     /**
3830      *
3831      */
3832     virtual SVGStringList getViewTarget() =0;
3836     //##################
3837     //# Non-API methods
3838     //##################
3840     /**
3841      *
3842      */
3843     virtual ~SVGViewElement() {}
3845 };
3852 /*#########################################################################
3853 ## SVGScriptElement
3854 #########################################################################*/
3856 /**
3857  *
3858  */
3859 class SVGScriptElement :
3860                     virtual public SVGElement,
3861                     public SVGURIReference,
3862                     public SVGExternalResourcesRequired
3864 public:
3866     /**
3867      *
3868      */
3869     virtual DOMString getType() =0;
3871     /**
3872      *
3873      */
3874     virtual void setType(const DOMString &val)
3875                                throw (DOMException) =0;
3878     //##################
3879     //# Non-API methods
3880     //##################
3882     /**
3883      *
3884      */
3885     virtual ~SVGScriptElement() {}
3887 };
3893 /*#########################################################################
3894 ## SVGAnimationElement
3895 #########################################################################*/
3897 /**
3898  *
3899  */
3900 class SVGAnimationElement :
3901                     virtual public SVGElement,
3902                     public SVGTests,
3903                     public SVGExternalResourcesRequired,
3904                     public smil::ElementTimeControl,
3905                     public events::EventTarget
3907 public:
3910     /**
3911      *
3912      */
3913     virtual SVGElement *getTargetElement() =0;
3916     /**
3917      *
3918      */
3919     virtual double getStartTime (  ) =0;
3921     /**
3922      *
3923      */
3924     virtual double getCurrentTime (  ) =0;
3926     /**
3927      *
3928      */
3929     virtual double getSimpleDuration (  )
3930                     throw( DOMException ) =0;
3935     //##################
3936     //# Non-API methods
3937     //##################
3939     /**
3940      *
3941      */
3942     virtual ~SVGAnimationElement() {}
3944 };
3951 /*#########################################################################
3952 ## SVGAnimateElement
3953 #########################################################################*/
3955 /**
3956  *
3957  */
3958 class SVGAnimateElement : virtual public SVGAnimationElement
3960 public:
3962     //##################
3963     //# Non-API methods
3964     //##################
3966     /**
3967      *
3968      */
3969     virtual ~SVGAnimateElement() {}
3971 };
3976 /*#########################################################################
3977 ## SVGSetElement
3978 #########################################################################*/
3980 /**
3981  *
3982  */
3983 class SVGSetElement : virtual public SVGAnimationElement
3985 public:
3987     //##################
3988     //# Non-API methods
3989     //##################
3991     /**
3992      *
3993      */
3994     virtual ~SVGSetElement() {}
3996 };
4001 /*#########################################################################
4002 ## SVGAnimateMotionElement
4003 #########################################################################*/
4005 /**
4006  *
4007  */
4008 class SVGAnimateMotionElement : virtual public SVGAnimationElement
4010 public:
4012     //##################
4013     //# Non-API methods
4014     //##################
4016     /**
4017      *
4018      */
4019     virtual ~SVGAnimateMotionElement() {}
4021 };
4026 /*#########################################################################
4027 ## SVGMPathElement
4028 #########################################################################*/
4030 /**
4031  *
4032  */
4033 class SVGMPathElement :
4034                     virtual public SVGElement,
4035                     public SVGURIReference,
4036                     public SVGExternalResourcesRequired
4038 public:
4040     //##################
4041     //# Non-API methods
4042     //##################
4044     /**
4045      *
4046      */
4047     virtual ~SVGMPathElement() {}
4049 };
4054 /*#########################################################################
4055 ## SVGAnimateColorElement
4056 #########################################################################*/
4058 /**
4059  *
4060  */
4061 class SVGAnimateColorElement : virtual public SVGAnimationElement
4063 public:
4065     //##################
4066     //# Non-API methods
4067     //##################
4069     /**
4070      *
4071      */
4072     virtual ~SVGAnimateColorElement() {}
4074 };
4079 /*#########################################################################
4080 ## SVGAnimateTransformElement
4081 #########################################################################*/
4083 /**
4084  *
4085  */
4086 class SVGAnimateTransformElement : virtual public SVGAnimationElement
4088 public:
4090     //##################
4091     //# Non-API methods
4092     //##################
4094     /**
4095      *
4096      */
4097     virtual ~SVGAnimateTransformElement() {}
4099 };
4104 /*#########################################################################
4105 ## SVGFontElement
4106 #########################################################################*/
4108 /**
4109  *
4110  */
4111 class SVGFontElement :  virtual public SVGElement,
4112                         public SVGExternalResourcesRequired,
4113                         public SVGStylable
4115 public:
4117     //##################
4118     //# Non-API methods
4119     //##################
4121     /**
4122      *
4123      */
4124     virtual ~SVGFontElement() {}
4126 };
4131 /*#########################################################################
4132 ## SVGGlyphElement
4133 #########################################################################*/
4135 /**
4136  *
4137  */
4138 class SVGGlyphElement :  virtual public SVGElement,
4139                          public SVGStylable
4141 public:
4143     //##################
4144     //# Non-API methods
4145     //##################
4147     /**
4148      *
4149      */
4150     virtual ~SVGGlyphElement() {}
4152 };
4157 /*#########################################################################
4158 ## SVGMissingGlyphElement
4159 #########################################################################*/
4161 /**
4162  *
4163  */
4164 class SVGMissingGlyphElement :
4165                     virtual public SVGElement,
4166                     public SVGStylable
4168 public:
4170     //##################
4171     //# Non-API methods
4172     //##################
4174     /**
4175      *
4176      */
4177     virtual ~SVGMissingGlyphElement() {}
4179 };
4184 /*#########################################################################
4185 ## SVGHKernElement
4186 #########################################################################*/
4188 /**
4189  *
4190  */
4191 class SVGHKernElement : virtual public SVGElement
4193 public:
4195     //##################
4196     //# Non-API methods
4197     //##################
4199     /**
4200      *
4201      */
4202     virtual ~SVGHKernElement() {}
4204 };
4209 /*#########################################################################
4210 ## SVGVKernElement
4211 #########################################################################*/
4213 /**
4214  *
4215  */
4216 class SVGVKernElement : public virtual SVGElement
4218 public:
4220     //##################
4221     //# Non-API methods
4222     //##################
4224     /**
4225      *
4226      */
4227     virtual ~SVGVKernElement() {}
4229 };
4234 /*#########################################################################
4235 ## SVGFontFaceElement
4236 #########################################################################*/
4238 /**
4239  *
4240  */
4241 class SVGFontFaceElement : virtual public SVGElement
4243 public:
4245     //##################
4246     //# Non-API methods
4247     //##################
4249     /**
4250      *
4251      */
4252     virtual ~SVGFontFaceElement() {}
4254 };
4259 /*#########################################################################
4260 ## SVGFontFaceSrcElement
4261 #########################################################################*/
4263 /**
4264  *
4265  */
4266 class SVGFontFaceSrcElement : virtual public SVGElement
4268 public:
4270     //##################
4271     //# Non-API methods
4272     //##################
4274     /**
4275      *
4276      */
4277     virtual ~SVGFontFaceSrcElement() {}
4279 };
4284 /*#########################################################################
4285 ## SVGFontFaceUriElement
4286 #########################################################################*/
4288 /**
4289  *
4290  */
4291 class SVGFontFaceUriElement : virtual public SVGElement
4293 public:
4295     //##################
4296     //# Non-API methods
4297     //##################
4299     /**
4300      *
4301      */
4302     virtual ~SVGFontFaceUriElement() {}
4304 };
4309 /*#########################################################################
4310 ## SVGFontFaceFormatElement
4311 #########################################################################*/
4313 /**
4314  *
4315  */
4316 class SVGFontFaceFormatElement : virtual public SVGElement
4318 public:
4320     //##################
4321     //# Non-API methods
4322     //##################
4324     /**
4325      *
4326      */
4327     virtual ~SVGFontFaceFormatElement() {}
4329 };
4334 /*#########################################################################
4335 ## SVGFontFaceNameElement
4336 #########################################################################*/
4338 /**
4339  *
4340  */
4341 class SVGFontFaceNameElement : virtual public SVGElement
4343 public:
4345     //##################
4346     //# Non-API methods
4347     //##################
4349     /**
4350      *
4351      */
4352     virtual ~SVGFontFaceNameElement() {}
4354 };
4359 /*#########################################################################
4360 ## SVGDefinitionSrcElement
4361 #########################################################################*/
4363 /**
4364  *
4365  */
4366 class SVGDefinitionSrcElement : virtual public SVGElement
4368 public:
4370     //##################
4371     //# Non-API methods
4372     //##################
4374     /**
4375      *
4376      */
4377     virtual ~SVGDefinitionSrcElement() {}
4379 };
4384 /*#########################################################################
4385 ## SVGMetadataElement
4386 #########################################################################*/
4388 /**
4389  *
4390  */
4391 class SVGMetadataElement : virtual public SVGElement
4393 public:
4395     //##################
4396     //# Non-API methods
4397     //##################
4399     /**
4400      *
4401      */
4402     virtual ~SVGMetadataElement() {}
4404 };
4408 /*#########################################################################
4409 ## SVGForeignObjectElement
4410 #########################################################################*/
4412 /**
4413  *
4414  */
4415 class SVGForeignObjectElement :
4416                     virtual public SVGElement,
4417                     public SVGTests,
4418                     public SVGLangSpace,
4419                     public SVGExternalResourcesRequired,
4420                     public SVGStylable,
4421                     public SVGTransformable,
4422                     public events::EventTarget
4424 public:
4427     /**
4428      *
4429      */
4430     virtual SVGAnimatedLength getX() =0;
4432     /**
4433      *
4434      */
4435     virtual SVGAnimatedLength getY() =0;
4437     /**
4438      *
4439      */
4440     virtual SVGAnimatedLength getWidth() =0;
4442     /**
4443      *
4444      */
4445     virtual SVGAnimatedLength getHeight() =0;
4449     //##################
4450     //# Non-API methods
4451     //##################
4454     /**
4455      *
4456      */
4457     virtual ~SVGForeignObjectElement() {}
4459 };
4465 }  //namespace svg
4466 }  //namespace dom
4467 }  //namespace w3c
4468 }  //namespace org
4470 #endif // __SVG_H__
4471 /*#########################################################################
4472 ## E N D    O F    F I L E
4473 #########################################################################*/