Code

Corrected initialization order.
[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 #########################################################################*/
71 /**
72  * Bitmasks for has_an interface for SVGElement
73  */ 
74 #define SVG_ANGLE                          0x00000001
75 #define SVG_ANIMATED_ANGLE                 0x00000002
76 #define SVG_ANIMATED_BOOLEAN               0x00000004
77 #define SVG_ANIMATED_ENUMERATION           0x00000008
78 #define SVG_ANIMATED_INTEGER               0x00000010
79 #define SVG_ANIMATED_LENGTH                0x00000020
80 #define SVG_ANIMATED_LENGTH_LIST           0x00000040
81 #define SVG_ANIMATED_NUMBER                0x00000080
82 #define SVG_ANIMATED_NUMBER_LIST           0x00000100
83 #define SVG_ANIMATED_RECT                  0x00000200
84 #define SVG_ANIMATED_STRING                0x00000400
85 #define SVG_COLOR                          0x00000800
86 #define SVG_CSS_RULE                       0x00001000
87 #define SVG_EXTERNAL_RESOURCES_REQUIRED    0x00002000
88 #define SVG_FIT_TO_VIEWBOX                 0x00004000
89 #define SVG_ICCCOLOR                       0x00008000
90 #define SVG_LANG_SPACE                     0x00010000
91 #define SVG_LENGTH                         0x00020000
92 #define SVG_LENGTH_LIST                    0x00040000
93 #define SVG_LOCATABLE                      0x00080000
94 #define SVG_NUMBER                         0x00100000
95 #define SVG_NUMBER_LIST                    0x00200000
96 #define SVG_RECT                           0x00400000
97 #define SVG_RENDERING_INTENT               0x00800000
98 #define SVG_STRING_LIST                    0x01000000
99 #define SVG_STYLABLE                       0x02000000
100 #define SVG_TESTS                          0x04000000
101 #define SVG_TRANSFORMABLE                  0x08000000
102 #define SVG_UNIT_TYPES                     0x10000000
103 #define SVG_URI_REFERENCE                  0x20000000
104 #define SVG_VIEW_SPEC                      0x40000000
105 #define SVG_ZOOM_AND_PAN                   0x80000000
107 /**
108  * How many above?  Quite handy
109  */ 
110 #define SVG_NR_INTERFACES                  32
113 /**
114  * Enumerations for SVGElement types
115  */ 
116 typedef enum
118 /**
119  * Defines a hyperlink
120  */
121 SVG_A_ELEMENT = 0,
122 /**
123  * Allows control over glyphs used to render particular character
124  *  data (e.g. for music symbols or Asian text)
125  */
126 SVG_ALTGLYPH_ELEMENT,
127 /**
128  * Defines a set of glyph substitutions (e.g. for music symbols or Asian text)
129  */
130 SVG_ALTGLYPHDEF_ELEMENT,
131 /**
132  * Defines a candidate set of glyph substitutions (e.g. for music symbols
133  *  or Asian text)
134  */
135 SVG_ALTGLYPHITEM_ELEMENT,
136 /**
137  * Animates an attribute or property over time
138  */
139 SVG_ANIMATE_ELEMENT,
140 /**
141  * Specifies a color transformation over time
142  */
143 SVG_ANIMATECOLOR_ELEMENT,
144 /**
145  * Causes an element to move along a motion path
146  */
147 SVG_ANIMATEMOTION_ELEMENT,
148 /**
149  * Animates a transformation attribute on an element
150  */
151 SVG_ANIMATETRANSFORM_ELEMENT,
152 /**
153  * Defines a circle
154  */
155 SVG_CIRCLE_ELEMENT,
156 /**
157  *
158  */
159 SVG_CLIPPATH_ELEMENT,
160 /**
161  * Specifies a color profile description
162  */
163 SVG_COLOR_PROFILE_ELEMENT,
164 /**
165  * Defines a platform-independent cursor
166  */
167 SVG_CURSOR_ELEMENT,
168 /**
169  * Defines a separate font definition resource
170  */
171 SVG_DEFINITION_SRC_ELEMENT,
172 /**
173  * A container for referenced elements
174  */
175 SVG_DEFS_ELEMENT,
176 /**
177  * A text-only description for elements in SVG - not displayed as part
178  *  of the graphics. User agents may display the text as a tooltip
179  */
180 SVG_DESC_ELEMENT,
181 /**
182  * Defines an ellipse
183  */
184 SVG_ELLIPSE_ELEMENT,
185 /**
186  * SVG filter. Composites two objects together using different blending modes
187  */
188 SVG_FEBLEND_ELEMENT,
189 /**
190  * SVG filter. Applies a matrix transformation
191  */
192 SVG_FECOLORMATRIX_ELEMENT,
193 /**
194  * SVG filter. Performs component-wise remapping of data
195  */
196 SVG_FECOMPONENTTRANSFER_ELEMENT,
197 /**
198  * SVG filter.
199  */
200 SVG_FECOMPOSITE_ELEMENT,
201 /**
202  * SVG filter.
203  */
204 SVG_FECONVOLVEMATRIX_ELEMENT,
205 /**
206  * SVG filter.
207  */
208 SVG_FEDIFFUSELIGHTING_ELEMENT,
209 /**
210  * SVG filter.
211  */
212 SVG_FEDISPLACEMENTMAP_ELEMENT,
213 /**
214  * SVG filter. Defines a light source
215  */
216 SVG_FEDISTANTLIGHT_ELEMENT,
217 /**
218  * SVG filter.
219  */
220 SVG_FEFLOOD_ELEMENT,
221 /**
222  * SVG filter. Sub-element to feComponentTransfer
223  */
224 SVG_FEFUNCA_ELEMENT,
225 /**
226  * SVG filter. Sub-element to feComponentTransfer
227  */
228 SVG_FEFUNCB_ELEMENT,
229 /**
230  * SVG filter. Sub-element to feComponentTransfer
231  */
232 SVG_FEFUNCG_ELEMENT,
233 /**
234  * SVG filter. Sub-element to feComponentTransfer
235  */
236 SVG_FEFUNCR_ELEMENT,
237 /**
238  * SVG filter. Performs a Gaussian blur on the image
239  */
240 SVG_FEGAUSSIANBLUR_ELEMENT,
241 /**
242  * SVG filter.
243  */
244 SVG_FEIMAGE_ELEMENT,
245 /**
246  * SVG filter. Creates image layers on top of each other
247  */
248 SVG_FEMERGE_ELEMENT,
249 /**
250  * SVG filter. Sub-element to feMerge
251  */
252 SVG_FEMERGENODE_ELEMENT,
253 /**
254  * SVG filter. Performs a "fattening" or "thinning" on a source graphic
255  */
256 SVG_FEMORPHOLOGY_ELEMENT,
257 /**
258  * SVG filter. Moves an image relative to its current position
259  */
260 SVG_FEOFFSET_ELEMENT,
261 /**
262  * SVG filter.
263  */
264 SVG_FEPOINTLIGHT_ELEMENT,
265 /**
266  * SVG filter.
267  */
268 SVG_FESPECULARLIGHTING_ELEMENT,
269 /**
270  * SVG filter.
271  */
272 SVG_FESPOTLIGHT_ELEMENT,
273 /**
274  * SVG filter.
275  */
276 SVG_FETILE_ELEMENT,
277 /**
278  * SVG filter.
279  */
280 SVG_FETURBULENCE_ELEMENT,
281 /**
282  * Container for filter effects
283  */
284 SVG_FILTER_ELEMENT,
285 /**
286  * Defines a font
287  */
288 SVG_FONT_ELEMENT,
289 /**
290  * Describes the characteristics of a font
291  */
292 SVG_FONT_FACE_ELEMENT,
293 /**
294  *
295  */
296 SVG_FONT_FACE_FORMAT_ELEMENT,
297 /**
298  *
299  */
300 SVG_FONT_FACE_NAME_ELEMENT,
301 /**
302  *
303  */
304 SVG_FONT_FACE_SRC_ELEMENT,
305 /**
306  *
307  */
308 SVG_FONT_FACE_URI_ELEMENT,
309 /**
310  *
311  */
312 SVG_FOREIGNOBJECT_ELEMENT,
313 /**
314  * A container element for grouping together related elements
315  */
316 SVG_G_ELEMENT,
317 /**
318  * Defines the graphics for a given glyph
319  */
320 SVG_GLYPH_ELEMENT,
321 /**
322  * Defines a possible glyph to use
323  */
324 SVG_GLYPHREF_ELEMENT,
325 /**
326  *
327  */
328 SVG_HKERN_ELEMENT,
329 /**
330  *
331  */
332 SVG_IMAGE_ELEMENT,
333 /**
334  * Defines a line
335  */
336 SVG_LINE_ELEMENT,
337 /**
338  * Defines a linear gradient
339  */
340 SVG_LINEARGRADIENT_ELEMENT,
341 /**
342  *
343  */
344 SVG_MARKER_ELEMENT,
345 /**
346  *
347  */
348 SVG_MASK_ELEMENT,
349 /**
350  * Specifies metadata
351  */
352 SVG_METADATA_ELEMENT,
353 /**
354  *
355  */
356 SVG_MISSING_GLYPH_ELEMENT,
357 /**
358  *
359  */
360 SVG_MPATH_ELEMENT,
361 /**
362  * Defines a path
363  */
364 SVG_PATH_ELEMENT,
365 /**
366  *
367  */
368 SVG_PATTERN_ELEMENT,
369 /**
370  * Defines a closed shape that consists of a set of connected straight lines
371  */
372 SVG_POLYGON_ELEMENT,
373 /**
374  * Defines a set of connected straight lines
375  */
376 SVG_POLYLINE_ELEMENT,
377 /**
378  * Defines a radial gradient
379  */
380 SVG_RADIALGRADIENT_ELEMENT,
381 /**
382  * Defines a rectangle
383  */
384 SVG_RECT_ELEMENT,
385 /**
386  * Container for scripts (e.g., ECMAScript)
387  */
388 SVG_SCRIPT_ELEMENT,
389 /**
390  * Sets the value of an attribute for a specified duration
391  */
392 SVG_SET_ELEMENT,
393 /**
394  *
395  */
396 SVG_STOP_ELEMENT,
397 /**
398  * Allows style sheets to be embedded directly within SVG content
399  */
400 SVG_STYLE_ELEMENT,
401 /**
402  * Defines an SVG document fragment
403  */
404 SVG_SVG_ELEMENT,
405 /**
406  *
407  */
408 SVG_SWITCH_ELEMENT,
409 /**
410  *
411  */
412 SVG_SYMBOL_ELEMENT,
413 /**
414  *
415  */
416 SVG_TEXT_ELEMENT,
417 /**
418  *
419  */
420 SVG_TEXTPATH_ELEMENT,
421 /**
422  * A text-only description for elements in SVG - not displayed as part of
423  *  the graphics. User agents may display the text as a tooltip
424  */
425 SVG_TITLE_ELEMENT,
426 /**
427  *
428  */
429 SVG_TREF_ELEMENT,
430 /**
431  *
432  */
433 SVG_TSPAN_ELEMENT,
434 /**
435  *
436  */
437 SVG_USE_ELEMENT,
438 /**
439  *
440  */
441 SVG_VIEW_ELEMENT,
442 /**
443  *
444  */
445 SVG_VKERN_ELEMENT,
446 /**
447  *
448  */
449 SVG_MAX_ELEMENT
451 } SVGElementType;
456 /**
457  * Look up the SVG Element type enum for a given string
458  * Return -1 if not found
459  */
460 int svgElementStrToEnum(const char *str);
463 /**
464  * Return the string corresponding to a given SVG element type enum
465  * Return "unknown" if not found
466  */
467 const char *svgElementEnumToStr(int type);
470 /*#########################################################################
471 ## SVGDocumentImpl
472 #########################################################################*/
474 /**
475  *
476  */
477 class SVGDocumentImpl : virtual public SVGDocument, public DocumentImpl
479 public:
482     /**
483      *
484      */
485     virtual DOMString getTitle()
486         { return title; }
488     /**
489      *
490      */
491     virtual DOMString getReferrer()
492         { return referrer; }
494     /**
495      *
496      */
497     virtual DOMString getDomain()
498         { return domain; }
500     /**
501      *
502      */
503     virtual DOMString getURL()
504         { return url; }
506     /**
507      *
508      */
509     virtual SVGSVGElementPtr getRootElement()
510         { return rootElement; }
513     //####################################################
514     //# Overload some createXXX() methods from DocumentImpl,
515     //# To create our SVG-DOM types (in .cpp)
516     //####################################################
518     /**
519      *
520      */
521     virtual ElementPtr createElement(const DOMString& tagName)
522                            throw(DOMException);
525     /**
526      *
527      */
528     virtual ElementPtr createElementNS(const DOMString& namespaceURI,
529                                        const DOMString& qualifiedName)
530                                        throw(DOMException);
532     //##################
533     //# Non-API methods
534     //##################
536     SVGDocumentImpl(const DOMImplementation *domImpl,
537                     const DOMString         &namespaceURI,
538                     const DOMString         &qualifiedName,
539                     const DocumentTypePtr   doctype)
540                     : DocumentImpl(domImpl, namespaceURI,
541                           qualifiedName, doctype)
542         {
543         init();
544         }
547     /**
548      *
549      */
550     virtual ~SVGDocumentImpl()
551         {
552         }
554 protected:
556 friend class SvgParser;
558     void init();
560     DOMString title;
561     DOMString referrer;
562     DOMString domain;
563     DOMString url;
564     SVGSVGElementImplPtr rootElement;
565 };
569 /*#########################################################################
570 ## SVGElementImpl
571 #########################################################################*/
573 /**
574  *
575  */
576 class SVGElementImpl : virtual public SVGElement,
577                        public ElementImpl
579 public:
581     /**
582      *
583      */
584     virtual DOMString getId()
585         { return id; }
587     /**
588      *
589      */
590     virtual void setId(const DOMString &val)
591                        throw (DOMException)
592         { id = val; }
594     /**
595      *
596      */
597     virtual DOMString getXmlBase()
598         { return xmlBase; }
600     /**
601      *
602      */
603     virtual void setXmlBase(const DOMString &val)
604                             throw (DOMException)
605         { xmlBase = val; }
607     /**
608      *
609      */
610     virtual SVGSVGElementPtr getOwnerSVGElement()
611         { return ownerSvgElement; }
613     /**
614      *
615      */
616     virtual SVGElementPtr getViewportElement()
617         { return viewportElement; }
620     //##################
621     //# Non-API methods
622     //##################
625     /**
626      *
627      */
628     SVGElementImpl()
629         {}
631     /**
632      *
633      */
634     SVGElementImpl(SVGDocumentImplPtr owner, const DOMString &tagName)
635                     : ElementImpl(owner, tagName)
636         { init(); }
638     /**
639      *
640      */
641     SVGElementImpl(SVGDocumentImplPtr owner,
642                    const DOMString &namespaceURI,
643                    const DOMString &tagName)
644                    : ElementImpl(owner, namespaceURI, tagName)
645         { init(); }
648     /**
649      *
650      */
651     virtual ~SVGElementImpl()
652         {}
654 protected:
656     void init()
657         {
658         id              = "";
659         xmlBase         = "";
660         ownerSvgElement = NULL;
661         viewportElement = NULL;
662         }
664     DOMString        id;
665     DOMString        xmlBase;
666     SVGSVGElementPtr ownerSvgElement;
667     SVGElementPtr    viewportElement;
669 };
673 /*#########################################################################
674 ## SVGSVGElementImpl
675 #########################################################################*/
677 /**
678  *
679  */
680 class SVGSVGElementImpl : virtual public SVGSVGElement,
681                           public SVGElementImpl
683 public:
685     /**
686      * Retrieves an attribute value by name.
687      */
688     virtual DOMString getAttribute(const DOMString& name);
690     /**
691      * Sets an attribute value
692      */
693     virtual void setAttribute(const DOMString& name,
694                       const DOMString& value)
695                       throw(DOMException);
697     /**
698      *
699      */
700     virtual SVGAnimatedLength getX()
701         { return x; }
703     /**
704      *
705      */
706     virtual SVGAnimatedLength getY()
707         { return y; }
709     /**
710      *
711      */
712     virtual SVGAnimatedLength getWidth()
713         { return width; }
715     /**
716      *
717      */
718     virtual SVGAnimatedLength getHeight()
719         { return height; }
721     /**
722      *
723      */
724     virtual DOMString getContentScriptType()
725         { return contentScriptType; }
727     /**
728      *
729      */
730     virtual void setContentScriptType(const DOMString &val)
731                                      throw (DOMException)
732         { contentScriptType = val; }
735     /**
736      *
737      */
738     virtual DOMString getContentStyleType()
739         { return contentStyleType; }
741     /**
742      *
743      */
744     virtual void setContentStyleType(const DOMString &val)
745                                      throw (DOMException)
746         { contentStyleType = val; }
748     /**
749      *
750      */
751     virtual SVGRect getViewport()
752         { return viewport; }
754     /**
755      *
756      */
757     virtual double getPixelUnitToMillimeterX()
758         { return pixelUnitToMillimeterX; }
760     /**
761      *
762      */
763     virtual double getPixelUnitToMillimeterY()
764         { return pixelUnitToMillimeterY; }
766     /**
767      *
768      */
769     virtual double getScreenPixelToMillimeterX()
770         { return screenPixelToMillimeterX; }
772     /**
773      *
774      */
775     virtual double getScreenPixelToMillimeterY()
776         { return screenPixelToMillimeterY; }
779     /**
780      *
781      */
782     virtual bool getUseCurrentView()
783         { return useCurrentView; }
785     /**
786      *
787      */
788     virtual void setUseCurrentView(bool val) throw (DOMException)
789         { useCurrentView = val; }
791     /**
792      *
793      */
794     virtual SVGViewSpec getCurrentView()
795         { return currentView; }
798     /**
799      *
800      */
801     virtual double getCurrentScale()
802         { return currentScale; }
804     /**
805      *
806      */
807     virtual void setCurrentScale(double val) throw (DOMException)
808         { currentScale = val; }
811     /**
812      *
813      */
814     virtual SVGPoint getCurrentTranslate()
815         { return currentTranslate; }
818     /**
819      *
820      */
821     virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds );
823     /**
824      *
825      */
826     virtual void unsuspendRedraw (unsigned long suspend_handle_id )
827                                   throw( DOMException );
829     /**
830      *
831      */
832     virtual void unsuspendRedrawAll (  );
834     /**
835      *
836      */
837     virtual void forceRedraw (  );
839     /**
840      *
841      */
842     virtual void pauseAnimations (  );
844     /**
845      *
846      */
847     virtual void unpauseAnimations (  );
849     /**
850      *
851      */
852     virtual bool animationsPaused (  );
854     /**
855      *
856      */
857     virtual double getCurrentTime (  )
858         { return currentTime; }
860     /**
861      *
862      */
863     virtual void setCurrentTime (double seconds )
864         { currentTime = seconds; }
866     /**
867      *
868      */
869     virtual NodeList getIntersectionList (const SVGRect &rect,
870                                           const SVGElementPtr referenceElement );
872     /**
873      *
874      */
875     virtual NodeList getEnclosureList (const SVGRect &rect,
876                                        const SVGElementPtr referenceElement );
878     /**
879      *
880      */
881     virtual bool checkIntersection (const SVGElementPtr element, const SVGRect &rect );
883     /**
884      *
885      */
886     virtual bool checkEnclosure (const SVGElementPtr element, const SVGRect &rect );
888     /**
889      *
890      */
891     virtual void deselectAll (  );
893     /**
894      *
895      */
896     virtual SVGNumber createSVGNumber (  )
897         {
898         SVGNumber ret;
899         return ret;
900         }
902     /**
903      *
904      */
905     virtual SVGLength createSVGLength (  )
906         {
907         SVGLength ret;
908         return ret;
909         }
911     /**
912      *
913      */
914     virtual SVGAngle createSVGAngle (  )
915         {
916         SVGAngle ret;
917         return ret;
918         }
920     /**
921      *
922      */
923     virtual SVGPoint createSVGPoint (  )
924         {
925         SVGPoint ret;
926         return ret;
927         }
929     /**
930      *
931      */
932     virtual SVGMatrix createSVGMatrix (  )
933         {
934         SVGMatrix ret;
935         return ret;
936         }
938     /**
939      *
940      */
941     virtual SVGRect createSVGRect (  )
942         {
943         SVGRect ret;
944         return ret;
945         }
947     /**
948      *
949      */
950     virtual SVGTransform createSVGTransform (  )
951         {
952         SVGTransform ret;
953         return ret;
954         }
956     /**
957      *
958      */
959     virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix )
960         {
961         SVGTransform ret;
962         ret.setMatrix(matrix);
963         return ret;
964         }
967     /**
968      *
969      */
970     virtual ElementPtr getElementById (const DOMString& elementId );
974     //##################
975     //# Non-API methods
976     //##################
978     /**
979      *
980      */
981     SVGSVGElementImpl() : SVGElementImpl()
982         {}
986     /**
987      *
988      */
989     virtual ~SVGSVGElementImpl() {}
991 protected:
993     SVGAnimatedLength x;
994     SVGAnimatedLength y;
995     SVGAnimatedLength width;
996     SVGAnimatedLength height;
997     DOMString         contentScriptType;
998     DOMString         contentStyleType;
999     SVGRect           viewport;
1000     double            pixelUnitToMillimeterX;
1001     double            pixelUnitToMillimeterY;
1002     double            screenPixelToMillimeterX;
1003     double            screenPixelToMillimeterY;
1004     bool              useCurrentView;
1005     SVGViewSpec       currentView;
1006     double            currentScale;
1007     SVGPoint          currentTranslate;
1009     double currentTime;
1011 };
1015 /*#########################################################################
1016 ## SVGGElementImpl
1017 #########################################################################*/
1019 /**
1020  *
1021  */
1022 class SVGGElementImpl : virtual public SVGGElement, public SVGElementImpl
1024 public:
1026     //##################
1027     //# Non-API methods
1028     //##################
1030     /**
1031      *
1032      */
1033     SVGGElementImpl() {}
1035     /**
1036      *
1037      */
1038     virtual ~SVGGElementImpl() {}
1040 protected:
1043 };
1048 /*#########################################################################
1049 ## SVGDefsElementImpl
1050 #########################################################################*/
1052 /**
1053  *
1054  */
1055 class SVGDefsElementImpl : virtual public SVGDefsElement,
1056                            public SVGElementImpl
1058 public:
1060     //##################
1061     //# Non-API methods
1062     //##################
1064     /**
1065      *
1066      */
1067     SVGDefsElementImpl() {}
1069     /**
1070      *
1071      */
1072     virtual ~SVGDefsElementImpl() {}
1074 protected:
1077 };
1083 /*#########################################################################
1084 ## SVGDescElementImpl
1085 #########################################################################*/
1087 /**
1088  *
1089  */
1090 class SVGDescElementImpl :  virtual public SVGDescElement,
1091                             public SVGElementImpl
1093 public:
1095     //##################
1096     //# Non-API methods
1097     //##################
1099     /**
1100      *
1101      */
1102     SVGDescElementImpl() {}
1104     /**
1105      *
1106      */
1107     virtual ~SVGDescElementImpl() {}
1109 protected:
1112 };
1118 /*#########################################################################
1119 ## SVGTitleElementImpl
1120 #########################################################################*/
1122 /**
1123  *
1124  */
1125 class SVGTitleElementImpl : virtual public SVGTitleElement,
1126                             public SVGElementImpl
1128 public:
1130     //##################
1131     //# Non-API methods
1132     //##################
1134     /**
1135      *
1136      */
1137     SVGTitleElementImpl() {}
1139     /**
1140      *
1141      */
1142     virtual ~SVGTitleElementImpl() {}
1144 protected:
1147 };
1153 /*#########################################################################
1154 ## SVGSymbolElementImpl
1155 #########################################################################*/
1157 /**
1158  *
1159  */
1160 class SVGSymbolElementImpl : virtual public SVGSymbolElement,
1161                              public SVGElementImpl
1163 public:
1165     //##################
1166     //# Non-API methods
1167     //##################
1169     /**
1170      *
1171      */
1172     SVGSymbolElementImpl() {}
1174     /**
1175      *
1176      */
1177     virtual ~SVGSymbolElementImpl() {}
1179 protected:
1182 };
1188 /*#########################################################################
1189 ## SVGUseElementImpl
1190 #########################################################################*/
1192 /**
1193  *
1194  */
1195 class SVGUseElementImpl : public SVGElementImpl
1197 public:
1200     /**
1201      *
1202      */
1203     virtual SVGAnimatedLength getX()
1204         { return x; }
1206     /**
1207      *
1208      */
1209     virtual SVGAnimatedLength getY()
1210         { return y; }
1212     /**
1213      *
1214      */
1215     virtual SVGAnimatedLength getWidth()
1216         { return width; }
1218     /**
1219      *
1220      */
1221     virtual SVGAnimatedLength getHeight()
1222         { return height; }
1224     /**
1225      *
1226      */
1227     virtual SVGElementInstance getInstanceRoot()
1228         { return instanceRoot; }
1230     /**
1231      *
1232      */
1233     virtual SVGElementInstance getAnimatedInstanceRoot()
1234         { return animatedInstanceRoot; }
1238     //##################
1239     //# Non-API methods
1240     //##################
1242     /**
1243      *
1244      */
1245     SVGUseElementImpl() {}
1247     /**
1248      *
1249      */
1250     virtual ~SVGUseElementImpl() {}
1252 protected:
1254     SVGAnimatedLength x;
1255     SVGAnimatedLength y;
1256     SVGAnimatedLength width;
1257     SVGAnimatedLength height;
1258     SVGElementInstance instanceRoot;
1259     SVGElementInstance animatedInstanceRoot;
1260 };
1268 /*#########################################################################
1269 ## SVGImageElementImpl
1270 #########################################################################*/
1272 /**
1273  *
1274  */
1275 class SVGImageElementImpl : virtual public SVGImageElement,
1276                             public SVGElementImpl
1278 public:
1281     /**
1282      *
1283      */
1284     virtual SVGAnimatedLength getX()
1285         { return x; }
1287     /**
1288      *
1289      */
1290     virtual SVGAnimatedLength getY()
1291         { return y; }
1293     /**
1294      *
1295      */
1296     virtual SVGAnimatedLength getWidth()
1297         { return width; }
1299     /**
1300      *
1301      */
1302     virtual SVGAnimatedLength getHeight()
1303         { return height; }
1306     /**
1307      *
1308      */
1309     virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio()
1310         { return preserveAspectRatio; }
1314     //##################
1315     //# Non-API methods
1316     //##################
1318     /**
1319      *
1320      */
1321     SVGImageElementImpl() {}
1323     /**
1324      *
1325      */
1326     virtual ~SVGImageElementImpl() {}
1328 protected:
1330     SVGAnimatedLength x;
1331     SVGAnimatedLength y;
1332     SVGAnimatedLength width;
1333     SVGAnimatedLength height;
1334     SVGAnimatedPreserveAspectRatio preserveAspectRatio;
1335 };
1342 /*#########################################################################
1343 ## SVGSwitchElementImpl
1344 #########################################################################*/
1346 /**
1347  *
1348  */
1349 class SVGSwitchElementImpl : virtual public SVGSwitchElement,
1350                              public SVGElementImpl
1352 public:
1354     //##################
1355     //# Non-API methods
1356     //##################
1358     /**
1359      *
1360      */
1361     SVGSwitchElementImpl() {}
1363     /**
1364      *
1365      */
1366     virtual ~SVGSwitchElementImpl() {}
1368 protected:
1371 };
1377 /*#########################################################################
1378 ## GetSVGDocumentImpl
1379 #########################################################################*/
1381 /**
1382  *
1383  */
1384 class GetSVGDocumentImpl : public virtual GetSVGDocument
1386 public:
1388     /**
1389      *
1390      */
1391     virtual SVGDocumentPtr getSVGDocument (  )
1392                     throw( DOMException );
1394     //##################
1395     //# Non-API methods
1396     //##################
1398     /**
1399      *
1400      */
1401     GetSVGDocumentImpl() {}
1403     /**
1404      *
1405      */
1406     virtual ~GetSVGDocumentImpl() {}
1408 protected:
1411 };
1419 /*#########################################################################
1420 ## SVGStyleElementImpl
1421 #########################################################################*/
1423 /**
1424  *
1425  */
1426 class SVGStyleElementImpl : virtual public SVGStyleElement,
1427                             public SVGElementImpl
1429 public:
1431     /**
1432      *
1433      */
1434     virtual DOMString getXmlspace()
1435         { return xmlSpace; }
1437     /**
1438      *
1439      */
1440     virtual void setXmlspace(const DOMString &val)
1441                              throw (DOMException)
1442         { xmlSpace = val; }
1444     /**
1445      *
1446      */
1447     virtual DOMString getType()
1448         { return type; }
1450     /**
1451      *
1452      */
1453     virtual void setType(const DOMString &val)
1454                          throw (DOMException)
1455         { type = val; }
1457     /**
1458      *
1459      */
1460     virtual DOMString getMedia()
1461         { return media; }
1463     /**
1464      *
1465      */
1466     virtual void setMedia(const DOMString &val)
1467                           throw (DOMException)
1468         { media = val; }
1470     /**
1471      *
1472      */
1473     virtual DOMString getTitle()
1474         { return title; }
1476     /**
1477      *
1478      */
1479     virtual void setTitle(const DOMString &val)
1480                           throw (DOMException)
1481         { title = val; }
1485     //##################
1486     //# Non-API methods
1487     //##################
1489     /**
1490      *
1491      */
1492     SVGStyleElementImpl() {}
1494     /**
1495      *
1496      */
1497     virtual ~SVGStyleElementImpl() {}
1499 protected:
1501     DOMString xmlSpace;
1502     DOMString type;
1503     DOMString media;
1504     DOMString title;
1506 };
1513 /*#########################################################################
1514 ## SVGPathElementImpl
1515 #########################################################################*/
1517 /**
1518  *
1519  */
1520 class SVGPathElementImpl : virtual public SVGPathElement,
1521                            public SVGElementImpl
1523 public:
1525     /**
1526      *
1527      */
1528     virtual SVGAnimatedNumber getPathLength();
1530     /**
1531      *
1532      */
1533     virtual double getTotalLength (  );
1535     /**
1536      *
1537      */
1538     virtual SVGPoint getPointAtLength (double distance );
1540     /**
1541      *
1542      */
1543     virtual unsigned long getPathSegAtLength (double distance );
1545     /**
1546      *
1547      */
1548     virtual SVGPathSegClosePath
1549               createSVGPathSegClosePath (  )
1550          {
1551          SVGPathSegClosePath ret;
1552          return ret;
1553          }
1555     /**
1556      *
1557      */
1558     virtual SVGPathSegMovetoAbs
1559               createSVGPathSegMovetoAbs (double x, double y )
1560          {
1561          SVGPathSegMovetoAbs ret(x, y);
1562          return ret;
1563          }
1565     /**
1566      *
1567      */
1568     virtual SVGPathSegMovetoRel
1569               createSVGPathSegMovetoRel (double x, double y )
1570          {
1571          SVGPathSegMovetoRel ret(x, y);
1572          return ret;
1573          }
1575     /**
1576      *
1577      */
1578     virtual SVGPathSegLinetoAbs
1579               createSVGPathSegLinetoAbs (double x, double y )
1580          {
1581          SVGPathSegLinetoAbs ret(x, y);
1582          return ret;
1583          }
1585     /**
1586      *
1587      */
1588     virtual SVGPathSegLinetoRel
1589               createSVGPathSegLinetoRel (double x, double y )
1590          {
1591          SVGPathSegLinetoRel ret(x, y);
1592          return ret;
1593          }
1595     /**
1596      *
1597      */
1598     virtual SVGPathSegCurvetoCubicAbs
1599               createSVGPathSegCurvetoCubicAbs (double x, double y,
1600                         double x1, double y1, double x2, double y2 )
1601          {
1602          SVGPathSegCurvetoCubicAbs ret(x, y, x1, y1, x2, y2);
1603          return ret;
1604          }
1606     /**
1607      *
1608      */
1609     virtual SVGPathSegCurvetoCubicRel
1610               createSVGPathSegCurvetoCubicRel (double x, double y,
1611                         double x1, double y1, double x2, double y2 )
1612          {
1613          SVGPathSegCurvetoCubicRel ret(x, y, x1, y1, x2, y2);
1614          return ret;
1615          }
1617     /**
1618      *
1619      */
1620     virtual SVGPathSegCurvetoQuadraticAbs
1621               createSVGPathSegCurvetoQuadraticAbs (double x, double y,
1622                          double x1, double y1 )
1623          {
1624          SVGPathSegCurvetoQuadraticAbs ret(x, y, x1, y1);
1625          return ret;
1626          }
1628     /**
1629      *
1630      */
1631     virtual SVGPathSegCurvetoQuadraticRel
1632               createSVGPathSegCurvetoQuadraticRel (double x, double y,
1633                          double x1, double y1 )
1634          {
1635          SVGPathSegCurvetoQuadraticRel ret(x, y, x1, y1);
1636          return ret;
1637          }
1639     /**
1640      *
1641      */
1642     virtual SVGPathSegArcAbs
1643               createSVGPathSegArcAbs (double x, double y,
1644                          double r1, double r2, double angle,
1645                          bool largeArcFlag, bool sweepFlag )
1646          {
1647          SVGPathSegArcAbs ret(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
1648          return ret;
1649          }
1651     /**
1652      *
1653      */
1654     virtual SVGPathSegArcRel
1655               createSVGPathSegArcRel (double x, double y, double r1,
1656                          double r2, double angle, bool largeArcFlag,
1657                          bool sweepFlag )
1658          {
1659          SVGPathSegArcRel ret(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
1660          return ret;
1661          }
1663     /**
1664      *
1665      */
1666     virtual SVGPathSegLinetoHorizontalAbs
1667               createSVGPathSegLinetoHorizontalAbs (double x )
1668          {
1669          SVGPathSegLinetoHorizontalAbs ret(x);
1670          return ret;
1671          }
1673     /**
1674      *
1675      */
1676     virtual SVGPathSegLinetoHorizontalRel
1677               createSVGPathSegLinetoHorizontalRel (double x )
1678          {
1679          SVGPathSegLinetoHorizontalRel ret(x);
1680          return ret;
1681          }
1683     /**
1684      *
1685      */
1686     virtual SVGPathSegLinetoVerticalAbs
1687               createSVGPathSegLinetoVerticalAbs (double y )
1688          {
1689          SVGPathSegLinetoVerticalAbs ret(y);
1690          return ret;
1691          }
1693     /**
1694      *
1695      */
1696     virtual SVGPathSegLinetoVerticalRel
1697               createSVGPathSegLinetoVerticalRel (double y )
1698          {
1699          SVGPathSegLinetoVerticalRel ret(y);
1700          return ret;
1701          }
1703     /**
1704      *
1705      */
1706     virtual SVGPathSegCurvetoCubicSmoothAbs
1707               createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
1708                                              double x2, double y2 )
1709          {
1710          SVGPathSegCurvetoCubicSmoothAbs ret(x, y, x2, y2);
1711          return ret;
1712          }
1714     /**
1715      *
1716      */
1717     virtual SVGPathSegCurvetoCubicSmoothRel
1718               createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
1719                                                      double x2, double y2 )
1720          {
1721          SVGPathSegCurvetoCubicSmoothRel ret(x, y, x2, y2);
1722          return ret;
1723          }
1725     /**
1726      *
1727      */
1728     virtual SVGPathSegCurvetoQuadraticSmoothAbs
1729               createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y )
1730          {
1731          SVGPathSegCurvetoQuadraticSmoothAbs ret(x, y);
1732          return ret;
1733          }
1735     /**
1736      *
1737      */
1738     virtual SVGPathSegCurvetoQuadraticSmoothRel
1739               createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y )
1740          {
1741          SVGPathSegCurvetoQuadraticSmoothRel ret(x, y);
1742          return ret;
1743          }
1747     //##################
1748     //# Non-API methods
1749     //##################
1751     /**
1752      *
1753      */
1754     SVGPathElementImpl() {}
1757     /**
1758      *
1759      */
1760     virtual ~SVGPathElementImpl() {}
1762 protected:
1765 };
1773 /*#########################################################################
1774 ## SVGRectElementImpl
1775 #########################################################################*/
1777 /**
1778  *
1779  */
1780 class SVGRectElementImpl : virtual public SVGRectElement,
1781                            public SVGElementImpl
1783 public:
1785     /**
1786      *
1787      */
1788     virtual SVGAnimatedLength getX()
1789         { return x; }
1791     /**
1792      *
1793      */
1794     virtual SVGAnimatedLength getY()
1795         { return y; }
1797     /**
1798      *
1799      */
1800     virtual SVGAnimatedLength getWidth()
1801         { return width; }
1803     /**
1804      *
1805      */
1806     virtual SVGAnimatedLength getHeight()
1807         { return height; }
1810     /**
1811      *
1812      */
1813     virtual SVGAnimatedLength getRx()
1814         { return rx; }
1816     /**
1817      *
1818      */
1819     virtual SVGAnimatedLength getRy()
1820         { return ry; }
1824     //##################
1825     //# Non-API methods
1826     //##################
1828     /**
1829      *
1830      */
1831     SVGRectElementImpl() {}
1833     /**
1834      *
1835      */
1836     virtual ~SVGRectElementImpl() {}
1838 protected:
1840     SVGAnimatedLength x;
1841     SVGAnimatedLength y;
1842     SVGAnimatedLength width;
1843     SVGAnimatedLength height;
1844     SVGAnimatedLength rx;
1845     SVGAnimatedLength ry;
1847 };
1854 /*#########################################################################
1855 ## SVGCircleElementImpl
1856 #########################################################################*/
1858 /**
1859  *
1860  */
1861 class SVGCircleElementImpl : virtual public SVGCircleElement,
1862                              public SVGElementImpl
1864 public:
1866     /**
1867      *
1868      */
1869     virtual SVGAnimatedLength getCx()
1870         { return cx; }
1872     /**
1873      *
1874      */
1875     virtual SVGAnimatedLength getCy()
1876         { return cy; }
1878     /**
1879      *
1880      */
1881     virtual SVGAnimatedLength getR()
1882         { return r; }
1886     //##################
1887     //# Non-API methods
1888     //##################
1890     /**
1891      *
1892      */
1893     SVGCircleElementImpl() {}
1895     /**
1896      *
1897      */
1898     virtual ~SVGCircleElementImpl() {}
1900 protected:
1902     SVGAnimatedLength cx;
1903     SVGAnimatedLength cy;
1904     SVGAnimatedLength r;
1905 };
1912 /*#########################################################################
1913 ## SVGEllipseElementImpl
1914 #########################################################################*/
1916 /**
1917  *
1918  */
1919 class SVGEllipseElementImpl : virtual public SVGEllipseElement,
1920                               public SVGElementImpl
1922 public:
1924     /**
1925      *
1926      */
1927     virtual SVGAnimatedLength getCx()
1928         { return cx; }
1930     /**
1931      *
1932      */
1933     virtual SVGAnimatedLength getCy()
1934         { return cy; }
1936     /**
1937      *
1938      */
1939     virtual SVGAnimatedLength getRx()
1940         { return rx; }
1942     /**
1943      *
1944      */
1945     virtual SVGAnimatedLength getRy()
1946         { return ry; }
1949     //##################
1950     //# Non-API methods
1951     //##################
1953     /**
1954      *
1955      */
1956     SVGEllipseElementImpl() {}
1958     /**
1959      *
1960      */
1961     virtual ~SVGEllipseElementImpl() {}
1963 protected:
1965     SVGAnimatedLength cx;
1966     SVGAnimatedLength cy;
1967     SVGAnimatedLength rx;
1968     SVGAnimatedLength ry;
1969 };
1976 /*#########################################################################
1977 ## SVGLineElement
1978 #########################################################################*/
1980 /**
1981  *
1982  */
1983 class SVGLineElementImpl : virtual public SVGLineElement,
1984                            public SVGElementImpl
1986 public:
1988     /**
1989      *
1990      */
1991     virtual SVGAnimatedLength getX1()
1992         { return x1; }
1994     /**
1995      *
1996      */
1997     virtual SVGAnimatedLength getY1()
1998         { return y1; }
2000     /**
2001      *
2002      */
2003     virtual SVGAnimatedLength getX2()
2004         { return x2; }
2006     /**
2007      *
2008      */
2009     virtual SVGAnimatedLength getY2()
2010         { return y2; }
2012     //##################
2013     //# Non-API methods
2014     //##################
2016     /**
2017      *
2018      */
2019     virtual ~SVGLineElementImpl() {}
2021 protected:
2023     SVGAnimatedLength x1;
2024     SVGAnimatedLength x2;
2025     SVGAnimatedLength y1;
2026     SVGAnimatedLength y2;
2027 };
2032 /*#########################################################################
2033 ## SVGPolylineElement
2034 #########################################################################*/
2036 /**
2037  *
2038  */
2039 class SVGPolylineElementImpl : virtual public SVGPolylineElement,
2040                                public SVGElementImpl
2042 public:
2044     //##################
2045     //# Non-API methods
2046     //##################
2048     /**
2049      *
2050      */
2051     virtual ~SVGPolylineElementImpl() {}
2053 protected:
2056 };
2062 /*#########################################################################
2063 ## SVGPolygonElementImpl
2064 #########################################################################*/
2066 /**
2067  *
2068  */
2069 class SVGPolygonElementImpl : virtual public SVGPolygonElement,
2070                               public SVGElementImpl
2072 public:
2074     //##################
2075     //# Non-API methods
2076     //##################
2078     /**
2079      *
2080      */
2081     virtual ~SVGPolygonElementImpl() {}
2083 protected:
2086 };
2092 /*#########################################################################
2093 ## SVGTextContentElement
2094 #########################################################################*/
2096 /**
2097  *
2098  */
2099 class SVGTextContentElementImpl : virtual public SVGTextContentElement,
2100                                   public SVGElementImpl
2102 public:
2104     /**
2105      *
2106      */
2107     virtual SVGAnimatedLength getTextLength();
2110     /**
2111      *
2112      */
2113     virtual SVGAnimatedEnumeration getLengthAdjust();
2116     /**
2117      *
2118      */
2119     virtual long getNumberOfChars(  );
2121     /**
2122      *
2123      */
2124     virtual double getComputedTextLength(  );
2126     /**
2127      *
2128      */
2129     virtual double getSubStringLength(unsigned long charnum,
2130                                       unsigned long nchars )
2131                                       throw( DOMException );
2133     /**
2134      *
2135      */
2136     virtual SVGPoint getStartPositionOfChar(unsigned long charnum )
2137                                             throw( DOMException );
2139     /**
2140      *
2141      */
2142     virtual SVGPoint getEndPositionOfChar(unsigned long charnum )
2143                                           throw( DOMException );
2145     /**
2146      *
2147      */
2148     virtual SVGRect getExtentOfChar(unsigned long charnum )
2149                                     throw( DOMException );
2151     /**
2152      *
2153      */
2154     virtual double getRotationOfChar(unsigned long charnum )
2155                                      throw( DOMException );
2157     /**
2158      *
2159      */
2160     virtual long getCharNumAtPosition(const SVGPoint &point );
2162     /**
2163      *
2164      */
2165     virtual void selectSubString(unsigned long charnum, unsigned long nchars )
2166                                  throw( DOMException );
2170     //##################
2171     //# Non-API methods
2172     //##################
2174     /**
2175      *
2176      */
2177     virtual ~SVGTextContentElementImpl() {}
2179 protected:
2182 };
2189 /*#########################################################################
2190 ## SVGTextPositioningElementImpl
2191 #########################################################################*/
2193 /**
2194  *
2195  */
2196 class SVGTextPositioningElementImpl : virtual public SVGTextPositioningElement,
2197                                       public SVGTextContentElementImpl
2199 public:
2203     /**
2204      *
2205      */
2206     virtual SVGAnimatedLength getX()
2207         { return x; }
2209     /**
2210      *
2211      */
2212     virtual SVGAnimatedLength getY()
2213         { return y; }
2215     /**
2216      *
2217      */
2218     virtual SVGAnimatedLength getDx()
2219         { return dx; }
2221     /**
2222      *
2223      */
2224     virtual SVGAnimatedLength getDy()
2225         { return dy; }
2228     /**
2229      *
2230      */
2231     virtual SVGAnimatedNumberList getRotate()
2232         { return rotate; }
2236     //##################
2237     //# Non-API methods
2238     //##################
2240     /**
2241      *
2242      */
2243     virtual ~SVGTextPositioningElementImpl() {}
2245 protected:
2247     SVGAnimatedLength x;
2248     SVGAnimatedLength y;
2249     SVGAnimatedLength dx;
2250     SVGAnimatedLength dy;
2251     SVGAnimatedNumberList rotate;
2253 };
2261 /*#########################################################################
2262 ## SVGTextElement
2263 #########################################################################*/
2265 /**
2266  *
2267  */
2268 class SVGTextElementImpl : virtual public SVGTextElement,
2269                            public SVGTextPositioningElementImpl
2271 public:
2273     //##################
2274     //# Non-API methods
2275     //##################
2277     /**
2278      *
2279      */
2280     virtual ~SVGTextElementImpl() {}
2282 protected:
2285 };
2291 /*#########################################################################
2292 ## SVGTSpanElement
2293 #########################################################################*/
2295 /**
2296  *
2297  */
2298 class SVGTSpanElementImpl : virtual public SVGTSpanElement,
2299                             public SVGTextPositioningElementImpl
2301 public:
2303     //##################
2304     //# Non-API methods
2305     //##################
2307     /**
2308      *
2309      */
2310     virtual ~SVGTSpanElementImpl() {}
2312 protected:
2315 };
2321 /*#########################################################################
2322 ## SVGTRefElement
2323 #########################################################################*/
2325 /**
2326  *
2327  */
2328 class SVGTRefElementImpl : virtual public SVGTRefElement,
2329                            public SVGTextPositioningElementImpl
2331 public:
2333     //##################
2334     //# Non-API methods
2335     //##################
2337     /**
2338      *
2339      */
2340     virtual ~SVGTRefElementImpl() {}
2342 protected:
2345 };
2351 /*#########################################################################
2352 ## SVGTextPathElement
2353 #########################################################################*/
2355 /**
2356  *
2357  */
2358 class SVGTextPathElementImpl : virtual public SVGTextPathElement,
2359                                public SVGTextContentElementImpl
2361 public:
2363     /**
2364      *
2365      */
2366     virtual SVGAnimatedLength getStartOffset()
2367         { return startOffset; }
2369     /**
2370      *
2371      */
2372     virtual SVGAnimatedEnumeration getMethod()
2373         { return method; }
2375     /**
2376      *
2377      */
2378     virtual SVGAnimatedEnumeration getSpacing()
2379         { return spacing; }
2383     //##################
2384     //# Non-API methods
2385     //##################
2387     /**
2388      *
2389      */
2390     virtual ~SVGTextPathElementImpl() {}
2392 protected:
2394     SVGAnimatedLength startOffset;
2395     SVGAnimatedEnumeration method;
2396     SVGAnimatedEnumeration spacing;
2397 };
2405 /*#########################################################################
2406 ## SVGAltGlyphElement
2407 #########################################################################*/
2409 /**
2410  *
2411  */
2412 class SVGAltGlyphElementImpl : virtual public SVGAltGlyphElement,
2413                                public SVGTextPositioningElementImpl
2415 public:
2417     /**
2418      *
2419      */
2420     virtual DOMString getGlyphRef()
2421         { return glyphRef; }
2423     /**
2424      *
2425      */
2426     virtual void setGlyphRef(const DOMString &val)
2427                              throw (DOMException)
2428         { glyphRef = val; }
2430     /**
2431      *
2432      */
2433     virtual DOMString getFormat()
2434         { return format; }
2436     /**
2437      *
2438      */
2439     virtual void setFormat(const DOMString &val)
2440                            throw (DOMException)
2441         { format = val; }
2446     //##################
2447     //# Non-API methods
2448     //##################
2450     /**
2451      *
2452      */
2453     virtual ~SVGAltGlyphElementImpl() {}
2455 protected:
2457     DOMString glyphRef;
2458     DOMString format;
2460 };
2468 /*#########################################################################
2469 ## SVGAltGlyphDefElementImpl
2470 #########################################################################*/
2472 /**
2473  *
2474  */
2475 class SVGAltGlyphDefElementImpl : virtual public SVGAltGlyphDefElement,
2476                                   public SVGElementImpl
2478 public:
2480     //##################
2481     //# Non-API methods
2482     //##################
2484     /**
2485      *
2486      */
2487     virtual ~SVGAltGlyphDefElementImpl() {}
2489 protected:
2492 };
2498 /*#########################################################################
2499 ## SVGAltGlyphItemElementImpl
2500 #########################################################################*/
2502 /**
2503  *
2504  */
2505 class SVGAltGlyphItemElementImpl : virtual public SVGAltGlyphItemElement,
2506                                    public SVGElementImpl
2508 public:
2510     //##################
2511     //# Non-API methods
2512     //##################
2514     /**
2515      *
2516      */
2517     virtual ~SVGAltGlyphItemElementImpl() {}
2519 protected:
2522 };
2528 /*#########################################################################
2529 ## SVGGlyphRefElementImpl
2530 #########################################################################*/
2532 /**
2533  *
2534  */
2535 class SVGGlyphRefElementImpl : virtual public SVGGlyphRefElement,
2536                                public SVGElementImpl
2538 public:
2539     /**
2540      *
2541      */
2542     virtual DOMString getGlyphRef()
2543         { return glyphRef; }
2545     /**
2546      *
2547      */
2548     virtual void setGlyphRef(const DOMString &val) throw (DOMException)
2549         { glyphRef = val; }
2551     /**
2552      *
2553      */
2554     virtual DOMString getFormat()
2555         { return format; }
2557     /**
2558      *
2559      */
2560     virtual void setFormat(const DOMString &val) throw (DOMException)
2561         { format = val; }
2563     /**
2564      *
2565      */
2566     virtual double getX()
2567         { return x; }
2569     /**
2570      *
2571      */
2572     virtual void setX(double val) throw (DOMException)
2573         { x = val; }
2575     /**
2576      *
2577      */
2578     virtual double getY()
2579         { return y; }
2581     /**
2582      *
2583      */
2584     virtual void setY(double val) throw (DOMException)
2585         { y = val; }
2587     /**
2588      *
2589      */
2590     virtual double getDx()
2591         { return dx; }
2593     /**
2594      *
2595      */
2596     virtual void setDx(double val) throw (DOMException)
2597         { dx = val; }
2599     /**
2600      *
2601      */
2602     virtual double getDy()
2603         { return dy; }
2605     /**
2606      *
2607      */
2608     virtual void setDy(double val) throw (DOMException)
2609         { dy = val; }
2614     //##################
2615     //# Non-API methods
2616     //##################
2618     /**
2619      *
2620      */
2621     virtual ~SVGGlyphRefElementImpl() {}
2623 protected:
2625     DOMString glyphRef;
2626     DOMString format;
2627     double x, y, dx, dy;
2629 };
2636 /*#########################################################################
2637 ## SVGMarkerElementImpl
2638 #########################################################################*/
2640 /**
2641  *
2642  */
2643 class SVGMarkerElementImpl : virtual public SVGMarkerElement,
2644                              public SVGElementImpl
2646 public:
2648     /**
2649      *
2650      */
2651     virtual SVGAnimatedLength getRefX()
2652         { return refX; }
2654     /**
2655      *
2656      */
2657     virtual SVGAnimatedLength getRefY()
2658         { return refY; }
2660     /**
2661      *
2662      */
2663     virtual SVGAnimatedEnumeration getMarkerUnits()
2664         { return markerUnits; }
2666     /**
2667      *
2668      */
2669     virtual SVGAnimatedLength getMarkerWidth()
2670         { return markerWidth; }
2672     /**
2673      *
2674      */
2675     virtual SVGAnimatedLength getMarkerHeight()
2676         { return markerHeight; }
2678     /**
2679      *
2680      */
2681     virtual SVGAnimatedEnumeration getOrientType()
2682         { return orientType; }
2684     /**
2685      *
2686      */
2687     virtual SVGAnimatedAngle getOrientAngle()
2688         { return orientAngle; }
2691     /**
2692      *
2693      */
2694     virtual void setOrientToAuto (  )
2695         { orientAuto = true; }
2697     /**
2698      *
2699      */
2700     virtual void setOrientToAngle (const SVGAngle &angle)
2701         {
2702         orientAuto = false;
2703         orientAngle = SVGAnimatedAngle(angle);
2704         }
2708     //##################
2709     //# Non-API methods
2710     //##################
2712     /**
2713      *
2714      */
2715     virtual ~SVGMarkerElementImpl() {}
2717 protected:
2719     SVGAnimatedLength      refX;
2720     SVGAnimatedLength      refY;
2721     SVGAnimatedEnumeration markerUnits;
2722     SVGAnimatedLength      markerWidth;
2723     SVGAnimatedLength      markerHeight;
2724     SVGAnimatedEnumeration orientType;
2725     SVGAnimatedAngle       orientAngle;
2726     bool                   orientAuto;
2729 };
2737 /*#########################################################################
2738 ## SVGColorProfileElementImpl
2739 #########################################################################*/
2741 /**
2742  *
2743  */
2744 class SVGColorProfileElementImpl : virtual public SVGColorProfileElement,
2745                                    public SVGElementImpl
2747 public:
2748     /**
2749      *
2750      */
2751     virtual DOMString getLocal()
2752         { return local; }
2754     /**
2755      *
2756      */
2757     virtual void setLocal(const DOMString &val) throw (DOMException)
2758         { local = val; }
2760     /**
2761      *
2762      */
2763     virtual DOMString getName()
2764         { return name; }
2766     /**
2767      *
2768      */
2769     virtual void setName(const DOMString &val) throw (DOMException)
2770        { name = val; }
2772     /**
2773      *
2774      */
2775     virtual unsigned short getRenderingIntent()
2776         { return renderingIntent; }
2778     /**
2779      *
2780      */
2781     virtual void setRenderingIntent(unsigned short val) throw (DOMException)
2782        { renderingIntent = val; }
2786     //##################
2787     //# Non-API methods
2788     //##################
2790     /**
2791      *
2792      */
2793     virtual ~SVGColorProfileElementImpl() {}
2795 protected:
2797     DOMString local;
2798     DOMString name;
2799     unsigned short renderingIntent;
2801 };
2807 /*#########################################################################
2808 ## SVGGradientElementImpl
2809 #########################################################################*/
2811 /**
2812  *
2813  */
2814 class SVGGradientElementImpl : virtual public SVGGradientElement,
2815                                public SVGElementImpl
2817 public:
2819     /**
2820      *
2821      */
2822     virtual SVGAnimatedEnumeration getGradientUnits()
2823         { return gradientUnits; }
2825     /**
2826      *
2827      */
2828     virtual SVGAnimatedTransformList getGradientTransform()
2829         { return gradientTransform; }
2831     /**
2832      *
2833      */
2834     virtual SVGAnimatedEnumeration getSpreadMethod()
2835         { return spreadMethod; }
2839     //##################
2840     //# Non-API methods
2841     //##################
2843     /**
2844      *
2845      */
2846     virtual ~SVGGradientElementImpl() {}
2848 protected:
2851     SVGAnimatedEnumeration   gradientUnits;
2852     SVGAnimatedTransformList gradientTransform;
2853     SVGAnimatedEnumeration   spreadMethod;
2854 };
2862 /*#########################################################################
2863 ## SVGLinearGradientElementImpl
2864 #########################################################################*/
2866 /**
2867  *
2868  */
2869 class SVGLinearGradientElementImpl : virtual public SVGLinearGradientElement,
2870                                      public SVGGradientElementImpl
2872 public:
2875     /**
2876      *
2877      */
2878     virtual SVGAnimatedLength getX1()
2879         { return x1; }
2881     /**
2882      *
2883      */
2884     virtual SVGAnimatedLength getY1()
2885         { return y1; }
2887     /**
2888      *
2889      */
2890     virtual SVGAnimatedLength getX2()
2891         { return x2; }
2893     /**
2894      *
2895      */
2896     virtual SVGAnimatedLength getY2()
2897         { return y2; }
2900     //##################
2901     //# Non-API methods
2902     //##################
2904     /**
2905      *
2906      */
2907     virtual ~SVGLinearGradientElementImpl() {}
2909 protected:
2911     SVGAnimatedLength x1, x2, y1, y2;
2913 };
2921 /*#########################################################################
2922 ## SVGRadialGradientElementImpl
2923 #########################################################################*/
2925 /**
2926  *
2927  */
2928 class SVGRadialGradientElementImpl : virtual public SVGRadialGradientElement,
2929                                      public SVGGradientElementImpl
2931 public:
2934     /**
2935      *
2936      */
2937     virtual SVGAnimatedLength getCx()
2938         { return cx; }
2941     /**
2942      *
2943      */
2944     virtual SVGAnimatedLength getCy()
2945         { return cy; }
2948     /**
2949      *
2950      */
2951     virtual SVGAnimatedLength getR()
2952         { return r; }
2955     /**
2956      *
2957      */
2958     virtual SVGAnimatedLength getFx()
2959         { return fx; }
2962     /**
2963      *
2964      */
2965     virtual SVGAnimatedLength getFy()
2966         { return fy; }
2971     //##################
2972     //# Non-API methods
2973     //##################
2975     /**
2976      *
2977      */
2978     virtual ~SVGRadialGradientElementImpl() {}
2980 protected:
2982     SVGAnimatedLength cx, cy, r, fx, fy;
2984 };
2992 /*#########################################################################
2993 ## SVGStopElementImpl
2994 #########################################################################*/
2996 /**
2997  *
2998  */
2999 class SVGStopElementImpl : virtual public SVGStopElement,
3000                            public SVGElementImpl
3002 public:
3004     /**
3005      *
3006      */
3007     virtual SVGAnimatedNumber getOffset()
3008         { return offset; }
3012     //##################
3013     //# Non-API methods
3014     //##################
3016     /**
3017      *
3018      */
3019     virtual ~SVGStopElementImpl() {}
3021 protected:
3023     SVGAnimatedNumber offset;
3025 };
3033 /*#########################################################################
3034 ## SVGPatternElementImpl
3035 #########################################################################*/
3037 /**
3038  *
3039  */
3040 class SVGPatternElementImpl : virtual public SVGPatternElement,
3041                               public SVGElementImpl
3043 public:
3045     /**
3046      *
3047      */
3048     virtual SVGAnimatedEnumeration getPatternUnits()
3049         { return patternUnits; }
3051     /**
3052      *
3053      */
3054     virtual SVGAnimatedEnumeration getPatternContentUnits()
3055         { return patternContentUnits; }
3057     /**
3058      *
3059      */
3060     virtual SVGAnimatedTransformList getPatternTransform()
3061         { return patternTransform; }
3063     /**
3064      *
3065      */
3066     virtual SVGAnimatedLength getX()
3067         { return x; }
3069     /**
3070      *
3071      */
3072     virtual SVGAnimatedLength getY()
3073         { return y; }
3075     /**
3076      *
3077      */
3078     virtual SVGAnimatedLength getWidth()
3079         { return width; }
3081     /**
3082      *
3083      */
3084     virtual SVGAnimatedLength getHeight()
3085         { return height; }
3089     //##################
3090     //# Non-API methods
3091     //##################
3093     /**
3094      *
3095      */
3096     virtual ~SVGPatternElementImpl() {}
3098 protected:
3101     SVGAnimatedEnumeration   patternUnits;
3102     SVGAnimatedEnumeration   patternContentUnits;
3103     SVGAnimatedTransformList patternTransform;
3104     SVGAnimatedLength        x;
3105     SVGAnimatedLength        y;
3106     SVGAnimatedLength        width;
3107     SVGAnimatedLength        height;
3108 };
3116 /*#########################################################################
3117 ## SVGClipPathElementImpl
3118 #########################################################################*/
3120 /**
3121  *
3122  */
3123 class SVGClipPathElementImpl : virtual public SVGClipPathElement,
3124                                public SVGElementImpl
3126 public:
3128     /**
3129      *
3130      */
3131     virtual SVGAnimatedEnumeration getClipPathUnits()
3132         { return clipPathUnits; }
3134     //##################
3135     //# Non-API methods
3136     //##################
3138     /**
3139      *
3140      */
3141     virtual ~SVGClipPathElementImpl() {}
3143 protected:
3145     SVGAnimatedEnumeration clipPathUnits;
3147 };
3155 /*#########################################################################
3156 ## SVGMaskElementImpl
3157 #########################################################################*/
3159 /**
3160  *
3161  */
3162 class SVGMaskElementImpl : virtual public SVGMaskElement,
3163                            public SVGElementImpl
3165 public:
3167     /**
3168      *
3169      */
3170     virtual SVGAnimatedEnumeration getMaskUnits()
3171         { return maskUnits; }
3173     /**
3174      *
3175      */
3176     virtual SVGAnimatedEnumeration getMaskContentUnits()
3177         { return maskContentUnits; }
3179     /**
3180      *
3181      */
3182     virtual SVGAnimatedLength getX()
3183         { return x; }
3185     /**
3186      *
3187      */
3188     virtual SVGAnimatedLength getY()
3189         { return y; }
3191     /**
3192      *
3193      */
3194     virtual SVGAnimatedLength getWidth()
3195         { return width; }
3197     /**
3198      *
3199      */
3200     virtual SVGAnimatedLength getHeight()
3201         { return height; }
3203     //##################
3204     //# Non-API methods
3205     //##################
3207     /**
3208      *
3209      */
3210     virtual ~SVGMaskElementImpl() {}
3212 protected:
3215     SVGAnimatedEnumeration maskUnits;
3216     SVGAnimatedEnumeration maskContentUnits;
3217     SVGAnimatedLength      x;
3218     SVGAnimatedLength      y;
3219     SVGAnimatedLength      width;
3220     SVGAnimatedLength      height;
3221 };
3229 /*#########################################################################
3230 ## SVGFilterElementImpl
3231 #########################################################################*/
3233 /**
3234  *
3235  */
3236 class SVGFilterElementImpl : virtual public SVGFilterElement,
3237                              public SVGElementImpl
3239 public:
3241     /**
3242      *
3243      */
3244     virtual SVGAnimatedEnumeration getFilterUnits()
3245         { return filterUnits; }
3247     /**
3248      *
3249      */
3250     virtual SVGAnimatedEnumeration getPrimitiveUnits()
3251         { return filterUnits; }
3253     /**
3254      *
3255      */
3256     virtual SVGAnimatedLength getX()
3257         { return x; }
3259     /**
3260      *
3261      */
3262     virtual SVGAnimatedLength getY()
3263         { return y; }
3265     /**
3266      *
3267      */
3268     virtual SVGAnimatedLength getWidth()
3269         { return width; }
3271     /**
3272      *
3273      */
3274     virtual SVGAnimatedLength getHeight()
3275         { return height; }
3277     /**
3278      *
3279      */
3280     virtual SVGAnimatedInteger getFilterResX()
3281         { return filterResX; }
3283     /**
3284      *
3285      */
3286     virtual SVGAnimatedInteger getFilterResY()
3287         { return filterResY; }
3289     /**
3290      *
3291      */
3292     virtual void setFilterRes (unsigned long filterResXArg,
3293                                unsigned long filterResYArg )
3294         {
3295         filterResX = filterResXArg;
3296         filterResY = filterResYArg;
3297         }
3301     //##################
3302     //# Non-API methods
3303     //##################
3305     /**
3306      *
3307      */
3308     virtual ~SVGFilterElementImpl() {}
3310 protected:
3312     SVGAnimatedEnumeration filterUnits;
3313     SVGAnimatedEnumeration primitiveUnits;
3314     SVGAnimatedLength      x;
3315     SVGAnimatedLength      y;
3316     SVGAnimatedLength      width;
3317     SVGAnimatedLength      height;
3318     SVGAnimatedInteger     filterResX;
3319     SVGAnimatedInteger     filterResY;
3321 };
3328 /*#########################################################################
3329 ## SVGFEBlendElementImpl
3330 #########################################################################*/
3332 /**
3333  *
3334  */
3335 class SVGFEBlendElementImpl : virtual public SVGFEBlendElement,
3336                               public SVGElementImpl
3338 public:
3340     /**
3341      *
3342      */
3343     virtual SVGAnimatedString getIn1()
3344         { return in1; }
3346     /**
3347      *
3348      */
3349     virtual SVGAnimatedString getIn2()
3350         { return in2; }
3352     /**
3353      *
3354      */
3355     virtual SVGAnimatedEnumeration getMode()
3356         { return mode; }
3359     //##################
3360     //# Non-API methods
3361     //##################
3363     /**
3364      *
3365      */
3366     virtual ~SVGFEBlendElementImpl() {}
3368 protected:
3370     SVGAnimatedString in1, in2;
3371     SVGAnimatedEnumeration mode;
3372 };
3380 /*#########################################################################
3381 ## SVGFEColorMatrixElementImpl
3382 #########################################################################*/
3384 /**
3385  *
3386  */
3387 class SVGFEColorMatrixElementImpl : virtual public SVGFEColorMatrixElement,
3388                                     public SVGElementImpl
3390 public:
3392     /**
3393      *
3394      */
3395     virtual SVGAnimatedString getIn1()
3396         { return in1; }
3398     /**
3399      *
3400      */
3401     virtual SVGAnimatedEnumeration getType()
3402         { return type; }
3404     /**
3405      *
3406      */
3407     virtual SVGAnimatedNumberList getValues()
3408         { return values; }
3412     //##################
3413     //# Non-API methods
3414     //##################
3416     /**
3417      *
3418      */
3419     virtual ~SVGFEColorMatrixElementImpl() {}
3421 protected:
3423     SVGAnimatedString in1;
3424     SVGAnimatedEnumeration type;
3425     SVGAnimatedNumberList values;
3427 };
3435 /*#########################################################################
3436 ## SVGFEComponentTransferElementImpl
3437 #########################################################################*/
3439 /**
3440  *
3441  */
3442 class SVGFEComponentTransferElementImpl :
3443                         virtual public SVGFEComponentTransferElement,
3444                         public SVGElementImpl
3446 public:
3447     /**
3448      *
3449      */
3450     virtual SVGAnimatedString getIn1()
3451         { return in1; }
3453     //##################
3454     //# Non-API methods
3455     //##################
3457     /**
3458      *
3459      */
3460     virtual ~SVGFEComponentTransferElementImpl() {}
3462 protected:
3464     SVGAnimatedString in1;
3466 };
3474 /*#########################################################################
3475 ## SVGComponentTransferFunctionElementImpl
3476 #########################################################################*/
3478 /**
3479  *
3480  */
3481 class SVGComponentTransferFunctionElementImpl :
3482                             virtual public SVGComponentTransferFunctionElement,
3483                             public SVGElementImpl
3485 public:
3487     /**
3488      *
3489      */
3490     virtual SVGAnimatedEnumeration getType()
3491         { return type; }
3493     /**
3494      *
3495      */
3496     virtual SVGAnimatedNumberList getTableValues()
3497         { return tableValues; }
3499     /**
3500      *
3501      */
3502     virtual SVGAnimatedNumber getSlope()
3503         { return slope; }
3505     /**
3506      *
3507      */
3508     virtual SVGAnimatedNumber getIntercept()
3509         { return intercept; }
3511     /**
3512      *
3513      */
3514     virtual SVGAnimatedNumber getAmplitude()
3515         { return amplitude; }
3517     /**
3518      *
3519      */
3520     virtual SVGAnimatedNumber getExponent()
3521         { return exponent; }
3523     /**
3524      *
3525      */
3526     virtual SVGAnimatedNumber getOffset()
3527         { return offset; }
3530     //##################
3531     //# Non-API methods
3532     //##################
3534     /**
3535      *
3536      */
3537     virtual ~SVGComponentTransferFunctionElementImpl() {}
3539 protected:
3541     SVGAnimatedEnumeration type;
3542     SVGAnimatedNumberList  tableValues;
3543     SVGAnimatedNumber      slope;
3544     SVGAnimatedNumber      intercept;
3545     SVGAnimatedNumber      amplitude;
3546     SVGAnimatedNumber      exponent;
3547     SVGAnimatedNumber      offset;
3549 };
3557 /*#########################################################################
3558 ## SVGFEFuncRElementImpl
3559 #########################################################################*/
3561 /**
3562  *
3563  */
3564 class SVGFEFuncRElementImpl :
3565                        virtual public SVGFEFuncRElement,
3566                        public SVGComponentTransferFunctionElementImpl
3568 public:
3570     //##################
3571     //# Non-API methods
3572     //##################
3574     /**
3575      *
3576      */
3577     virtual ~SVGFEFuncRElementImpl() {}
3579 protected:
3582 };
3588 /*#########################################################################
3589 ## SVGFEFuncGElementImpl
3590 #########################################################################*/
3592 /**
3593  *
3594  */
3595 class SVGFEFuncGElementImpl : virtual public SVGFEFuncGElement,
3596                               public SVGComponentTransferFunctionElementImpl
3598 public:
3600     //##################
3601     //# Non-API methods
3602     //##################
3604     /**
3605      *
3606      */
3607     virtual ~SVGFEFuncGElementImpl() {}
3609 protected:
3612 };
3618 /*#########################################################################
3619 ## SVGFEFuncBElementImpl
3620 #########################################################################*/
3622 /**
3623  *
3624  */
3625 class SVGFEFuncBElementImpl : virtual public SVGFEFuncBElement,
3626                               public SVGComponentTransferFunctionElementImpl
3628 public:
3630     //##################
3631     //# Non-API methods
3632     //##################
3634     /**
3635      *
3636      */
3637     virtual ~SVGFEFuncBElementImpl() {}
3639 protected:
3642 };
3648 /*#########################################################################
3649 ## SVGFEFuncAElementImpl
3650 #########################################################################*/
3652 /**
3653  *
3654  */
3655 class SVGFEFuncAElementImpl : virtual public SVGFEFuncAElement,
3656                               public SVGComponentTransferFunctionElementImpl
3658 public:
3660     //##################
3661     //# Non-API methods
3662     //##################
3664     /**
3665      *
3666      */
3667     virtual ~SVGFEFuncAElementImpl() {}
3669 protected:
3672 };
3678 /*#########################################################################
3679 ## SVGFECompositeElementImpl
3680 #########################################################################*/
3682 /**
3683  *
3684  */
3685 class SVGFECompositeElementImpl : virtual public SVGFECompositeElement,
3686                                   public SVGElementImpl
3688 public:
3691     /**
3692      *
3693      */
3694     virtual SVGAnimatedString getIn1()
3695         { return in1; }
3697     /**
3698      *
3699      */
3700     virtual SVGAnimatedString getIn2()
3701         { return in2; }
3703     /**
3704      *
3705      */
3706     virtual SVGAnimatedEnumeration getOperator()
3707         { return ae_operator; }
3709     /**
3710      *
3711      */
3712     virtual SVGAnimatedNumber getK1()
3713         { return k1; }
3715     /**
3716      *
3717      */
3718     virtual SVGAnimatedNumber getK2()
3719         { return k2; }
3721     /**
3722      *
3723      */
3724     virtual SVGAnimatedNumber getK3()
3725         { return k3; }
3727     /**
3728      *
3729      */
3730     virtual SVGAnimatedNumber getK4()
3731         { return k4; }
3735     //##################
3736     //# Non-API methods
3737     //##################
3739     /**
3740      *
3741      */
3742     virtual ~SVGFECompositeElementImpl() {}
3744 protected:
3747     SVGAnimatedString      in1;
3748     SVGAnimatedString      in2;
3749     SVGAnimatedEnumeration ae_operator;
3750     SVGAnimatedNumber      k1;
3751     SVGAnimatedNumber      k2;
3752     SVGAnimatedNumber      k3;
3753     SVGAnimatedNumber      k4;
3755 };
3763 /*#########################################################################
3764 ## SVGFEConvolveMatrixElementImpl
3765 #########################################################################*/
3767 /**
3768  *
3769  */
3770 class SVGFEConvolveMatrixElementImpl : virtual public SVGFEConvolveMatrixElement,
3771                                        public SVGElementImpl
3773 public:
3775     /**
3776      *
3777      */
3778     virtual SVGAnimatedInteger getOrderX()
3779         { return orderX; }
3781     /**
3782      *
3783      */
3784     virtual SVGAnimatedInteger getOrderY()
3785         { return orderY; }
3787     /**
3788      *
3789      */
3790     virtual SVGAnimatedNumberList getKernelMatrix()
3791         { return kernelMatrix; }
3793     /**
3794      *
3795      */
3796     virtual SVGAnimatedNumber getDivisor()
3797         { return divisor; }
3799     /**
3800      *
3801      */
3802     virtual SVGAnimatedNumber getBias()
3803         { return bias; }
3805     /**
3806      *
3807      */
3808     virtual SVGAnimatedInteger getTargetX()
3809         { return targetX; }
3811     /**
3812      *
3813      */
3814     virtual SVGAnimatedInteger getTargetY()
3815         { return targetY; }
3817     /**
3818      *
3819      */
3820     virtual SVGAnimatedEnumeration getEdgeMode()
3821         { return edgeMode; }
3823     /**
3824      *
3825      */
3826     virtual SVGAnimatedLength getKernelUnitLengthX()
3827         { return kernelUnitLengthX; }
3829     /**
3830      *
3831      */
3832     virtual SVGAnimatedLength getKernelUnitLengthY()
3833         { return kernelUnitLengthY; }
3835     /**
3836      *
3837      */
3838     virtual SVGAnimatedBoolean getPreserveAlpha()
3839         { return preserveAlpha; }
3843     //##################
3844     //# Non-API methods
3845     //##################
3847     /**
3848      *
3849      */
3850     virtual ~SVGFEConvolveMatrixElementImpl() {}
3852 protected:
3854     SVGAnimatedInteger     orderX;
3855     SVGAnimatedInteger     orderY;
3856     SVGAnimatedNumberList  kernelMatrix;
3857     SVGAnimatedNumber      divisor;
3858     SVGAnimatedNumber      bias;
3859     SVGAnimatedInteger     targetX;
3860     SVGAnimatedInteger     targetY;
3861     SVGAnimatedEnumeration edgeMode;
3862     SVGAnimatedLength      kernelUnitLengthX;
3863     SVGAnimatedLength      kernelUnitLengthY;
3864     SVGAnimatedBoolean     preserveAlpha;
3866 };
3874 /*#########################################################################
3875 ## SVGFEDiffuseLightingElementImpl
3876 #########################################################################*/
3878 /**
3879  *
3880  */
3881 class SVGFEDiffuseLightingElementImpl : virtual public SVGFEDiffuseLightingElement,
3882                                         public SVGElementImpl
3884 public:
3886     /**
3887      *
3888      */
3889     virtual SVGAnimatedString getIn1()
3890         { return in1; }
3892     /**
3893      *
3894      */
3895     virtual SVGAnimatedNumber getSurfaceScale()
3896         { return surfaceScale; }
3898     /**
3899      *
3900      */
3901     virtual SVGAnimatedNumber getDiffuseConstant()
3902         { return diffuseConstant; }
3904     /**
3905      *
3906      */
3907     virtual SVGAnimatedNumber getKernelUnitLengthX()
3908         { return kernelUnitLengthX; }
3910     /**
3911      *
3912      */
3913     virtual SVGAnimatedNumber getKernelUnitLengthY()
3914         { return kernelUnitLengthY; }
3918     //##################
3919     //# Non-API methods
3920     //##################
3922     /**
3923      *
3924      */
3925     virtual ~SVGFEDiffuseLightingElementImpl() {}
3927 protected:
3929     SVGAnimatedString in1;
3930     SVGAnimatedNumber surfaceScale;
3931     SVGAnimatedNumber diffuseConstant;
3932     SVGAnimatedNumber kernelUnitLengthX;
3933     SVGAnimatedNumber kernelUnitLengthY;
3935 };
3943 /*#########################################################################
3944 ## SVGFEDistantLightElementImpl
3945 #########################################################################*/
3947 /**
3948  *
3949  */
3950 class SVGFEDistantLightElementImpl : virtual public SVGFEDistantLightElement,
3951                                      public SVGElementImpl
3953 public:
3955     /**
3956      *
3957      */
3958     virtual SVGAnimatedNumber getAzimuth()
3959         { return azimuth; }
3962     /**
3963      *
3964      */
3965     virtual SVGAnimatedNumber getElevation()
3966         { return elevation; }
3970     //##################
3971     //# Non-API methods
3972     //##################
3974     /**
3975      *
3976      */
3977     virtual ~SVGFEDistantLightElementImpl() {}
3979 protected:
3981     SVGAnimatedNumber azimuth;
3982     SVGAnimatedNumber elevation;
3984 };
3992 /*#########################################################################
3993 ## SVGFEPointLightElementImpl
3994 #########################################################################*/
3996 /**
3997  *
3998  */
3999 class SVGFEPointLightElementImpl : public virtual SVGFEPointLightElement,
4000                                    public SVGElementImpl
4002 public:
4004     /**
4005      *
4006      */
4007     virtual SVGAnimatedNumber getX()
4008         { return x; }
4011     /**
4012      *
4013      */
4014     virtual SVGAnimatedNumber getY()
4015         { return y; }
4017     /**
4018      *
4019      */
4020     virtual SVGAnimatedNumber getZ()
4021         { return z; }
4023     //##################
4024     //# Non-API methods
4025     //##################
4027     /**
4028      *
4029      */
4030     virtual ~SVGFEPointLightElementImpl() {}
4032 protected:
4034     SVGAnimatedNumber x, y, z;
4036 };
4044 /*#########################################################################
4045 ## SVGFESpotLightElementImpl
4046 #########################################################################*/
4048 /**
4049  *
4050  */
4051 class SVGFESpotLightElementImpl : virtual public SVGFESpotLightElement,
4052                                   public SVGElementImpl
4054 public:
4056     /**
4057      *
4058      */
4059     virtual SVGAnimatedNumber getX()
4060         { return x; }
4063     /**
4064      *
4065      */
4066     virtual SVGAnimatedNumber getY()
4067         { return y; }
4069     /**
4070      *
4071      */
4072     virtual SVGAnimatedNumber getZ()
4073         { return z; }
4075     /**
4076      *
4077      */
4078     virtual SVGAnimatedNumber getPointsAtX()
4079         { return pointsAtX; }
4081     /**
4082      *
4083      */
4084     virtual SVGAnimatedNumber getPointsAtY()
4085         { return pointsAtY; }
4087     /**
4088      *
4089      */
4090     virtual SVGAnimatedNumber getPointsAtZ()
4091         { return pointsAtZ; }
4093     /**
4094      *
4095      */
4096     virtual SVGAnimatedNumber getSpecularExponent()
4097         { return specularExponent; }
4099     /**
4100      *
4101      */
4102     virtual SVGAnimatedNumber getLimitingConeAngle()
4103         { return limitingConeAngle; }
4107     //##################
4108     //# Non-API methods
4109     //##################
4111     /**
4112      *
4113      */
4114     virtual ~SVGFESpotLightElementImpl() {}
4116 protected:
4118     SVGAnimatedNumber x, y, z;
4119     SVGAnimatedNumber pointsAtX, pointsAtY, pointsAtZ;
4120     SVGAnimatedNumber specularExponent;
4121     SVGAnimatedNumber limitingConeAngle;
4122 };
4130 /*#########################################################################
4131 ## SVGFEDisplacementMapElementImpl
4132 #########################################################################*/
4134 /**
4135  *
4136  */
4137 class SVGFEDisplacementMapElementImpl : virtual public SVGFEDisplacementMapElement,
4138                                         public SVGElementImpl
4140 public:
4142     /**
4143      *
4144      */
4145     virtual SVGAnimatedString getIn1()
4146         { return in1; }
4148     /**
4149      *
4150      */
4151     virtual SVGAnimatedString getIn2()
4152         { return in2; }
4155     /**
4156      *
4157      */
4158     virtual SVGAnimatedNumber getScale()
4159         { return scale; }
4161     /**
4162      *
4163      */
4164     virtual SVGAnimatedEnumeration getXChannelSelector()
4165         { return xChannelSelector; }
4167     /**
4168      *
4169      */
4170     virtual SVGAnimatedEnumeration getYChannelSelector()
4171         { return yChannelSelector; }
4175     //##################
4176     //# Non-API methods
4177     //##################
4179     /**
4180      *
4181      */
4182     virtual ~SVGFEDisplacementMapElementImpl() {}
4184 protected:
4186     SVGAnimatedString      in1;
4187     SVGAnimatedString      in2;
4188     SVGAnimatedNumber      scale;
4189     SVGAnimatedEnumeration xChannelSelector;
4190     SVGAnimatedEnumeration yChannelSelector;
4192 };
4200 /*#########################################################################
4201 ## SVGFEFloodElementImpl
4202 #########################################################################*/
4204 /**
4205  *
4206  */
4207 class SVGFEFloodElementImpl : virtual public SVGFEFloodElement,
4208                               public SVGElementImpl
4210 public:
4211     /**
4212      *
4213      */
4214     virtual SVGAnimatedString getIn1()
4215         { return in1; }
4218     //##################
4219     //# Non-API methods
4220     //##################
4222     /**
4223      *
4224      */
4225     virtual ~SVGFEFloodElementImpl() {}
4227 protected:
4229     SVGAnimatedString in1;
4231 };
4239 /*#########################################################################
4240 ## SVGFEGaussianBlurElementImpl
4241 #########################################################################*/
4243 /**
4244  *
4245  */
4246 class SVGFEGaussianBlurElementImpl : virtual public SVGFEGaussianBlurElement,
4247                                      public SVGElementImpl
4249 public:
4250     /**
4251      *
4252      */
4253     virtual SVGAnimatedString getIn1()
4254         { return in1; }
4257     /**
4258      *
4259      */
4260     virtual SVGAnimatedNumber getStdDeviationX()
4261         { return stdDeviationX; }
4263     /**
4264      *
4265      */
4266     virtual SVGAnimatedNumber getStdDeviationY()
4267         { return stdDeviationY; }
4270     /**
4271      *
4272      */
4273     virtual void setStdDeviation (double stdDeviationXArg, double stdDeviationYArg )
4274         {
4275         stdDeviationX = stdDeviationXArg;
4276         stdDeviationY = stdDeviationYArg;
4277         }
4281     //##################
4282     //# Non-API methods
4283     //##################
4285     /**
4286      *
4287      */
4288     virtual ~SVGFEGaussianBlurElementImpl() {}
4290 protected:
4292     SVGAnimatedString in1;
4293     SVGAnimatedNumber stdDeviationX, stdDeviationY;
4295 };
4303 /*#########################################################################
4304 ## SVGFEImageElementImpl
4305 #########################################################################*/
4307 /**
4308  *
4309  */
4310 class SVGFEImageElementImpl : virtual public SVGFEImageElement,
4311                               public SVGElementImpl
4313 public:
4315     //##################
4316     //# Non-API methods
4317     //##################
4319     /**
4320      *
4321      */
4322     virtual ~SVGFEImageElementImpl() {}
4324 protected:
4327 };
4333 /*#########################################################################
4334 ## SVGFEMergeElementImpl
4335 #########################################################################*/
4337 /**
4338  *
4339  */
4340 class SVGFEMergeElementImpl : virtual public SVGFEMergeElement,
4341                               public SVGElementImpl
4343 public:
4345     //##################
4346     //# Non-API methods
4347     //##################
4349     /**
4350      *
4351      */
4352     virtual ~SVGFEMergeElementImpl() {}
4354 protected:
4357 };
4363 /*#########################################################################
4364 ## SVGFEMergeNodeElementImpl
4365 #########################################################################*/
4367 /**
4368  *
4369  */
4370 class SVGFEMergeNodeElementImpl : virtual public SVGFEMergeNodeElement,
4371                                   public SVGElementImpl
4373 public:
4374     /**
4375      *
4376      */
4377     virtual SVGAnimatedString getIn1()
4378         { return in1; }
4381     //##################
4382     //# Non-API methods
4383     //##################
4385     /**
4386      *
4387      */
4388     virtual ~SVGFEMergeNodeElementImpl() {}
4390 protected:
4392     SVGAnimatedString in1;
4394 };
4402 /*#########################################################################
4403 ## SVGFEMorphologyElementImpl
4404 #########################################################################*/
4406 /**
4407  *
4408  */
4409 class SVGFEMorphologyElementImpl : virtual public SVGFEMorphologyElement,
4410                                    public SVGElementImpl
4412 public:
4414     /**
4415      *
4416      */
4417     virtual SVGAnimatedString getIn1()
4418         { return in1; }
4421     /**
4422      *
4423      */
4424     virtual SVGAnimatedEnumeration getOperator()
4425         { return me_operator; }
4427     /**
4428      *
4429      */
4430     virtual SVGAnimatedLength getRadiusX()
4431         { return radiusX; }
4433     /**
4434      *
4435      */
4436     virtual SVGAnimatedLength getRadiusY()
4437         { return radiusY; }
4441     //##################
4442     //# Non-API methods
4443     //##################
4445     /**
4446      *
4447      */
4448     virtual ~SVGFEMorphologyElementImpl() {}
4450 protected:
4452     SVGAnimatedString      in1;
4453     SVGAnimatedEnumeration me_operator;
4454     SVGAnimatedLength      radiusX;
4455     SVGAnimatedLength      radiusY;
4457 };
4465 /*#########################################################################
4466 ## SVGFEOffsetElementImpl
4467 #########################################################################*/
4469 /**
4470  *
4471  */
4472 class SVGFEOffsetElementImpl : virtual public SVGFEOffsetElement,
4473                                public SVGElementImpl
4475 public:
4479     /**
4480      *
4481      */
4482     virtual SVGAnimatedString getIn1()
4483         { return in1; }
4485     /**
4486      *
4487      */
4488     virtual SVGAnimatedLength getDx()
4489         { return dx; }
4491     /**
4492      *
4493      */
4494     virtual SVGAnimatedLength getDy()
4495         { return dy; }
4497     //##################
4498     //# Non-API methods
4499     //##################
4501     /**
4502      *
4503      */
4504     virtual ~SVGFEOffsetElementImpl() {}
4506 protected:
4508     SVGAnimatedString in1;
4509     SVGAnimatedLength dx, dy;
4511 };
4519 /*#########################################################################
4520 ## SVGFESpecularLightingElementImpl
4521 #########################################################################*/
4523 /**
4524  *
4525  */
4526 class SVGFESpecularLightingElementImpl :
4527                        virtual public SVGFESpecularLightingElement,
4528                        public SVGElementImpl
4530 public:
4532     /**
4533      *
4534      */
4535     virtual SVGAnimatedString getIn1()
4536         { return in1; }
4538     /**
4539      *
4540      */
4541     virtual SVGAnimatedNumber getSurfaceScale()
4542         { return surfaceScale; }
4544     /**
4545      *
4546      */
4547     virtual SVGAnimatedNumber getSpecularConstant()
4548         { return specularConstant; }
4550     /**
4551      *
4552      */
4553     virtual SVGAnimatedNumber getSpecularExponent()
4554         { return specularExponent; }
4557     //##################
4558     //# Non-API methods
4559     //##################
4561     /**
4562      *
4563      */
4564     virtual ~SVGFESpecularLightingElementImpl() {}
4566 protected:
4568     SVGAnimatedString in1;
4569     SVGAnimatedNumber surfaceScale;
4570     SVGAnimatedNumber specularConstant;
4571     SVGAnimatedNumber specularExponent;
4572 };
4580 /*#########################################################################
4581 ## SVGFETileElementImpl
4582 #########################################################################*/
4584 /**
4585  *
4586  */
4587 class SVGFETileElementImpl : virtual public SVGFETileElement,
4588                              public SVGElementImpl
4590 public:
4593     /**
4594      *
4595      */
4596     virtual SVGAnimatedString getIn1()
4597         { return in1; }
4601     //##################
4602     //# Non-API methods
4603     //##################
4605     /**
4606      *
4607      */
4608     virtual ~SVGFETileElementImpl() {}
4610 protected:
4612     SVGAnimatedString in1;
4614 };
4622 /*#########################################################################
4623 ## SVGFETurbulenceElementImpl
4624 #########################################################################*/
4626 /**
4627  *
4628  */
4629 class SVGFETurbulenceElementImpl : virtual public SVGFETurbulenceElement,
4630                                    public SVGElementImpl
4632 public:
4634     /**
4635      *
4636      */
4637     virtual SVGAnimatedNumber getBaseFrequencyX()
4638         { return baseFrequencyX; }
4640     /**
4641      *
4642      */
4643     virtual SVGAnimatedNumber getBaseFrequencyY()
4644         { return baseFrequencyY; }
4646     /**
4647      *
4648      */
4649     virtual SVGAnimatedInteger getNumOctaves()
4650         { return numOctaves; }
4652     /**
4653      *
4654      */
4655     virtual SVGAnimatedNumber getSeed()
4656         { return seed; }
4658     /**
4659      *
4660      */
4661     virtual SVGAnimatedEnumeration getStitchTiles()
4662         { return stitchTiles; }
4664     /**
4665      *
4666      */
4667     virtual SVGAnimatedEnumeration getType()
4668         { return type; }
4672     //##################
4673     //# Non-API methods
4674     //##################
4676     /**
4677      *
4678      */
4679     virtual ~SVGFETurbulenceElementImpl() {}
4681 protected:
4683     SVGAnimatedNumber      baseFrequencyX;
4684     SVGAnimatedNumber      baseFrequencyY;
4685     SVGAnimatedInteger     numOctaves;
4686     SVGAnimatedNumber      seed;
4687     SVGAnimatedEnumeration stitchTiles;
4688     SVGAnimatedEnumeration type;
4690 };
4698 /*#########################################################################
4699 ## SVGCursorElementImpl
4700 #########################################################################*/
4702 /**
4703  *
4704  */
4705 class SVGCursorElementImpl : virtual public SVGCursorElement,
4706                              public SVGElementImpl
4708 public:
4710     /**
4711      *
4712      */
4713     virtual SVGAnimatedLength getX()
4714         { return x; }
4716     /**
4717      *
4718      */
4719     virtual SVGAnimatedLength getY()
4720         { return x; }
4722     //##################
4723     //# Non-API methods
4724     //##################
4726     /**
4727      *
4728      */
4729     virtual ~SVGCursorElementImpl() {}
4731 protected:
4733     SVGAnimatedLength x, y;
4734 };
4742 /*#########################################################################
4743 ## SVGAElementImpl
4744 #########################################################################*/
4746 /**
4747  *
4748  */
4749 class SVGAElementImpl : virtual public SVGAElement,
4750                         public SVGElementImpl
4752 public:
4754     /**
4755      *
4756      */
4757     virtual SVGAnimatedString getTarget()
4758         { return target; }
4762     //##################
4763     //# Non-API methods
4764     //##################
4766     /**
4767      *
4768      */
4769     virtual ~SVGAElementImpl() {}
4771 protected:
4773     SVGAnimatedString target;
4774 };
4782 /*#########################################################################
4783 ## SVGViewElementImpl
4784 #########################################################################*/
4786 /**
4787  *
4788  */
4789 class SVGViewElementImpl : virtual public SVGViewElement,
4790                            public SVGElementImpl
4792 public:
4794     /**
4795      *
4796      */
4797     virtual SVGStringList getViewTarget()
4798         { return viewTarget; }
4802     //##################
4803     //# Non-API methods
4804     //##################
4806     /**
4807      *
4808      */
4809     virtual ~SVGViewElementImpl() {}
4811 protected:
4813     SVGStringList viewTarget;
4814 };
4822 /*#########################################################################
4823 ## SVGScriptElementImpl
4824 #########################################################################*/
4826 /**
4827  *
4828  */
4829 class SVGScriptElementImpl : virtual public SVGScriptElement,
4830                              public SVGElementImpl
4832 public:
4834     /**
4835      *
4836      */
4837     virtual DOMString getType()
4838         { return type; }
4840     /**
4841      *
4842      */
4843     virtual void setType(const DOMString &val) throw (DOMException)
4844         { type = val; }
4847     //##################
4848     //# Non-API methods
4849     //##################
4851     /**
4852      *
4853      */
4854     virtual ~SVGScriptElementImpl() {}
4856 protected:
4858     DOMString type;
4859 };
4866 /*#########################################################################
4867 ## SVGAnimationElementImpl
4868 #########################################################################*/
4870 /**
4871  *
4872  */
4873 class SVGAnimationElementImpl : virtual public SVGAnimationElement,
4874                                 public SVGElementImpl
4876 public:
4879     /**
4880      *
4881      */
4882     virtual SVGElementPtr getTargetElement()
4883         { return targetElement; }
4886     /**
4887      *
4888      */
4889     virtual double getStartTime (  )
4890         { return startTime; }
4892     /**
4893      *
4894      */
4895     virtual double getCurrentTime (  )
4896         { return currentTime; }
4898     /**
4899      *
4900      */
4901     virtual double getSimpleDuration (  ) throw( DOMException )
4902         { return simpleDuration; }
4906     //##################
4907     //# Non-API methods
4908     //##################
4910     /**
4911      *
4912      */
4913     virtual ~SVGAnimationElementImpl() {}
4915 protected:
4917     SVGElementPtr targetElement;
4918     double startTime, currentTime, simpleDuration;
4919 };
4927 /*#########################################################################
4928 ## SVGAnimateElementImpl
4929 #########################################################################*/
4931 /**
4932  *
4933  */
4934 class SVGAnimateElementImpl : virtual public SVGAnimateElement,
4935                               public SVGAnimationElementImpl
4937 public:
4939     //##################
4940     //# Non-API methods
4941     //##################
4943     /**
4944      *
4945      */
4946     virtual ~SVGAnimateElementImpl() {}
4948 protected:
4951 };
4957 /*#########################################################################
4958 ## SVGSetElementImpl
4959 #########################################################################*/
4961 /**
4962  *
4963  */
4964 class SVGSetElementImpl : virtual public SVGSetElement,
4965                           public SVGAnimationElementImpl
4967 public:
4969     //##################
4970     //# Non-API methods
4971     //##################
4973     /**
4974      *
4975      */
4976     virtual ~SVGSetElementImpl() {}
4978 protected:
4981 };
4987 /*#########################################################################
4988 ## SVGAnimateMotionElementImpl
4989 #########################################################################*/
4991 /**
4992  *
4993  */
4994 class SVGAnimateMotionElementImpl : virtual public SVGAnimateMotionElement,
4995                                     public SVGAnimationElementImpl
4997 public:
4999     //##################
5000     //# Non-API methods
5001     //##################
5003     /**
5004      *
5005      */
5006     virtual ~SVGAnimateMotionElementImpl() {}
5008 protected:
5011 };
5017 /*#########################################################################
5018 ## SVGMPathElementImpl
5019 #########################################################################*/
5021 /**
5022  *
5023  */
5024 class SVGMPathElementImpl : virtual public SVGMPathElement,
5025                             public SVGElementImpl
5027 public:
5029     //##################
5030     //# Non-API methods
5031     //##################
5033     /**
5034      *
5035      */
5036     virtual ~SVGMPathElementImpl() {}
5038 protected:
5041 };
5047 /*#########################################################################
5048 ## SVGAnimateColorElementImpl
5049 #########################################################################*/
5051 /**
5052  *
5053  */
5054 class SVGAnimateColorElementImpl : virtual public SVGAnimateColorElement,
5055                                    public SVGAnimationElementImpl
5057 public:
5059     //##################
5060     //# Non-API methods
5061     //##################
5063     /**
5064      *
5065      */
5066     virtual ~SVGAnimateColorElementImpl() {}
5068 protected:
5071 };
5077 /*#########################################################################
5078 ## SVGAnimateTransformElementImpl
5079 #########################################################################*/
5081 /**
5082  *
5083  */
5084 class SVGAnimateTransformElementImpl : virtual public SVGAnimateTransformElement,
5085                                        public SVGAnimationElementImpl
5087 public:
5089     //##################
5090     //# Non-API methods
5091     //##################
5093     /**
5094      *
5095      */
5096     virtual ~SVGAnimateTransformElementImpl() {}
5098 protected:
5101 };
5107 /*#########################################################################
5108 ## SVGFontElementImpl
5109 #########################################################################*/
5111 /**
5112  *
5113  */
5114 class SVGFontElementImpl :  virtual public SVGFontElement,
5115                             public SVGElementImpl
5117 public:
5119     //##################
5120     //# Non-API methods
5121     //##################
5123     /**
5124      *
5125      */
5126     virtual ~SVGFontElementImpl() {}
5128 protected:
5131 };
5137 /*#########################################################################
5138 ## SVGGlyphElementImpl
5139 #########################################################################*/
5141 /**
5142  *
5143  */
5144 class SVGGlyphElementImpl : virtual public SVGGlyphElement,
5145                             public SVGElementImpl
5147 public:
5149     //##################
5150     //# Non-API methods
5151     //##################
5153     /**
5154      *
5155      */
5156     virtual ~SVGGlyphElementImpl() {}
5158 protected:
5161 };
5167 /*#########################################################################
5168 ## SVGMissingGlyphElementImpl
5169 #########################################################################*/
5171 /**
5172  *
5173  */
5174 class SVGMissingGlyphElementImpl : virtual public SVGMissingGlyphElement,
5175                                    public SVGElementImpl
5177 public:
5179     //##################
5180     //# Non-API methods
5181     //##################
5183     /**
5184      *
5185      */
5186     virtual ~SVGMissingGlyphElementImpl() {}
5188 protected:
5191 };
5197 /*#########################################################################
5198 ## SVGHKernElementImpl
5199 #########################################################################*/
5201 /**
5202  *
5203  */
5204 class SVGHKernElementImpl : virtual public SVGHKernElement,
5205                             public SVGElementImpl
5207 public:
5209     //##################
5210     //# Non-API methods
5211     //##################
5213     /**
5214      *
5215      */
5216     virtual ~SVGHKernElementImpl() {}
5218 protected:
5221 };
5227 /*#########################################################################
5228 ## SVGVKernElementImpl
5229 #########################################################################*/
5231 /**
5232  *
5233  */
5234 class SVGVKernElementImpl : virtual public SVGVKernElement,
5235                             public SVGElementImpl
5237 public:
5239     //##################
5240     //# Non-API methods
5241     //##################
5243     /**
5244      *
5245      */
5246     virtual ~SVGVKernElementImpl() {}
5248 protected:
5251 };
5257 /*#########################################################################
5258 ## SVGFontFaceElementImpl
5259 #########################################################################*/
5261 /**
5262  *
5263  */
5264 class SVGFontFaceElementImpl : virtual public SVGFontFaceElement,
5265                                public SVGElementImpl
5267 public:
5269     //##################
5270     //# Non-API methods
5271     //##################
5273     /**
5274      *
5275      */
5276     virtual ~SVGFontFaceElementImpl() {}
5278 protected:
5281 };
5287 /*#########################################################################
5288 ## SVGFontFaceSrcElementImpl
5289 #########################################################################*/
5291 /**
5292  *
5293  */
5294 class SVGFontFaceSrcElementImpl : virtual public SVGFontFaceSrcElement,
5295                                   public SVGElementImpl
5297 public:
5299     //##################
5300     //# Non-API methods
5301     //##################
5303     /**
5304      *
5305      */
5306     virtual ~SVGFontFaceSrcElementImpl() {}
5308 protected:
5311 };
5317 /*#########################################################################
5318 ## SVGFontFaceUriElementImpl
5319 #########################################################################*/
5321 /**
5322  *
5323  */
5324 class SVGFontFaceUriElementImpl : virtual public SVGFontFaceUriElement,
5325                                   public SVGElementImpl
5327 public:
5329     //##################
5330     //# Non-API methods
5331     //##################
5333     /**
5334      *
5335      */
5336     virtual ~SVGFontFaceUriElementImpl() {}
5338 protected:
5341 };
5347 /*#########################################################################
5348 ## SVGFontFaceFormatElementImpl
5349 #########################################################################*/
5351 /**
5352  *
5353  */
5354 class SVGFontFaceFormatElementImpl : virtual public SVGFontFaceFormatElement,
5355                                      public SVGElementImpl
5357 public:
5359     //##################
5360     //# Non-API methods
5361     //##################
5363     /**
5364      *
5365      */
5366     virtual ~SVGFontFaceFormatElementImpl() {}
5368 protected:
5371 };
5377 /*#########################################################################
5378 ## SVGFontFaceNameElementImpl
5379 #########################################################################*/
5381 /**
5382  *
5383  */
5384 class SVGFontFaceNameElementImpl : virtual public SVGFontFaceNameElement,
5385                                    public SVGElementImpl
5387 public:
5389     //##################
5390     //# Non-API methods
5391     //##################
5393     /**
5394      *
5395      */
5396     virtual ~SVGFontFaceNameElementImpl() {}
5398 protected:
5401 };
5407 /*#########################################################################
5408 ## SVGDefinitionSrcElementImpl
5409 #########################################################################*/
5411 /**
5412  *
5413  */
5414 class SVGDefinitionSrcElementImpl : virtual public SVGDefinitionSrcElement,
5415                                     public SVGElementImpl
5417 public:
5419     //##################
5420     //# Non-API methods
5421     //##################
5423     /**
5424      *
5425      */
5426     virtual ~SVGDefinitionSrcElementImpl() {}
5428 protected:
5431 };
5437 /*#########################################################################
5438 ## SVGMetadataElementImpl
5439 #########################################################################*/
5441 /**
5442  *
5443  */
5444 class SVGMetadataElementImpl : virtual public SVGMetadataElement,
5445                                public SVGElementImpl
5447 public:
5449     //##################
5450     //# Non-API methods
5451     //##################
5453     /**
5454      *
5455      */
5456     virtual ~SVGMetadataElementImpl() {}
5458 protected:
5461 };
5466 /*#########################################################################
5467 ## SVGForeignObjectElementImpl
5468 #########################################################################*/
5470 /**
5471  *
5472  */
5473 class SVGForeignObjectElementImpl :  virtual public SVGForeignObjectElement,
5474                                      public SVGElementImpl
5476 public:
5479     /**
5480      *
5481      */
5482     virtual SVGAnimatedLength getX()
5483         { return x; }
5485     /**
5486      *
5487      */
5488     virtual SVGAnimatedLength getY()
5489         { return y; }
5491     /**
5492      *
5493      */
5494     virtual SVGAnimatedLength getWidth()
5495         { return width; }
5497     /**
5498      *
5499      */
5500     virtual SVGAnimatedLength getHeight()
5501         { return height; }
5505     //##################
5506     //# Non-API methods
5507     //##################
5510     /**
5511      *
5512      */
5513     virtual ~SVGForeignObjectElementImpl() {}
5515 protected:
5517     SVGAnimatedLength x, y, width, height;
5518 };
5525 }  //namespace svg
5526 }  //namespace dom
5527 }  //namespace w3c
5528 }  //namespace org
5530 #endif // __SVG_H__
5531 /*#########################################################################
5532 ## E N D    O F    F I L E
5533 #########################################################################*/