Code

05120a640b6e7d914fc84876a9f77abed2a0a936
[inkscape.git] / src / dom / 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-2008 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::ElementPtr ElementPtr;
72 typedef dom::Document Document;
73 typedef dom::DocumentPtr DocumentPtr;
74 typedef dom::NodeList NodeList;
79 class SVGElement;
80 typedef Ptr<SVGElement> SVGElementPtr;
81 class SVGSVGElement;
82 typedef Ptr<SVGSVGElement> SVGSVGElementPtr;
83 class SVGDocument;
84 typedef Ptr<SVGDocument> SVGDocumentPtr;
87 /*#########################################################################
88 ## SVGElement
89 #########################################################################*/
91 /**
92  *
93  */
94 class SVGElement : virtual public Element
95 {
96 public:
98     /**
99      *
100      */
101     virtual DOMString getId() =0;
103     /**
104      *
105      */
106     virtual void setId(const DOMString &val)
107                        throw (DOMException) =0;
109     /**
110      *
111      */
112     virtual DOMString getXmlBase() = 0;
114     /**
115      *
116      */
117     virtual void setXmlBase(const DOMString &val)
118                             throw (DOMException) = 0;
120     /**
121      *
122      */
123     virtual SVGSVGElementPtr getOwnerSVGElement() = 0;
125     /**
126      *
127      */
128     virtual SVGElementPtr getViewportElement() = 0;
131     //##################
132     //# Non-API methods
133     //##################
136     /**
137      *
138      */
139     virtual ~SVGElement() {}
142 };
146 /*#########################################################################
147 ## SVGDocument
148 #########################################################################*/
150 /**
151  *
152  */
153 class SVGDocument : virtual public Document,
154                     virtual public events::DocumentEvent
156 public:
159     /**
160      *
161      */
162     virtual DOMString getTitle() =0;
164     /**
165      *
166      */
167     virtual DOMString getReferrer() =0;
169     /**
170      *
171      */
172     virtual DOMString getDomain() =0;
174     /**
175      *
176      */
177     virtual DOMString getURL() =0;
179     /**
180      *
181      */
182     virtual SVGSVGElementPtr getRootElement() =0;
185     //##################
186     //# Non-API methods
187     //##################
189     /**
190      *
191      */
192     virtual ~SVGDocument() {}
194 };
198 /*#########################################################################
199 ## SVGSVGElement
200 #########################################################################*/
202 /**
203  *
204  */
205 class SVGSVGElement : virtual public SVGElement,
206                       public SVGTests,
207                       public SVGLangSpace,
208                       public SVGExternalResourcesRequired,
209                       public SVGStylable,
210                       public SVGLocatable,
211                       public SVGFitToViewBox,
212                       public SVGZoomAndPan,
213                       public events::EventTarget,
214                       public events::DocumentEvent,
215                       public css::ViewCSS,
216                       public css::DocumentCSS
218 public:
220     /**
221      *
222      */
223     virtual SVGAnimatedLength getX() =0;
225     /**
226      *
227      */
228     virtual SVGAnimatedLength getY() =0;
230     /**
231      *
232      */
233     virtual SVGAnimatedLength getWidth() =0;
235     /**
236      *
237      */
238     virtual SVGAnimatedLength getHeight() =0;
240     /**
241      *
242      */
243     virtual DOMString getContentScriptType() =0;
245     /**
246      *
247      */
248     virtual void setContentScriptType(const DOMString &val)
249                                      throw (DOMException) =0;
252     /**
253      *
254      */
255     virtual DOMString getContentStyleType() =0;
257     /**
258      *
259      */
260     virtual void setContentStyleType(const DOMString &val)
261                                      throw (DOMException) =0;
263     /**
264      *
265      */
266     virtual SVGRect getViewport() =0;
268     /**
269      *
270      */
271     virtual double getPixelUnitToMillimeterX() =0;
273     /**
274      *
275      */
276     virtual double getPixelUnitToMillimeterY() =0;
278     /**
279      *
280      */
281     virtual double getScreenPixelToMillimeterX() =0;
283     /**
284      *
285      */
286     virtual double getScreenPixelToMillimeterY() =0;
289     /**
290      *
291      */
292     virtual bool getUseCurrentView() =0;
294     /**
295      *
296      */
297     virtual void setUseCurrentView(bool val) throw (DOMException) =0;
299     /**
300      *
301      */
302     virtual SVGViewSpec getCurrentView() =0;
305     /**
306      *
307      */
308     virtual double getCurrentScale() =0;
310     /**
311      *
312      */
313     virtual void setCurrentScale(double val)
314                                  throw (DOMException) =0;
317     /**
318      *
319      */
320     virtual SVGPoint getCurrentTranslate() =0;
323     /**
324      *
325      */
326     virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds ) =0;
328     /**
329      *
330      */
331     virtual void unsuspendRedraw (unsigned long suspend_handle_id )
332                                   throw( DOMException ) =0;
334     /**
335      *
336      */
337     virtual void unsuspendRedrawAll (  ) =0;
339     /**
340      *
341      */
342     virtual void forceRedraw (  ) =0;
344     /**
345      *
346      */
347     virtual void pauseAnimations (  ) =0;
349     /**
350      *
351      */
352     virtual void unpauseAnimations (  ) =0;
354     /**
355      *
356      */
357     virtual bool animationsPaused (  ) =0;
359     /**
360      *
361      */
362     virtual double getCurrentTime (  ) =0;
364     /**
365      *
366      */
367     virtual void setCurrentTime (double seconds ) =0;
369     /**
370      *
371      */
372     virtual NodeList getIntersectionList(const SVGRect &rect,
373                                          const SVGElementPtr referenceElement ) =0;
375     /**
376      *
377      */
378     virtual NodeList getEnclosureList (const SVGRect &rect,
379                                        const SVGElementPtr referenceElement ) =0;
381     /**
382      *
383      */
384     virtual bool checkIntersection (const SVGElementPtr element, const SVGRect &rect ) =0;
386     /**
387      *
388      */
389     virtual bool checkEnclosure (const SVGElementPtr element, const SVGRect &rect ) =0;
391     /**
392      *
393      */
394     virtual void deselectAll (  ) =0;
396     /**
397      *
398      */
399     virtual SVGNumber createSVGNumber (  ) =0;
401     /**
402      *
403      */
404     virtual SVGLength createSVGLength (  ) =0;
406     /**
407      *
408      */
409     virtual SVGAngle createSVGAngle (  ) =0;
411     /**
412      *
413      */
414     virtual SVGPoint createSVGPoint (  ) =0;
416     /**
417      *
418      */
419     virtual SVGMatrix createSVGMatrix (  ) =0;
421     /**
422      *
423      */
424     virtual SVGRect createSVGRect (  ) =0;
426     /**
427      *
428      */
429     virtual SVGTransform createSVGTransform (  ) =0;
431     /**
432      *
433      */
434     virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix ) =0;
436     /**
437      *
438      */
439     virtual ElementPtr getElementById (const DOMString& elementId ) =0;
443     //##################
444     //# Non-API methods
445     //##################
447     /**
448      *
449      */
450     virtual ~SVGSVGElement() {}
452 };
456 /*#########################################################################
457 ## SVGGElement
458 #########################################################################*/
460 /**
461  *
462  */
463 class SVGGElement : virtual public SVGElement,
464                     public SVGTests,
465                     public SVGLangSpace,
466                     public SVGExternalResourcesRequired,
467                     public SVGStylable,
468                     public SVGTransformable,
469                     public events::EventTarget
471 public:
473     //##################
474     //# Non-API methods
475     //##################
477     /**
478      *
479      */
480     virtual ~SVGGElement() {}
482 };
487 /*#########################################################################
488 ## SVGDefsElement
489 #########################################################################*/
491 /**
492  *
493  */
494 class SVGDefsElement :
495                     virtual public SVGElement,
496                     public SVGTests,
497                     public SVGLangSpace,
498                     public SVGExternalResourcesRequired,
499                     public SVGStylable,
500                     public SVGTransformable,
501                     public events::EventTarget
503 public:
505     //##################
506     //# Non-API methods
507     //##################
509     /**
510      *
511      */
512     virtual ~SVGDefsElement() {}
514 };
519 /*#########################################################################
520 ## SVGDescElement
521 #########################################################################*/
523 /**
524  *
525  */
526 class SVGDescElement :
527                     virtual public SVGElement,
528                     public SVGLangSpace,
529                     public SVGStylable
531 public:
533     //##################
534     //# Non-API methods
535     //##################
537     /**
538      *
539      */
540     virtual ~SVGDescElement() {}
542 };
547 /*#########################################################################
548 ## SVGTitleElement
549 #########################################################################*/
551 /**
552  *
553  */
554 class SVGTitleElement :
555                     virtual public SVGElement,
556                     public SVGLangSpace,
557                     public SVGStylable
559 public:
561     //##################
562     //# Non-API methods
563     //##################
565     /**
566      *
567      */
568     virtual ~SVGTitleElement() {}
570 };
575 /*#########################################################################
576 ## SVGSymbolElement
577 #########################################################################*/
579 /**
580  *
581  */
582 class SVGSymbolElement :
583                     virtual public SVGElement,
584                     public SVGLangSpace,
585                     public SVGExternalResourcesRequired,
586                     public SVGStylable,
587                     public SVGFitToViewBox,
588                     public events::EventTarget
590 public:
592     //##################
593     //# Non-API methods
594     //##################
596     /**
597      *
598      */
599     virtual ~SVGSymbolElement() {}
601 };
606 /*#########################################################################
607 ## SVGUseElement
608 #########################################################################*/
610 /**
611  *
612  */
613 class SVGUseElement :
614                     virtual public SVGElement,
615                     public SVGURIReference,
616                     public SVGTests,
617                     public SVGLangSpace,
618                     public SVGExternalResourcesRequired,
619                     public SVGStylable,
620                     public SVGTransformable,
621                     public events::EventTarget
623 public:
628     /**
629      *
630      */
631     virtual SVGAnimatedLength getX() =0;
633     /**
634      *
635      */
636     virtual SVGAnimatedLength getY() =0;
638     /**
639      *
640      */
641     virtual SVGAnimatedLength getWidth() =0;
643     /**
644      *
645      */
646     virtual SVGAnimatedLength getHeight() =0;
648     /**
649      *
650      */
651     virtual SVGElementInstance getInstanceRoot() =0;
653     /**
654      *
655      */
656     virtual SVGElementInstance getAnimatedInstanceRoot() =0;
660     //##################
661     //# Non-API methods
662     //##################
664     /**
665      *
666      */
667     virtual ~SVGUseElement() {}
669 };
677 /*#########################################################################
678 ## SVGImageElement
679 #########################################################################*/
681 /**
682  *
683  */
684 class SVGImageElement :
685                     virtual public SVGElement,
686                     public SVGURIReference,
687                     public SVGTests,
688                     public SVGLangSpace,
689                     public SVGExternalResourcesRequired,
690                     public SVGStylable,
691                     public SVGTransformable,
692                     public events::EventTarget
694 public:
697     /**
698      *
699      */
700     virtual SVGAnimatedLength getX() =0;
702     /**
703      *
704      */
705     virtual SVGAnimatedLength getY() =0;
707     /**
708      *
709      */
710     virtual SVGAnimatedLength getWidth() =0;
712     /**
713      *
714      */
715     virtual SVGAnimatedLength getHeight() =0;
718     /**
719      *
720      */
721     virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio() =0;
725     //##################
726     //# Non-API methods
727     //##################
729     /**
730      *
731      */
732     virtual ~SVGImageElement() {}
734 };
741 /*#########################################################################
742 ## SVGSwitchElement
743 #########################################################################*/
745 /**
746  *
747  */
748 class SVGSwitchElement :
749                     virtual public SVGElement,
750                     public SVGTests,
751                     public SVGLangSpace,
752                     public SVGExternalResourcesRequired,
753                     public SVGStylable,
754                     public SVGTransformable,
755                     public events::EventTarget
757 public:
759     //##################
760     //# Non-API methods
761     //##################
763     /**
764      *
765      */
766     virtual ~SVGSwitchElement() {}
768 };
773 /*#########################################################################
774 ## GetSVGDocument
775 #########################################################################*/
777 /**
778  *
779  */
780 class GetSVGDocument
782 public:
784     /**
785      *
786      */
787     virtual SVGDocumentPtr getSVGDocument (  )
788                     throw( DOMException ) =0;
790     //##################
791     //# Non-API methods
792     //##################
794     /**
795      *
796      */
797     virtual ~GetSVGDocument() {}
799 };
806 /*#########################################################################
807 ## SVGStyleElement
808 #########################################################################*/
810 /**
811  *
812  */
813 class SVGStyleElement : virtual public SVGElement
815 public:
817     /**
818      *
819      */
820     virtual DOMString getXmlspace() = 0;
822     /**
823      *
824      */
825     virtual void setXmlspace(const DOMString &val)
826                              throw (DOMException) =0;
828     /**
829      *
830      */
831     virtual DOMString getType() = 0;
833     /**
834      *
835      */
836     virtual void setType(const DOMString &val)
837                          throw (DOMException) =0;
839     /**
840      *
841      */
842     virtual DOMString getMedia() = 0;
844     /**
845      *
846      */
847     virtual void setMedia(const DOMString &val)
848                           throw (DOMException) =0;
850     /**
851      *
852      */
853     virtual DOMString getTitle() = 0;
855     /**
856      *
857      */
858     virtual void setTitle(const DOMString &val)
859                           throw (DOMException) =0;
863     //##################
864     //# Non-API methods
865     //##################
867     /**
868      *
869      */
870     virtual ~SVGStyleElement() {}
872 };
879 /*#########################################################################
880 ## SVGPathElement
881 #########################################################################*/
883 /**
884  *
885  */
886 class SVGPathElement :
887                     virtual public SVGElement,
888                     public SVGTests,
889                     public SVGLangSpace,
890                     public SVGExternalResourcesRequired,
891                     public SVGStylable,
892                     public SVGTransformable,
893                     public events::EventTarget,
894                     public SVGAnimatedPathData
896 public:
901     /**
902      *
903      */
904     virtual SVGAnimatedNumber getPathLength() =0;
906     /**
907      *
908      */
909     virtual double getTotalLength (  ) =0;
911     /**
912      *
913      */
914     virtual SVGPoint getPointAtLength (double distance ) =0;
916     /**
917      *
918      */
919     virtual unsigned long getPathSegAtLength (double distance ) =0;
921     /**
922      *
923      */
924     virtual SVGPathSegClosePath
925               createSVGPathSegClosePath (  ) =0;
927     /**
928      *
929      */
930     virtual SVGPathSegMovetoAbs
931               createSVGPathSegMovetoAbs (double x, double y ) =0;
933     /**
934      *
935      */
936     virtual SVGPathSegMovetoRel
937               createSVGPathSegMovetoRel (double x, double y ) =0;
939     /**
940      *
941      */
942     virtual SVGPathSegLinetoAbs
943               createSVGPathSegLinetoAbs (double x, double y ) =0;
945     /**
946      *
947      */
948     virtual SVGPathSegLinetoRel
949               createSVGPathSegLinetoRel (double x, double y ) =0;
951     /**
952      *
953      */
954     virtual SVGPathSegCurvetoCubicAbs
955               createSVGPathSegCurvetoCubicAbs (double x, double y,
956                         double x1, double y1, double x2, double y2 ) =0;
958     /**
959      *
960      */
961     virtual SVGPathSegCurvetoCubicRel
962               createSVGPathSegCurvetoCubicRel (double x, double y,
963                         double x1, double y1, double x2, double y2 ) =0;
965     /**
966      *
967      */
968     virtual SVGPathSegCurvetoQuadraticAbs
969               createSVGPathSegCurvetoQuadraticAbs (double x, double y,
970                          double x1, double y1 ) =0;
972     /**
973      *
974      */
975     virtual SVGPathSegCurvetoQuadraticRel
976               createSVGPathSegCurvetoQuadraticRel (double x, double y,
977                          double x1, double y1 ) =0;
979     /**
980      *
981      */
982     virtual SVGPathSegArcAbs
983               createSVGPathSegArcAbs (double x, double y,
984                          double r1, double r2, double angle,
985                          bool largeArcFlag, bool sweepFlag ) =0;
987     /**
988      *
989      */
990     virtual SVGPathSegArcRel
991               createSVGPathSegArcRel (double x, double y, double r1,
992                          double r2, double angle, bool largeArcFlag,
993                          bool sweepFlag ) =0;
995     /**
996      *
997      */
998     virtual SVGPathSegLinetoHorizontalAbs
999               createSVGPathSegLinetoHorizontalAbs (double x ) =0;
1001     /**
1002      *
1003      */
1004     virtual SVGPathSegLinetoHorizontalRel
1005               createSVGPathSegLinetoHorizontalRel (double x ) =0;
1007     /**
1008      *
1009      */
1010     virtual SVGPathSegLinetoVerticalAbs
1011               createSVGPathSegLinetoVerticalAbs (double y ) =0;
1013     /**
1014      *
1015      */
1016     virtual SVGPathSegLinetoVerticalRel
1017               createSVGPathSegLinetoVerticalRel (double y ) =0;
1019     /**
1020      *
1021      */
1022     virtual SVGPathSegCurvetoCubicSmoothAbs
1023               createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
1024                                              double x2, double y2 ) =0;
1026     /**
1027      *
1028      */
1029     virtual SVGPathSegCurvetoCubicSmoothRel
1030               createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
1031                                                       double x2, double y2 ) =0;
1033     /**
1034      *
1035      */
1036     virtual SVGPathSegCurvetoQuadraticSmoothAbs
1037               createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y ) =0;
1039     /**
1040      *
1041      */
1042     virtual SVGPathSegCurvetoQuadraticSmoothRel
1043               createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y ) =0;
1047     //##################
1048     //# Non-API methods
1049     //##################
1051     /**
1052      *
1053      */
1054     virtual ~SVGPathElement() {}
1056 };
1063 /*#########################################################################
1064 ## SVGRectElement
1065 #########################################################################*/
1067 /**
1068  *
1069  */
1070 class SVGRectElement :
1071                     virtual public SVGElement,
1072                     public SVGTests,
1073                     public SVGLangSpace,
1074                     public SVGExternalResourcesRequired,
1075                     public SVGStylable,
1076                     public SVGTransformable,
1077                     public events::EventTarget
1079 public:
1081     /**
1082      *
1083      */
1084     virtual SVGAnimatedLength getX() =0;
1086     /**
1087      *
1088      */
1089     virtual SVGAnimatedLength getY() =0;
1091     /**
1092      *
1093      */
1094     virtual SVGAnimatedLength getWidth() =0;
1096     /**
1097      *
1098      */
1099     virtual SVGAnimatedLength getHeight() =0;
1102     /**
1103      *
1104      */
1105     virtual SVGAnimatedLength getRx() =0;
1107     /**
1108      *
1109      */
1110     virtual SVGAnimatedLength getRy() =0;
1114     //##################
1115     //# Non-API methods
1116     //##################
1118     /**
1119      *
1120      */
1121     virtual ~SVGRectElement() {}
1123 };
1130 /*#########################################################################
1131 ## SVGCircleElement
1132 #########################################################################*/
1134 /**
1135  *
1136  */
1137 class SVGCircleElement :
1138                     virtual public SVGElement,
1139                     public SVGTests,
1140                     public SVGLangSpace,
1141                     public SVGExternalResourcesRequired,
1142                     public SVGStylable,
1143                     public SVGTransformable,
1144                     public events::EventTarget
1146 public:
1148     /**
1149      *
1150      */
1151     virtual SVGAnimatedLength getCx() =0;
1153     /**
1154      *
1155      */
1156     virtual SVGAnimatedLength getCy() =0;
1158     /**
1159      *
1160      */
1161     virtual SVGAnimatedLength getR() =0;
1165     //##################
1166     //# Non-API methods
1167     //##################
1169     /**
1170      *
1171      */
1172     virtual ~SVGCircleElement() {}
1174 };
1181 /*#########################################################################
1182 ## SVGEllipseElement
1183 #########################################################################*/
1185 /**
1186  *
1187  */
1188 class SVGEllipseElement :
1189                     virtual public SVGElement,
1190                     public SVGTests,
1191                     public SVGLangSpace,
1192                     public SVGExternalResourcesRequired,
1193                     public SVGStylable,
1194                     public SVGTransformable,
1195                     public events::EventTarget
1197 public:
1198     /**
1199      *
1200      */
1201     virtual SVGAnimatedLength getCx() =0;
1203     /**
1204      *
1205      */
1206     virtual SVGAnimatedLength getCy() =0;
1208     /**
1209      *
1210      */
1211     virtual SVGAnimatedLength getRx() =0;
1213     /**
1214      *
1215      */
1216     virtual SVGAnimatedLength getRy() =0;
1219     //##################
1220     //# Non-API methods
1221     //##################
1223     /**
1224      *
1225      */
1226     virtual ~SVGEllipseElement() {}
1228 };
1235 /*#########################################################################
1236 ## SVGLineElement
1237 #########################################################################*/
1239 /**
1240  *
1241  */
1242 class SVGLineElement :
1243                     virtual public SVGElement,
1244                     public SVGTests,
1245                     public SVGLangSpace,
1246                     public SVGExternalResourcesRequired,
1247                     public SVGStylable,
1248                     public SVGTransformable,
1249                     public events::EventTarget
1251 public:
1252     /**
1253      *
1254      */
1255     virtual SVGAnimatedLength getX1() =0;
1257     /**
1258      *
1259      */
1260     virtual SVGAnimatedLength getY1() =0;
1262     /**
1263      *
1264      */
1265     virtual SVGAnimatedLength getX2() =0;
1267     /**
1268      *
1269      */
1270     virtual SVGAnimatedLength getY2() =0;
1272     //##################
1273     //# Non-API methods
1274     //##################
1276     /**
1277      *
1278      */
1279     virtual ~SVGLineElement() {}
1281 };
1286 /*#########################################################################
1287 ## SVGPolylineElement
1288 #########################################################################*/
1290 /**
1291  *
1292  */
1293 class SVGPolylineElement :
1294                     virtual public SVGElement,
1295                     public SVGTests,
1296                     public SVGLangSpace,
1297                     public SVGExternalResourcesRequired,
1298                     public SVGStylable,
1299                     public SVGTransformable,
1300                     public events::EventTarget,
1301                     public SVGAnimatedPoints
1303 public:
1305     //##################
1306     //# Non-API methods
1307     //##################
1309     /**
1310      *
1311      */
1312     virtual ~SVGPolylineElement() {}
1314 };
1319 /*#########################################################################
1320 ## SVGPolygonElement
1321 #########################################################################*/
1323 /**
1324  *
1325  */
1326 class SVGPolygonElement :
1327                     virtual public SVGElement,
1328                     public SVGTests,
1329                     public SVGLangSpace,
1330                     public SVGExternalResourcesRequired,
1331                     public SVGStylable,
1332                     public SVGTransformable,
1333                     public events::EventTarget,
1334                     public SVGAnimatedPoints
1336 public:
1338     //##################
1339     //# Non-API methods
1340     //##################
1342     /**
1343      *
1344      */
1345     virtual ~SVGPolygonElement() {}
1347 };
1352 /*#########################################################################
1353 ## SVGTextContentElement
1354 #########################################################################*/
1356 /**
1357  *
1358  */
1359 class SVGTextContentElement :
1360                     virtual public SVGElement,
1361                     public SVGTests,
1362                     public SVGLangSpace,
1363                     public SVGExternalResourcesRequired,
1364                     public SVGStylable,
1365                     public events::EventTarget
1367 public:
1371     /**
1372      * lengthAdjust Types
1373      */
1374     typedef enum
1375         {
1376         LENGTHADJUST_UNKNOWN          = 0,
1377         LENGTHADJUST_SPACING          = 1,
1378         LENGTHADJUST_SPACINGANDGLYPHS = 2
1379         } LengthAdjustType;
1382     /**
1383      *
1384      */
1385     virtual SVGAnimatedLength getTextLength() =0;
1388     /**
1389      *
1390      */
1391     virtual SVGAnimatedEnumeration getLengthAdjust() =0;
1394     /**
1395      *
1396      */
1397     virtual long getNumberOfChars (  ) =0;
1399     /**
1400      *
1401      */
1402     virtual double getComputedTextLength (  ) =0;
1404     /**
1405      *
1406      */
1407     virtual double getSubStringLength (unsigned long charnum, unsigned long nchars )
1408                                      throw( DOMException ) =0;
1410     /**
1411      *
1412      */
1413     virtual SVGPoint getStartPositionOfChar (unsigned long charnum )
1414                                               throw( DOMException ) =0;
1416     /**
1417      *
1418      */
1419     virtual SVGPoint getEndPositionOfChar (unsigned long charnum )
1420                                            throw( DOMException ) =0;
1422     /**
1423      *
1424      */
1425     virtual SVGRect getExtentOfChar (unsigned long charnum )
1426                                       throw( DOMException ) =0;
1428     /**
1429      *
1430      */
1431     virtual double getRotationOfChar (unsigned long charnum )
1432                                      throw( DOMException ) =0;
1434     /**
1435      *
1436      */
1437     virtual long getCharNumAtPosition (const SVGPoint &point ) =0;
1439     /**
1440      *
1441      */
1442     virtual void selectSubString (unsigned long charnum, unsigned long nchars )
1443                                   throw( DOMException ) =0;
1447     //##################
1448     //# Non-API methods
1449     //##################
1451     /**
1452      *
1453      */
1454     virtual ~SVGTextContentElement() {}
1456 };
1463 /*#########################################################################
1464 ## SVGTextPositioningElement
1465 #########################################################################*/
1467 /**
1468  *
1469  */
1470 class SVGTextPositioningElement : virtual public SVGTextContentElement
1472 public:
1474     /**
1475      *
1476      */
1477     virtual SVGAnimatedLength getX() =0;
1479     /**
1480      *
1481      */
1482     virtual SVGAnimatedLength getY() =0;
1484     /**
1485      *
1486      */
1487     virtual SVGAnimatedLength getDx() =0;
1489     /**
1490      *
1491      */
1492     virtual SVGAnimatedLength getDy() =0;
1495     /**
1496      *
1497      */
1498     virtual SVGAnimatedNumberList getRotate() =0;
1502     //##################
1503     //# Non-API methods
1504     //##################
1506     /**
1507      *
1508      */
1509     virtual ~SVGTextPositioningElement() {}
1511 };
1518 /*#########################################################################
1519 ## SVGTextElement
1520 #########################################################################*/
1522 /**
1523  *
1524  */
1525 class SVGTextElement : virtual public SVGTextPositioningElement,
1526                        public SVGTransformable
1528 public:
1530     //##################
1531     //# Non-API methods
1532     //##################
1534     /**
1535      *
1536      */
1537     virtual ~SVGTextElement() {}
1539 };
1544 /*#########################################################################
1545 ## SVGTSpanElement
1546 #########################################################################*/
1548 /**
1549  *
1550  */
1551 class SVGTSpanElement : virtual public SVGTextPositioningElement
1553 public:
1555     //##################
1556     //# Non-API methods
1557     //##################
1559     /**
1560      *
1561      */
1562     virtual ~SVGTSpanElement() {}
1564 };
1569 /*#########################################################################
1570 ## SVGTRefElement
1571 #########################################################################*/
1573 /**
1574  *
1575  */
1576 class SVGTRefElement :
1577                     virtual public SVGTextPositioningElement,
1578                     public SVGURIReference
1580 public:
1582     //##################
1583     //# Non-API methods
1584     //##################
1586     /**
1587      *
1588      */
1589     virtual ~SVGTRefElement() {}
1591 };
1596 /*#########################################################################
1597 ## SVGTextPathElement
1598 #########################################################################*/
1600 /**
1601  *
1602  */
1603 class SVGTextPathElement :
1604                     virtual public SVGTextContentElement,
1605                     public SVGURIReference
1607 public:
1611     /**
1612      * textPath Method Types
1613      */
1614     typedef enum
1615         {
1616         TEXTPATH_METHODTYPE_UNKNOWN   = 0,
1617         TEXTPATH_METHODTYPE_ALIGN     = 1,
1618         TEXTPATH_METHODTYPE_STRETCH   = 2
1619         } TextPathMethodType;
1621     /**
1622      * textPath Spacing Types
1623      */
1624     typedef enum
1625         {
1626         TEXTPATH_SPACINGTYPE_UNKNOWN  = 0,
1627         TEXTPATH_SPACINGTYPE_AUTO     = 1,
1628         TEXTPATH_SPACINGTYPE_EXACT    = 2
1629         } TextPathSpacingType;
1632     /**
1633      *
1634      */
1635     virtual SVGAnimatedLength getStartOffset() =0;
1637     /**
1638      *
1639      */
1640     virtual SVGAnimatedEnumeration getMethod() =0;
1642     /**
1643      *
1644      */
1645     virtual SVGAnimatedEnumeration getSpacing() =0;
1649     //##################
1650     //# Non-API methods
1651     //##################
1653     /**
1654      *
1655      */
1656     virtual ~SVGTextPathElement() {}
1658 };
1665 /*#########################################################################
1666 ## SVGAltGlyphElement
1667 #########################################################################*/
1669 /**
1670  *
1671  */
1672 class SVGAltGlyphElement :
1673                     virtual public SVGTextPositioningElement,
1674                     public SVGURIReference
1676 public:
1678     /**
1679      *
1680      */
1681     virtual DOMString getGlyphRef() =0;
1683     /**
1684      *
1685      */
1686     virtual void setGlyphRef(const DOMString &val)
1687                                      throw (DOMException) =0;
1689     /**
1690      *
1691      */
1692     virtual DOMString getFormat() =0;
1694     /**
1695      *
1696      */
1697     virtual void setFormat(const DOMString &val)
1698                                      throw (DOMException) =0;
1703     //##################
1704     //# Non-API methods
1705     //##################
1707     /**
1708      *
1709      */
1710     virtual ~SVGAltGlyphElement() {}
1712 };
1719 /*#########################################################################
1720 ## SVGAltGlyphDefElement
1721 #########################################################################*/
1723 /**
1724  *
1725  */
1726 class SVGAltGlyphDefElement : virtual public SVGElement
1728 public:
1730     //##################
1731     //# Non-API methods
1732     //##################
1734     /**
1735      *
1736      */
1737     virtual ~SVGAltGlyphDefElement() {}
1739 };
1744 /*#########################################################################
1745 ## SVGAltGlyphItemElement
1746 #########################################################################*/
1748 /**
1749  *
1750  */
1751 class SVGAltGlyphItemElement : virtual public SVGElement
1753 public:
1755     //##################
1756     //# Non-API methods
1757     //##################
1759     /**
1760      *
1761      */
1762     virtual ~SVGAltGlyphItemElement() {}
1764 };
1769 /*#########################################################################
1770 ## SVGGlyphRefElement
1771 #########################################################################*/
1773 /**
1774  *
1775  */
1776 class SVGGlyphRefElement : virtual public SVGElement,
1777                            public SVGURIReference,
1778                            public SVGStylable
1780 public:
1781     /**
1782      *
1783      */
1784     virtual DOMString getGlyphRef() =0;
1786     /**
1787      *
1788      */
1789     virtual void setGlyphRef(const DOMString &val)
1790                              throw (DOMException) =0;
1792     /**
1793      *
1794      */
1795     virtual DOMString getFormat() =0;
1797     /**
1798      *
1799      */
1800     virtual void setFormat(const DOMString &val)
1801                            throw (DOMException) =0;
1803     /**
1804      *
1805      */
1806     virtual double getX() = 0;
1808     /**
1809      *
1810      */
1811     virtual void setX(double val) throw (DOMException) =0;
1813     /**
1814      *
1815      */
1816     virtual double getY() = 0;
1818     /**
1819      *
1820      */
1821     virtual void setY(double val) throw (DOMException) =0;
1823     /**
1824      *
1825      */
1826     virtual double getDx() = 0;
1828     /**
1829      *
1830      */
1831     virtual void setDx(double val) throw (DOMException) =0;
1833     /**
1834      *
1835      */
1836     virtual double getDy() = 0;
1838     /**
1839      *
1840      */
1841     virtual void setDy(double val) throw (DOMException) =0;
1846     //##################
1847     //# Non-API methods
1848     //##################
1850     /**
1851      *
1852      */
1853     virtual ~SVGGlyphRefElement() {}
1855 };
1861 /*#########################################################################
1862 ## SVGMarkerElement
1863 #########################################################################*/
1865 /**
1866  *
1867  */
1868 class SVGMarkerElement :
1869                     virtual public SVGElement,
1870                     public SVGLangSpace,
1871                     public SVGExternalResourcesRequired,
1872                     public SVGStylable,
1873                     public SVGFitToViewBox
1875 public:
1879     /**
1880      * Marker Unit Types
1881      */
1882     typedef enum
1883         {
1884         SVG_MARKERUNITS_UNKNOWN        = 0,
1885         SVG_MARKERUNITS_USERSPACEONUSE = 1,
1886         SVG_MARKERUNITS_STROKEWIDTH    = 2
1887         } MarkerUnitType;
1889     /**
1890      * Marker Orientation Types
1891      */
1892     typedef enum
1893         {
1894         SVG_MARKER_ORIENT_UNKNOWN      = 0,
1895         SVG_MARKER_ORIENT_AUTO         = 1,
1896         SVG_MARKER_ORIENT_ANGLE        = 2
1897         } MarkerOrientationType;
1900     /**
1901      *
1902      */
1903     virtual SVGAnimatedLength getRefX() =0;
1905     /**
1906      *
1907      */
1908     virtual SVGAnimatedLength getRefY() =0;
1910     /**
1911      *
1912      */
1913     virtual SVGAnimatedEnumeration getMarkerUnits() =0;
1915     /**
1916      *
1917      */
1918     virtual SVGAnimatedLength getMarkerWidth() =0;
1920     /**
1921      *
1922      */
1923     virtual SVGAnimatedLength getMarkerHeight() =0;
1925     /**
1926      *
1927      */
1928     virtual SVGAnimatedEnumeration getOrientType() =0;
1930     /**
1931      *
1932      */
1933     virtual SVGAnimatedAngle getOrientAngle() =0;
1936     /**
1937      *
1938      */
1939     virtual void setOrientToAuto (  ) =0;
1941     /**
1942      *
1943      */
1944     virtual void setOrientToAngle (const SVGAngle &angle) =0;
1948     //##################
1949     //# Non-API methods
1950     //##################
1952     /**
1953      *
1954      */
1955     virtual ~SVGMarkerElement() {}
1957 };
1964 /*#########################################################################
1965 ## SVGColorProfileElement
1966 #########################################################################*/
1968 /**
1969  *
1970  */
1971 class SVGColorProfileElement :
1972                     virtual public SVGElement,
1973                     public SVGURIReference,
1974                     public SVGRenderingIntent
1976 public:
1977     /**
1978      *
1979      */
1980     virtual DOMString getLocal() =0;
1982     /**
1983      *
1984      */
1985     virtual void setLocal(const DOMString &val)
1986                           throw (DOMException) =0;
1988     /**
1989      *
1990      */
1991     virtual DOMString getName() =0;
1993     /**
1994      *
1995      */
1996     virtual void setName(const DOMString &val)
1997                          throw (DOMException) =0;
1999     /**
2000      *
2001      */
2002     virtual unsigned short getRenderingIntent() =0;
2004     /**
2005      *
2006      */
2007     virtual void setRenderingIntent(unsigned short val)
2008                                     throw (DOMException) =0;
2012     //##################
2013     //# Non-API methods
2014     //##################
2016     /**
2017      *
2018      */
2019     virtual ~SVGColorProfileElement() {}
2021 };
2026 /*#########################################################################
2027 ## SVGGradientElement
2028 #########################################################################*/
2030 /**
2031  *
2032  */
2033 class SVGGradientElement :
2034                     virtual public SVGElement,
2035                     public SVGURIReference,
2036                     public SVGExternalResourcesRequired,
2037                     public SVGStylable,
2038                     public SVGUnitTypes
2040 public:
2044     /**
2045      * Spread Method Types
2046      */
2047     typedef enum
2048         {
2049         SVG_SPREADMETHOD_UNKNOWN = 0,
2050         SVG_SPREADMETHOD_PAD     = 1,
2051         SVG_SPREADMETHOD_REFLECT = 2,
2052         SVG_SPREADMETHOD_REPEAT  = 3
2053         } SpreadMethodType;
2056     /**
2057      *
2058      */
2059     virtual SVGAnimatedEnumeration getGradientUnits() =0;
2061     /**
2062      *
2063      */
2064     virtual SVGAnimatedTransformList getGradientTransform() =0;
2066     /**
2067      *
2068      */
2069     virtual SVGAnimatedEnumeration getSpreadMethod() =0;
2073     //##################
2074     //# Non-API methods
2075     //##################
2077     /**
2078      *
2079      */
2080     virtual ~SVGGradientElement() {}
2082 };
2089 /*#########################################################################
2090 ## SVGLinearGradientElement
2091 #########################################################################*/
2093 /**
2094  *
2095  */
2096 class SVGLinearGradientElement : virtual public SVGGradientElement
2098 public:
2101     /**
2102      *
2103      */
2104     virtual SVGAnimatedLength getX1() =0;
2106     /**
2107      *
2108      */
2109     virtual SVGAnimatedLength getY1() =0;
2111     /**
2112      *
2113      */
2114     virtual SVGAnimatedLength getX2() =0;
2116     /**
2117      *
2118      */
2119     virtual SVGAnimatedLength getY2() =0;
2122     //##################
2123     //# Non-API methods
2124     //##################
2126     /**
2127      *
2128      */
2129     virtual ~SVGLinearGradientElement() {}
2131 };
2138 /*#########################################################################
2139 ## SVGRadialGradientElement
2140 #########################################################################*/
2142 /**
2143  *
2144  */
2145 class SVGRadialGradientElement : virtual public SVGGradientElement
2147 public:
2150     /**
2151      *
2152      */
2153     virtual SVGAnimatedLength getCx() =0;
2156     /**
2157      *
2158      */
2159     virtual SVGAnimatedLength getCy() =0;
2162     /**
2163      *
2164      */
2165     virtual SVGAnimatedLength getR() =0;
2168     /**
2169      *
2170      */
2171     virtual SVGAnimatedLength getFx() =0;
2174     /**
2175      *
2176      */
2177     virtual SVGAnimatedLength getFy() =0;
2182     //##################
2183     //# Non-API methods
2184     //##################
2186     /**
2187      *
2188      */
2189     virtual ~SVGRadialGradientElement() {}
2191 };
2198 /*#########################################################################
2199 ## SVGStopElement
2200 #########################################################################*/
2202 /**
2203  *
2204  */
2205 class SVGStopElement :
2206                     virtual public SVGElement,
2207                     public SVGStylable
2209 public:
2211     /**
2212      *
2213      */
2214     virtual SVGAnimatedNumber getOffset() =0;
2218     //##################
2219     //# Non-API methods
2220     //##################
2222     /**
2223      *
2224      */
2225     virtual ~SVGStopElement() {}
2227 };
2234 /*#########################################################################
2235 ## SVGPatternElement
2236 #########################################################################*/
2238 /**
2239  *
2240  */
2241 class SVGPatternElement :
2242                     virtual public SVGElement,
2243                     public SVGURIReference,
2244                     public SVGTests,
2245                     public SVGLangSpace,
2246                     public SVGExternalResourcesRequired,
2247                     public SVGStylable,
2248                     public SVGFitToViewBox,
2249                     public SVGUnitTypes
2251 public:
2256     /**
2257      *
2258      */
2259     virtual SVGAnimatedEnumeration getPatternUnits() =0;
2261     /**
2262      *
2263      */
2264     virtual SVGAnimatedEnumeration getPatternContentUnits() =0;
2266     /**
2267      *
2268      */
2269     virtual SVGAnimatedTransformList getPatternTransform() =0;
2271     /**
2272      *
2273      */
2274     virtual SVGAnimatedLength getX() =0;
2276     /**
2277      *
2278      */
2279     virtual SVGAnimatedLength getY() =0;
2281     /**
2282      *
2283      */
2284     virtual SVGAnimatedLength getWidth() =0;
2286     /**
2287      *
2288      */
2289     virtual SVGAnimatedLength getHeight() =0;
2293     //##################
2294     //# Non-API methods
2295     //##################
2297     /**
2298      *
2299      */
2300     virtual ~SVGPatternElement() {}
2302 };
2309 /*#########################################################################
2310 ## SVGClipPathElement
2311 #########################################################################*/
2313 /**
2314  *
2315  */
2316 class SVGClipPathElement :
2317                     virtual public SVGElement,
2318                     public SVGTests,
2319                     public SVGLangSpace,
2320                     public SVGExternalResourcesRequired,
2321                     public SVGStylable,
2322                     public SVGTransformable,
2323                     public SVGUnitTypes
2325 public:
2326     /**
2327      *
2328      */
2329     virtual SVGAnimatedEnumeration getClipPathUnits() =0;
2334     //##################
2335     //# Non-API methods
2336     //##################
2338     /**
2339      *
2340      */
2341     virtual ~SVGClipPathElement() {}
2343 };
2350 /*#########################################################################
2351 ## SVGMaskElement
2352 #########################################################################*/
2354 /**
2355  *
2356  */
2357 class SVGMaskElement :
2358                     virtual public SVGElement,
2359                     public SVGTests,
2360                     public SVGLangSpace,
2361                     public SVGExternalResourcesRequired,
2362                     public SVGStylable,
2363                     public SVGUnitTypes
2365 public:
2369     /**
2370      *
2371      */
2372     virtual SVGAnimatedEnumeration getMaskUnits() =0;
2374     /**
2375      *
2376      */
2377     virtual SVGAnimatedEnumeration getMaskContentUnits() =0;
2379     /**
2380      *
2381      */
2382     virtual SVGAnimatedLength getX() =0;
2384     /**
2385      *
2386      */
2387     virtual SVGAnimatedLength getY() =0;
2389     /**
2390      *
2391      */
2392     virtual SVGAnimatedLength getWidth() =0;
2394     /**
2395      *
2396      */
2397     virtual SVGAnimatedLength getHeight() =0;
2399     //##################
2400     //# Non-API methods
2401     //##################
2403     /**
2404      *
2405      */
2406     virtual ~SVGMaskElement() {}
2408 };
2415 /*#########################################################################
2416 ## SVGFilterElement
2417 #########################################################################*/
2419 /**
2420  *
2421  */
2422 class SVGFilterElement :
2423                     virtual public SVGElement,
2424                     public SVGURIReference,
2425                     public SVGLangSpace,
2426                     public SVGExternalResourcesRequired,
2427                     public SVGStylable,
2428                     public SVGUnitTypes
2430 public:
2434     /**
2435      *
2436      */
2437     virtual SVGAnimatedEnumeration getFilterUnits() =0;
2439     /**
2440      *
2441      */
2442     virtual SVGAnimatedEnumeration getPrimitiveUnits() =0;
2444     /**
2445      *
2446      */
2447     virtual SVGAnimatedLength getX() =0;
2449     /**
2450      *
2451      */
2452     virtual SVGAnimatedLength getY() =0;
2454     /**
2455      *
2456      */
2457     virtual SVGAnimatedLength getWidth() =0;
2459     /**
2460      *
2461      */
2462     virtual SVGAnimatedLength getHeight() =0;
2465     /**
2466      *
2467      */
2468     virtual SVGAnimatedInteger getFilterResX() =0;
2470     /**
2471      *
2472      */
2473     virtual SVGAnimatedInteger getFilterResY() =0;
2475     /**
2476      *
2477      */
2478     virtual void setFilterRes (unsigned long filterResX,
2479                                unsigned long filterResY ) =0;
2483     //##################
2484     //# Non-API methods
2485     //##################
2487     /**
2488      *
2489      */
2490     virtual ~SVGFilterElement() {}
2492 };
2498 /*#########################################################################
2499 ## SVGFEBlendElement
2500 #########################################################################*/
2502 /**
2503  *
2504  */
2505 class SVGFEBlendElement :
2506                     virtual public SVGElement,
2507                     public SVGFilterPrimitiveStandardAttributes
2509 public:
2512     /**
2513      * Blend Mode Types
2514      */
2515     typedef enum
2516         {
2517         SVG_FEBLEND_MODE_UNKNOWN  = 0,
2518         SVG_FEBLEND_MODE_NORMAL   = 1,
2519         SVG_FEBLEND_MODE_MULTIPLY = 2,
2520         SVG_FEBLEND_MODE_SCREEN   = 3,
2521         SVG_FEBLEND_MODE_DARKEN   = 4,
2522         SVG_FEBLEND_MODE_LIGHTEN  = 5
2523         } BlendModeType;
2525     /**
2526      *
2527      */
2528     virtual SVGAnimatedString getIn1() =0;
2530     /**
2531      *
2532      */
2533     virtual SVGAnimatedString getIn2() =0;
2535     /**
2536      *
2537      */
2538     virtual SVGAnimatedEnumeration getMode() =0;
2541     //##################
2542     //# Non-API methods
2543     //##################
2545     /**
2546      *
2547      */
2548     virtual ~SVGFEBlendElement() {}
2550 };
2557 /*#########################################################################
2558 ## SVGFEColorMatrixElement
2559 #########################################################################*/
2561 /**
2562  *
2563  */
2564 class SVGFEColorMatrixElement :
2565                     virtual public SVGElement,
2566                     public SVGFilterPrimitiveStandardAttributes
2568 public:
2572     /**
2573      * Color Matrix Types
2574      */
2575     typedef enum
2576         {
2577         SVG_FECOLORMATRIX_TYPE_UNKNOWN          = 0,
2578         SVG_FECOLORMATRIX_TYPE_MATRIX           = 1,
2579         SVG_FECOLORMATRIX_TYPE_SATURATE         = 2,
2580         SVG_FECOLORMATRIX_TYPE_HUEROTATE        = 3,
2581         SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4
2582         } ColorMatrixType;
2585     /**
2586      *
2587      */
2588     virtual SVGAnimatedString getIn1() =0;
2590     /**
2591      *
2592      */
2593     virtual SVGAnimatedEnumeration getType() =0;
2595     /**
2596      *
2597      */
2598     virtual SVGAnimatedNumberList getValues() =0;
2602     //##################
2603     //# Non-API methods
2604     //##################
2606     /**
2607      *
2608      */
2609     virtual ~SVGFEColorMatrixElement() {}
2611 };
2618 /*#########################################################################
2619 ## SVGFEComponentTransferElement
2620 #########################################################################*/
2622 /**
2623  *
2624  */
2625 class SVGFEComponentTransferElement :
2626                     virtual public SVGElement,
2627                     public SVGFilterPrimitiveStandardAttributes
2629 public:
2630     /**
2631      *
2632      */
2633     virtual SVGAnimatedString getIn1() =0;
2635     //##################
2636     //# Non-API methods
2637     //##################
2639     /**
2640      *
2641      */
2642     virtual ~SVGFEComponentTransferElement() {}
2644 };
2651 /*#########################################################################
2652 ## SVGComponentTransferFunctionElement
2653 #########################################################################*/
2655 /**
2656  *
2657  */
2658 class SVGComponentTransferFunctionElement : virtual public SVGElement
2660 public:
2663     /**
2664      * Component Transfer Types
2665      */
2666     typedef enum
2667         {
2668         SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN  = 0,
2669         SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,
2670         SVG_FECOMPONENTTRANSFER_TYPE_TABLE    = 2,
2671         SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,
2672         SVG_FECOMPONENTTRANSFER_TYPE_LINEAR   = 4,
2673         SVG_FECOMPONENTTRANSFER_TYPE_GAMMA    = 5
2674         } ComponentTransferType;
2677     /**
2678      *
2679      */
2680     virtual SVGAnimatedEnumeration getType() =0;
2682     /**
2683      *
2684      */
2685     virtual SVGAnimatedNumberList getTableValues() =0;
2687     /**
2688      *
2689      */
2690     virtual SVGAnimatedNumber getSlope() =0;
2692     /**
2693      *
2694      */
2695     virtual SVGAnimatedNumber getIntercept() =0;
2697     /**
2698      *
2699      */
2700     virtual SVGAnimatedNumber getAmplitude() =0;
2702     /**
2703      *
2704      */
2705     virtual SVGAnimatedNumber getExponent() =0;
2707     /**
2708      *
2709      */
2710     virtual SVGAnimatedNumber getOffset() =0;
2713     //##################
2714     //# Non-API methods
2715     //##################
2717     /**
2718      *
2719      */
2720     virtual ~SVGComponentTransferFunctionElement() {}
2722 };
2729 /*#########################################################################
2730 ## SVGFEFuncRElement
2731 #########################################################################*/
2733 /**
2734  *
2735  */
2736 class SVGFEFuncRElement : virtual public SVGComponentTransferFunctionElement
2738 public:
2740     //##################
2741     //# Non-API methods
2742     //##################
2744     /**
2745      *
2746      */
2747     virtual ~SVGFEFuncRElement() {}
2749 };
2754 /*#########################################################################
2755 ## SVGFEFuncGElement
2756 #########################################################################*/
2758 /**
2759  *
2760  */
2761 class SVGFEFuncGElement : public virtual SVGComponentTransferFunctionElement
2763 public:
2765     //##################
2766     //# Non-API methods
2767     //##################
2769     /**
2770      *
2771      */
2772     virtual ~SVGFEFuncGElement() {}
2774 };
2779 /*#########################################################################
2780 ## SVGFEFuncBElement
2781 #########################################################################*/
2783 /**
2784  *
2785  */
2786 class SVGFEFuncBElement : virtual public SVGComponentTransferFunctionElement
2788 public:
2790     //##################
2791     //# Non-API methods
2792     //##################
2794     /**
2795      *
2796      */
2797     virtual ~SVGFEFuncBElement() {}
2799 };
2804 /*#########################################################################
2805 ## SVGFEFuncAElement
2806 #########################################################################*/
2808 /**
2809  *
2810  */
2811 class SVGFEFuncAElement : virtual public SVGComponentTransferFunctionElement
2813 public:
2815     //##################
2816     //# Non-API methods
2817     //##################
2819     /**
2820      *
2821      */
2822     virtual ~SVGFEFuncAElement() {}
2824 };
2829 /*#########################################################################
2830 ## SVGFECompositeElement
2831 #########################################################################*/
2833 /**
2834  *
2835  */
2836 class SVGFECompositeElement :
2837                     virtual public SVGElement,
2838                     public SVGFilterPrimitiveStandardAttributes
2840 public:
2844     /**
2845      *  Composite Operators
2846      */
2847     typedef enum
2848         {
2849         SVG_FECOMPOSITE_OPERATOR_UNKNOWN    = 0,
2850         SVG_FECOMPOSITE_OPERATOR_OVER       = 1,
2851         SVG_FECOMPOSITE_OPERATOR_IN         = 2,
2852         SVG_FECOMPOSITE_OPERATOR_OUT        = 3,
2853         SVG_FECOMPOSITE_OPERATOR_ATOP       = 4,
2854         SVG_FECOMPOSITE_OPERATOR_XOR        = 5,
2855         SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6
2856         } CompositeOperatorType;
2858     /**
2859      *
2860      */
2861     virtual SVGAnimatedString getIn1() =0;
2863     /**
2864      *
2865      */
2866     virtual SVGAnimatedString getIn2() =0;
2868     /**
2869      *
2870      */
2871     virtual SVGAnimatedEnumeration getOperator() =0;
2873     /**
2874      *
2875      */
2876     virtual SVGAnimatedNumber getK1() =0;
2878     /**
2879      *
2880      */
2881     virtual SVGAnimatedNumber getK2() =0;
2883     /**
2884      *
2885      */
2886     virtual SVGAnimatedNumber getK3() =0;
2888     /**
2889      *
2890      */
2891     virtual SVGAnimatedNumber getK4() =0;
2895     //##################
2896     //# Non-API methods
2897     //##################
2899     /**
2900      *
2901      */
2902     virtual ~SVGFECompositeElement() {}
2904 };
2911 /*#########################################################################
2912 ## SVGFEConvolveMatrixElement
2913 #########################################################################*/
2915 /**
2916  *
2917  */
2918 class SVGFEConvolveMatrixElement :
2919                     virtual public SVGElement,
2920                     public SVGFilterPrimitiveStandardAttributes
2922 public:
2926     /**
2927      * Edge Mode Values
2928      */
2929     typedef enum
2930         {
2931         SVG_EDGEMODE_UNKNOWN   = 0,
2932         SVG_EDGEMODE_DUPLICATE = 1,
2933         SVG_EDGEMODE_WRAP      = 2,
2934         SVG_EDGEMODE_NONE      = 3
2935         } EdgeModeType;
2938     /**
2939      *
2940      */
2941     virtual SVGAnimatedInteger getOrderX() =0;
2943     /**
2944      *
2945      */
2946     virtual SVGAnimatedInteger getOrderY() =0;
2948     /**
2949      *
2950      */
2951     virtual SVGAnimatedNumberList getKernelMatrix() =0;
2953     /**
2954      *
2955      */
2956     virtual SVGAnimatedNumber getDivisor() =0;
2958     /**
2959      *
2960      */
2961     virtual SVGAnimatedNumber getBias() =0;
2963     /**
2964      *
2965      */
2966     virtual SVGAnimatedInteger getTargetX() =0;
2968     /**
2969      *
2970      */
2971     virtual SVGAnimatedInteger getTargetY() =0;
2973     /**
2974      *
2975      */
2976     virtual SVGAnimatedEnumeration getEdgeMode() =0;
2978     /**
2979      *
2980      */
2981     virtual SVGAnimatedLength getKernelUnitLengthX() =0;
2983     /**
2984      *
2985      */
2986     virtual SVGAnimatedLength getKernelUnitLengthY() =0;
2988     /**
2989      *
2990      */
2991     virtual SVGAnimatedBoolean getPreserveAlpha() =0;
2995     //##################
2996     //# Non-API methods
2997     //##################
2999     /**
3000      *
3001      */
3002     virtual ~SVGFEConvolveMatrixElement() {}
3004 };
3011 /*#########################################################################
3012 ## SVGFEDiffuseLightingElement
3013 #########################################################################*/
3015 /**
3016  *
3017  */
3018 class SVGFEDiffuseLightingElement :
3019                     virtual public SVGElement,
3020                     public SVGFilterPrimitiveStandardAttributes
3022 public:
3024     /**
3025      *
3026      */
3027     virtual SVGAnimatedString getIn1() =0;
3029     /**
3030      *
3031      */
3032     virtual SVGAnimatedNumber getSurfaceScale() =0;
3034     /**
3035      *
3036      */
3037     virtual SVGAnimatedNumber getDiffuseConstant() =0;
3041     //##################
3042     //# Non-API methods
3043     //##################
3045     /**
3046      *
3047      */
3048     virtual ~SVGFEDiffuseLightingElement() {}
3050 };
3057 /*#########################################################################
3058 ## SVGFEDistantLightElement
3059 #########################################################################*/
3061 /**
3062  *
3063  */
3064 class SVGFEDistantLightElement : virtual public SVGElement
3066 public:
3068     /**
3069      *
3070      */
3071     virtual SVGAnimatedNumber getAzimuth() =0;
3074     /**
3075      *
3076      */
3077     virtual SVGAnimatedNumber getElevation() =0;
3081     //##################
3082     //# Non-API methods
3083     //##################
3085     /**
3086      *
3087      */
3088     virtual ~SVGFEDistantLightElement() {}
3090 };
3097 /*#########################################################################
3098 ## SVGFEPointLightElement
3099 #########################################################################*/
3101 /**
3102  *
3103  */
3104 class SVGFEPointLightElement : virtual public SVGElement
3106 public:
3107     /**
3108      *
3109      */
3110     virtual SVGAnimatedNumber getX() =0;
3113     /**
3114      *
3115      */
3116     virtual SVGAnimatedNumber getY() =0;
3118     /**
3119      *
3120      */
3121     virtual SVGAnimatedNumber getZ() =0;
3123     //##################
3124     //# Non-API methods
3125     //##################
3127     /**
3128      *
3129      */
3130     virtual ~SVGFEPointLightElement() {}
3132 };
3139 /*#########################################################################
3140 ## SVGFESpotLightElement
3141 #########################################################################*/
3143 /**
3144  *
3145  */
3146 class SVGFESpotLightElement : virtual public SVGElement
3148 public:
3150     /**
3151      *
3152      */
3153     virtual SVGAnimatedNumber getX() =0;
3156     /**
3157      *
3158      */
3159     virtual SVGAnimatedNumber getY() =0;
3161     /**
3162      *
3163      */
3164     virtual SVGAnimatedNumber getZ() =0;
3166     /**
3167      *
3168      */
3169     virtual SVGAnimatedNumber getPointsAtX() =0;
3171     /**
3172      *
3173      */
3174     virtual SVGAnimatedNumber getPointsAtY() =0;
3176     /**
3177      *
3178      */
3179     virtual SVGAnimatedNumber getPointsAtZ() =0;
3181     /**
3182      *
3183      */
3184     virtual SVGAnimatedNumber getSpecularExponent() =0;
3186     /**
3187      *
3188      */
3189     virtual SVGAnimatedNumber getLimitingConeAngle() =0;
3193     //##################
3194     //# Non-API methods
3195     //##################
3197     /**
3198      *
3199      */
3200     virtual ~SVGFESpotLightElement() {}
3202 };
3209 /*#########################################################################
3210 ## SVGFEDisplacementMapElement
3211 #########################################################################*/
3213 /**
3214  *
3215  */
3216 class SVGFEDisplacementMapElement :
3217                     virtual public SVGElement,
3218                     public SVGFilterPrimitiveStandardAttributes
3220 public:
3224     /**
3225      *  Channel Selectors
3226      */
3227     typedef enum
3228         {
3229         SVG_CHANNEL_UNKNOWN = 0,
3230         SVG_CHANNEL_R       = 1,
3231         SVG_CHANNEL_G       = 2,
3232         SVG_CHANNEL_B       = 3,
3233         SVG_CHANNEL_A       = 4
3234         } ChannelSelector;
3236     /**
3237      *
3238      */
3239     virtual SVGAnimatedString getIn1() =0;
3241     /**
3242      *
3243      */
3244     virtual SVGAnimatedString getIn2() =0;
3247     /**
3248      *
3249      */
3250     virtual SVGAnimatedNumber getScale() =0;
3252     /**
3253      *
3254      */
3255     virtual SVGAnimatedEnumeration getXChannelSelector() =0;
3257     /**
3258      *
3259      */
3260     virtual SVGAnimatedEnumeration getYChannelSelector() =0;
3264     //##################
3265     //# Non-API methods
3266     //##################
3268     /**
3269      *
3270      */
3271     virtual ~SVGFEDisplacementMapElement() {}
3273 };
3280 /*#########################################################################
3281 ## SVGFEFloodElement
3282 #########################################################################*/
3284 /**
3285  *
3286  */
3287 class SVGFEFloodElement :
3288                     virtual public SVGElement,
3289                     public SVGFilterPrimitiveStandardAttributes
3291 public:
3292     /**
3293      *
3294      */
3295     virtual SVGAnimatedString getIn1() =0;
3298     //##################
3299     //# Non-API methods
3300     //##################
3302     /**
3303      *
3304      */
3305     virtual ~SVGFEFloodElement() {}
3307 };
3314 /*#########################################################################
3315 ## SVGFEGaussianBlurElement
3316 #########################################################################*/
3318 /**
3319  *
3320  */
3321 class SVGFEGaussianBlurElement :
3322                     virtual public SVGElement,
3323                     public SVGFilterPrimitiveStandardAttributes
3325 public:
3326     /**
3327      *
3328      */
3329     virtual SVGAnimatedString getIn1() =0;
3332     /**
3333      *
3334      */
3335     virtual SVGAnimatedNumber getStdDeviationX() =0;
3337     /**
3338      *
3339      */
3340     virtual SVGAnimatedNumber getStdDeviationY() =0;
3343     /**
3344      *
3345      */
3346     virtual void setStdDeviation (double stdDeviationX, double stdDeviationY ) =0;
3350     //##################
3351     //# Non-API methods
3352     //##################
3354     /**
3355      *
3356      */
3357     virtual ~SVGFEGaussianBlurElement() {}
3359 };
3366 /*#########################################################################
3367 ## SVGFEImageElement
3368 #########################################################################*/
3370 /**
3371  *
3372  */
3373 class SVGFEImageElement :
3374                     virtual public SVGElement,
3375                     public SVGURIReference,
3376                     public SVGLangSpace,
3377                     public SVGExternalResourcesRequired,
3378                     public SVGFilterPrimitiveStandardAttributes
3380 public:
3382     //##################
3383     //# Non-API methods
3384     //##################
3386     /**
3387      *
3388      */
3389     virtual ~SVGFEImageElement() {}
3391 };
3396 /*#########################################################################
3397 ## SVGFEMergeElement
3398 #########################################################################*/
3400 /**
3401  *
3402  */
3403 class SVGFEMergeElement :
3404                     virtual public SVGElement,
3405                     public SVGFilterPrimitiveStandardAttributes
3407 public:
3409     //##################
3410     //# Non-API methods
3411     //##################
3413     /**
3414      *
3415      */
3416     virtual ~SVGFEMergeElement() {}
3418 };
3423 /*#########################################################################
3424 ## SVGFEMergeNodeElement
3425 #########################################################################*/
3427 /**
3428  *
3429  */
3430 class SVGFEMergeNodeElement : virtual public SVGElement
3432 public:
3433     /**
3434      *
3435      */
3436     virtual SVGAnimatedString getIn1() =0;
3439     //##################
3440     //# Non-API methods
3441     //##################
3443     /**
3444      *
3445      */
3446     virtual ~SVGFEMergeNodeElement() {}
3448 };
3455 /*#########################################################################
3456 ## SVGFEMorphologyElement
3457 #########################################################################*/
3459 /**
3460  *
3461  */
3462 class SVGFEMorphologyElement :
3463                     virtual public SVGElement,
3464                     public SVGFilterPrimitiveStandardAttributes
3466 public:
3470     /**
3471      *  Morphology Operators
3472      */
3473     typedef enum
3474         {
3475         SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0,
3476         SVG_MORPHOLOGY_OPERATOR_ERODE   = 1,
3477         SVG_MORPHOLOGY_OPERATOR_DILATE  = 2
3478         } MorphologyOperatorType;
3481     /**
3482      *
3483      */
3484     virtual SVGAnimatedString getIn1() =0;
3487     /**
3488      *
3489      */
3490     virtual SVGAnimatedEnumeration getOperator() =0;
3492     /**
3493      *
3494      */
3495     virtual SVGAnimatedLength getRadiusX() =0;
3497     /**
3498      *
3499      */
3500     virtual SVGAnimatedLength getRadiusY() =0;
3504     //##################
3505     //# Non-API methods
3506     //##################
3508     /**
3509      *
3510      */
3511     virtual ~SVGFEMorphologyElement() {}
3513 };
3520 /*#########################################################################
3521 ## SVGFEOffsetElement
3522 #########################################################################*/
3524 /**
3525  *
3526  */
3527 class SVGFEOffsetElement :
3528                     virtual public SVGElement,
3529                     public SVGFilterPrimitiveStandardAttributes
3531 public:
3535     /**
3536      *
3537      */
3538     virtual SVGAnimatedString getIn1() =0;
3540     /**
3541      *
3542      */
3543     virtual SVGAnimatedLength getDx() =0;
3545     /**
3546      *
3547      */
3548     virtual SVGAnimatedLength getDy() =0;
3553     //##################
3554     //# Non-API methods
3555     //##################
3557     /**
3558      *
3559      */
3560     virtual ~SVGFEOffsetElement() {}
3562 };
3569 /*#########################################################################
3570 ## SVGFESpecularLightingElement
3571 #########################################################################*/
3573 /**
3574  *
3575  */
3576 class SVGFESpecularLightingElement :
3577                     virtual public SVGElement,
3578                     public SVGFilterPrimitiveStandardAttributes
3580 public:
3582     /**
3583      *
3584      */
3585     virtual SVGAnimatedString getIn1() =0;
3587     /**
3588      *
3589      */
3590     virtual SVGAnimatedNumber getSurfaceScale() =0;
3592     /**
3593      *
3594      */
3595     virtual SVGAnimatedNumber getSpecularConstant() =0;
3597     /**
3598      *
3599      */
3600     virtual SVGAnimatedNumber getSpecularExponent() =0;
3603     //##################
3604     //# Non-API methods
3605     //##################
3607     /**
3608      *
3609      */
3610     virtual ~SVGFESpecularLightingElement() {}
3612 };
3619 /*#########################################################################
3620 ## SVGFETileElement
3621 #########################################################################*/
3623 /**
3624  *
3625  */
3626 class SVGFETileElement :
3627                     virtual public SVGElement,
3628                     public SVGFilterPrimitiveStandardAttributes
3630 public:
3633     /**
3634      *
3635      */
3636     virtual SVGAnimatedString getIn1() =0;
3640     //##################
3641     //# Non-API methods
3642     //##################
3644     /**
3645      *
3646      */
3647     virtual ~SVGFETileElement() {}
3649 };
3656 /*#########################################################################
3657 ## SVGFETurbulenceElement
3658 #########################################################################*/
3660 /**
3661  *
3662  */
3663 class SVGFETurbulenceElement :
3664                     virtual public SVGElement,
3665                     public SVGFilterPrimitiveStandardAttributes
3667 public:
3671     /**
3672      *  Turbulence Types
3673      */
3674     typedef enum
3675         {
3676         SVG_TURBULENCE_TYPE_UNKNOWN      = 0,
3677         SVG_TURBULENCE_TYPE_FRACTALNOISE = 1,
3678         SVG_TURBULENCE_TYPE_TURBULENCE   = 2
3679         } TurbulenceType;
3681     /**
3682      *  Stitch Options
3683      */
3684     typedef enum
3685         {
3686         SVG_STITCHTYPE_UNKNOWN  = 0,
3687         SVG_STITCHTYPE_STITCH   = 1,
3688         SVG_STITCHTYPE_NOSTITCH = 2
3689         } StitchOption;
3693     /**
3694      *
3695      */
3696     virtual SVGAnimatedNumber getBaseFrequencyX() =0;
3698     /**
3699      *
3700      */
3701     virtual SVGAnimatedNumber getBaseFrequencyY() =0;
3703     /**
3704      *
3705      */
3706     virtual SVGAnimatedInteger getNumOctaves() =0;
3708     /**
3709      *
3710      */
3711     virtual SVGAnimatedNumber getSeed() =0;
3713     /**
3714      *
3715      */
3716     virtual SVGAnimatedEnumeration getStitchTiles() =0;
3718     /**
3719      *
3720      */
3721     virtual SVGAnimatedEnumeration getType() =0;
3725     //##################
3726     //# Non-API methods
3727     //##################
3729     /**
3730      *
3731      */
3732     virtual ~SVGFETurbulenceElement() {}
3734 };
3741 /*#########################################################################
3742 ## SVGCursorElement
3743 #########################################################################*/
3745 /**
3746  *
3747  */
3748 class SVGCursorElement :
3749                     virtual public SVGElement,
3750                     public SVGURIReference,
3751                     public SVGTests,
3752                     public SVGExternalResourcesRequired
3754 public:
3755     /**
3756      *
3757      */
3758     virtual SVGAnimatedLength getX() =0;
3760     /**
3761      *
3762      */
3763     virtual SVGAnimatedLength getY() =0;
3765     //##################
3766     //# Non-API methods
3767     //##################
3769     /**
3770      *
3771      */
3772     virtual ~SVGCursorElement() {}
3774 };
3781 /*#########################################################################
3782 ## SVGAElement
3783 #########################################################################*/
3785 /**
3786  *
3787  */
3788 class SVGAElement : virtual public SVGElement,
3789                     public SVGURIReference,
3790                     public SVGTests,
3791                     public SVGLangSpace,
3792                     public SVGExternalResourcesRequired,
3793                     public SVGStylable,
3794                     public SVGTransformable,
3795                     public events::EventTarget
3797 public:
3799     /**
3800      *
3801      */
3802     virtual SVGAnimatedString getTarget() =0;
3806     //##################
3807     //# Non-API methods
3808     //##################
3810     /**
3811      *
3812      */
3813     virtual ~SVGAElement() {}
3815 };
3822 /*#########################################################################
3823 ## SVGViewElement
3824 #########################################################################*/
3826 /**
3827  *
3828  */
3829 class SVGViewElement : virtual public SVGElement,
3830                        public SVGExternalResourcesRequired,
3831                        public SVGFitToViewBox,
3832                        public SVGZoomAndPan
3834 public:
3836     /**
3837      *
3838      */
3839     virtual SVGStringList getViewTarget() =0;
3843     //##################
3844     //# Non-API methods
3845     //##################
3847     /**
3848      *
3849      */
3850     virtual ~SVGViewElement() {}
3852 };
3859 /*#########################################################################
3860 ## SVGScriptElement
3861 #########################################################################*/
3863 /**
3864  *
3865  */
3866 class SVGScriptElement :
3867                     virtual public SVGElement,
3868                     public SVGURIReference,
3869                     public SVGExternalResourcesRequired
3871 public:
3873     /**
3874      *
3875      */
3876     virtual DOMString getType() =0;
3878     /**
3879      *
3880      */
3881     virtual void setType(const DOMString &val)
3882                                throw (DOMException) =0;
3885     //##################
3886     //# Non-API methods
3887     //##################
3889     /**
3890      *
3891      */
3892     virtual ~SVGScriptElement() {}
3894 };
3900 /*#########################################################################
3901 ## SVGAnimationElement
3902 #########################################################################*/
3904 /**
3905  *
3906  */
3907 class SVGAnimationElement :
3908                     virtual public SVGElement,
3909                     public SVGTests,
3910                     public SVGExternalResourcesRequired,
3911                     public smil::ElementTimeControl,
3912                     public events::EventTarget
3914 public:
3917     /**
3918      *
3919      */
3920     virtual SVGElementPtr getTargetElement() =0;
3923     /**
3924      *
3925      */
3926     virtual double getStartTime (  ) =0;
3928     /**
3929      *
3930      */
3931     virtual double getCurrentTime (  ) =0;
3933     /**
3934      *
3935      */
3936     virtual double getSimpleDuration (  )
3937                     throw( DOMException ) =0;
3942     //##################
3943     //# Non-API methods
3944     //##################
3946     /**
3947      *
3948      */
3949     virtual ~SVGAnimationElement() {}
3951 };
3958 /*#########################################################################
3959 ## SVGAnimateElement
3960 #########################################################################*/
3962 /**
3963  *
3964  */
3965 class SVGAnimateElement : virtual public SVGAnimationElement
3967 public:
3969     //##################
3970     //# Non-API methods
3971     //##################
3973     /**
3974      *
3975      */
3976     virtual ~SVGAnimateElement() {}
3978 };
3983 /*#########################################################################
3984 ## SVGSetElement
3985 #########################################################################*/
3987 /**
3988  *
3989  */
3990 class SVGSetElement : virtual public SVGAnimationElement
3992 public:
3994     //##################
3995     //# Non-API methods
3996     //##################
3998     /**
3999      *
4000      */
4001     virtual ~SVGSetElement() {}
4003 };
4008 /*#########################################################################
4009 ## SVGAnimateMotionElement
4010 #########################################################################*/
4012 /**
4013  *
4014  */
4015 class SVGAnimateMotionElement : virtual public SVGAnimationElement
4017 public:
4019     //##################
4020     //# Non-API methods
4021     //##################
4023     /**
4024      *
4025      */
4026     virtual ~SVGAnimateMotionElement() {}
4028 };
4033 /*#########################################################################
4034 ## SVGMPathElement
4035 #########################################################################*/
4037 /**
4038  *
4039  */
4040 class SVGMPathElement :
4041                     virtual public SVGElement,
4042                     public SVGURIReference,
4043                     public SVGExternalResourcesRequired
4045 public:
4047     //##################
4048     //# Non-API methods
4049     //##################
4051     /**
4052      *
4053      */
4054     virtual ~SVGMPathElement() {}
4056 };
4061 /*#########################################################################
4062 ## SVGAnimateColorElement
4063 #########################################################################*/
4065 /**
4066  *
4067  */
4068 class SVGAnimateColorElement : virtual public SVGAnimationElement
4070 public:
4072     //##################
4073     //# Non-API methods
4074     //##################
4076     /**
4077      *
4078      */
4079     virtual ~SVGAnimateColorElement() {}
4081 };
4086 /*#########################################################################
4087 ## SVGAnimateTransformElement
4088 #########################################################################*/
4090 /**
4091  *
4092  */
4093 class SVGAnimateTransformElement : virtual public SVGAnimationElement
4095 public:
4097     //##################
4098     //# Non-API methods
4099     //##################
4101     /**
4102      *
4103      */
4104     virtual ~SVGAnimateTransformElement() {}
4106 };
4111 /*#########################################################################
4112 ## SVGFontElement
4113 #########################################################################*/
4115 /**
4116  *
4117  */
4118 class SVGFontElement :  virtual public SVGElement,
4119                         public SVGExternalResourcesRequired,
4120                         public SVGStylable
4122 public:
4124     //##################
4125     //# Non-API methods
4126     //##################
4128     /**
4129      *
4130      */
4131     virtual ~SVGFontElement() {}
4133 };
4138 /*#########################################################################
4139 ## SVGGlyphElement
4140 #########################################################################*/
4142 /**
4143  *
4144  */
4145 class SVGGlyphElement :  virtual public SVGElement,
4146                          public SVGStylable
4148 public:
4150     //##################
4151     //# Non-API methods
4152     //##################
4154     /**
4155      *
4156      */
4157     virtual ~SVGGlyphElement() {}
4159 };
4164 /*#########################################################################
4165 ## SVGMissingGlyphElement
4166 #########################################################################*/
4168 /**
4169  *
4170  */
4171 class SVGMissingGlyphElement :
4172                     virtual public SVGElement,
4173                     public SVGStylable
4175 public:
4177     //##################
4178     //# Non-API methods
4179     //##################
4181     /**
4182      *
4183      */
4184     virtual ~SVGMissingGlyphElement() {}
4186 };
4191 /*#########################################################################
4192 ## SVGHKernElement
4193 #########################################################################*/
4195 /**
4196  *
4197  */
4198 class SVGHKernElement : virtual public SVGElement
4200 public:
4202     //##################
4203     //# Non-API methods
4204     //##################
4206     /**
4207      *
4208      */
4209     virtual ~SVGHKernElement() {}
4211 };
4216 /*#########################################################################
4217 ## SVGVKernElement
4218 #########################################################################*/
4220 /**
4221  *
4222  */
4223 class SVGVKernElement : public virtual SVGElement
4225 public:
4227     //##################
4228     //# Non-API methods
4229     //##################
4231     /**
4232      *
4233      */
4234     virtual ~SVGVKernElement() {}
4236 };
4241 /*#########################################################################
4242 ## SVGFontFaceElement
4243 #########################################################################*/
4245 /**
4246  *
4247  */
4248 class SVGFontFaceElement : virtual public SVGElement
4250 public:
4252     //##################
4253     //# Non-API methods
4254     //##################
4256     /**
4257      *
4258      */
4259     virtual ~SVGFontFaceElement() {}
4261 };
4266 /*#########################################################################
4267 ## SVGFontFaceSrcElement
4268 #########################################################################*/
4270 /**
4271  *
4272  */
4273 class SVGFontFaceSrcElement : virtual public SVGElement
4275 public:
4277     //##################
4278     //# Non-API methods
4279     //##################
4281     /**
4282      *
4283      */
4284     virtual ~SVGFontFaceSrcElement() {}
4286 };
4291 /*#########################################################################
4292 ## SVGFontFaceUriElement
4293 #########################################################################*/
4295 /**
4296  *
4297  */
4298 class SVGFontFaceUriElement : virtual public SVGElement
4300 public:
4302     //##################
4303     //# Non-API methods
4304     //##################
4306     /**
4307      *
4308      */
4309     virtual ~SVGFontFaceUriElement() {}
4311 };
4316 /*#########################################################################
4317 ## SVGFontFaceFormatElement
4318 #########################################################################*/
4320 /**
4321  *
4322  */
4323 class SVGFontFaceFormatElement : virtual public SVGElement
4325 public:
4327     //##################
4328     //# Non-API methods
4329     //##################
4331     /**
4332      *
4333      */
4334     virtual ~SVGFontFaceFormatElement() {}
4336 };
4341 /*#########################################################################
4342 ## SVGFontFaceNameElement
4343 #########################################################################*/
4345 /**
4346  *
4347  */
4348 class SVGFontFaceNameElement : virtual public SVGElement
4350 public:
4352     //##################
4353     //# Non-API methods
4354     //##################
4356     /**
4357      *
4358      */
4359     virtual ~SVGFontFaceNameElement() {}
4361 };
4366 /*#########################################################################
4367 ## SVGDefinitionSrcElement
4368 #########################################################################*/
4370 /**
4371  *
4372  */
4373 class SVGDefinitionSrcElement : virtual public SVGElement
4375 public:
4377     //##################
4378     //# Non-API methods
4379     //##################
4381     /**
4382      *
4383      */
4384     virtual ~SVGDefinitionSrcElement() {}
4386 };
4391 /*#########################################################################
4392 ## SVGMetadataElement
4393 #########################################################################*/
4395 /**
4396  *
4397  */
4398 class SVGMetadataElement : virtual public SVGElement
4400 public:
4402     //##################
4403     //# Non-API methods
4404     //##################
4406     /**
4407      *
4408      */
4409     virtual ~SVGMetadataElement() {}
4411 };
4415 /*#########################################################################
4416 ## SVGForeignObjectElement
4417 #########################################################################*/
4419 /**
4420  *
4421  */
4422 class SVGForeignObjectElement :
4423                     virtual public SVGElement,
4424                     public SVGTests,
4425                     public SVGLangSpace,
4426                     public SVGExternalResourcesRequired,
4427                     public SVGStylable,
4428                     public SVGTransformable,
4429                     public events::EventTarget
4431 public:
4434     /**
4435      *
4436      */
4437     virtual SVGAnimatedLength getX() =0;
4439     /**
4440      *
4441      */
4442     virtual SVGAnimatedLength getY() =0;
4444     /**
4445      *
4446      */
4447     virtual SVGAnimatedLength getWidth() =0;
4449     /**
4450      *
4451      */
4452     virtual SVGAnimatedLength getHeight() =0;
4456     //##################
4457     //# Non-API methods
4458     //##################
4461     /**
4462      *
4463      */
4464     virtual ~SVGForeignObjectElement() {}
4466 };
4472 }  //namespace svg
4473 }  //namespace dom
4474 }  //namespace w3c
4475 }  //namespace org
4477 #endif // __SVG_H__
4478 /*#########################################################################
4479 ## E N D    O F    F I L E
4480 #########################################################################*/