Code

Move element creation to SVGDocumentImpl. Remove from svgreader.
[inkscape.git] / src / dom / svgimpl.h
1 #ifndef __SVGIMPL_H__
2 #define __SVGIMPL_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) 2006-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 #include "svg.h"
35 #include "dom/domimpl.h"
36 #include "dom/smilimpl.h"
38 #include <math.h>
42 namespace org
43 {
44 namespace w3c
45 {
46 namespace dom
47 {
48 namespace svg
49 {
52 //local definitions
53 typedef dom::DOMString DOMString;
54 typedef dom::DOMException DOMException;
55 typedef dom::Element Element;
56 typedef dom::Document Document;
57 typedef dom::NodeList NodeList;
61 class SVGSVGElementImpl;
62 typedef Ptr<SVGSVGElementImpl> SVGSVGElementImplPtr;
63 class SVGElementImpl;
64 typedef Ptr<SVGElementImpl> SVGElementImplPtr;
65 class SVGDocumentImpl;
66 typedef Ptr<SVGDocumentImpl> SVGDocumentImplPtr;
68 /*#########################################################################
69 ## Types
70 #########################################################################*/
72 typedef enum
73 {
74 /**
75  * Defines a hyperlink
76  */
77 SVG_A_ELEMENT = 0,
78 /**
79  * Allows control over glyphs used to render particular character
80  *  data (e.g. for music symbols or Asian text)
81  */
82 SVG_ALTGLYPH_ELEMENT,
83 /**
84  * Defines a set of glyph substitutions (e.g. for music symbols or Asian text)
85  */
86 SVG_ALTGLYPHDEF_ELEMENT,
87 /**
88  * Defines a candidate set of glyph substitutions (e.g. for music symbols
89  *  or Asian text)
90  */
91 SVG_ALTGLYPHITEM_ELEMENT,
92 /**
93  * Animates an attribute or property over time
94  */
95 SVG_ANIMATE_ELEMENT,
96 /**
97  * Specifies a color transformation over time
98  */
99 SVG_ANIMATECOLOR_ELEMENT,
100 /**
101  * Causes an element to move along a motion path
102  */
103 SVG_ANIMATEMOTION_ELEMENT,
104 /**
105  * Animates a transformation attribute on an element
106  */
107 SVG_ANIMATETRANSFORM_ELEMENT,
108 /**
109  * Defines a circle
110  */
111 SVG_CIRCLE_ELEMENT,
112 /**
113  *
114  */
115 SVG_CLIPPATH_ELEMENT,
116 /**
117  * Specifies a color profile description
118  */
119 SVG_COLOR_PROFILE_ELEMENT,
120 /**
121  * Defines a platform-independent cursor
122  */
123 SVG_CURSOR_ELEMENT,
124 /**
125  * Defines a separate font definition resource
126  */
127 SVG_DEFINITION_SRC_ELEMENT,
128 /**
129  * A container for referenced elements
130  */
131 SVG_DEFS_ELEMENT,
132 /**
133  * A text-only description for elements in SVG - not displayed as part
134  *  of the graphics. User agents may display the text as a tooltip
135  */
136 SVG_DESC_ELEMENT,
137 /**
138  * Defines an ellipse
139  */
140 SVG_ELLIPSE_ELEMENT,
141 /**
142  * SVG filter. Composites two objects together using different blending modes
143  */
144 SVG_FEBLEND_ELEMENT,
145 /**
146  * SVG filter. Applies a matrix transformation
147  */
148 SVG_FECOLORMATRIX_ELEMENT,
149 /**
150  * SVG filter. Performs component-wise remapping of data
151  */
152 SVG_FECOMPONENTTRANSFER_ELEMENT,
153 /**
154  * SVG filter.
155  */
156 SVG_FECOMPOSITE_ELEMENT,
157 /**
158  * SVG filter.
159  */
160 SVG_FECONVOLVEMATRIX_ELEMENT,
161 /**
162  * SVG filter.
163  */
164 SVG_FEDIFFUSELIGHTING_ELEMENT,
165 /**
166  * SVG filter.
167  */
168 SVG_FEDISPLACEMENTMAP_ELEMENT,
169 /**
170  * SVG filter. Defines a light source
171  */
172 SVG_FEDISTANTLIGHT_ELEMENT,
173 /**
174  * SVG filter.
175  */
176 SVG_FEFLOOD_ELEMENT,
177 /**
178  * SVG filter. Sub-element to feComponentTransfer
179  */
180 SVG_FEFUNCA_ELEMENT,
181 /**
182  * SVG filter. Sub-element to feComponentTransfer
183  */
184 SVG_FEFUNCB_ELEMENT,
185 /**
186  * SVG filter. Sub-element to feComponentTransfer
187  */
188 SVG_FEFUNCG_ELEMENT,
189 /**
190  * SVG filter. Sub-element to feComponentTransfer
191  */
192 SVG_FEFUNCR_ELEMENT,
193 /**
194  * SVG filter. Performs a Gaussian blur on the image
195  */
196 SVG_FEGAUSSIANBLUR_ELEMENT,
197 /**
198  * SVG filter.
199  */
200 SVG_FEIMAGE_ELEMENT,
201 /**
202  * SVG filter. Creates image layers on top of each other
203  */
204 SVG_FEMERGE_ELEMENT,
205 /**
206  * SVG filter. Sub-element to feMerge
207  */
208 SVG_FEMERGENODE_ELEMENT,
209 /**
210  * SVG filter. Performs a "fattening" or "thinning" on a source graphic
211  */
212 SVG_FEMORPHOLOGY_ELEMENT,
213 /**
214  * SVG filter. Moves an image relative to its current position
215  */
216 SVG_FEOFFSET_ELEMENT,
217 /**
218  * SVG filter.
219  */
220 SVG_FEPOINTLIGHT_ELEMENT,
221 /**
222  * SVG filter.
223  */
224 SVG_FESPECULARLIGHTING_ELEMENT,
225 /**
226  * SVG filter.
227  */
228 SVG_FESPOTLIGHT_ELEMENT,
229 /**
230  * SVG filter.
231  */
232 SVG_FETILE_ELEMENT,
233 /**
234  * SVG filter.
235  */
236 SVG_FETURBULENCE_ELEMENT,
237 /**
238  * Container for filter effects
239  */
240 SVG_FILTER_ELEMENT,
241 /**
242  * Defines a font
243  */
244 SVG_FONT_ELEMENT,
245 /**
246  * Describes the characteristics of a font
247  */
248 SVG_FONT_FACE_ELEMENT,
249 /**
250  *
251  */
252 SVG_FONT_FACE_FORMAT_ELEMENT,
253 /**
254  *
255  */
256 SVG_FONT_FACE_NAME_ELEMENT,
257 /**
258  *
259  */
260 SVG_FONT_FACE_SRC_ELEMENT,
261 /**
262  *
263  */
264 SVG_FONT_FACE_URI_ELEMENT,
265 /**
266  *
267  */
268 SVG_FOREIGNOBJECT_ELEMENT,
269 /**
270  * A container element for grouping together related elements
271  */
272 SVG_G_ELEMENT,
273 /**
274  * Defines the graphics for a given glyph
275  */
276 SVG_GLYPH_ELEMENT,
277 /**
278  * Defines a possible glyph to use
279  */
280 SVG_GLYPHREF_ELEMENT,
281 /**
282  *
283  */
284 SVG_HKERN_ELEMENT,
285 /**
286  *
287  */
288 SVG_IMAGE_ELEMENT,
289 /**
290  * Defines a line
291  */
292 SVG_LINE_ELEMENT,
293 /**
294  * Defines a linear gradient
295  */
296 SVG_LINEARGRADIENT_ELEMENT,
297 /**
298  *
299  */
300 SVG_MARKER_ELEMENT,
301 /**
302  *
303  */
304 SVG_MASK_ELEMENT,
305 /**
306  * Specifies metadata
307  */
308 SVG_METADATA_ELEMENT,
309 /**
310  *
311  */
312 SVG_MISSING_GLYPH_ELEMENT,
313 /**
314  *
315  */
316 SVG_MPATH_ELEMENT,
317 /**
318  * Defines a path
319  */
320 SVG_PATH_ELEMENT,
321 /**
322  *
323  */
324 SVG_PATTERN_ELEMENT,
325 /**
326  * Defines a closed shape that consists of a set of connected straight lines
327  */
328 SVG_POLYGON_ELEMENT,
329 /**
330  * Defines a set of connected straight lines
331  */
332 SVG_POLYLINE_ELEMENT,
333 /**
334  * Defines a radial gradient
335  */
336 SVG_RADIALGRADIENT_ELEMENT,
337 /**
338  * Defines a rectangle
339  */
340 SVG_RECT_ELEMENT,
341 /**
342  * Container for scripts (e.g., ECMAScript)
343  */
344 SVG_SCRIPT_ELEMENT,
345 /**
346  * Sets the value of an attribute for a specified duration
347  */
348 SVG_SET_ELEMENT,
349 /**
350  *
351  */
352 SVG_STOP_ELEMENT,
353 /**
354  * Allows style sheets to be embedded directly within SVG content
355  */
356 SVG_STYLE_ELEMENT,
357 /**
358  * Defines an SVG document fragment
359  */
360 SVG_SVG_ELEMENT,
361 /**
362  *
363  */
364 SVG_SWITCH_ELEMENT,
365 /**
366  *
367  */
368 SVG_SYMBOL_ELEMENT,
369 /**
370  *
371  */
372 SVG_TEXT_ELEMENT,
373 /**
374  *
375  */
376 SVG_TEXTPATH_ELEMENT,
377 /**
378  * A text-only description for elements in SVG - not displayed as part of
379  *  the graphics. User agents may display the text as a tooltip
380  */
381 SVG_TITLE_ELEMENT,
382 /**
383  *
384  */
385 SVG_TREF_ELEMENT,
386 /**
387  *
388  */
389 SVG_TSPAN_ELEMENT,
390 /**
391  *
392  */
393 SVG_USE_ELEMENT,
394 /**
395  *
396  */
397 SVG_VIEW_ELEMENT,
398 /**
399  *
400  */
401 SVG_VKERN_ELEMENT,
402 /**
403  *
404  */
405 SVG_MAX_ELEMENT
407 } SVGElementType;
412 /**
413  * Look up the SVG Element type enum for a given string
414  * Return -1 if not found
415  */
416 int svgElementStrToEnum(const char *str);
419 /**
420  * Return the string corresponding to a given SVG element type enum
421  * Return "unknown" if not found
422  */
423 const char *svgElementEnumToStr(int type);
426 /*#########################################################################
427 ## SVGDocumentImpl
428 #########################################################################*/
430 /**
431  *
432  */
433 class SVGDocumentImpl : virtual public SVGDocument, public DocumentImpl
435 public:
438     /**
439      *
440      */
441     virtual DOMString getTitle()
442         { return title; }
444     /**
445      *
446      */
447     virtual DOMString getReferrer()
448         { return referrer; }
450     /**
451      *
452      */
453     virtual DOMString getDomain()
454         { return domain; }
456     /**
457      *
458      */
459     virtual DOMString getURL()
460         { return url; }
462     /**
463      *
464      */
465     virtual SVGSVGElementPtr getRootElement()
466         { return rootElement; }
469     //####################################################
470     //# Overload some createXXX() methods from DocumentImpl,
471     //# To create our SVG-DOM types (in .cpp)
472     //####################################################
474     /**
475      *
476      */
477     virtual ElementPtr createElement(const DOMString& tagName)
478                            throw(DOMException);
481     /**
482      *
483      */
484     virtual ElementPtr createElementNS(const DOMString& namespaceURI,
485                                        const DOMString& qualifiedName)
486                                        throw(DOMException);
488     //##################
489     //# Non-API methods
490     //##################
492     SVGDocumentImpl(const DOMImplementation *domImpl,
493                     const DOMString         &namespaceURI,
494                     const DOMString         &qualifiedName,
495                     const DocumentTypePtr   doctype)
496                     : DocumentImpl(domImpl, namespaceURI,
497                           qualifiedName, doctype)
498         {
499         init();
500         }
503     /**
504      *
505      */
506     virtual ~SVGDocumentImpl()
507         {
508         }
510 protected:
512 friend class SvgParser;
514     void init();
516     DOMString title;
517     DOMString referrer;
518     DOMString domain;
519     DOMString url;
520     SVGSVGElementImplPtr rootElement;
521 };
525 /*#########################################################################
526 ## SVGElementImpl
527 #########################################################################*/
529 /**
530  *
531  */
532 class SVGElementImpl : virtual public SVGElement,
533                        public ElementImpl
535 public:
537     /**
538      *
539      */
540     virtual DOMString getId()
541         { return id; }
543     /**
544      *
545      */
546     virtual void setId(const DOMString &val)
547                        throw (DOMException)
548         { id = val; }
550     /**
551      *
552      */
553     virtual DOMString getXmlBase()
554         { return xmlBase; }
556     /**
557      *
558      */
559     virtual void setXmlBase(const DOMString &val)
560                             throw (DOMException)
561         { xmlBase = val; }
563     /**
564      *
565      */
566     virtual SVGSVGElementPtr getOwnerSVGElement()
567         { return ownerSvgElement; }
569     /**
570      *
571      */
572     virtual SVGElementPtr getViewportElement()
573         { return viewportElement; }
576     //##################
577     //# Non-API methods
578     //##################
581     /**
582      *
583      */
584     SVGElementImpl()
585         {}
587     /**
588      *
589      */
590     SVGElementImpl(SVGDocumentImplPtr owner, const DOMString &tagName)
591                     : ElementImpl(owner, tagName)
592         { init(); }
594     /**
595      *
596      */
597     SVGElementImpl(SVGDocumentImplPtr owner,
598                    const DOMString &namespaceURI,
599                    const DOMString &tagName)
600                    : ElementImpl(owner, namespaceURI, tagName)
601         { init(); }
604     /**
605      *
606      */
607     virtual ~SVGElementImpl()
608         {}
610 protected:
612     void init()
613         {
614         id              = "";
615         xmlBase         = "";
616         ownerSvgElement = NULL;
617         viewportElement = NULL;
618         }
620     DOMString        id;
621     DOMString        xmlBase;
622     SVGSVGElementPtr ownerSvgElement;
623     SVGElementPtr    viewportElement;
625 };
629 /*#########################################################################
630 ## SVGSVGElementImpl
631 #########################################################################*/
633 /**
634  *
635  */
636 class SVGSVGElementImpl : virtual public SVGSVGElement,
637                           public SVGElementImpl
639 public:
641     /**
642      *
643      */
644     virtual SVGAnimatedLength getX()
645         { return x; }
647     /**
648      *
649      */
650     virtual SVGAnimatedLength getY()
651         { return y; }
653     /**
654      *
655      */
656     virtual SVGAnimatedLength getWidth()
657         { return width; }
659     /**
660      *
661      */
662     virtual SVGAnimatedLength getHeight()
663         { return height; }
665     /**
666      *
667      */
668     virtual DOMString getContentScriptType()
669         { return contentScriptType; }
671     /**
672      *
673      */
674     virtual void setContentScriptType(const DOMString &val)
675                                      throw (DOMException)
676         { contentScriptType = val; }
679     /**
680      *
681      */
682     virtual DOMString getContentStyleType()
683         { return contentStyleType; }
685     /**
686      *
687      */
688     virtual void setContentStyleType(const DOMString &val)
689                                      throw (DOMException)
690         { contentStyleType = val; }
692     /**
693      *
694      */
695     virtual SVGRect getViewport()
696         { return viewport; }
698     /**
699      *
700      */
701     virtual double getPixelUnitToMillimeterX()
702         { return pixelUnitToMillimeterX; }
704     /**
705      *
706      */
707     virtual double getPixelUnitToMillimeterY()
708         { return pixelUnitToMillimeterY; }
710     /**
711      *
712      */
713     virtual double getScreenPixelToMillimeterX()
714         { return screenPixelToMillimeterX; }
716     /**
717      *
718      */
719     virtual double getScreenPixelToMillimeterY()
720         { return screenPixelToMillimeterY; }
723     /**
724      *
725      */
726     virtual bool getUseCurrentView()
727         { return useCurrentView; }
729     /**
730      *
731      */
732     virtual void setUseCurrentView(bool val) throw (DOMException)
733         { useCurrentView = val; }
735     /**
736      *
737      */
738     virtual SVGViewSpec getCurrentView()
739         { return currentView; }
742     /**
743      *
744      */
745     virtual double getCurrentScale()
746         { return currentScale; }
748     /**
749      *
750      */
751     virtual void setCurrentScale(double val) throw (DOMException)
752         { currentScale = val; }
755     /**
756      *
757      */
758     virtual SVGPoint getCurrentTranslate()
759         { return currentTranslate; }
762     /**
763      *
764      */
765     virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds );
767     /**
768      *
769      */
770     virtual void unsuspendRedraw (unsigned long suspend_handle_id )
771                                   throw( DOMException );
773     /**
774      *
775      */
776     virtual void unsuspendRedrawAll (  );
778     /**
779      *
780      */
781     virtual void forceRedraw (  );
783     /**
784      *
785      */
786     virtual void pauseAnimations (  );
788     /**
789      *
790      */
791     virtual void unpauseAnimations (  );
793     /**
794      *
795      */
796     virtual bool animationsPaused (  );
798     /**
799      *
800      */
801     virtual double getCurrentTime (  )
802         { return currentTime; }
804     /**
805      *
806      */
807     virtual void setCurrentTime (double seconds )
808         { currentTime = seconds; }
810     /**
811      *
812      */
813     virtual NodeList getIntersectionList (const SVGRect &rect,
814                                           const SVGElementPtr referenceElement );
816     /**
817      *
818      */
819     virtual NodeList getEnclosureList (const SVGRect &rect,
820                                        const SVGElementPtr referenceElement );
822     /**
823      *
824      */
825     virtual bool checkIntersection (const SVGElementPtr element, const SVGRect &rect );
827     /**
828      *
829      */
830     virtual bool checkEnclosure (const SVGElementPtr element, const SVGRect &rect );
832     /**
833      *
834      */
835     virtual void deselectAll (  );
837     /**
838      *
839      */
840     virtual SVGNumber createSVGNumber (  )
841         {
842         SVGNumber ret;
843         return ret;
844         }
846     /**
847      *
848      */
849     virtual SVGLength createSVGLength (  )
850         {
851         SVGLength ret;
852         return ret;
853         }
855     /**
856      *
857      */
858     virtual SVGAngle createSVGAngle (  )
859         {
860         SVGAngle ret;
861         return ret;
862         }
864     /**
865      *
866      */
867     virtual SVGPoint createSVGPoint (  )
868         {
869         SVGPoint ret;
870         return ret;
871         }
873     /**
874      *
875      */
876     virtual SVGMatrix createSVGMatrix (  )
877         {
878         SVGMatrix ret;
879         return ret;
880         }
882     /**
883      *
884      */
885     virtual SVGRect createSVGRect (  )
886         {
887         SVGRect ret;
888         return ret;
889         }
891     /**
892      *
893      */
894     virtual SVGTransform createSVGTransform (  )
895         {
896         SVGTransform ret;
897         return ret;
898         }
900     /**
901      *
902      */
903     virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix )
904         {
905         SVGTransform ret;
906         ret.setMatrix(matrix);
907         return ret;
908         }
911     /**
912      *
913      */
914     virtual ElementPtr getElementById (const DOMString& elementId );
918     //##################
919     //# Non-API methods
920     //##################
922     /**
923      *
924      */
925     SVGSVGElementImpl() : SVGElementImpl()
926         {}
930     /**
931      *
932      */
933     virtual ~SVGSVGElementImpl() {}
935 protected:
937     SVGAnimatedLength x;
938     SVGAnimatedLength y;
939     SVGAnimatedLength width;
940     SVGAnimatedLength height;
941     DOMString         contentScriptType;
942     DOMString         contentStyleType;
943     SVGRect           viewport;
944     double            pixelUnitToMillimeterX;
945     double            pixelUnitToMillimeterY;
946     double            screenPixelToMillimeterX;
947     double            screenPixelToMillimeterY;
948     bool              useCurrentView;
949     SVGViewSpec       currentView;
950     double            currentScale;
951     SVGPoint          currentTranslate;
953     double currentTime;
955 };
959 /*#########################################################################
960 ## SVGGElementImpl
961 #########################################################################*/
963 /**
964  *
965  */
966 class SVGGElementImpl : virtual public SVGGElement, public SVGElementImpl
968 public:
970     //##################
971     //# Non-API methods
972     //##################
974     /**
975      *
976      */
977     SVGGElementImpl() {}
979     /**
980      *
981      */
982     virtual ~SVGGElementImpl() {}
984 protected:
987 };
992 /*#########################################################################
993 ## SVGDefsElementImpl
994 #########################################################################*/
996 /**
997  *
998  */
999 class SVGDefsElementImpl : virtual public SVGDefsElement,
1000                            public SVGElementImpl
1002 public:
1004     //##################
1005     //# Non-API methods
1006     //##################
1008     /**
1009      *
1010      */
1011     SVGDefsElementImpl() {}
1013     /**
1014      *
1015      */
1016     virtual ~SVGDefsElementImpl() {}
1018 protected:
1021 };
1027 /*#########################################################################
1028 ## SVGDescElementImpl
1029 #########################################################################*/
1031 /**
1032  *
1033  */
1034 class SVGDescElementImpl :  virtual public SVGDescElement,
1035                             public SVGElementImpl
1037 public:
1039     //##################
1040     //# Non-API methods
1041     //##################
1043     /**
1044      *
1045      */
1046     SVGDescElementImpl() {}
1048     /**
1049      *
1050      */
1051     virtual ~SVGDescElementImpl() {}
1053 protected:
1056 };
1062 /*#########################################################################
1063 ## SVGTitleElementImpl
1064 #########################################################################*/
1066 /**
1067  *
1068  */
1069 class SVGTitleElementImpl : virtual public SVGTitleElement,
1070                             public SVGElementImpl
1072 public:
1074     //##################
1075     //# Non-API methods
1076     //##################
1078     /**
1079      *
1080      */
1081     SVGTitleElementImpl() {}
1083     /**
1084      *
1085      */
1086     virtual ~SVGTitleElementImpl() {}
1088 protected:
1091 };
1097 /*#########################################################################
1098 ## SVGSymbolElementImpl
1099 #########################################################################*/
1101 /**
1102  *
1103  */
1104 class SVGSymbolElementImpl : virtual public SVGSymbolElement,
1105                              public SVGElementImpl
1107 public:
1109     //##################
1110     //# Non-API methods
1111     //##################
1113     /**
1114      *
1115      */
1116     SVGSymbolElementImpl() {}
1118     /**
1119      *
1120      */
1121     virtual ~SVGSymbolElementImpl() {}
1123 protected:
1126 };
1132 /*#########################################################################
1133 ## SVGUseElementImpl
1134 #########################################################################*/
1136 /**
1137  *
1138  */
1139 class SVGUseElementImpl : public SVGElementImpl
1141 public:
1144     /**
1145      *
1146      */
1147     virtual SVGAnimatedLength getX()
1148         { return x; }
1150     /**
1151      *
1152      */
1153     virtual SVGAnimatedLength getY()
1154         { return y; }
1156     /**
1157      *
1158      */
1159     virtual SVGAnimatedLength getWidth()
1160         { return width; }
1162     /**
1163      *
1164      */
1165     virtual SVGAnimatedLength getHeight()
1166         { return height; }
1168     /**
1169      *
1170      */
1171     virtual SVGElementInstance getInstanceRoot()
1172         { return instanceRoot; }
1174     /**
1175      *
1176      */
1177     virtual SVGElementInstance getAnimatedInstanceRoot()
1178         { return animatedInstanceRoot; }
1182     //##################
1183     //# Non-API methods
1184     //##################
1186     /**
1187      *
1188      */
1189     SVGUseElementImpl() {}
1191     /**
1192      *
1193      */
1194     virtual ~SVGUseElementImpl() {}
1196 protected:
1198     SVGAnimatedLength x;
1199     SVGAnimatedLength y;
1200     SVGAnimatedLength width;
1201     SVGAnimatedLength height;
1202     SVGElementInstance instanceRoot;
1203     SVGElementInstance animatedInstanceRoot;
1204 };
1212 /*#########################################################################
1213 ## SVGImageElementImpl
1214 #########################################################################*/
1216 /**
1217  *
1218  */
1219 class SVGImageElementImpl : virtual public SVGImageElement,
1220                             public SVGElementImpl
1222 public:
1225     /**
1226      *
1227      */
1228     virtual SVGAnimatedLength getX()
1229         { return x; }
1231     /**
1232      *
1233      */
1234     virtual SVGAnimatedLength getY()
1235         { return y; }
1237     /**
1238      *
1239      */
1240     virtual SVGAnimatedLength getWidth()
1241         { return width; }
1243     /**
1244      *
1245      */
1246     virtual SVGAnimatedLength getHeight()
1247         { return height; }
1250     /**
1251      *
1252      */
1253     virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio()
1254         { return preserveAspectRatio; }
1258     //##################
1259     //# Non-API methods
1260     //##################
1262     /**
1263      *
1264      */
1265     SVGImageElementImpl() {}
1267     /**
1268      *
1269      */
1270     virtual ~SVGImageElementImpl() {}
1272 protected:
1274     SVGAnimatedLength x;
1275     SVGAnimatedLength y;
1276     SVGAnimatedLength width;
1277     SVGAnimatedLength height;
1278     SVGAnimatedPreserveAspectRatio preserveAspectRatio;
1279 };
1286 /*#########################################################################
1287 ## SVGSwitchElementImpl
1288 #########################################################################*/
1290 /**
1291  *
1292  */
1293 class SVGSwitchElementImpl : virtual public SVGSwitchElement,
1294                              public SVGElementImpl
1296 public:
1298     //##################
1299     //# Non-API methods
1300     //##################
1302     /**
1303      *
1304      */
1305     SVGSwitchElementImpl() {}
1307     /**
1308      *
1309      */
1310     virtual ~SVGSwitchElementImpl() {}
1312 protected:
1315 };
1321 /*#########################################################################
1322 ## GetSVGDocumentImpl
1323 #########################################################################*/
1325 /**
1326  *
1327  */
1328 class GetSVGDocumentImpl : public virtual GetSVGDocument
1330 public:
1332     /**
1333      *
1334      */
1335     virtual SVGDocumentPtr getSVGDocument (  )
1336                     throw( DOMException );
1338     //##################
1339     //# Non-API methods
1340     //##################
1342     /**
1343      *
1344      */
1345     GetSVGDocumentImpl() {}
1347     /**
1348      *
1349      */
1350     virtual ~GetSVGDocumentImpl() {}
1352 protected:
1355 };
1363 /*#########################################################################
1364 ## SVGStyleElementImpl
1365 #########################################################################*/
1367 /**
1368  *
1369  */
1370 class SVGStyleElementImpl : virtual public SVGStyleElement,
1371                             public SVGElementImpl
1373 public:
1375     /**
1376      *
1377      */
1378     virtual DOMString getXmlspace()
1379         { return xmlSpace; }
1381     /**
1382      *
1383      */
1384     virtual void setXmlspace(const DOMString &val)
1385                              throw (DOMException)
1386         { xmlSpace = val; }
1388     /**
1389      *
1390      */
1391     virtual DOMString getType()
1392         { return type; }
1394     /**
1395      *
1396      */
1397     virtual void setType(const DOMString &val)
1398                          throw (DOMException)
1399         { type = val; }
1401     /**
1402      *
1403      */
1404     virtual DOMString getMedia()
1405         { return media; }
1407     /**
1408      *
1409      */
1410     virtual void setMedia(const DOMString &val)
1411                           throw (DOMException)
1412         { media = val; }
1414     /**
1415      *
1416      */
1417     virtual DOMString getTitle()
1418         { return title; }
1420     /**
1421      *
1422      */
1423     virtual void setTitle(const DOMString &val)
1424                           throw (DOMException)
1425         { title = val; }
1429     //##################
1430     //# Non-API methods
1431     //##################
1433     /**
1434      *
1435      */
1436     SVGStyleElementImpl() {}
1438     /**
1439      *
1440      */
1441     virtual ~SVGStyleElementImpl() {}
1443 protected:
1445     DOMString xmlSpace;
1446     DOMString type;
1447     DOMString media;
1448     DOMString title;
1450 };
1457 /*#########################################################################
1458 ## SVGPathElementImpl
1459 #########################################################################*/
1461 /**
1462  *
1463  */
1464 class SVGPathElementImpl : virtual public SVGPathElement,
1465                            public SVGElementImpl
1467 public:
1469     /**
1470      *
1471      */
1472     virtual SVGAnimatedNumber getPathLength();
1474     /**
1475      *
1476      */
1477     virtual double getTotalLength (  );
1479     /**
1480      *
1481      */
1482     virtual SVGPoint getPointAtLength (double distance );
1484     /**
1485      *
1486      */
1487     virtual unsigned long getPathSegAtLength (double distance );
1489     /**
1490      *
1491      */
1492     virtual SVGPathSegClosePath
1493               createSVGPathSegClosePath (  )
1494          {
1495          SVGPathSegClosePath ret;
1496          return ret;
1497          }
1499     /**
1500      *
1501      */
1502     virtual SVGPathSegMovetoAbs
1503               createSVGPathSegMovetoAbs (double x, double y )
1504          {
1505          SVGPathSegMovetoAbs ret(x, y);
1506          return ret;
1507          }
1509     /**
1510      *
1511      */
1512     virtual SVGPathSegMovetoRel
1513               createSVGPathSegMovetoRel (double x, double y )
1514          {
1515          SVGPathSegMovetoRel ret(x, y);
1516          return ret;
1517          }
1519     /**
1520      *
1521      */
1522     virtual SVGPathSegLinetoAbs
1523               createSVGPathSegLinetoAbs (double x, double y )
1524          {
1525          SVGPathSegLinetoAbs ret(x, y);
1526          return ret;
1527          }
1529     /**
1530      *
1531      */
1532     virtual SVGPathSegLinetoRel
1533               createSVGPathSegLinetoRel (double x, double y )
1534          {
1535          SVGPathSegLinetoRel ret(x, y);
1536          return ret;
1537          }
1539     /**
1540      *
1541      */
1542     virtual SVGPathSegCurvetoCubicAbs
1543               createSVGPathSegCurvetoCubicAbs (double x, double y,
1544                         double x1, double y1, double x2, double y2 )
1545          {
1546          SVGPathSegCurvetoCubicAbs ret(x, y, x1, y1, x2, y2);
1547          return ret;
1548          }
1550     /**
1551      *
1552      */
1553     virtual SVGPathSegCurvetoCubicRel
1554               createSVGPathSegCurvetoCubicRel (double x, double y,
1555                         double x1, double y1, double x2, double y2 )
1556          {
1557          SVGPathSegCurvetoCubicRel ret(x, y, x1, y1, x2, y2);
1558          return ret;
1559          }
1561     /**
1562      *
1563      */
1564     virtual SVGPathSegCurvetoQuadraticAbs
1565               createSVGPathSegCurvetoQuadraticAbs (double x, double y,
1566                          double x1, double y1 )
1567          {
1568          SVGPathSegCurvetoQuadraticAbs ret(x, y, x1, y1);
1569          return ret;
1570          }
1572     /**
1573      *
1574      */
1575     virtual SVGPathSegCurvetoQuadraticRel
1576               createSVGPathSegCurvetoQuadraticRel (double x, double y,
1577                          double x1, double y1 )
1578          {
1579          SVGPathSegCurvetoQuadraticRel ret(x, y, x1, y1);
1580          return ret;
1581          }
1583     /**
1584      *
1585      */
1586     virtual SVGPathSegArcAbs
1587               createSVGPathSegArcAbs (double x, double y,
1588                          double r1, double r2, double angle,
1589                          bool largeArcFlag, bool sweepFlag )
1590          {
1591          SVGPathSegArcAbs ret(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
1592          return ret;
1593          }
1595     /**
1596      *
1597      */
1598     virtual SVGPathSegArcRel
1599               createSVGPathSegArcRel (double x, double y, double r1,
1600                          double r2, double angle, bool largeArcFlag,
1601                          bool sweepFlag )
1602          {
1603          SVGPathSegArcRel ret(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
1604          return ret;
1605          }
1607     /**
1608      *
1609      */
1610     virtual SVGPathSegLinetoHorizontalAbs
1611               createSVGPathSegLinetoHorizontalAbs (double x )
1612          {
1613          SVGPathSegLinetoHorizontalAbs ret(x);
1614          return ret;
1615          }
1617     /**
1618      *
1619      */
1620     virtual SVGPathSegLinetoHorizontalRel
1621               createSVGPathSegLinetoHorizontalRel (double x )
1622          {
1623          SVGPathSegLinetoHorizontalRel ret(x);
1624          return ret;
1625          }
1627     /**
1628      *
1629      */
1630     virtual SVGPathSegLinetoVerticalAbs
1631               createSVGPathSegLinetoVerticalAbs (double y )
1632          {
1633          SVGPathSegLinetoVerticalAbs ret(y);
1634          return ret;
1635          }
1637     /**
1638      *
1639      */
1640     virtual SVGPathSegLinetoVerticalRel
1641               createSVGPathSegLinetoVerticalRel (double y )
1642          {
1643          SVGPathSegLinetoVerticalRel ret(y);
1644          return ret;
1645          }
1647     /**
1648      *
1649      */
1650     virtual SVGPathSegCurvetoCubicSmoothAbs
1651               createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
1652                                              double x2, double y2 )
1653          {
1654          SVGPathSegCurvetoCubicSmoothAbs ret(x, y, x2, y2);
1655          return ret;
1656          }
1658     /**
1659      *
1660      */
1661     virtual SVGPathSegCurvetoCubicSmoothRel
1662               createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
1663                                                      double x2, double y2 )
1664          {
1665          SVGPathSegCurvetoCubicSmoothRel ret(x, y, x2, y2);
1666          return ret;
1667          }
1669     /**
1670      *
1671      */
1672     virtual SVGPathSegCurvetoQuadraticSmoothAbs
1673               createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y )
1674          {
1675          SVGPathSegCurvetoQuadraticSmoothAbs ret(x, y);
1676          return ret;
1677          }
1679     /**
1680      *
1681      */
1682     virtual SVGPathSegCurvetoQuadraticSmoothRel
1683               createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y )
1684          {
1685          SVGPathSegCurvetoQuadraticSmoothRel ret(x, y);
1686          return ret;
1687          }
1691     //##################
1692     //# Non-API methods
1693     //##################
1695     /**
1696      *
1697      */
1698     SVGPathElementImpl() {}
1701     /**
1702      *
1703      */
1704     virtual ~SVGPathElementImpl() {}
1706 protected:
1709 };
1717 /*#########################################################################
1718 ## SVGRectElementImpl
1719 #########################################################################*/
1721 /**
1722  *
1723  */
1724 class SVGRectElementImpl : virtual public SVGRectElement,
1725                            public SVGElementImpl
1727 public:
1729     /**
1730      *
1731      */
1732     virtual SVGAnimatedLength getX()
1733         { return x; }
1735     /**
1736      *
1737      */
1738     virtual SVGAnimatedLength getY()
1739         { return y; }
1741     /**
1742      *
1743      */
1744     virtual SVGAnimatedLength getWidth()
1745         { return width; }
1747     /**
1748      *
1749      */
1750     virtual SVGAnimatedLength getHeight()
1751         { return height; }
1754     /**
1755      *
1756      */
1757     virtual SVGAnimatedLength getRx()
1758         { return rx; }
1760     /**
1761      *
1762      */
1763     virtual SVGAnimatedLength getRy()
1764         { return ry; }
1768     //##################
1769     //# Non-API methods
1770     //##################
1772     /**
1773      *
1774      */
1775     SVGRectElementImpl() {}
1777     /**
1778      *
1779      */
1780     virtual ~SVGRectElementImpl() {}
1782 protected:
1784     SVGAnimatedLength x;
1785     SVGAnimatedLength y;
1786     SVGAnimatedLength width;
1787     SVGAnimatedLength height;
1788     SVGAnimatedLength rx;
1789     SVGAnimatedLength ry;
1791 };
1798 /*#########################################################################
1799 ## SVGCircleElementImpl
1800 #########################################################################*/
1802 /**
1803  *
1804  */
1805 class SVGCircleElementImpl : virtual public SVGCircleElement,
1806                              public SVGElementImpl
1808 public:
1810     /**
1811      *
1812      */
1813     virtual SVGAnimatedLength getCx()
1814         { return cx; }
1816     /**
1817      *
1818      */
1819     virtual SVGAnimatedLength getCy()
1820         { return cy; }
1822     /**
1823      *
1824      */
1825     virtual SVGAnimatedLength getR()
1826         { return r; }
1830     //##################
1831     //# Non-API methods
1832     //##################
1834     /**
1835      *
1836      */
1837     SVGCircleElementImpl() {}
1839     /**
1840      *
1841      */
1842     virtual ~SVGCircleElementImpl() {}
1844 protected:
1846     SVGAnimatedLength cx;
1847     SVGAnimatedLength cy;
1848     SVGAnimatedLength r;
1849 };
1856 /*#########################################################################
1857 ## SVGEllipseElementImpl
1858 #########################################################################*/
1860 /**
1861  *
1862  */
1863 class SVGEllipseElementImpl : virtual public SVGEllipseElement,
1864                               public SVGElementImpl
1866 public:
1868     /**
1869      *
1870      */
1871     virtual SVGAnimatedLength getCx()
1872         { return cx; }
1874     /**
1875      *
1876      */
1877     virtual SVGAnimatedLength getCy()
1878         { return cy; }
1880     /**
1881      *
1882      */
1883     virtual SVGAnimatedLength getRx()
1884         { return rx; }
1886     /**
1887      *
1888      */
1889     virtual SVGAnimatedLength getRy()
1890         { return ry; }
1893     //##################
1894     //# Non-API methods
1895     //##################
1897     /**
1898      *
1899      */
1900     SVGEllipseElementImpl() {}
1902     /**
1903      *
1904      */
1905     virtual ~SVGEllipseElementImpl() {}
1907 protected:
1909     SVGAnimatedLength cx;
1910     SVGAnimatedLength cy;
1911     SVGAnimatedLength rx;
1912     SVGAnimatedLength ry;
1913 };
1920 /*#########################################################################
1921 ## SVGLineElement
1922 #########################################################################*/
1924 /**
1925  *
1926  */
1927 class SVGLineElementImpl : virtual public SVGLineElement,
1928                            public SVGElementImpl
1930 public:
1932     /**
1933      *
1934      */
1935     virtual SVGAnimatedLength getX1()
1936         { return x1; }
1938     /**
1939      *
1940      */
1941     virtual SVGAnimatedLength getY1()
1942         { return y1; }
1944     /**
1945      *
1946      */
1947     virtual SVGAnimatedLength getX2()
1948         { return x2; }
1950     /**
1951      *
1952      */
1953     virtual SVGAnimatedLength getY2()
1954         { return y2; }
1956     //##################
1957     //# Non-API methods
1958     //##################
1960     /**
1961      *
1962      */
1963     virtual ~SVGLineElementImpl() {}
1965 protected:
1967     SVGAnimatedLength x1;
1968     SVGAnimatedLength x2;
1969     SVGAnimatedLength y1;
1970     SVGAnimatedLength y2;
1971 };
1976 /*#########################################################################
1977 ## SVGPolylineElement
1978 #########################################################################*/
1980 /**
1981  *
1982  */
1983 class SVGPolylineElementImpl : virtual public SVGPolylineElement,
1984                                public SVGElementImpl
1986 public:
1988     //##################
1989     //# Non-API methods
1990     //##################
1992     /**
1993      *
1994      */
1995     virtual ~SVGPolylineElementImpl() {}
1997 protected:
2000 };
2006 /*#########################################################################
2007 ## SVGPolygonElementImpl
2008 #########################################################################*/
2010 /**
2011  *
2012  */
2013 class SVGPolygonElementImpl : virtual public SVGPolygonElement,
2014                               public SVGElementImpl
2016 public:
2018     //##################
2019     //# Non-API methods
2020     //##################
2022     /**
2023      *
2024      */
2025     virtual ~SVGPolygonElementImpl() {}
2027 protected:
2030 };
2036 /*#########################################################################
2037 ## SVGTextContentElement
2038 #########################################################################*/
2040 /**
2041  *
2042  */
2043 class SVGTextContentElementImpl : virtual public SVGTextContentElement,
2044                                   public SVGElementImpl
2046 public:
2048     /**
2049      *
2050      */
2051     virtual SVGAnimatedLength getTextLength();
2054     /**
2055      *
2056      */
2057     virtual SVGAnimatedEnumeration getLengthAdjust();
2060     /**
2061      *
2062      */
2063     virtual long getNumberOfChars(  );
2065     /**
2066      *
2067      */
2068     virtual double getComputedTextLength(  );
2070     /**
2071      *
2072      */
2073     virtual double getSubStringLength(unsigned long charnum,
2074                                       unsigned long nchars )
2075                                       throw( DOMException );
2077     /**
2078      *
2079      */
2080     virtual SVGPoint getStartPositionOfChar(unsigned long charnum )
2081                                             throw( DOMException );
2083     /**
2084      *
2085      */
2086     virtual SVGPoint getEndPositionOfChar(unsigned long charnum )
2087                                           throw( DOMException );
2089     /**
2090      *
2091      */
2092     virtual SVGRect getExtentOfChar(unsigned long charnum )
2093                                     throw( DOMException );
2095     /**
2096      *
2097      */
2098     virtual double getRotationOfChar(unsigned long charnum )
2099                                      throw( DOMException );
2101     /**
2102      *
2103      */
2104     virtual long getCharNumAtPosition(const SVGPoint &point );
2106     /**
2107      *
2108      */
2109     virtual void selectSubString(unsigned long charnum, unsigned long nchars )
2110                                  throw( DOMException );
2114     //##################
2115     //# Non-API methods
2116     //##################
2118     /**
2119      *
2120      */
2121     virtual ~SVGTextContentElementImpl() {}
2123 protected:
2126 };
2133 /*#########################################################################
2134 ## SVGTextPositioningElementImpl
2135 #########################################################################*/
2137 /**
2138  *
2139  */
2140 class SVGTextPositioningElementImpl : virtual public SVGTextPositioningElement,
2141                                       public SVGTextContentElementImpl
2143 public:
2147     /**
2148      *
2149      */
2150     virtual SVGAnimatedLength getX()
2151         { return x; }
2153     /**
2154      *
2155      */
2156     virtual SVGAnimatedLength getY()
2157         { return y; }
2159     /**
2160      *
2161      */
2162     virtual SVGAnimatedLength getDx()
2163         { return dx; }
2165     /**
2166      *
2167      */
2168     virtual SVGAnimatedLength getDy()
2169         { return dy; }
2172     /**
2173      *
2174      */
2175     virtual SVGAnimatedNumberList getRotate()
2176         { return rotate; }
2180     //##################
2181     //# Non-API methods
2182     //##################
2184     /**
2185      *
2186      */
2187     virtual ~SVGTextPositioningElementImpl() {}
2189 protected:
2191     SVGAnimatedLength x;
2192     SVGAnimatedLength y;
2193     SVGAnimatedLength dx;
2194     SVGAnimatedLength dy;
2195     SVGAnimatedNumberList rotate;
2197 };
2205 /*#########################################################################
2206 ## SVGTextElement
2207 #########################################################################*/
2209 /**
2210  *
2211  */
2212 class SVGTextElementImpl : virtual public SVGTextElement,
2213                            public SVGTextPositioningElementImpl
2215 public:
2217     //##################
2218     //# Non-API methods
2219     //##################
2221     /**
2222      *
2223      */
2224     virtual ~SVGTextElementImpl() {}
2226 protected:
2229 };
2235 /*#########################################################################
2236 ## SVGTSpanElement
2237 #########################################################################*/
2239 /**
2240  *
2241  */
2242 class SVGTSpanElementImpl : virtual public SVGTSpanElement,
2243                             public SVGTextPositioningElementImpl
2245 public:
2247     //##################
2248     //# Non-API methods
2249     //##################
2251     /**
2252      *
2253      */
2254     virtual ~SVGTSpanElementImpl() {}
2256 protected:
2259 };
2265 /*#########################################################################
2266 ## SVGTRefElement
2267 #########################################################################*/
2269 /**
2270  *
2271  */
2272 class SVGTRefElementImpl : virtual public SVGTRefElement,
2273                            public SVGTextPositioningElementImpl
2275 public:
2277     //##################
2278     //# Non-API methods
2279     //##################
2281     /**
2282      *
2283      */
2284     virtual ~SVGTRefElementImpl() {}
2286 protected:
2289 };
2295 /*#########################################################################
2296 ## SVGTextPathElement
2297 #########################################################################*/
2299 /**
2300  *
2301  */
2302 class SVGTextPathElementImpl : virtual public SVGTextPathElement,
2303                                public SVGTextContentElementImpl
2305 public:
2307     /**
2308      *
2309      */
2310     virtual SVGAnimatedLength getStartOffset()
2311         { return startOffset; }
2313     /**
2314      *
2315      */
2316     virtual SVGAnimatedEnumeration getMethod()
2317         { return method; }
2319     /**
2320      *
2321      */
2322     virtual SVGAnimatedEnumeration getSpacing()
2323         { return spacing; }
2327     //##################
2328     //# Non-API methods
2329     //##################
2331     /**
2332      *
2333      */
2334     virtual ~SVGTextPathElementImpl() {}
2336 protected:
2338     SVGAnimatedLength startOffset;
2339     SVGAnimatedEnumeration method;
2340     SVGAnimatedEnumeration spacing;
2341 };
2349 /*#########################################################################
2350 ## SVGAltGlyphElement
2351 #########################################################################*/
2353 /**
2354  *
2355  */
2356 class SVGAltGlyphElementImpl : virtual public SVGAltGlyphElement,
2357                                public SVGTextPositioningElementImpl
2359 public:
2361     /**
2362      *
2363      */
2364     virtual DOMString getGlyphRef()
2365         { return glyphRef; }
2367     /**
2368      *
2369      */
2370     virtual void setGlyphRef(const DOMString &val)
2371                              throw (DOMException)
2372         { glyphRef = val; }
2374     /**
2375      *
2376      */
2377     virtual DOMString getFormat()
2378         { return format; }
2380     /**
2381      *
2382      */
2383     virtual void setFormat(const DOMString &val)
2384                            throw (DOMException)
2385         { format = val; }
2390     //##################
2391     //# Non-API methods
2392     //##################
2394     /**
2395      *
2396      */
2397     virtual ~SVGAltGlyphElementImpl() {}
2399 protected:
2401     DOMString glyphRef;
2402     DOMString format;
2404 };
2412 /*#########################################################################
2413 ## SVGAltGlyphDefElementImpl
2414 #########################################################################*/
2416 /**
2417  *
2418  */
2419 class SVGAltGlyphDefElementImpl : virtual public SVGAltGlyphDefElement,
2420                                   public SVGElementImpl
2422 public:
2424     //##################
2425     //# Non-API methods
2426     //##################
2428     /**
2429      *
2430      */
2431     virtual ~SVGAltGlyphDefElementImpl() {}
2433 protected:
2436 };
2442 /*#########################################################################
2443 ## SVGAltGlyphItemElementImpl
2444 #########################################################################*/
2446 /**
2447  *
2448  */
2449 class SVGAltGlyphItemElementImpl : virtual public SVGAltGlyphItemElement,
2450                                    public SVGElementImpl
2452 public:
2454     //##################
2455     //# Non-API methods
2456     //##################
2458     /**
2459      *
2460      */
2461     virtual ~SVGAltGlyphItemElementImpl() {}
2463 protected:
2466 };
2472 /*#########################################################################
2473 ## SVGGlyphRefElementImpl
2474 #########################################################################*/
2476 /**
2477  *
2478  */
2479 class SVGGlyphRefElementImpl : virtual public SVGGlyphRefElement,
2480                                public SVGElementImpl
2482 public:
2483     /**
2484      *
2485      */
2486     virtual DOMString getGlyphRef()
2487         { return glyphRef; }
2489     /**
2490      *
2491      */
2492     virtual void setGlyphRef(const DOMString &val) throw (DOMException)
2493         { glyphRef = val; }
2495     /**
2496      *
2497      */
2498     virtual DOMString getFormat()
2499         { return format; }
2501     /**
2502      *
2503      */
2504     virtual void setFormat(const DOMString &val) throw (DOMException)
2505         { format = val; }
2507     /**
2508      *
2509      */
2510     virtual double getX()
2511         { return x; }
2513     /**
2514      *
2515      */
2516     virtual void setX(double val) throw (DOMException)
2517         { x = val; }
2519     /**
2520      *
2521      */
2522     virtual double getY()
2523         { return y; }
2525     /**
2526      *
2527      */
2528     virtual void setY(double val) throw (DOMException)
2529         { y = val; }
2531     /**
2532      *
2533      */
2534     virtual double getDx()
2535         { return dx; }
2537     /**
2538      *
2539      */
2540     virtual void setDx(double val) throw (DOMException)
2541         { dx = val; }
2543     /**
2544      *
2545      */
2546     virtual double getDy()
2547         { return dy; }
2549     /**
2550      *
2551      */
2552     virtual void setDy(double val) throw (DOMException)
2553         { dy = val; }
2558     //##################
2559     //# Non-API methods
2560     //##################
2562     /**
2563      *
2564      */
2565     virtual ~SVGGlyphRefElementImpl() {}
2567 protected:
2569     DOMString glyphRef;
2570     DOMString format;
2571     double x, y, dx, dy;
2573 };
2580 /*#########################################################################
2581 ## SVGMarkerElementImpl
2582 #########################################################################*/
2584 /**
2585  *
2586  */
2587 class SVGMarkerElementImpl : virtual public SVGMarkerElement,
2588                              public SVGElementImpl
2590 public:
2592     /**
2593      *
2594      */
2595     virtual SVGAnimatedLength getRefX()
2596         { return refX; }
2598     /**
2599      *
2600      */
2601     virtual SVGAnimatedLength getRefY()
2602         { return refY; }
2604     /**
2605      *
2606      */
2607     virtual SVGAnimatedEnumeration getMarkerUnits()
2608         { return markerUnits; }
2610     /**
2611      *
2612      */
2613     virtual SVGAnimatedLength getMarkerWidth()
2614         { return markerWidth; }
2616     /**
2617      *
2618      */
2619     virtual SVGAnimatedLength getMarkerHeight()
2620         { return markerHeight; }
2622     /**
2623      *
2624      */
2625     virtual SVGAnimatedEnumeration getOrientType()
2626         { return orientType; }
2628     /**
2629      *
2630      */
2631     virtual SVGAnimatedAngle getOrientAngle()
2632         { return orientAngle; }
2635     /**
2636      *
2637      */
2638     virtual void setOrientToAuto (  )
2639         { orientAuto = true; }
2641     /**
2642      *
2643      */
2644     virtual void setOrientToAngle (const SVGAngle &angle)
2645         {
2646         orientAuto = false;
2647         orientAngle = SVGAnimatedAngle(angle);
2648         }
2652     //##################
2653     //# Non-API methods
2654     //##################
2656     /**
2657      *
2658      */
2659     virtual ~SVGMarkerElementImpl() {}
2661 protected:
2663     SVGAnimatedLength      refX;
2664     SVGAnimatedLength      refY;
2665     SVGAnimatedEnumeration markerUnits;
2666     SVGAnimatedLength      markerWidth;
2667     SVGAnimatedLength      markerHeight;
2668     SVGAnimatedEnumeration orientType;
2669     SVGAnimatedAngle       orientAngle;
2670     bool                   orientAuto;
2673 };
2681 /*#########################################################################
2682 ## SVGColorProfileElementImpl
2683 #########################################################################*/
2685 /**
2686  *
2687  */
2688 class SVGColorProfileElementImpl : virtual public SVGColorProfileElement,
2689                                    public SVGElementImpl
2691 public:
2692     /**
2693      *
2694      */
2695     virtual DOMString getLocal()
2696         { return local; }
2698     /**
2699      *
2700      */
2701     virtual void setLocal(const DOMString &val) throw (DOMException)
2702         { local = val; }
2704     /**
2705      *
2706      */
2707     virtual DOMString getName()
2708         { return name; }
2710     /**
2711      *
2712      */
2713     virtual void setName(const DOMString &val) throw (DOMException)
2714        { name = val; }
2716     /**
2717      *
2718      */
2719     virtual unsigned short getRenderingIntent()
2720         { return renderingIntent; }
2722     /**
2723      *
2724      */
2725     virtual void setRenderingIntent(unsigned short val) throw (DOMException)
2726        { renderingIntent = val; }
2730     //##################
2731     //# Non-API methods
2732     //##################
2734     /**
2735      *
2736      */
2737     virtual ~SVGColorProfileElementImpl() {}
2739 protected:
2741     DOMString local;
2742     DOMString name;
2743     unsigned short renderingIntent;
2745 };
2751 /*#########################################################################
2752 ## SVGGradientElementImpl
2753 #########################################################################*/
2755 /**
2756  *
2757  */
2758 class SVGGradientElementImpl : virtual public SVGGradientElement,
2759                                public SVGElementImpl
2761 public:
2763     /**
2764      *
2765      */
2766     virtual SVGAnimatedEnumeration getGradientUnits()
2767         { return gradientUnits; }
2769     /**
2770      *
2771      */
2772     virtual SVGAnimatedTransformList getGradientTransform()
2773         { return gradientTransform; }
2775     /**
2776      *
2777      */
2778     virtual SVGAnimatedEnumeration getSpreadMethod()
2779         { return spreadMethod; }
2783     //##################
2784     //# Non-API methods
2785     //##################
2787     /**
2788      *
2789      */
2790     virtual ~SVGGradientElementImpl() {}
2792 protected:
2795     SVGAnimatedEnumeration   gradientUnits;
2796     SVGAnimatedTransformList gradientTransform;
2797     SVGAnimatedEnumeration   spreadMethod;
2798 };
2806 /*#########################################################################
2807 ## SVGLinearGradientElementImpl
2808 #########################################################################*/
2810 /**
2811  *
2812  */
2813 class SVGLinearGradientElementImpl : virtual public SVGLinearGradientElement,
2814                                      public SVGGradientElementImpl
2816 public:
2819     /**
2820      *
2821      */
2822     virtual SVGAnimatedLength getX1()
2823         { return x1; }
2825     /**
2826      *
2827      */
2828     virtual SVGAnimatedLength getY1()
2829         { return y1; }
2831     /**
2832      *
2833      */
2834     virtual SVGAnimatedLength getX2()
2835         { return x2; }
2837     /**
2838      *
2839      */
2840     virtual SVGAnimatedLength getY2()
2841         { return y2; }
2844     //##################
2845     //# Non-API methods
2846     //##################
2848     /**
2849      *
2850      */
2851     virtual ~SVGLinearGradientElementImpl() {}
2853 protected:
2855     SVGAnimatedLength x1, x2, y1, y2;
2857 };
2865 /*#########################################################################
2866 ## SVGRadialGradientElementImpl
2867 #########################################################################*/
2869 /**
2870  *
2871  */
2872 class SVGRadialGradientElementImpl : virtual public SVGRadialGradientElement,
2873                                      public SVGGradientElementImpl
2875 public:
2878     /**
2879      *
2880      */
2881     virtual SVGAnimatedLength getCx()
2882         { return cx; }
2885     /**
2886      *
2887      */
2888     virtual SVGAnimatedLength getCy()
2889         { return cy; }
2892     /**
2893      *
2894      */
2895     virtual SVGAnimatedLength getR()
2896         { return r; }
2899     /**
2900      *
2901      */
2902     virtual SVGAnimatedLength getFx()
2903         { return fx; }
2906     /**
2907      *
2908      */
2909     virtual SVGAnimatedLength getFy()
2910         { return fy; }
2915     //##################
2916     //# Non-API methods
2917     //##################
2919     /**
2920      *
2921      */
2922     virtual ~SVGRadialGradientElementImpl() {}
2924 protected:
2926     SVGAnimatedLength cx, cy, r, fx, fy;
2928 };
2936 /*#########################################################################
2937 ## SVGStopElementImpl
2938 #########################################################################*/
2940 /**
2941  *
2942  */
2943 class SVGStopElementImpl : virtual public SVGStopElement,
2944                            public SVGElementImpl
2946 public:
2948     /**
2949      *
2950      */
2951     virtual SVGAnimatedNumber getOffset()
2952         { return offset; }
2956     //##################
2957     //# Non-API methods
2958     //##################
2960     /**
2961      *
2962      */
2963     virtual ~SVGStopElementImpl() {}
2965 protected:
2967     SVGAnimatedNumber offset;
2969 };
2977 /*#########################################################################
2978 ## SVGPatternElementImpl
2979 #########################################################################*/
2981 /**
2982  *
2983  */
2984 class SVGPatternElementImpl : virtual public SVGPatternElement,
2985                               public SVGElementImpl
2987 public:
2989     /**
2990      *
2991      */
2992     virtual SVGAnimatedEnumeration getPatternUnits()
2993         { return patternUnits; }
2995     /**
2996      *
2997      */
2998     virtual SVGAnimatedEnumeration getPatternContentUnits()
2999         { return patternContentUnits; }
3001     /**
3002      *
3003      */
3004     virtual SVGAnimatedTransformList getPatternTransform()
3005         { return patternTransform; }
3007     /**
3008      *
3009      */
3010     virtual SVGAnimatedLength getX()
3011         { return x; }
3013     /**
3014      *
3015      */
3016     virtual SVGAnimatedLength getY()
3017         { return y; }
3019     /**
3020      *
3021      */
3022     virtual SVGAnimatedLength getWidth()
3023         { return width; }
3025     /**
3026      *
3027      */
3028     virtual SVGAnimatedLength getHeight()
3029         { return height; }
3033     //##################
3034     //# Non-API methods
3035     //##################
3037     /**
3038      *
3039      */
3040     virtual ~SVGPatternElementImpl() {}
3042 protected:
3045     SVGAnimatedEnumeration   patternUnits;
3046     SVGAnimatedEnumeration   patternContentUnits;
3047     SVGAnimatedTransformList patternTransform;
3048     SVGAnimatedLength        x;
3049     SVGAnimatedLength        y;
3050     SVGAnimatedLength        width;
3051     SVGAnimatedLength        height;
3052 };
3060 /*#########################################################################
3061 ## SVGClipPathElementImpl
3062 #########################################################################*/
3064 /**
3065  *
3066  */
3067 class SVGClipPathElementImpl : virtual public SVGClipPathElement,
3068                                public SVGElementImpl
3070 public:
3072     /**
3073      *
3074      */
3075     virtual SVGAnimatedEnumeration getClipPathUnits()
3076         { return clipPathUnits; }
3078     //##################
3079     //# Non-API methods
3080     //##################
3082     /**
3083      *
3084      */
3085     virtual ~SVGClipPathElementImpl() {}
3087 protected:
3089     SVGAnimatedEnumeration clipPathUnits;
3091 };
3099 /*#########################################################################
3100 ## SVGMaskElementImpl
3101 #########################################################################*/
3103 /**
3104  *
3105  */
3106 class SVGMaskElementImpl : virtual public SVGMaskElement,
3107                            public SVGElementImpl
3109 public:
3111     /**
3112      *
3113      */
3114     virtual SVGAnimatedEnumeration getMaskUnits()
3115         { return maskUnits; }
3117     /**
3118      *
3119      */
3120     virtual SVGAnimatedEnumeration getMaskContentUnits()
3121         { return maskContentUnits; }
3123     /**
3124      *
3125      */
3126     virtual SVGAnimatedLength getX()
3127         { return x; }
3129     /**
3130      *
3131      */
3132     virtual SVGAnimatedLength getY()
3133         { return y; }
3135     /**
3136      *
3137      */
3138     virtual SVGAnimatedLength getWidth()
3139         { return width; }
3141     /**
3142      *
3143      */
3144     virtual SVGAnimatedLength getHeight()
3145         { return height; }
3147     //##################
3148     //# Non-API methods
3149     //##################
3151     /**
3152      *
3153      */
3154     virtual ~SVGMaskElementImpl() {}
3156 protected:
3159     SVGAnimatedEnumeration maskUnits;
3160     SVGAnimatedEnumeration maskContentUnits;
3161     SVGAnimatedLength      x;
3162     SVGAnimatedLength      y;
3163     SVGAnimatedLength      width;
3164     SVGAnimatedLength      height;
3165 };
3173 /*#########################################################################
3174 ## SVGFilterElementImpl
3175 #########################################################################*/
3177 /**
3178  *
3179  */
3180 class SVGFilterElementImpl : virtual public SVGFilterElement,
3181                              public SVGElementImpl
3183 public:
3185     /**
3186      *
3187      */
3188     virtual SVGAnimatedEnumeration getFilterUnits()
3189         { return filterUnits; }
3191     /**
3192      *
3193      */
3194     virtual SVGAnimatedEnumeration getPrimitiveUnits()
3195         { return filterUnits; }
3197     /**
3198      *
3199      */
3200     virtual SVGAnimatedLength getX()
3201         { return x; }
3203     /**
3204      *
3205      */
3206     virtual SVGAnimatedLength getY()
3207         { return y; }
3209     /**
3210      *
3211      */
3212     virtual SVGAnimatedLength getWidth()
3213         { return width; }
3215     /**
3216      *
3217      */
3218     virtual SVGAnimatedLength getHeight()
3219         { return height; }
3221     /**
3222      *
3223      */
3224     virtual SVGAnimatedInteger getFilterResX()
3225         { return filterResX; }
3227     /**
3228      *
3229      */
3230     virtual SVGAnimatedInteger getFilterResY()
3231         { return filterResY; }
3233     /**
3234      *
3235      */
3236     virtual void setFilterRes (unsigned long filterResXArg,
3237                                unsigned long filterResYArg )
3238         {
3239         filterResX = filterResXArg;
3240         filterResY = filterResYArg;
3241         }
3245     //##################
3246     //# Non-API methods
3247     //##################
3249     /**
3250      *
3251      */
3252     virtual ~SVGFilterElementImpl() {}
3254 protected:
3256     SVGAnimatedEnumeration filterUnits;
3257     SVGAnimatedEnumeration primitiveUnits;
3258     SVGAnimatedLength      x;
3259     SVGAnimatedLength      y;
3260     SVGAnimatedLength      width;
3261     SVGAnimatedLength      height;
3262     SVGAnimatedInteger     filterResX;
3263     SVGAnimatedInteger     filterResY;
3265 };
3272 /*#########################################################################
3273 ## SVGFEBlendElementImpl
3274 #########################################################################*/
3276 /**
3277  *
3278  */
3279 class SVGFEBlendElementImpl : virtual public SVGFEBlendElement,
3280                               public SVGElementImpl
3282 public:
3284     /**
3285      *
3286      */
3287     virtual SVGAnimatedString getIn1()
3288         { return in1; }
3290     /**
3291      *
3292      */
3293     virtual SVGAnimatedString getIn2()
3294         { return in2; }
3296     /**
3297      *
3298      */
3299     virtual SVGAnimatedEnumeration getMode()
3300         { return mode; }
3303     //##################
3304     //# Non-API methods
3305     //##################
3307     /**
3308      *
3309      */
3310     virtual ~SVGFEBlendElementImpl() {}
3312 protected:
3314     SVGAnimatedString in1, in2;
3315     SVGAnimatedEnumeration mode;
3316 };
3324 /*#########################################################################
3325 ## SVGFEColorMatrixElementImpl
3326 #########################################################################*/
3328 /**
3329  *
3330  */
3331 class SVGFEColorMatrixElementImpl : virtual public SVGFEColorMatrixElement,
3332                                     public SVGElementImpl
3334 public:
3336     /**
3337      *
3338      */
3339     virtual SVGAnimatedString getIn1()
3340         { return in1; }
3342     /**
3343      *
3344      */
3345     virtual SVGAnimatedEnumeration getType()
3346         { return type; }
3348     /**
3349      *
3350      */
3351     virtual SVGAnimatedNumberList getValues()
3352         { return values; }
3356     //##################
3357     //# Non-API methods
3358     //##################
3360     /**
3361      *
3362      */
3363     virtual ~SVGFEColorMatrixElementImpl() {}
3365 protected:
3367     SVGAnimatedString in1;
3368     SVGAnimatedEnumeration type;
3369     SVGAnimatedNumberList values;
3371 };
3379 /*#########################################################################
3380 ## SVGFEComponentTransferElementImpl
3381 #########################################################################*/
3383 /**
3384  *
3385  */
3386 class SVGFEComponentTransferElementImpl :
3387                         virtual public SVGFEComponentTransferElement,
3388                         public SVGElementImpl
3390 public:
3391     /**
3392      *
3393      */
3394     virtual SVGAnimatedString getIn1()
3395         { return in1; }
3397     //##################
3398     //# Non-API methods
3399     //##################
3401     /**
3402      *
3403      */
3404     virtual ~SVGFEComponentTransferElementImpl() {}
3406 protected:
3408     SVGAnimatedString in1;
3410 };
3418 /*#########################################################################
3419 ## SVGComponentTransferFunctionElementImpl
3420 #########################################################################*/
3422 /**
3423  *
3424  */
3425 class SVGComponentTransferFunctionElementImpl :
3426                             virtual public SVGComponentTransferFunctionElement,
3427                             public SVGElementImpl
3429 public:
3431     /**
3432      *
3433      */
3434     virtual SVGAnimatedEnumeration getType()
3435         { return type; }
3437     /**
3438      *
3439      */
3440     virtual SVGAnimatedNumberList getTableValues()
3441         { return tableValues; }
3443     /**
3444      *
3445      */
3446     virtual SVGAnimatedNumber getSlope()
3447         { return slope; }
3449     /**
3450      *
3451      */
3452     virtual SVGAnimatedNumber getIntercept()
3453         { return intercept; }
3455     /**
3456      *
3457      */
3458     virtual SVGAnimatedNumber getAmplitude()
3459         { return amplitude; }
3461     /**
3462      *
3463      */
3464     virtual SVGAnimatedNumber getExponent()
3465         { return exponent; }
3467     /**
3468      *
3469      */
3470     virtual SVGAnimatedNumber getOffset()
3471         { return offset; }
3474     //##################
3475     //# Non-API methods
3476     //##################
3478     /**
3479      *
3480      */
3481     virtual ~SVGComponentTransferFunctionElementImpl() {}
3483 protected:
3485     SVGAnimatedEnumeration type;
3486     SVGAnimatedNumberList  tableValues;
3487     SVGAnimatedNumber      slope;
3488     SVGAnimatedNumber      intercept;
3489     SVGAnimatedNumber      amplitude;
3490     SVGAnimatedNumber      exponent;
3491     SVGAnimatedNumber      offset;
3493 };
3501 /*#########################################################################
3502 ## SVGFEFuncRElementImpl
3503 #########################################################################*/
3505 /**
3506  *
3507  */
3508 class SVGFEFuncRElementImpl :
3509                        virtual public SVGFEFuncRElement,
3510                        public SVGComponentTransferFunctionElementImpl
3512 public:
3514     //##################
3515     //# Non-API methods
3516     //##################
3518     /**
3519      *
3520      */
3521     virtual ~SVGFEFuncRElementImpl() {}
3523 protected:
3526 };
3532 /*#########################################################################
3533 ## SVGFEFuncGElementImpl
3534 #########################################################################*/
3536 /**
3537  *
3538  */
3539 class SVGFEFuncGElementImpl : virtual public SVGFEFuncGElement,
3540                               public SVGComponentTransferFunctionElementImpl
3542 public:
3544     //##################
3545     //# Non-API methods
3546     //##################
3548     /**
3549      *
3550      */
3551     virtual ~SVGFEFuncGElementImpl() {}
3553 protected:
3556 };
3562 /*#########################################################################
3563 ## SVGFEFuncBElementImpl
3564 #########################################################################*/
3566 /**
3567  *
3568  */
3569 class SVGFEFuncBElementImpl : virtual public SVGFEFuncBElement,
3570                               public SVGComponentTransferFunctionElementImpl
3572 public:
3574     //##################
3575     //# Non-API methods
3576     //##################
3578     /**
3579      *
3580      */
3581     virtual ~SVGFEFuncBElementImpl() {}
3583 protected:
3586 };
3592 /*#########################################################################
3593 ## SVGFEFuncAElementImpl
3594 #########################################################################*/
3596 /**
3597  *
3598  */
3599 class SVGFEFuncAElementImpl : virtual public SVGFEFuncAElement,
3600                               public SVGComponentTransferFunctionElementImpl
3602 public:
3604     //##################
3605     //# Non-API methods
3606     //##################
3608     /**
3609      *
3610      */
3611     virtual ~SVGFEFuncAElementImpl() {}
3613 protected:
3616 };
3622 /*#########################################################################
3623 ## SVGFECompositeElementImpl
3624 #########################################################################*/
3626 /**
3627  *
3628  */
3629 class SVGFECompositeElementImpl : virtual public SVGFECompositeElement,
3630                                   public SVGElementImpl
3632 public:
3635     /**
3636      *
3637      */
3638     virtual SVGAnimatedString getIn1()
3639         { return in1; }
3641     /**
3642      *
3643      */
3644     virtual SVGAnimatedString getIn2()
3645         { return in2; }
3647     /**
3648      *
3649      */
3650     virtual SVGAnimatedEnumeration getOperator()
3651         { return ae_operator; }
3653     /**
3654      *
3655      */
3656     virtual SVGAnimatedNumber getK1()
3657         { return k1; }
3659     /**
3660      *
3661      */
3662     virtual SVGAnimatedNumber getK2()
3663         { return k2; }
3665     /**
3666      *
3667      */
3668     virtual SVGAnimatedNumber getK3()
3669         { return k3; }
3671     /**
3672      *
3673      */
3674     virtual SVGAnimatedNumber getK4()
3675         { return k4; }
3679     //##################
3680     //# Non-API methods
3681     //##################
3683     /**
3684      *
3685      */
3686     virtual ~SVGFECompositeElementImpl() {}
3688 protected:
3691     SVGAnimatedString      in1;
3692     SVGAnimatedString      in2;
3693     SVGAnimatedEnumeration ae_operator;
3694     SVGAnimatedNumber      k1;
3695     SVGAnimatedNumber      k2;
3696     SVGAnimatedNumber      k3;
3697     SVGAnimatedNumber      k4;
3699 };
3707 /*#########################################################################
3708 ## SVGFEConvolveMatrixElementImpl
3709 #########################################################################*/
3711 /**
3712  *
3713  */
3714 class SVGFEConvolveMatrixElementImpl : virtual public SVGFEConvolveMatrixElement,
3715                                        public SVGElementImpl
3717 public:
3719     /**
3720      *
3721      */
3722     virtual SVGAnimatedInteger getOrderX()
3723         { return orderX; }
3725     /**
3726      *
3727      */
3728     virtual SVGAnimatedInteger getOrderY()
3729         { return orderY; }
3731     /**
3732      *
3733      */
3734     virtual SVGAnimatedNumberList getKernelMatrix()
3735         { return kernelMatrix; }
3737     /**
3738      *
3739      */
3740     virtual SVGAnimatedNumber getDivisor()
3741         { return divisor; }
3743     /**
3744      *
3745      */
3746     virtual SVGAnimatedNumber getBias()
3747         { return bias; }
3749     /**
3750      *
3751      */
3752     virtual SVGAnimatedInteger getTargetX()
3753         { return targetX; }
3755     /**
3756      *
3757      */
3758     virtual SVGAnimatedInteger getTargetY()
3759         { return targetY; }
3761     /**
3762      *
3763      */
3764     virtual SVGAnimatedEnumeration getEdgeMode()
3765         { return edgeMode; }
3767     /**
3768      *
3769      */
3770     virtual SVGAnimatedLength getKernelUnitLengthX()
3771         { return kernelUnitLengthX; }
3773     /**
3774      *
3775      */
3776     virtual SVGAnimatedLength getKernelUnitLengthY()
3777         { return kernelUnitLengthY; }
3779     /**
3780      *
3781      */
3782     virtual SVGAnimatedBoolean getPreserveAlpha()
3783         { return preserveAlpha; }
3787     //##################
3788     //# Non-API methods
3789     //##################
3791     /**
3792      *
3793      */
3794     virtual ~SVGFEConvolveMatrixElementImpl() {}
3796 protected:
3798     SVGAnimatedInteger     orderX;
3799     SVGAnimatedInteger     orderY;
3800     SVGAnimatedNumberList  kernelMatrix;
3801     SVGAnimatedNumber      divisor;
3802     SVGAnimatedNumber      bias;
3803     SVGAnimatedInteger     targetX;
3804     SVGAnimatedInteger     targetY;
3805     SVGAnimatedEnumeration edgeMode;
3806     SVGAnimatedLength      kernelUnitLengthX;
3807     SVGAnimatedLength      kernelUnitLengthY;
3808     SVGAnimatedBoolean     preserveAlpha;
3810 };
3818 /*#########################################################################
3819 ## SVGFEDiffuseLightingElementImpl
3820 #########################################################################*/
3822 /**
3823  *
3824  */
3825 class SVGFEDiffuseLightingElementImpl : virtual public SVGFEDiffuseLightingElement,
3826                                         public SVGElementImpl
3828 public:
3830     /**
3831      *
3832      */
3833     virtual SVGAnimatedString getIn1()
3834         { return in1; }
3836     /**
3837      *
3838      */
3839     virtual SVGAnimatedNumber getSurfaceScale()
3840         { return surfaceScale; }
3842     /**
3843      *
3844      */
3845     virtual SVGAnimatedNumber getDiffuseConstant()
3846         { return diffuseConstant; }
3850     //##################
3851     //# Non-API methods
3852     //##################
3854     /**
3855      *
3856      */
3857     virtual ~SVGFEDiffuseLightingElementImpl() {}
3859 protected:
3861     SVGAnimatedString in1;
3862     SVGAnimatedNumber surfaceScale;
3863     SVGAnimatedNumber diffuseConstant;
3865 };
3873 /*#########################################################################
3874 ## SVGFEDistantLightElementImpl
3875 #########################################################################*/
3877 /**
3878  *
3879  */
3880 class SVGFEDistantLightElementImpl : virtual public SVGFEDistantLightElement,
3881                                      public SVGElementImpl
3883 public:
3885     /**
3886      *
3887      */
3888     virtual SVGAnimatedNumber getAzimuth()
3889         { return azimuth; }
3892     /**
3893      *
3894      */
3895     virtual SVGAnimatedNumber getElevation()
3896         { return elevation; }
3900     //##################
3901     //# Non-API methods
3902     //##################
3904     /**
3905      *
3906      */
3907     virtual ~SVGFEDistantLightElementImpl() {}
3909 protected:
3911     SVGAnimatedNumber azimuth;
3912     SVGAnimatedNumber elevation;
3914 };
3922 /*#########################################################################
3923 ## SVGFEPointLightElementImpl
3924 #########################################################################*/
3926 /**
3927  *
3928  */
3929 class SVGFEPointLightElementImpl : public virtual SVGFEPointLightElement,
3930                                    public SVGElementImpl
3932 public:
3934     /**
3935      *
3936      */
3937     virtual SVGAnimatedNumber getX()
3938         { return x; }
3941     /**
3942      *
3943      */
3944     virtual SVGAnimatedNumber getY()
3945         { return y; }
3947     /**
3948      *
3949      */
3950     virtual SVGAnimatedNumber getZ()
3951         { return z; }
3953     //##################
3954     //# Non-API methods
3955     //##################
3957     /**
3958      *
3959      */
3960     virtual ~SVGFEPointLightElementImpl() {}
3962 protected:
3964     SVGAnimatedNumber x, y, z;
3966 };
3974 /*#########################################################################
3975 ## SVGFESpotLightElementImpl
3976 #########################################################################*/
3978 /**
3979  *
3980  */
3981 class SVGFESpotLightElementImpl : virtual public SVGFESpotLightElement,
3982                                   public SVGElementImpl
3984 public:
3986     /**
3987      *
3988      */
3989     virtual SVGAnimatedNumber getX()
3990         { return x; }
3993     /**
3994      *
3995      */
3996     virtual SVGAnimatedNumber getY()
3997         { return y; }
3999     /**
4000      *
4001      */
4002     virtual SVGAnimatedNumber getZ()
4003         { return z; }
4005     /**
4006      *
4007      */
4008     virtual SVGAnimatedNumber getPointsAtX()
4009         { return pointsAtX; }
4011     /**
4012      *
4013      */
4014     virtual SVGAnimatedNumber getPointsAtY()
4015         { return pointsAtY; }
4017     /**
4018      *
4019      */
4020     virtual SVGAnimatedNumber getPointsAtZ()
4021         { return pointsAtZ; }
4023     /**
4024      *
4025      */
4026     virtual SVGAnimatedNumber getSpecularExponent()
4027         { return specularExponent; }
4029     /**
4030      *
4031      */
4032     virtual SVGAnimatedNumber getLimitingConeAngle()
4033         { return limitingConeAngle; }
4037     //##################
4038     //# Non-API methods
4039     //##################
4041     /**
4042      *
4043      */
4044     virtual ~SVGFESpotLightElementImpl() {}
4046 protected:
4048     SVGAnimatedNumber x, y, z;
4049     SVGAnimatedNumber pointsAtX, pointsAtY, pointsAtZ;
4050     SVGAnimatedNumber specularExponent;
4051     SVGAnimatedNumber limitingConeAngle;
4052 };
4060 /*#########################################################################
4061 ## SVGFEDisplacementMapElementImpl
4062 #########################################################################*/
4064 /**
4065  *
4066  */
4067 class SVGFEDisplacementMapElementImpl : virtual public SVGFEDisplacementMapElement,
4068                                         public SVGElementImpl
4070 public:
4072     /**
4073      *
4074      */
4075     virtual SVGAnimatedString getIn1()
4076         { return in1; }
4078     /**
4079      *
4080      */
4081     virtual SVGAnimatedString getIn2()
4082         { return in2; }
4085     /**
4086      *
4087      */
4088     virtual SVGAnimatedNumber getScale()
4089         { return scale; }
4091     /**
4092      *
4093      */
4094     virtual SVGAnimatedEnumeration getXChannelSelector()
4095         { return xChannelSelector; }
4097     /**
4098      *
4099      */
4100     virtual SVGAnimatedEnumeration getYChannelSelector()
4101         { return yChannelSelector; }
4105     //##################
4106     //# Non-API methods
4107     //##################
4109     /**
4110      *
4111      */
4112     virtual ~SVGFEDisplacementMapElementImpl() {}
4114 protected:
4116     SVGAnimatedString      in1;
4117     SVGAnimatedString      in2;
4118     SVGAnimatedNumber      scale;
4119     SVGAnimatedEnumeration xChannelSelector;
4120     SVGAnimatedEnumeration yChannelSelector;
4122 };
4130 /*#########################################################################
4131 ## SVGFEFloodElementImpl
4132 #########################################################################*/
4134 /**
4135  *
4136  */
4137 class SVGFEFloodElementImpl : virtual public SVGFEFloodElement,
4138                               public SVGElementImpl
4140 public:
4141     /**
4142      *
4143      */
4144     virtual SVGAnimatedString getIn1()
4145         { return in1; }
4148     //##################
4149     //# Non-API methods
4150     //##################
4152     /**
4153      *
4154      */
4155     virtual ~SVGFEFloodElementImpl() {}
4157 protected:
4159     SVGAnimatedString in1;
4161 };
4169 /*#########################################################################
4170 ## SVGFEGaussianBlurElementImpl
4171 #########################################################################*/
4173 /**
4174  *
4175  */
4176 class SVGFEGaussianBlurElementImpl : virtual public SVGFEGaussianBlurElement,
4177                                      public SVGElementImpl
4179 public:
4180     /**
4181      *
4182      */
4183     virtual SVGAnimatedString getIn1()
4184         { return in1; }
4187     /**
4188      *
4189      */
4190     virtual SVGAnimatedNumber getStdDeviationX()
4191         { return stdDeviationX; }
4193     /**
4194      *
4195      */
4196     virtual SVGAnimatedNumber getStdDeviationY()
4197         { return stdDeviationY; }
4200     /**
4201      *
4202      */
4203     virtual void setStdDeviation (double stdDeviationXArg, double stdDeviationYArg )
4204         {
4205         stdDeviationX = stdDeviationXArg;
4206         stdDeviationY = stdDeviationYArg;
4207         }
4211     //##################
4212     //# Non-API methods
4213     //##################
4215     /**
4216      *
4217      */
4218     virtual ~SVGFEGaussianBlurElementImpl() {}
4220 protected:
4222     SVGAnimatedString in1;
4223     SVGAnimatedNumber stdDeviationX, stdDeviationY;
4225 };
4233 /*#########################################################################
4234 ## SVGFEImageElementImpl
4235 #########################################################################*/
4237 /**
4238  *
4239  */
4240 class SVGFEImageElementImpl : virtual public SVGFEImageElement,
4241                               public SVGElementImpl
4243 public:
4245     //##################
4246     //# Non-API methods
4247     //##################
4249     /**
4250      *
4251      */
4252     virtual ~SVGFEImageElementImpl() {}
4254 protected:
4257 };
4263 /*#########################################################################
4264 ## SVGFEMergeElementImpl
4265 #########################################################################*/
4267 /**
4268  *
4269  */
4270 class SVGFEMergeElementImpl : virtual public SVGFEMergeElement,
4271                               public SVGElementImpl
4273 public:
4275     //##################
4276     //# Non-API methods
4277     //##################
4279     /**
4280      *
4281      */
4282     virtual ~SVGFEMergeElementImpl() {}
4284 protected:
4287 };
4293 /*#########################################################################
4294 ## SVGFEMergeNodeElementImpl
4295 #########################################################################*/
4297 /**
4298  *
4299  */
4300 class SVGFEMergeNodeElementImpl : virtual public SVGFEMergeNodeElement,
4301                                   public SVGElementImpl
4303 public:
4304     /**
4305      *
4306      */
4307     virtual SVGAnimatedString getIn1()
4308         { return in1; }
4311     //##################
4312     //# Non-API methods
4313     //##################
4315     /**
4316      *
4317      */
4318     virtual ~SVGFEMergeNodeElementImpl() {}
4320 protected:
4322     SVGAnimatedString in1;
4324 };
4332 /*#########################################################################
4333 ## SVGFEMorphologyElementImpl
4334 #########################################################################*/
4336 /**
4337  *
4338  */
4339 class SVGFEMorphologyElementImpl : virtual public SVGFEMorphologyElement,
4340                                    public SVGElementImpl
4342 public:
4344     /**
4345      *
4346      */
4347     virtual SVGAnimatedString getIn1()
4348         { return in1; }
4351     /**
4352      *
4353      */
4354     virtual SVGAnimatedEnumeration getOperator()
4355         { return me_operator; }
4357     /**
4358      *
4359      */
4360     virtual SVGAnimatedLength getRadiusX()
4361         { return radiusX; }
4363     /**
4364      *
4365      */
4366     virtual SVGAnimatedLength getRadiusY()
4367         { return radiusY; }
4371     //##################
4372     //# Non-API methods
4373     //##################
4375     /**
4376      *
4377      */
4378     virtual ~SVGFEMorphologyElementImpl() {}
4380 protected:
4382     SVGAnimatedString      in1;
4383     SVGAnimatedEnumeration me_operator;
4384     SVGAnimatedLength      radiusX;
4385     SVGAnimatedLength      radiusY;
4387 };
4395 /*#########################################################################
4396 ## SVGFEOffsetElementImpl
4397 #########################################################################*/
4399 /**
4400  *
4401  */
4402 class SVGFEOffsetElementImpl : virtual public SVGFEOffsetElement,
4403                                public SVGElementImpl
4405 public:
4409     /**
4410      *
4411      */
4412     virtual SVGAnimatedString getIn1()
4413         { return in1; }
4415     /**
4416      *
4417      */
4418     virtual SVGAnimatedLength getDx()
4419         { return dx; }
4421     /**
4422      *
4423      */
4424     virtual SVGAnimatedLength getDy()
4425         { return dy; }
4427     //##################
4428     //# Non-API methods
4429     //##################
4431     /**
4432      *
4433      */
4434     virtual ~SVGFEOffsetElementImpl() {}
4436 protected:
4438     SVGAnimatedString in1;
4439     SVGAnimatedLength dx, dy;
4441 };
4449 /*#########################################################################
4450 ## SVGFESpecularLightingElementImpl
4451 #########################################################################*/
4453 /**
4454  *
4455  */
4456 class SVGFESpecularLightingElementImpl :
4457                        virtual public SVGFESpecularLightingElement,
4458                        public SVGElementImpl
4460 public:
4462     /**
4463      *
4464      */
4465     virtual SVGAnimatedString getIn1()
4466         { return in1; }
4468     /**
4469      *
4470      */
4471     virtual SVGAnimatedNumber getSurfaceScale()
4472         { return surfaceScale; }
4474     /**
4475      *
4476      */
4477     virtual SVGAnimatedNumber getSpecularConstant()
4478         { return specularConstant; }
4480     /**
4481      *
4482      */
4483     virtual SVGAnimatedNumber getSpecularExponent()
4484         { return specularExponent; }
4487     //##################
4488     //# Non-API methods
4489     //##################
4491     /**
4492      *
4493      */
4494     virtual ~SVGFESpecularLightingElementImpl() {}
4496 protected:
4498     SVGAnimatedString in1;
4499     SVGAnimatedNumber surfaceScale;
4500     SVGAnimatedNumber specularConstant;
4501     SVGAnimatedNumber specularExponent;
4502 };
4510 /*#########################################################################
4511 ## SVGFETileElementImpl
4512 #########################################################################*/
4514 /**
4515  *
4516  */
4517 class SVGFETileElementImpl : virtual public SVGFETileElement,
4518                              public SVGElementImpl
4520 public:
4523     /**
4524      *
4525      */
4526     virtual SVGAnimatedString getIn1()
4527         { return in1; }
4531     //##################
4532     //# Non-API methods
4533     //##################
4535     /**
4536      *
4537      */
4538     virtual ~SVGFETileElementImpl() {}
4540 protected:
4542     SVGAnimatedString in1;
4544 };
4552 /*#########################################################################
4553 ## SVGFETurbulenceElementImpl
4554 #########################################################################*/
4556 /**
4557  *
4558  */
4559 class SVGFETurbulenceElementImpl : virtual public SVGFETurbulenceElement,
4560                                    public SVGElementImpl
4562 public:
4564     /**
4565      *
4566      */
4567     virtual SVGAnimatedNumber getBaseFrequencyX()
4568         { return baseFrequencyX; }
4570     /**
4571      *
4572      */
4573     virtual SVGAnimatedNumber getBaseFrequencyY()
4574         { return baseFrequencyY; }
4576     /**
4577      *
4578      */
4579     virtual SVGAnimatedInteger getNumOctaves()
4580         { return numOctaves; }
4582     /**
4583      *
4584      */
4585     virtual SVGAnimatedNumber getSeed()
4586         { return seed; }
4588     /**
4589      *
4590      */
4591     virtual SVGAnimatedEnumeration getStitchTiles()
4592         { return stitchTiles; }
4594     /**
4595      *
4596      */
4597     virtual SVGAnimatedEnumeration getType()
4598         { return type; }
4602     //##################
4603     //# Non-API methods
4604     //##################
4606     /**
4607      *
4608      */
4609     virtual ~SVGFETurbulenceElementImpl() {}
4611 protected:
4613     SVGAnimatedNumber      baseFrequencyX;
4614     SVGAnimatedNumber      baseFrequencyY;
4615     SVGAnimatedInteger     numOctaves;
4616     SVGAnimatedNumber      seed;
4617     SVGAnimatedEnumeration stitchTiles;
4618     SVGAnimatedEnumeration type;
4620 };
4628 /*#########################################################################
4629 ## SVGCursorElementImpl
4630 #########################################################################*/
4632 /**
4633  *
4634  */
4635 class SVGCursorElementImpl : virtual public SVGCursorElement,
4636                              public SVGElementImpl
4638 public:
4640     /**
4641      *
4642      */
4643     virtual SVGAnimatedLength getX()
4644         { return x; }
4646     /**
4647      *
4648      */
4649     virtual SVGAnimatedLength getY()
4650         { return x; }
4652     //##################
4653     //# Non-API methods
4654     //##################
4656     /**
4657      *
4658      */
4659     virtual ~SVGCursorElementImpl() {}
4661 protected:
4663     SVGAnimatedLength x, y;
4664 };
4672 /*#########################################################################
4673 ## SVGAElementImpl
4674 #########################################################################*/
4676 /**
4677  *
4678  */
4679 class SVGAElementImpl : virtual public SVGAElement,
4680                         public SVGElementImpl
4682 public:
4684     /**
4685      *
4686      */
4687     virtual SVGAnimatedString getTarget()
4688         { return target; }
4692     //##################
4693     //# Non-API methods
4694     //##################
4696     /**
4697      *
4698      */
4699     virtual ~SVGAElementImpl() {}
4701 protected:
4703     SVGAnimatedString target;
4704 };
4712 /*#########################################################################
4713 ## SVGViewElementImpl
4714 #########################################################################*/
4716 /**
4717  *
4718  */
4719 class SVGViewElementImpl : virtual public SVGViewElement,
4720                            public SVGElementImpl
4722 public:
4724     /**
4725      *
4726      */
4727     virtual SVGStringList getViewTarget()
4728         { return viewTarget; }
4732     //##################
4733     //# Non-API methods
4734     //##################
4736     /**
4737      *
4738      */
4739     virtual ~SVGViewElementImpl() {}
4741 protected:
4743     SVGStringList viewTarget;
4744 };
4752 /*#########################################################################
4753 ## SVGScriptElementImpl
4754 #########################################################################*/
4756 /**
4757  *
4758  */
4759 class SVGScriptElementImpl : virtual public SVGScriptElement,
4760                              public SVGElementImpl
4762 public:
4764     /**
4765      *
4766      */
4767     virtual DOMString getType()
4768         { return type; }
4770     /**
4771      *
4772      */
4773     virtual void setType(const DOMString &val) throw (DOMException)
4774         { type = val; }
4777     //##################
4778     //# Non-API methods
4779     //##################
4781     /**
4782      *
4783      */
4784     virtual ~SVGScriptElementImpl() {}
4786 protected:
4788     DOMString type;
4789 };
4796 /*#########################################################################
4797 ## SVGAnimationElementImpl
4798 #########################################################################*/
4800 /**
4801  *
4802  */
4803 class SVGAnimationElementImpl : virtual public SVGAnimationElement,
4804                                 public SVGElementImpl
4806 public:
4809     /**
4810      *
4811      */
4812     virtual SVGElementPtr getTargetElement()
4813         { return targetElement; }
4816     /**
4817      *
4818      */
4819     virtual double getStartTime (  )
4820         { return startTime; }
4822     /**
4823      *
4824      */
4825     virtual double getCurrentTime (  )
4826         { return currentTime; }
4828     /**
4829      *
4830      */
4831     virtual double getSimpleDuration (  ) throw( DOMException )
4832         { return simpleDuration; }
4836     //##################
4837     //# Non-API methods
4838     //##################
4840     /**
4841      *
4842      */
4843     virtual ~SVGAnimationElementImpl() {}
4845 protected:
4847     SVGElementPtr targetElement;
4848     double startTime, currentTime, simpleDuration;
4849 };
4857 /*#########################################################################
4858 ## SVGAnimateElementImpl
4859 #########################################################################*/
4861 /**
4862  *
4863  */
4864 class SVGAnimateElementImpl : virtual public SVGAnimateElement,
4865                               public SVGAnimationElementImpl
4867 public:
4869     //##################
4870     //# Non-API methods
4871     //##################
4873     /**
4874      *
4875      */
4876     virtual ~SVGAnimateElementImpl() {}
4878 protected:
4881 };
4887 /*#########################################################################
4888 ## SVGSetElementImpl
4889 #########################################################################*/
4891 /**
4892  *
4893  */
4894 class SVGSetElementImpl : virtual public SVGSetElement,
4895                           public SVGAnimationElementImpl
4897 public:
4899     //##################
4900     //# Non-API methods
4901     //##################
4903     /**
4904      *
4905      */
4906     virtual ~SVGSetElementImpl() {}
4908 protected:
4911 };
4917 /*#########################################################################
4918 ## SVGAnimateMotionElementImpl
4919 #########################################################################*/
4921 /**
4922  *
4923  */
4924 class SVGAnimateMotionElementImpl : virtual public SVGAnimateMotionElement,
4925                                     public SVGAnimationElementImpl
4927 public:
4929     //##################
4930     //# Non-API methods
4931     //##################
4933     /**
4934      *
4935      */
4936     virtual ~SVGAnimateMotionElementImpl() {}
4938 protected:
4941 };
4947 /*#########################################################################
4948 ## SVGMPathElementImpl
4949 #########################################################################*/
4951 /**
4952  *
4953  */
4954 class SVGMPathElementImpl : virtual public SVGMPathElement,
4955                             public SVGElementImpl
4957 public:
4959     //##################
4960     //# Non-API methods
4961     //##################
4963     /**
4964      *
4965      */
4966     virtual ~SVGMPathElementImpl() {}
4968 protected:
4971 };
4977 /*#########################################################################
4978 ## SVGAnimateColorElementImpl
4979 #########################################################################*/
4981 /**
4982  *
4983  */
4984 class SVGAnimateColorElementImpl : virtual public SVGAnimateColorElement,
4985                                    public SVGAnimationElementImpl
4987 public:
4989     //##################
4990     //# Non-API methods
4991     //##################
4993     /**
4994      *
4995      */
4996     virtual ~SVGAnimateColorElementImpl() {}
4998 protected:
5001 };
5007 /*#########################################################################
5008 ## SVGAnimateTransformElementImpl
5009 #########################################################################*/
5011 /**
5012  *
5013  */
5014 class SVGAnimateTransformElementImpl : virtual public SVGAnimateTransformElement,
5015                                        public SVGAnimationElementImpl
5017 public:
5019     //##################
5020     //# Non-API methods
5021     //##################
5023     /**
5024      *
5025      */
5026     virtual ~SVGAnimateTransformElementImpl() {}
5028 protected:
5031 };
5037 /*#########################################################################
5038 ## SVGFontElementImpl
5039 #########################################################################*/
5041 /**
5042  *
5043  */
5044 class SVGFontElementImpl :  virtual public SVGFontElement,
5045                             public SVGElementImpl
5047 public:
5049     //##################
5050     //# Non-API methods
5051     //##################
5053     /**
5054      *
5055      */
5056     virtual ~SVGFontElementImpl() {}
5058 protected:
5061 };
5067 /*#########################################################################
5068 ## SVGGlyphElementImpl
5069 #########################################################################*/
5071 /**
5072  *
5073  */
5074 class SVGGlyphElementImpl : virtual public SVGGlyphElement,
5075                             public SVGElementImpl
5077 public:
5079     //##################
5080     //# Non-API methods
5081     //##################
5083     /**
5084      *
5085      */
5086     virtual ~SVGGlyphElementImpl() {}
5088 protected:
5091 };
5097 /*#########################################################################
5098 ## SVGMissingGlyphElementImpl
5099 #########################################################################*/
5101 /**
5102  *
5103  */
5104 class SVGMissingGlyphElementImpl : virtual public SVGMissingGlyphElement,
5105                                    public SVGElementImpl
5107 public:
5109     //##################
5110     //# Non-API methods
5111     //##################
5113     /**
5114      *
5115      */
5116     virtual ~SVGMissingGlyphElementImpl() {}
5118 protected:
5121 };
5127 /*#########################################################################
5128 ## SVGHKernElementImpl
5129 #########################################################################*/
5131 /**
5132  *
5133  */
5134 class SVGHKernElementImpl : virtual public SVGHKernElement,
5135                             public SVGElementImpl
5137 public:
5139     //##################
5140     //# Non-API methods
5141     //##################
5143     /**
5144      *
5145      */
5146     virtual ~SVGHKernElementImpl() {}
5148 protected:
5151 };
5157 /*#########################################################################
5158 ## SVGVKernElementImpl
5159 #########################################################################*/
5161 /**
5162  *
5163  */
5164 class SVGVKernElementImpl : virtual public SVGVKernElement,
5165                             public SVGElementImpl
5167 public:
5169     //##################
5170     //# Non-API methods
5171     //##################
5173     /**
5174      *
5175      */
5176     virtual ~SVGVKernElementImpl() {}
5178 protected:
5181 };
5187 /*#########################################################################
5188 ## SVGFontFaceElementImpl
5189 #########################################################################*/
5191 /**
5192  *
5193  */
5194 class SVGFontFaceElementImpl : virtual public SVGFontFaceElement,
5195                                public SVGElementImpl
5197 public:
5199     //##################
5200     //# Non-API methods
5201     //##################
5203     /**
5204      *
5205      */
5206     virtual ~SVGFontFaceElementImpl() {}
5208 protected:
5211 };
5217 /*#########################################################################
5218 ## SVGFontFaceSrcElementImpl
5219 #########################################################################*/
5221 /**
5222  *
5223  */
5224 class SVGFontFaceSrcElementImpl : virtual public SVGFontFaceSrcElement,
5225                                   public SVGElementImpl
5227 public:
5229     //##################
5230     //# Non-API methods
5231     //##################
5233     /**
5234      *
5235      */
5236     virtual ~SVGFontFaceSrcElementImpl() {}
5238 protected:
5241 };
5247 /*#########################################################################
5248 ## SVGFontFaceUriElementImpl
5249 #########################################################################*/
5251 /**
5252  *
5253  */
5254 class SVGFontFaceUriElementImpl : virtual public SVGFontFaceUriElement,
5255                                   public SVGElementImpl
5257 public:
5259     //##################
5260     //# Non-API methods
5261     //##################
5263     /**
5264      *
5265      */
5266     virtual ~SVGFontFaceUriElementImpl() {}
5268 protected:
5271 };
5277 /*#########################################################################
5278 ## SVGFontFaceFormatElementImpl
5279 #########################################################################*/
5281 /**
5282  *
5283  */
5284 class SVGFontFaceFormatElementImpl : virtual public SVGFontFaceFormatElement,
5285                                      public SVGElementImpl
5287 public:
5289     //##################
5290     //# Non-API methods
5291     //##################
5293     /**
5294      *
5295      */
5296     virtual ~SVGFontFaceFormatElementImpl() {}
5298 protected:
5301 };
5307 /*#########################################################################
5308 ## SVGFontFaceNameElementImpl
5309 #########################################################################*/
5311 /**
5312  *
5313  */
5314 class SVGFontFaceNameElementImpl : virtual public SVGFontFaceNameElement,
5315                                    public SVGElementImpl
5317 public:
5319     //##################
5320     //# Non-API methods
5321     //##################
5323     /**
5324      *
5325      */
5326     virtual ~SVGFontFaceNameElementImpl() {}
5328 protected:
5331 };
5337 /*#########################################################################
5338 ## SVGDefinitionSrcElementImpl
5339 #########################################################################*/
5341 /**
5342  *
5343  */
5344 class SVGDefinitionSrcElementImpl : virtual public SVGDefinitionSrcElement,
5345                                     public SVGElementImpl
5347 public:
5349     //##################
5350     //# Non-API methods
5351     //##################
5353     /**
5354      *
5355      */
5356     virtual ~SVGDefinitionSrcElementImpl() {}
5358 protected:
5361 };
5367 /*#########################################################################
5368 ## SVGMetadataElementImpl
5369 #########################################################################*/
5371 /**
5372  *
5373  */
5374 class SVGMetadataElementImpl : virtual public SVGMetadataElement,
5375                                public SVGElementImpl
5377 public:
5379     //##################
5380     //# Non-API methods
5381     //##################
5383     /**
5384      *
5385      */
5386     virtual ~SVGMetadataElementImpl() {}
5388 protected:
5391 };
5396 /*#########################################################################
5397 ## SVGForeignObjectElementImpl
5398 #########################################################################*/
5400 /**
5401  *
5402  */
5403 class SVGForeignObjectElementImpl :  virtual public SVGForeignObjectElement,
5404                                      public SVGElementImpl
5406 public:
5409     /**
5410      *
5411      */
5412     virtual SVGAnimatedLength getX()
5413         { return x; }
5415     /**
5416      *
5417      */
5418     virtual SVGAnimatedLength getY()
5419         { return y; }
5421     /**
5422      *
5423      */
5424     virtual SVGAnimatedLength getWidth()
5425         { return width; }
5427     /**
5428      *
5429      */
5430     virtual SVGAnimatedLength getHeight()
5431         { return height; }
5435     //##################
5436     //# Non-API methods
5437     //##################
5440     /**
5441      *
5442      */
5443     virtual ~SVGForeignObjectElementImpl() {}
5445 protected:
5447     SVGAnimatedLength x, y, width, height;
5448 };
5455 }  //namespace svg
5456 }  //namespace dom
5457 }  //namespace w3c
5458 }  //namespace org
5460 #endif // __SVG_H__
5461 /*#########################################################################
5462 ## E N D    O F    F I L E
5463 #########################################################################*/