1 #ifndef __SVG_H__
2 #define __SVG_H__
4 /**
5 * Phoebe DOM Implementation.
6 *
7 * This is a C++ approximation of the W3C DOM model, which follows
8 * fairly closely the specifications in the various .idl files, copies of
9 * which are provided for reference. Most important is this one:
10 *
11 * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
12 *
13 * Authors:
14 * Bob Jamison
15 *
16 * Copyright (C) 2005-2008 Bob Jamison
17 *
18 * This library is free software; you can redistribute it and/or
19 * modify it under the terms of the GNU Lesser General Public
20 * License as published by the Free Software Foundation; either
21 * version 2.1 of the License, or (at your option) any later version.
22 *
23 * This library is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26 * Lesser General Public License for more details.
27 *
28 * You should have received a copy of the GNU Lesser General Public
29 * License along with this library; if not, write to the Free Software
30 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
31 *
32 * =======================================================================
33 * NOTES
34 *
35 * This API follows:
36 * http://www.w3.org/TR/SVG11/svgdom.html
37 *
38 * This file defines the main SVG-DOM Node types. Other non-Node types are
39 * defined in svgtypes.h.
40 *
41 */
44 // For access to DOM2 core
45 #include "dom/dom.h"
47 // For access to DOM2 events
48 #include "dom/events.h"
50 // For access to those parts from DOM2 CSS OM used by SVG DOM.
51 #include "dom/css.h"
53 // For access to those parts from DOM2 Views OM used by SVG DOM.
54 #include "dom/views.h"
56 // For access to the SMIL OM used by SVG DOM.
57 #include "dom/smil.h"
61 #include "svgtypes.h"
63 #include <math.h>
65 #define SVG_NAMESPACE "http://www.w3.org/2000/svg"
68 namespace org
69 {
70 namespace w3c
71 {
72 namespace dom
73 {
74 namespace svg
75 {
78 //local definitions
79 typedef dom::DOMString DOMString;
80 typedef dom::DOMException DOMException;
81 typedef dom::Element Element;
82 typedef dom::ElementPtr ElementPtr;
83 typedef dom::Document Document;
84 typedef dom::DocumentPtr DocumentPtr;
85 typedef dom::NodeList NodeList;
90 class SVGElement;
91 typedef Ptr<SVGElement> SVGElementPtr;
92 class SVGSVGElement;
93 typedef Ptr<SVGSVGElement> SVGSVGElementPtr;
94 class SVGDocument;
95 typedef Ptr<SVGDocument> SVGDocumentPtr;
98 /*#########################################################################
99 ## SVGElement
100 #########################################################################*/
102 /**
103 * All of the SVG DOM interfaces that correspond directly to elements in the SVG
104 * language (e.g., the SVGPathElement interface corresponds directly to the
105 * 'path' element in the language) are derivative from base class SVGElement.
106 */
107 class SVGElement : virtual public Element
108 {
109 public:
111 /**
112 * Get the value of the id attribute on the given element.
113 */
114 virtual DOMString getId() =0;
116 /**
117 * Set the value of the id attribute on the given element.
118 */
119 virtual void setId(const DOMString &val)
120 throw (DOMException) =0;
122 /**
123 * Corresponds to attribute xml:base on the given element.
124 */
125 virtual DOMString getXmlBase() = 0;
127 /**
128 * Corresponds to attribute xml:base on the given element.
129 */
130 virtual void setXmlBase(const DOMString &val)
131 throw (DOMException) = 0;
133 /**
134 * The nearest ancestor 'svg' element. Null if the given element is the
135 * outermost 'svg' element.
136 */
137 virtual SVGSVGElementPtr getOwnerSVGElement() = 0;
139 /**
140 * The element which established the current viewport. Often, the nearest
141 * ancestor 'svg' element. Null if the given element is the outermost 'svg'
142 * element.
143 */
144 virtual SVGElementPtr getViewportElement() = 0;
147 //##################
148 //# Non-API methods
149 //##################
152 /**
153 *
154 */
155 virtual ~SVGElement() {}
158 };
162 /*#########################################################################
163 ## SVGDocument
164 #########################################################################*/
166 /**
167 * When an 'svg' element is embedded inline as a component of a document from
168 * another namespace, such as when an 'svg' element is embedded inline within an
169 * XHTML document [XHTML], then an SVGDocument object will not exist; instead,
170 * the root object in the document object hierarchy will be a Document object of
171 * a different type, such as an HTMLDocument object.
172 *
173 * However, an SVGDocument object will indeed exist when the root element of the
174 * XML document hierarchy is an 'svg' element, such as when viewing a stand-alone
175 * SVG file (i.e., a file with MIME type "image/svg+xml"). In this case, the
176 * SVGDocument object will be the root object of the document object model
177 * hierarchy.
178 *
179 * In the case where an SVG document is embedded by reference, such as when an
180 * XHTML document has an 'object' element whose href attribute references an SVG
181 * document (i.e., a document whose MIME type is "image/svg+xml" and whose root
182 * element is thus an 'svg' element), there will exist two distinct DOM
183 * hierarchies. The first DOM hierarchy will be for the referencing document
184 * (e.g., an XHTML document). The second DOM hierarchy will be for the referenced
185 * SVG document. In this second DOM hierarchy, the root object of the document
186 * object model hierarchy is an SVGDocument object.
187 */
188 class SVGDocument : virtual public Document,
189 virtual public events::DocumentEvent
190 {
191 public:
194 /**
195 * The title of a document as specified by the title sub-element of the 'svg'
196 * root element (i.e., <svg><title>Here is the title</title>...</svg>)
197 */
198 virtual DOMString getTitle() =0;
200 /**
201 * Returns the URI of the page that linked to this page. The value is an empty
202 * string if the user navigated to the page directly (not through a link, but,
203 * for example, via a bookmark).
204 */
205 virtual DOMString getReferrer() =0;
207 /**
208 * The domain name of the server that served the document, or a null string if
209 * the server cannot be identified by a domain name.
210 */
211 virtual DOMString getDomain() =0;
213 /**
214 * The complete URI of the document.
215 */
216 virtual DOMString getURL() =0;
218 /**
219 * The root 'svg' element in the document hierarchy.
220 */
221 virtual SVGSVGElementPtr getRootElement() =0;
224 //##################
225 //# Non-API methods
226 //##################
228 /**
229 *
230 */
231 virtual ~SVGDocument() {}
233 };
237 /*#########################################################################
238 ## SVGSVGElement
239 #########################################################################*/
241 /**
242 * A key interface definition is the SVGSVGElement interface, which is the
243 * interface that corresponds to the 'svg' element. This interface contains
244 * various miscellaneous commonly-used utility methods, such as matrix operations
245 * and the ability to control the time of redraw on visual rendering devices.
246 *
247 * SVGSVGElement extends ViewCSS and DocumentCSS to provide access to the
248 * computed values of properties and the override style sheet as described in DOM2.
249 */
250 class SVGSVGElement : virtual public SVGElement,
251 public SVGTests,
252 public SVGLangSpace,
253 public SVGExternalResourcesRequired,
254 public SVGStylable,
255 public SVGLocatable,
256 public SVGFitToViewBox,
257 public SVGZoomAndPan,
258 public events::EventTarget,
259 public events::DocumentEvent,
260 public css::ViewCSS,
261 public css::DocumentCSS
262 {
263 public:
265 /**
266 * Corresponds to attribute x on the given 'svg' element.
267 */
268 virtual SVGAnimatedLength getX() =0;
270 /**
271 * Corresponds to attribute y on the given 'svg' element.
272 */
273 virtual SVGAnimatedLength getY() =0;
275 /**
276 * Corresponds to attribute width on the given 'svg' element.
277 */
278 virtual SVGAnimatedLength getWidth() =0;
280 /**
281 * Corresponds to attribute height on the given 'svg' element.
282 */
283 virtual SVGAnimatedLength getHeight() =0;
285 /**
286 * Get the attribute contentScriptType on the given 'svg' element.
287 */
288 virtual DOMString getContentScriptType() =0;
290 /**
291 * Set the attribute contentScriptType on the given 'svg' element.
292 */
293 virtual void setContentScriptType(const DOMString &val)
294 throw (DOMException) =0;
297 /**
298 * Get the attribute contentStyleType on the given 'svg' element.
299 */
300 virtual DOMString getContentStyleType() =0;
302 /**
303 * Set the attribute contentStyleType on the given 'svg' element.
304 */
305 virtual void setContentStyleType(const DOMString &val)
306 throw (DOMException) =0;
308 /**
309 * The position and size of the viewport (implicit or explicit) that corresponds
310 * to this 'svg' element. When the user agent is actually rendering the content,
311 * then the position and size values represent the actual values when rendering.
312 * The position and size values are unitless values in the coordinate system of
313 * the parent element. If no parent element exists (i.e., 'svg' element
314 * represents the root of the document tree), if this SVG document is embedded as
315 * part of another document (e.g., via the HTML 'object' element), then the
316 * position and size are unitless values in the coordinate system of the parent
317 * document. (If the parent uses CSS or XSL layout, then unitless values
318 * represent pixel units for the current CSS or XSL viewport, as described in the
319 * CSS2 specification.) If the parent element does not have a coordinate system,
320 * then the user agent should provide reasonable default values for this attribute.
321 * */
322 virtual SVGRect getViewport() =0;
324 /**
325 * Size of a pixel units (as defined by CSS2) along the x-axis of the viewport,
326 * which represents a unit somewhere in the range of 70dpi to 120dpi, and, on
327 * systems that support this, might actually match the characteristics of the
328 * target medium. On systems where it is impossible to know the size of a pixel,
329 * a suitable default pixel size is provided.
330 */
331 virtual double getPixelUnitToMillimeterX() =0;
333 /**
334 * Corresponding size of a pixel unit along the y-axis of the viewport.
335 */
336 virtual double getPixelUnitToMillimeterY() =0;
338 /**
339 * User interface (UI) events in DOM Level 2 indicate the screen positions at
340 * which the given UI event occurred. When the user agent actually knows the
341 * physical size of a "screen unit", this attribute will express that information;
342 * otherwise, user agents will provide a suitable default value such as .28mm.
343 */
344 virtual double getScreenPixelToMillimeterX() =0;
346 /**
347 * Corresponding size of a screen pixel along the y-axis of the viewport.
348 */
349 virtual double getScreenPixelToMillimeterY() =0;
352 /**
353 * The initial view (i.e., before magnification and panning) of the current
354 * innermost SVG document fragment can be either the "standard" view (i.e., based
355 * on attributes on the 'svg' element such as fitBoxToViewport) or to a "custom"
356 * view (i.e., a hyperlink into a particular 'view' or other element - see
357 * Linking into SVG content: URI fragments and SVG views). If the initial view is
358 * the "standard" view, then this attribute is false. If the initial view is a
359 * "custom" view, then this attribute is true.
360 */
361 virtual bool getUseCurrentView() =0;
363 /**
364 * Set the value above
365 */
366 virtual void setUseCurrentView(bool val) throw (DOMException) =0;
368 /**
369 * The definition of the initial view (i.e., before magnification and panning) of
370 * the current innermost SVG document fragment. The meaning depends on the
371 * situation:
372 *
373 * * If the initial view was a "standard" view, then:
374 * o the values for viewBox, preserveAspectRatio and zoomAndPan within
375 * currentView will match the values for the corresponding DOM attributes that
376 * are on SVGSVGElement directly
377 * o the values for transform and viewTarget within currentView will be null
378 * * If the initial view was a link into a 'view' element, then:
379 * o the values for viewBox, preserveAspectRatio and zoomAndPan within
380 * currentView will correspond to the corresponding attributes for the given
381 * 'view' element
382 * o the values for transform and viewTarget within currentView will be null
383 * * If the initial view was a link into another element (i.e., other than a
384 * 'view'), then:
385 * o the values for viewBox, preserveAspectRatio and zoomAndPan within
386 * currentView will match the values for the corresponding DOM attributes that
387 * are on SVGSVGElement directly for the closest ancestor 'svg' element
388 * o the values for transform within currentView will be null
389 * o the viewTarget within currentView will represent the target of the link
390 * * If the initial view was a link into the SVG document fragment using an SVG
391 * view specification fragment identifier (i.e., #svgView(...)), then:
392 * o the values for viewBox, preserveAspectRatio, zoomAndPan, transform and
393 * viewTarget within currentView will correspond to the values from the SVG view
394 * specification fragment identifier
395 *
396 */
397 virtual SVGViewSpec getCurrentView() =0;
400 /**
401 * This attribute indicates the current scale factor relative to the initial view
402 * to take into account user magnification and panning operations, as described
403 * under Magnification and panning. DOM attributes currentScale and
404 * currentTranslate are equivalent to the 2x3 matrix [a b c d e f] =
405 * [currentScale 0 0 currentScale currentTranslate.x currentTranslate.y]. If
406 * "magnification" is enabled (i.e., zoomAndPan="magnify"), then the effect is as
407 * if an extra transformation were placed at the outermost level on the SVG
408 * document fragment (i.e., outside the outermost 'svg' element).
409 */
410 virtual double getCurrentScale() =0;
412 /**
413 * Set the value above.
414 */
415 virtual void setCurrentScale(double val)
416 throw (DOMException) =0;
419 /**
420 * The corresponding translation factor that takes into account
421 * user "magnification".
422 */
423 virtual SVGPoint getCurrentTranslate() =0;
426 /**
427 * Takes a time-out value which indicates that redraw shall not occur until: (a)
428 * the corresponding unsuspendRedraw(suspend_handle_id) call has been made, (b)
429 * an unsuspendRedrawAll() call has been made, or (c) its timer has timed out. In
430 * environments that do not support interactivity (e.g., print media), then
431 * redraw shall not be suspended. suspend_handle_id =
432 * suspendRedraw(max_wait_milliseconds) and unsuspendRedraw(suspend_handle_id)
433 * must be packaged as balanced pairs. When you want to suspend redraw actions as
434 * a collection of SVG DOM changes occur, then precede the changes to the SVG DOM
435 * with a method call similar to suspend_handle_id =
436 * suspendRedraw(max_wait_milliseconds) and follow the changes with a method call
437 * similar to unsuspendRedraw(suspend_handle_id). Note that multiple
438 * suspendRedraw calls can be used at once and that each such method call is
439 * treated independently of the other suspendRedraw method calls.
440 */
441 virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds ) =0;
443 /**
444 * Cancels a specified suspendRedraw() by providing a unique suspend_handle_id.
445 */
446 virtual void unsuspendRedraw (unsigned long suspend_handle_id )
447 throw( DOMException ) =0;
449 /**
450 * Cancels all currently active suspendRedraw() method calls. This method is most
451 * useful at the very end of a set of SVG DOM calls to ensure that all pending
452 * suspendRedraw() method calls have been cancelled.
453 */
454 virtual void unsuspendRedrawAll ( ) =0;
456 /**
457 * In rendering environments supporting interactivity, forces the user agent to
458 * immediately redraw all regions of the viewport that require updating.
459 */
460 virtual void forceRedraw ( ) =0;
462 /**
463 * Suspends (i.e., pauses) all currently running animations that are defined
464 * within the SVG document fragment corresponding to this 'svg' element, causing
465 * the animation clock corresponding to this document fragment to stand still
466 * until it is unpaused.
467 */
468 virtual void pauseAnimations ( ) =0;
470 /**
471 * Unsuspends (i.e., unpauses) currently running animations that are defined
472 * within the SVG document fragment, causing the animation clock to continue from
473 * the time at which it was suspended.
474 */
475 virtual void unpauseAnimations ( ) =0;
477 /**
478 * Returns true if this SVG document fragment is in a paused state.
479 */
480 virtual bool animationsPaused ( ) =0;
482 /**
483 * Returns the current time in seconds relative to the start time for
484 * the current SVG document fragment.
485 */
486 virtual double getCurrentTime ( ) =0;
488 /**
489 * Adjusts the clock for this SVG document fragment, establishing
490 * a new current time.
491 */
492 virtual void setCurrentTime (double seconds ) =0;
494 /**
495 * Returns the list of graphics elements whose rendered content intersects the
496 * supplied rectangle, honoring the 'pointer-events' property value on each
497 * candidate graphics element.
498 */
499 virtual NodeList getIntersectionList(const SVGRect &rect,
500 const SVGElementPtr referenceElement ) =0;
502 /**
503 * Returns the list of graphics elements whose rendered content is entirely
504 * contained within the supplied rectangle, honoring the 'pointer-events'
505 * property value on each candidate graphics element.
506 */
507 virtual NodeList getEnclosureList (const SVGRect &rect,
508 const SVGElementPtr referenceElement ) =0;
510 /**
511 * Returns true if the rendered content of the given element intersects the
512 * supplied rectangle, honoring the 'pointer-events' property value on each
513 * candidate graphics element.
514 */
515 virtual bool checkIntersection (const SVGElementPtr element, const SVGRect &rect ) =0;
517 /**
518 * Returns true if the rendered content of the given element is entirely
519 * contained within the supplied rectangle, honoring the 'pointer-events'
520 * property value on each candidate graphics element.
521 */
522 virtual bool checkEnclosure (const SVGElementPtr element, const SVGRect &rect ) =0;
524 /**
525 * Unselects any selected objects, including any selections of text
526 * strings and type-in bars.
527 */
528 virtual void deselectAll ( ) =0;
530 /**
531 * Creates an SVGNumber object outside of any document trees. The object
532 * is initialized to a value of zero.
533 */
534 virtual SVGNumber createSVGNumber ( ) =0;
536 /**
537 * Creates an SVGLength object outside of any document trees. The object
538 * is initialized to the value of 0 user units.
539 */
540 virtual SVGLength createSVGLength ( ) =0;
542 /**
543 * Creates an SVGAngle object outside of any document trees. The object
544 * is initialized to the value 0 degrees (unitless).
545 */
546 virtual SVGAngle createSVGAngle ( ) =0;
548 /**
549 * Creates an SVGPoint object outside of any document trees. The object
550 * is initialized to the point (0,0) in the user coordinate system.
551 */
552 virtual SVGPoint createSVGPoint ( ) =0;
554 /**
555 * Creates an SVGMatrix object outside of any document trees. The object
556 * is initialized to the identity matrix.
557 */
558 virtual SVGMatrix createSVGMatrix ( ) =0;
560 /**
561 * Creates an SVGRect object outside of any document trees. The object
562 * is initialized such that all values are set to 0 user units.
563 */
564 virtual SVGRect createSVGRect ( ) =0;
566 /**
567 * Creates an SVGTransform object outside of any document trees.
568 * The object is initialized to an identity matrix transform
569 * (SVG_TRANSFORM_MATRIX).
570 */
571 virtual SVGTransform createSVGTransform ( ) =0;
573 /**
574 * Creates an SVGTransform object outside of any document trees.
575 * The object is initialized to the given matrix transform
576 * (i.e., SVG_TRANSFORM_MATRIX).
577 */
578 virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix ) =0;
580 /**
581 * Searches this SVG document fragment (i.e., the search is restricted to a
582 * subset of the document tree) for an Element whose id is given by elementId. If
583 * an Element is found, that Element is returned. If no such element exists,
584 * returns null. Behavior is not defined if more than one element has this id.
585 */
586 virtual ElementPtr getElementById (const DOMString& elementId ) =0;
590 //##################
591 //# Non-API methods
592 //##################
594 /**
595 *
596 */
597 virtual ~SVGSVGElement() {}
599 };
603 /*#########################################################################
604 ## SVGGElement
605 #########################################################################*/
607 /**
608 * The SVGGElement interface corresponds to the 'g' element.
609 */
610 class SVGGElement : virtual public SVGElement,
611 public SVGTests,
612 public SVGLangSpace,
613 public SVGExternalResourcesRequired,
614 public SVGStylable,
615 public SVGTransformable,
616 public events::EventTarget
617 {
618 public:
620 //##################
621 //# Non-API methods
622 //##################
624 /**
625 *
626 */
627 virtual ~SVGGElement() {}
629 };
634 /*#########################################################################
635 ## SVGDefsElement
636 #########################################################################*/
638 /**
639 * The SVGDefsElement interface corresponds to the 'defs' element.
640 */
641 class SVGDefsElement :
642 virtual public SVGElement,
643 public SVGTests,
644 public SVGLangSpace,
645 public SVGExternalResourcesRequired,
646 public SVGStylable,
647 public SVGTransformable,
648 public events::EventTarget
649 {
650 public:
652 //##################
653 //# Non-API methods
654 //##################
656 /**
657 *
658 */
659 virtual ~SVGDefsElement() {}
661 };
666 /*#########################################################################
667 ## SVGDescElement
668 #########################################################################*/
670 /**
671 * The SVGDescElement interface corresponds to the 'desc' element.
672 */
673 class SVGDescElement :
674 virtual public SVGElement,
675 public SVGLangSpace,
676 public SVGStylable
677 {
678 public:
680 //##################
681 //# Non-API methods
682 //##################
684 /**
685 *
686 */
687 virtual ~SVGDescElement() {}
689 };
694 /*#########################################################################
695 ## SVGTitleElement
696 #########################################################################*/
698 /**
699 * The SVGTitleElement interface corresponds to the 'title' element.
700 */
701 class SVGTitleElement :
702 virtual public SVGElement,
703 public SVGLangSpace,
704 public SVGStylable
705 {
706 public:
708 //##################
709 //# Non-API methods
710 //##################
712 /**
713 *
714 */
715 virtual ~SVGTitleElement() {}
717 };
722 /*#########################################################################
723 ## SVGSymbolElement
724 #########################################################################*/
726 /**
727 * The SVGSymbolElement interface corresponds to the 'symbol' element.
728 */
729 class SVGSymbolElement :
730 virtual public SVGElement,
731 public SVGLangSpace,
732 public SVGExternalResourcesRequired,
733 public SVGStylable,
734 public SVGFitToViewBox,
735 public events::EventTarget
736 {
737 public:
739 //##################
740 //# Non-API methods
741 //##################
743 /**
744 *
745 */
746 virtual ~SVGSymbolElement() {}
748 };
753 /*#########################################################################
754 ## SVGUseElement
755 #########################################################################*/
757 /**
758 * The SVGUseElement interface corresponds to the 'use' element.
759 */
760 class SVGUseElement :
761 virtual public SVGElement,
762 public SVGURIReference,
763 public SVGTests,
764 public SVGLangSpace,
765 public SVGExternalResourcesRequired,
766 public SVGStylable,
767 public SVGTransformable,
768 public events::EventTarget
769 {
770 public:
775 /**
776 * Corresponds to attribute x on the given 'use' element.
777 */
778 virtual SVGAnimatedLength getX() =0;
780 /**
781 * Corresponds to attribute y on the given 'use' element.
782 */
783 virtual SVGAnimatedLength getY() =0;
785 /**
786 * Corresponds to attribute width on the given 'use' element.
787 */
788 virtual SVGAnimatedLength getWidth() =0;
790 /**
791 * Corresponds to attribute height on the given 'use' element.
792 */
793 virtual SVGAnimatedLength getHeight() =0;
795 /**
796 * The root of the "instance tree". See description of SVGElementInstance for
797 * a discussion on the instance tree.
798 * */
799 virtual SVGElementInstance getInstanceRoot() =0;
801 /**
802 * If the 'href' attribute is being animated, contains the current animated root
803 * of the "instance tree". If the 'href' attribute is not currently being
804 * animated, contains the same value as 'instanceRoot'. The root of the "instance
805 * tree". See description of SVGElementInstance for a discussion on the instance
806 * tree.
807 */
808 virtual SVGElementInstance getAnimatedInstanceRoot() =0;
812 //##################
813 //# Non-API methods
814 //##################
816 /**
817 *
818 */
819 virtual ~SVGUseElement() {}
821 };
829 /*#########################################################################
830 ## SVGImageElement
831 #########################################################################*/
833 /**
834 * The SVGImageElement interface corresponds to the 'image' element.
835 */
836 class SVGImageElement :
837 virtual public SVGElement,
838 public SVGURIReference,
839 public SVGTests,
840 public SVGLangSpace,
841 public SVGExternalResourcesRequired,
842 public SVGStylable,
843 public SVGTransformable,
844 public events::EventTarget
845 {
846 public:
849 /**
850 * Corresponds to attribute x on the given 'image' element.
851 */
852 virtual SVGAnimatedLength getX() =0;
854 /**
855 * Corresponds to attribute y on the given 'image' element.
856 */
857 virtual SVGAnimatedLength getY() =0;
859 /**
860 * Corresponds to attribute width on the given 'image' element.
861 */
862 virtual SVGAnimatedLength getWidth() =0;
864 /**
865 * Corresponds to attribute height on the given 'image' element.
866 */
867 virtual SVGAnimatedLength getHeight() =0;
870 /**
871 * Corresponds to attribute preserveAspectRatio on the given element.
872 */
873 virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio() =0;
877 //##################
878 //# Non-API methods
879 //##################
881 /**
882 *
883 */
884 virtual ~SVGImageElement() {}
886 };
893 /*#########################################################################
894 ## SVGSwitchElement
895 #########################################################################*/
897 /**
898 * The SVGSwitchElement interface corresponds to the 'switch' element.
899 */
900 class SVGSwitchElement :
901 virtual public SVGElement,
902 public SVGTests,
903 public SVGLangSpace,
904 public SVGExternalResourcesRequired,
905 public SVGStylable,
906 public SVGTransformable,
907 public events::EventTarget
908 {
909 public:
911 //##################
912 //# Non-API methods
913 //##################
915 /**
916 *
917 */
918 virtual ~SVGSwitchElement() {}
920 };
925 /*#########################################################################
926 ## GetSVGDocument
927 #########################################################################*/
929 /**
930 * In the case where an SVG document is embedded by reference, such as when an
931 * XHTML document has an 'object' element whose href (or equivalent) attribute
932 * references an SVG document (i.e., a document whose MIME type is
933 * "image/svg+xml" and whose root element is thus an 'svg' element), the SVG user
934 * agent is required to implement the GetSVGDocument interface for the element
935 * which references the SVG document (e.g., the HTML 'object' or comparable
936 * referencing elements).
937 */
938 class GetSVGDocument
939 {
940 public:
942 /**
943 * Returns the SVGDocument object for the referenced SVG document.
944 */
945 virtual SVGDocumentPtr getSVGDocument ( )
946 throw( DOMException ) =0;
948 //##################
949 //# Non-API methods
950 //##################
952 /**
953 *
954 */
955 virtual ~GetSVGDocument() {}
957 };
964 /*#########################################################################
965 ## SVGStyleElement
966 #########################################################################*/
968 /**
969 * The SVGStyleElement interface corresponds to the 'style' element.
970 */
971 class SVGStyleElement : virtual public SVGElement
972 {
973 public:
975 /**
976 * Get the attribute xml:space on the given element.
977 */
978 virtual DOMString getXmlspace() = 0;
980 /**
981 * Set the attribute xml:space on the given element.
982 */
983 virtual void setXmlspace(const DOMString &val)
984 throw (DOMException) =0;
986 /**
987 * Get the attribute type on the given 'style' element.
988 */
989 virtual DOMString getType() = 0;
991 /**
992 * Set the attribute type on the given 'style' element.
993 */
994 virtual void setType(const DOMString &val)
995 throw (DOMException) =0;
997 /**
998 * Get the attribute media on the given 'style' element.
999 */
1000 virtual DOMString getMedia() = 0;
1002 /**
1003 * Set the attribute media on the given 'style' element.
1004 */
1005 virtual void setMedia(const DOMString &val)
1006 throw (DOMException) =0;
1008 /**
1009 * Get the attribute title on the given 'style' element.
1010 */
1011 virtual DOMString getTitle() = 0;
1013 /**
1014 * Set the attribute title on the given 'style' element.
1015 */
1016 virtual void setTitle(const DOMString &val)
1017 throw (DOMException) =0;
1021 //##################
1022 //# Non-API methods
1023 //##################
1025 /**
1026 *
1027 */
1028 virtual ~SVGStyleElement() {}
1030 };
1037 /*#########################################################################
1038 ## SVGPathElement
1039 #########################################################################*/
1041 /**
1042 * The SVGPathElement interface corresponds to the 'path' element.
1043 */
1044 class SVGPathElement :
1045 virtual public SVGElement,
1046 public SVGTests,
1047 public SVGLangSpace,
1048 public SVGExternalResourcesRequired,
1049 public SVGStylable,
1050 public SVGTransformable,
1051 public events::EventTarget,
1052 public SVGAnimatedPathData
1053 {
1055 public:
1057 /**
1058 * Corresponds to attribute pathLength on the given 'path' element.
1059 */
1060 virtual SVGAnimatedNumber getPathLength() =0;
1062 /**
1063 * Returns the user agent's computed value for the total length of the path using
1064 * the user agent's distance-along-a-path algorithm, as a distance in the current
1065 * user coordinate system.
1066 */
1067 virtual double getTotalLength ( ) =0;
1069 /**
1070 * Returns the (x,y) coordinate in user space which is distance units along the
1071 * path, utilizing the user agent's distance-along-a-path algorithm.
1072 */
1073 virtual SVGPoint getPointAtLength (double distance ) =0;
1075 /**
1076 * Returns the index into pathSegList which is distance units along the path,
1077 * utilizing the user agent's distance-along-a-path algorithm.
1078 */
1079 virtual unsigned long getPathSegAtLength (double distance ) =0;
1081 /**
1082 * Returns a stand-alone, parentless SVGPathSegClosePath object.
1083 */
1084 virtual SVGPathSegClosePath
1085 createSVGPathSegClosePath ( ) =0;
1087 /**
1088 * Returns a stand-alone, parentless SVGPathSegMovetoAbs object.
1089 */
1090 virtual SVGPathSegMovetoAbs
1091 createSVGPathSegMovetoAbs (double x, double y ) =0;
1093 /**
1094 * Returns a stand-alone, parentless SVGPathSegMovetoRel object.
1095 */
1096 virtual SVGPathSegMovetoRel
1097 createSVGPathSegMovetoRel (double x, double y ) =0;
1099 /**
1100 * Returns a stand-alone, parentless SVGPathSegLinetoAbs object.
1101 */
1102 virtual SVGPathSegLinetoAbs
1103 createSVGPathSegLinetoAbs (double x, double y ) =0;
1105 /**
1106 * Returns a stand-alone, parentless SVGPathSegLinetoRel object.
1107 */
1108 virtual SVGPathSegLinetoRel
1109 createSVGPathSegLinetoRel (double x, double y ) =0;
1111 /**
1112 * Returns a stand-alone, parentless SVGPathSegCurvetoCubicAbs object.
1113 */
1114 virtual SVGPathSegCurvetoCubicAbs
1115 createSVGPathSegCurvetoCubicAbs (double x, double y,
1116 double x1, double y1, double x2, double y2 ) =0;
1118 /**
1119 * Returns a stand-alone, parentless SVGPathSegCurvetoCubicRel object.
1120 */
1121 virtual SVGPathSegCurvetoCubicRel
1122 createSVGPathSegCurvetoCubicRel (double x, double y,
1123 double x1, double y1, double x2, double y2 ) =0;
1125 /**
1126 * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticAbs object.
1127 */
1128 virtual SVGPathSegCurvetoQuadraticAbs
1129 createSVGPathSegCurvetoQuadraticAbs (double x, double y,
1130 double x1, double y1 ) =0;
1132 /**
1133 * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticRel object.
1134 */
1135 virtual SVGPathSegCurvetoQuadraticRel
1136 createSVGPathSegCurvetoQuadraticRel (double x, double y,
1137 double x1, double y1 ) =0;
1139 /**
1140 * Returns a stand-alone, parentless SVGPathSegArcAbs object.
1141 */
1142 virtual SVGPathSegArcAbs
1143 createSVGPathSegArcAbs (double x, double y,
1144 double r1, double r2, double angle,
1145 bool largeArcFlag, bool sweepFlag ) =0;
1147 /**
1148 * Returns a stand-alone, parentless SVGPathSegArcRel object.
1149 */
1150 virtual SVGPathSegArcRel
1151 createSVGPathSegArcRel (double x, double y, double r1,
1152 double r2, double angle, bool largeArcFlag,
1153 bool sweepFlag ) =0;
1155 /**
1156 * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalAbs object.
1157 */
1158 virtual SVGPathSegLinetoHorizontalAbs
1159 createSVGPathSegLinetoHorizontalAbs (double x ) =0;
1161 /**
1162 * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalRel object.
1163 */
1164 virtual SVGPathSegLinetoHorizontalRel
1165 createSVGPathSegLinetoHorizontalRel (double x ) =0;
1167 /**
1168 * Returns a stand-alone, parentless SVGPathSegLinetoVerticalAbs object.
1169 */
1170 virtual SVGPathSegLinetoVerticalAbs
1171 createSVGPathSegLinetoVerticalAbs (double y ) =0;
1173 /**
1174 * Returns a stand-alone, parentless SVGPathSegLinetoVerticalRel object.
1175 */
1176 virtual SVGPathSegLinetoVerticalRel
1177 createSVGPathSegLinetoVerticalRel (double y ) =0;
1179 /**
1180 * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothAbs object.
1181 */
1182 virtual SVGPathSegCurvetoCubicSmoothAbs
1183 createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
1184 double x2, double y2 ) =0;
1186 /**
1187 * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothRel object.
1188 */
1189 virtual SVGPathSegCurvetoCubicSmoothRel
1190 createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
1191 double x2, double y2 ) =0;
1193 /**
1194 * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothAbs
1195 * object.
1196 */
1197 virtual SVGPathSegCurvetoQuadraticSmoothAbs
1198 createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y ) =0;
1200 /**
1201 * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothRel
1202 * object.
1203 */
1204 virtual SVGPathSegCurvetoQuadraticSmoothRel
1205 createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y ) =0;
1209 //##################
1210 //# Non-API methods
1211 //##################
1213 /**
1214 *
1215 */
1216 virtual ~SVGPathElement() {}
1218 };
1225 /*#########################################################################
1226 ## SVGRectElement
1227 #########################################################################*/
1229 /**
1230 * The SVGRectElement interface corresponds to the 'rect' element.
1231 */
1232 class SVGRectElement :
1233 virtual public SVGElement,
1234 public SVGTests,
1235 public SVGLangSpace,
1236 public SVGExternalResourcesRequired,
1237 public SVGStylable,
1238 public SVGTransformable,
1239 public events::EventTarget
1240 {
1241 public:
1243 /**
1244 * Corresponds to attribute x on the given 'rect' element.
1245 */
1246 virtual SVGAnimatedLength getX() =0;
1248 /**
1249 * Corresponds to attribute y on the given 'rect' element.
1250 */
1251 virtual SVGAnimatedLength getY() =0;
1253 /**
1254 * Corresponds to attribute width on the given 'rect' element.
1255 */
1256 virtual SVGAnimatedLength getWidth() =0;
1258 /**
1259 * Corresponds to attribute height on the given 'rect' element.
1260 */
1261 virtual SVGAnimatedLength getHeight() =0;
1264 /**
1265 * Corresponds to attribute rx on the given 'rect' element.
1266 */
1267 virtual SVGAnimatedLength getRx() =0;
1269 /**
1270 * Corresponds to attribute ry on the given 'rect' element.
1271 */
1272 virtual SVGAnimatedLength getRy() =0;
1276 //##################
1277 //# Non-API methods
1278 //##################
1280 /**
1281 *
1282 */
1283 virtual ~SVGRectElement() {}
1285 };
1292 /*#########################################################################
1293 ## SVGCircleElement
1294 #########################################################################*/
1296 /**
1297 * The SVGCircleElement interface corresponds to the 'circle' element.
1298 */
1299 class SVGCircleElement :
1300 virtual public SVGElement,
1301 public SVGTests,
1302 public SVGLangSpace,
1303 public SVGExternalResourcesRequired,
1304 public SVGStylable,
1305 public SVGTransformable,
1306 public events::EventTarget
1307 {
1308 public:
1310 /**
1311 * Corresponds to attribute cx on the given 'circle' element.
1312 */
1313 virtual SVGAnimatedLength getCx() =0;
1315 /**
1316 * Corresponds to attribute cy on the given 'circle' element.
1317 */
1318 virtual SVGAnimatedLength getCy() =0;
1320 /**
1321 * Corresponds to attribute r on the given 'circle' element.
1322 */
1323 virtual SVGAnimatedLength getR() =0;
1327 //##################
1328 //# Non-API methods
1329 //##################
1331 /**
1332 *
1333 */
1334 virtual ~SVGCircleElement() {}
1336 };
1343 /*#########################################################################
1344 ## SVGEllipseElement
1345 #########################################################################*/
1347 /**
1348 * The SVGEllipseElement interface corresponds to the 'ellipse' element.
1349 */
1350 class SVGEllipseElement :
1351 virtual public SVGElement,
1352 public SVGTests,
1353 public SVGLangSpace,
1354 public SVGExternalResourcesRequired,
1355 public SVGStylable,
1356 public SVGTransformable,
1357 public events::EventTarget
1358 {
1359 public:
1361 /**
1362 * Corresponds to attribute cx on the given 'ellipse' element.
1363 */
1364 virtual SVGAnimatedLength getCx() =0;
1366 /**
1367 * Corresponds to attribute cy on the given 'ellipse' element.
1368 */
1369 virtual SVGAnimatedLength getCy() =0;
1371 /**
1372 * Corresponds to attribute rx on the given 'ellipse' element.
1373 */
1374 virtual SVGAnimatedLength getRx() =0;
1376 /**
1377 * Corresponds to attribute ry on the given 'ellipse' element.
1378 */
1379 virtual SVGAnimatedLength getRy() =0;
1382 //##################
1383 //# Non-API methods
1384 //##################
1386 /**
1387 *
1388 */
1389 virtual ~SVGEllipseElement() {}
1391 };
1398 /*#########################################################################
1399 ## SVGLineElement
1400 #########################################################################*/
1402 /**
1403 * The SVGLineElement interface corresponds to the 'line' element.
1404 */
1405 class SVGLineElement :
1406 virtual public SVGElement,
1407 public SVGTests,
1408 public SVGLangSpace,
1409 public SVGExternalResourcesRequired,
1410 public SVGStylable,
1411 public SVGTransformable,
1412 public events::EventTarget
1413 {
1414 public:
1416 /**
1417 * Corresponds to attribute x1 on the given 'line' element.
1418 */
1419 virtual SVGAnimatedLength getX1() =0;
1421 /**
1422 * Corresponds to attribute y1 on the given 'line' element.
1423 */
1424 virtual SVGAnimatedLength getY1() =0;
1426 /**
1427 * Corresponds to attribute x2 on the given 'line' element.
1428 */
1429 virtual SVGAnimatedLength getX2() =0;
1431 /**
1432 * Corresponds to attribute y2 on the given 'line' element.
1433 */
1434 virtual SVGAnimatedLength getY2() =0;
1436 //##################
1437 //# Non-API methods
1438 //##################
1440 /**
1441 *
1442 */
1443 virtual ~SVGLineElement() {}
1445 };
1450 /*#########################################################################
1451 ## SVGPolylineElement
1452 #########################################################################*/
1454 /**
1455 * The SVGPolylineElement interface corresponds to the 'polyline' element.
1456 */
1457 class SVGPolylineElement :
1458 virtual public SVGElement,
1459 public SVGTests,
1460 public SVGLangSpace,
1461 public SVGExternalResourcesRequired,
1462 public SVGStylable,
1463 public SVGTransformable,
1464 public events::EventTarget,
1465 public SVGAnimatedPoints
1466 {
1468 public:
1470 //##################
1471 //# Non-API methods
1472 //##################
1474 /**
1475 *
1476 */
1477 virtual ~SVGPolylineElement() {}
1479 };
1484 /*#########################################################################
1485 ## SVGPolygonElement
1486 #########################################################################*/
1488 /**
1489 * The SVGPolygonElement interface corresponds to the 'polygon' element.
1490 */
1491 class SVGPolygonElement :
1492 virtual public SVGElement,
1493 public SVGTests,
1494 public SVGLangSpace,
1495 public SVGExternalResourcesRequired,
1496 public SVGStylable,
1497 public SVGTransformable,
1498 public events::EventTarget,
1499 public SVGAnimatedPoints
1500 {
1501 public:
1503 //##################
1504 //# Non-API methods
1505 //##################
1507 /**
1508 *
1509 */
1510 virtual ~SVGPolygonElement() {}
1512 };
1517 /*#########################################################################
1518 ## SVGTextContentElement
1519 #########################################################################*/
1521 /**
1522 * The SVGTextContentElement interface is inherited by various text-related
1523 * interfaces, such as SVGTextElement, SVGTSpanElement, SVGTRefElement,
1524 * SVGAltGlyphElement and SVGTextPathElement.
1525 */
1526 class SVGTextContentElement :
1527 virtual public SVGElement,
1528 public SVGTests,
1529 public SVGLangSpace,
1530 public SVGExternalResourcesRequired,
1531 public SVGStylable,
1532 public events::EventTarget
1533 {
1535 public:
1537 /**
1538 * lengthAdjust Types
1539 */
1540 typedef enum
1541 {
1542 LENGTHADJUST_UNKNOWN = 0,
1543 LENGTHADJUST_SPACING = 1,
1544 LENGTHADJUST_SPACINGANDGLYPHS = 2
1545 } LengthAdjustType;
1548 /**
1549 * Corresponds to attribute textLength on the given element.
1550 */
1551 virtual SVGAnimatedLength getTextLength() =0;
1554 /**
1555 * Corresponds to attribute lengthAdjust on the given element. The value must be
1556 * one of the length adjust constants specified above.
1557 */
1558 virtual SVGAnimatedEnumeration getLengthAdjust() =0;
1561 /**
1562 * Returns the total number of characters to be rendered within the current
1563 * element. Includes characters which are included via a 'tref' reference.
1564 */
1565 virtual long getNumberOfChars ( ) =0;
1567 /**
1568 * The total sum of all of the advance values from rendering all of the
1569 * characters within this element, including the advance value on the glyphs
1570 * (horizontal or vertical), the effect of properties 'kerning', 'letter-spacing'
1571 * and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan'
1572 * elements. For non-rendering environments, the user agent shall make reasonable
1573 * assumptions about glyph metrics.
1574 */
1575 virtual double getComputedTextLength ( ) =0;
1577 /**
1578 * The total sum of all of the advance values from rendering the specified
1579 * substring of the characters, including the advance value on the glyphs
1580 * (horizontal or vertical), the effect of properties 'kerning', 'letter-spacing'
1581 * and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan'
1582 * elements. For non-rendering environments, the user agent shall make reasonable
1583 * assumptions about glyph metrics.
1584 */
1585 virtual double getSubStringLength (unsigned long charnum, unsigned long nchars )
1586 throw( DOMException ) =0;
1588 /**
1589 * Returns the current text position before rendering the character in the user
1590 * coordinate system for rendering the glyph(s) that correspond to the specified
1591 * character. The current text position has already taken into account the
1592 * effects of any inter-character adjustments due to properties 'kerning',
1593 * 'letter-spacing' and 'word-spacing' and adjustments due to attributes x, y, dx
1594 * and dy. If multiple consecutive characters are rendered inseparably (e.g., as
1595 * a single glyph or a sequence of glyphs), then each of the inseparable
1596 * characters will return the start position for the first glyph.
1597 */
1598 virtual SVGPoint getStartPositionOfChar (unsigned long charnum )
1599 throw( DOMException ) =0;
1601 /**
1602 * Returns the current text position after rendering the character in the user
1603 * coordinate system for rendering the glyph(s) that correspond to the specified
1604 * character. This current text position does not take into account the effects
1605 * of any inter-character adjustments to prepare for the next character, such as
1606 * properties 'kerning', 'letter-spacing' and 'word-spacing' and adjustments due
1607 * to attributes x, y, dx and dy. If multiple consecutive characters are rendered
1608 * inseparably (e.g., as a single glyph or a sequence of glyphs), then each of
1609 * the inseparable characters will return the end position for the last glyph.
1610 */
1611 virtual SVGPoint getEndPositionOfChar (unsigned long charnum )
1612 throw( DOMException ) =0;
1614 /**
1615 * Returns a tightest rectangle which defines the minimum and maximum X and Y
1616 * values in the user coordinate system for rendering the glyph(s) that
1617 * correspond to the specified character. The calculations assume that all glyphs
1618 * occupy the full standard glyph cell for the font. If multiple consecutive
1619 * characters are rendered inseparably (e.g., as a single glyph or a sequence of
1620 * glyphs), then each of the inseparable characters will return the same extent.
1621 */
1622 virtual SVGRect getExtentOfChar (unsigned long charnum )
1623 throw( DOMException ) =0;
1625 /**
1626 * Returns the rotation value relative to the current user coordinate system used
1627 * to render the glyph(s) corresponding to the specified character. If multiple
1628 * glyph(s) are used to render the given character and the glyphs each have
1629 * different rotations (e.g., due to text-on-a-path), the user agent shall return
1630 * an average value (e.g., the rotation angle at the midpoint along the path for
1631 * all glyphs used to render this character). The rotation value represents the
1632 * rotation that is supplemental to any rotation due to properties
1633 * 'glyph-orientation-horizontal' and 'glyph-orientation-vertical'; thus, any
1634 * glyph rotations due to these properties are not included into the returned
1635 * rotation value. If multiple consecutive characters are rendered inseparably
1636 * (e.g., as a single glyph or a sequence of glyphs), then each of the
1637 * inseparable characters will return the same rotation value.
1638 */
1639 virtual double getRotationOfChar (unsigned long charnum )
1640 throw( DOMException ) =0;
1642 /**
1643 * Returns the index of the character whose corresponding glyph cell bounding box
1644 * contains the specified point. The calculations assume that all glyphs occupy
1645 * the full standard glyph cell for the font. If no such character exists, a
1646 * value of -1 is returned. If multiple such characters exist, the character
1647 * within the element whose glyphs were rendered last (i.e., take into account
1648 * any reordering such as for bidirectional text) is used. If multiple
1649 * consecutive characters are rendered inseparably (e.g., as a single glyph or a
1650 * sequence of glyphs), then the user agent shall allocate an equal percentage of
1651 * the text advance amount to each of the contributing characters in determining
1652 * which of the characters is chosen.
1653 */
1654 virtual long getCharNumAtPosition (const SVGPoint &point ) =0;
1656 /**
1657 * Causes the specified substring to be selected just as if the user
1658 * selected the substring interactively.
1659 */
1660 virtual void selectSubString (unsigned long charnum, unsigned long nchars )
1661 throw( DOMException ) =0;
1665 //##################
1666 //# Non-API methods
1667 //##################
1669 /**
1670 *
1671 */
1672 virtual ~SVGTextContentElement() {}
1674 };
1681 /*#########################################################################
1682 ## SVGTextPositioningElement
1683 #########################################################################*/
1685 /**
1686 * The SVGTextPositioningElement interface is inherited by text-related
1687 * interfaces: SVGTextElement, SVGTSpanElement, SVGTRefElement and
1688 * SVGAltGlyphElement.
1689 */
1690 class SVGTextPositioningElement : virtual public SVGTextContentElement
1691 {
1692 public:
1694 /**
1695 * Corresponds to attribute x on the given element.
1696 */
1697 virtual SVGAnimatedLength getX() =0;
1699 /**
1700 * Corresponds to attribute y on the given element.
1701 */
1702 virtual SVGAnimatedLength getY() =0;
1704 /**
1705 * Corresponds to attribute dx on the given element.
1706 */
1707 virtual SVGAnimatedLength getDx() =0;
1709 /**
1710 * Corresponds to attribute dy on the given element.
1711 */
1712 virtual SVGAnimatedLength getDy() =0;
1715 /**
1716 * Corresponds to attribute rotate on the given element.
1717 */
1718 virtual SVGAnimatedNumberList getRotate() =0;
1722 //##################
1723 //# Non-API methods
1724 //##################
1726 /**
1727 *
1728 */
1729 virtual ~SVGTextPositioningElement() {}
1731 };
1738 /*#########################################################################
1739 ## SVGTextElement
1740 #########################################################################*/
1742 /**
1743 * The SVGTextElement interface corresponds to the 'text' element.
1744 */
1745 class SVGTextElement : virtual public SVGTextPositioningElement,
1746 public SVGTransformable
1747 {
1748 public:
1750 //##################
1751 //# Non-API methods
1752 //##################
1754 /**
1755 *
1756 */
1757 virtual ~SVGTextElement() {}
1759 };
1764 /*#########################################################################
1765 ## SVGTSpanElement
1766 #########################################################################*/
1768 /**
1769 * The SVGTSpanElement interface corresponds to the 'tspan' element.
1770 */
1771 class SVGTSpanElement : virtual public SVGTextPositioningElement
1772 {
1773 public:
1775 //##################
1776 //# Non-API methods
1777 //##################
1779 /**
1780 *
1781 */
1782 virtual ~SVGTSpanElement() {}
1784 };
1789 /*#########################################################################
1790 ## SVGTRefElement
1791 #########################################################################*/
1793 /**
1794 * The SVGTRefElement interface corresponds to the 'tref' element.
1795 */
1796 class SVGTRefElement :
1797 virtual public SVGTextPositioningElement,
1798 public SVGURIReference
1799 {
1800 public:
1802 //##################
1803 //# Non-API methods
1804 //##################
1806 /**
1807 *
1808 */
1809 virtual ~SVGTRefElement() {}
1811 };
1816 /*#########################################################################
1817 ## SVGTextPathElement
1818 #########################################################################*/
1820 /**
1821 * The SVGTextPathElement interface corresponds to the 'textPath' element.
1822 */
1823 class SVGTextPathElement :
1824 virtual public SVGTextContentElement,
1825 public SVGURIReference
1826 {
1827 public:
1831 /**
1832 * textPath Method Types
1833 */
1834 typedef enum
1835 {
1836 TEXTPATH_METHODTYPE_UNKNOWN = 0,
1837 TEXTPATH_METHODTYPE_ALIGN = 1,
1838 TEXTPATH_METHODTYPE_STRETCH = 2
1839 } TextPathMethodType;
1841 /**
1842 * textPath Spacing Types
1843 */
1844 typedef enum
1845 {
1846 TEXTPATH_SPACINGTYPE_UNKNOWN = 0,
1847 TEXTPATH_SPACINGTYPE_AUTO = 1,
1848 TEXTPATH_SPACINGTYPE_EXACT = 2
1849 } TextPathSpacingType;
1852 /**
1853 * Corresponds to attribute startOffset on the given 'textPath' element.
1854 */
1855 virtual SVGAnimatedLength getStartOffset() =0;
1857 /**
1858 * Corresponds to attribute method on the given 'textPath' element. The value
1859 * must be one of the method type constants specified above.
1860 */
1861 virtual SVGAnimatedEnumeration getMethod() =0;
1863 /**
1864 * Corresponds to attribute spacing on the given 'textPath' element.
1865 * The value must be one of the spacing type constants specified above.
1866 */
1867 virtual SVGAnimatedEnumeration getSpacing() =0;
1871 //##################
1872 //# Non-API methods
1873 //##################
1875 /**
1876 *
1877 */
1878 virtual ~SVGTextPathElement() {}
1880 };
1887 /*#########################################################################
1888 ## SVGAltGlyphElement
1889 #########################################################################*/
1891 /**
1892 * The SVGAltGlyphElement interface corresponds to the 'altGlyph' element.
1893 */
1894 class SVGAltGlyphElement :
1895 virtual public SVGTextPositioningElement,
1896 public SVGURIReference
1897 {
1898 public:
1900 /**
1901 * Get the attribute glyphRef on the given element.
1902 */
1903 virtual DOMString getGlyphRef() =0;
1905 /**
1906 * Set the attribute glyphRef on the given element.
1907 */
1908 virtual void setGlyphRef(const DOMString &val)
1909 throw (DOMException) =0;
1911 /**
1912 * Get the attribute format on the given element.
1913 */
1914 virtual DOMString getFormat() =0;
1916 /**
1917 * Set the attribute format on the given element.
1918 */
1919 virtual void setFormat(const DOMString &val)
1920 throw (DOMException) =0;
1925 //##################
1926 //# Non-API methods
1927 //##################
1929 /**
1930 *
1931 */
1932 virtual ~SVGAltGlyphElement() {}
1934 };
1941 /*#########################################################################
1942 ## SVGAltGlyphDefElement
1943 #########################################################################*/
1945 /**
1946 * The SVGAltGlyphDefElement interface corresponds to the 'altGlyphDef' element.
1947 */
1948 class SVGAltGlyphDefElement : virtual public SVGElement
1949 {
1950 public:
1952 //##################
1953 //# Non-API methods
1954 //##################
1956 /**
1957 *
1958 */
1959 virtual ~SVGAltGlyphDefElement() {}
1961 };
1966 /*#########################################################################
1967 ## SVGAltGlyphItemElement
1968 #########################################################################*/
1970 /**
1971 * The SVGAltGlyphItemElement interface corresponds to the
1972 * 'altGlyphItem' element.
1973 */
1974 class SVGAltGlyphItemElement : virtual public SVGElement
1975 {
1976 public:
1978 //##################
1979 //# Non-API methods
1980 //##################
1982 /**
1983 *
1984 */
1985 virtual ~SVGAltGlyphItemElement() {}
1987 };
1992 /*#########################################################################
1993 ## SVGGlyphRefElement
1994 #########################################################################*/
1996 /**
1997 * The SVGGlyphRefElement interface corresponds to the 'glyphRef' element.
1998 */
1999 class SVGGlyphRefElement : virtual public SVGElement,
2000 public SVGURIReference,
2001 public SVGStylable
2002 {
2003 public:
2005 /**
2006 * Get the attribute glyphRef on the given element.
2007 */
2008 virtual DOMString getGlyphRef() =0;
2010 /**
2011 * Set the attribute glyphRef on the given element.
2012 */
2013 virtual void setGlyphRef(const DOMString &val)
2014 throw (DOMException) =0;
2016 /**
2017 * Get the attribute format on the given element.
2018 */
2019 virtual DOMString getFormat() =0;
2021 /**
2022 * Set the attribute format on the given element.
2023 */
2024 virtual void setFormat(const DOMString &val)
2025 throw (DOMException) =0;
2027 /**
2028 * Get the attribute x on the given element.
2029 */
2030 virtual double getX() = 0;
2032 /**
2033 * Set the attribute x on the given element.
2034 */
2035 virtual void setX(double val) throw (DOMException) =0;
2037 /**
2038 * Get the attribute y on the given element.
2039 */
2040 virtual double getY() = 0;
2042 /**
2043 * Set the attribute y on the given element.
2044 */
2045 virtual void setY(double val) throw (DOMException) =0;
2047 /**
2048 * Get the attribute dx on the given element.
2049 */
2050 virtual double getDx() = 0;
2052 /**
2053 * Set the attribute dx on the given element.
2054 */
2055 virtual void setDx(double val) throw (DOMException) =0;
2057 /**
2058 * Get the attribute dy on the given element.
2059 */
2060 virtual double getDy() = 0;
2062 /**
2063 * Set the attribute dy on the given element.
2064 */
2065 virtual void setDy(double val) throw (DOMException) =0;
2070 //##################
2071 //# Non-API methods
2072 //##################
2074 /**
2075 *
2076 */
2077 virtual ~SVGGlyphRefElement() {}
2079 };
2085 /*#########################################################################
2086 ## SVGMarkerElement
2087 #########################################################################*/
2089 /**
2090 * The SVGMarkerElement interface corresponds to the 'marker' element.
2091 */
2092 class SVGMarkerElement :
2093 virtual public SVGElement,
2094 public SVGLangSpace,
2095 public SVGExternalResourcesRequired,
2096 public SVGStylable,
2097 public SVGFitToViewBox
2098 {
2099 public:
2103 /**
2104 * Marker Unit Types
2105 */
2106 typedef enum
2107 {
2108 SVG_MARKERUNITS_UNKNOWN = 0,
2109 SVG_MARKERUNITS_USERSPACEONUSE = 1,
2110 SVG_MARKERUNITS_STROKEWIDTH = 2
2111 } MarkerUnitType;
2113 /**
2114 * Marker Orientation Types
2115 */
2116 typedef enum
2117 {
2118 SVG_MARKER_ORIENT_UNKNOWN = 0,
2119 SVG_MARKER_ORIENT_AUTO = 1,
2120 SVG_MARKER_ORIENT_ANGLE = 2
2121 } MarkerOrientationType;
2124 /**
2125 * Corresponds to attribute refX on the given 'marker' element.
2126 */
2127 virtual SVGAnimatedLength getRefX() =0;
2129 /**
2130 * Corresponds to attribute refY on the given 'marker' element.
2131 */
2132 virtual SVGAnimatedLength getRefY() =0;
2134 /**
2135 * Corresponds to attribute markerUnits on the given 'marker' element.
2136 * One of the Marker Units Types defined above.
2137 */
2138 virtual SVGAnimatedEnumeration getMarkerUnits() =0;
2140 /**
2141 * Corresponds to attribute markerWidth on the given 'marker' element.
2142 */
2143 virtual SVGAnimatedLength getMarkerWidth() =0;
2145 /**
2146 * Corresponds to attribute markerHeight on the given 'marker' element.
2147 */
2148 virtual SVGAnimatedLength getMarkerHeight() =0;
2150 /**
2151 * Corresponds to attribute orient on the given 'marker' element.
2152 * One of the Marker Orientation Types defined above.
2153 */
2154 virtual SVGAnimatedEnumeration getOrientType() =0;
2156 /**
2157 * Corresponds to attribute orient on the given 'marker' element.
2158 * If markerUnits is SVG_MARKER_ORIENT_ANGLE, the angle value for
2159 * attribute orient; otherwise, it will be set to zero.
2160 */
2161 virtual SVGAnimatedAngle getOrientAngle() =0;
2164 /**
2165 * Sets the value of attribute orient to 'auto'.
2166 */
2167 virtual void setOrientToAuto ( ) =0;
2169 /**
2170 * Sets the value of attribute orient to the given angle.
2171 */
2172 virtual void setOrientToAngle (const SVGAngle &angle) =0;
2176 //##################
2177 //# Non-API methods
2178 //##################
2180 /**
2181 *
2182 */
2183 virtual ~SVGMarkerElement() {}
2185 };
2192 /*#########################################################################
2193 ## SVGColorProfileElement
2194 #########################################################################*/
2196 /**
2197 * The SVGColorProfileElement interface corresponds to the
2198 * 'color-profile' element.
2199 */
2200 class SVGColorProfileElement :
2201 virtual public SVGElement,
2202 public SVGURIReference,
2203 public SVGRenderingIntent
2204 {
2205 public:
2207 /**
2208 * Get the attribute local on the given element.
2209 */
2210 virtual DOMString getLocal() =0;
2212 /**
2213 * Set the attribute local on the given element.
2214 */
2215 virtual void setLocal(const DOMString &val)
2216 throw (DOMException) =0;
2218 /**
2219 * Get the attribute name on the given element.
2220 */
2221 virtual DOMString getName() =0;
2223 /**
2224 * Set the attribute name on the given element.
2225 */
2226 virtual void setName(const DOMString &val)
2227 throw (DOMException) =0;
2229 /**
2230 * Set the attribute rendering-intent on the given element.
2231 * The type of rendering intent, identified by one of the
2232 * SVGRenderingIntent constants.
2233 */
2234 virtual unsigned short getRenderingIntent() =0;
2236 /**
2237 * Get the attribute rendering-intent on the given element.
2238 */
2239 virtual void setRenderingIntent(unsigned short val)
2240 throw (DOMException) =0;
2244 //##################
2245 //# Non-API methods
2246 //##################
2248 /**
2249 *
2250 */
2251 virtual ~SVGColorProfileElement() {}
2253 };
2258 /*#########################################################################
2259 ## SVGGradientElement
2260 #########################################################################*/
2262 /**
2263 * The SVGGradientElement interface is a base interface used by
2264 * SVGLinearGradientElement and SVGRadialGradientElement.
2265 */
2266 class SVGGradientElement :
2267 virtual public SVGElement,
2268 public SVGURIReference,
2269 public SVGExternalResourcesRequired,
2270 public SVGStylable,
2271 public SVGUnitTypes
2272 {
2274 public:
2276 /**
2277 * Spread Method Types
2278 */
2279 typedef enum
2280 {
2281 SVG_SPREADMETHOD_UNKNOWN = 0,
2282 SVG_SPREADMETHOD_PAD = 1,
2283 SVG_SPREADMETHOD_REFLECT = 2,
2284 SVG_SPREADMETHOD_REPEAT = 3
2285 } SpreadMethodType;
2288 /**
2289 * Corresponds to attribute gradientUnits on the given element.
2290 * Takes one of the constants defined in SVGUnitTypes.
2291 */
2292 virtual SVGAnimatedEnumeration getGradientUnits() =0;
2294 /**
2295 * Corresponds to attribute gradientTransform on the given element.
2296 */
2297 virtual SVGAnimatedTransformList getGradientTransform() =0;
2299 /**
2300 * Corresponds to attribute spreadMethod on the given element.
2301 * One of the Spread Method Types.
2302 */
2303 virtual SVGAnimatedEnumeration getSpreadMethod() =0;
2307 //##################
2308 //# Non-API methods
2309 //##################
2311 /**
2312 *
2313 */
2314 virtual ~SVGGradientElement() {}
2316 };
2323 /*#########################################################################
2324 ## SVGLinearGradientElement
2325 #########################################################################*/
2327 /**
2328 * The SVGLinearGradientElement interface corresponds to the
2329 * 'linearGradient' element.
2330 */
2331 class SVGLinearGradientElement : virtual public SVGGradientElement
2332 {
2333 public:
2336 /**
2337 * Corresponds to attribute x1 on the given 'linearGradient' element.
2338 */
2339 virtual SVGAnimatedLength getX1() =0;
2341 /**
2342 * Corresponds to attribute y1 on the given 'linearGradient' element.
2343 */
2344 virtual SVGAnimatedLength getY1() =0;
2346 /**
2347 * Corresponds to attribute x2 on the given 'linearGradient' element.
2348 */
2349 virtual SVGAnimatedLength getX2() =0;
2351 /**
2352 * Corresponds to attribute y2 on the given 'linearGradient' element.
2353 */
2354 virtual SVGAnimatedLength getY2() =0;
2357 //##################
2358 //# Non-API methods
2359 //##################
2361 /**
2362 *
2363 */
2364 virtual ~SVGLinearGradientElement() {}
2366 };
2373 /*#########################################################################
2374 ## SVGRadialGradientElement
2375 #########################################################################*/
2377 /**
2378 * The SVGRadialGradientElement interface corresponds to the
2379 * 'radialGradient' element.
2380 */
2381 class SVGRadialGradientElement : virtual public SVGGradientElement
2382 {
2384 public:
2386 /**
2387 * Corresponds to attribute cx on the given 'radialGradient' element.
2388 */
2389 virtual SVGAnimatedLength getCx() =0;
2392 /**
2393 * Corresponds to attribute cy on the given 'radialGradient' element.
2394 */
2395 virtual SVGAnimatedLength getCy() =0;
2398 /**
2399 * Corresponds to attribute r on the given 'radialGradient' element.
2400 */
2401 virtual SVGAnimatedLength getR() =0;
2404 /**
2405 * Corresponds to attribute fx on the given 'radialGradient' element.
2406 */
2407 virtual SVGAnimatedLength getFx() =0;
2410 /**
2411 * Corresponds to attribute fy on the given 'radialGradient' element.
2412 */
2413 virtual SVGAnimatedLength getFy() =0;
2418 //##################
2419 //# Non-API methods
2420 //##################
2422 /**
2423 *
2424 */
2425 virtual ~SVGRadialGradientElement() {}
2427 };
2434 /*#########################################################################
2435 ## SVGStopElement
2436 #########################################################################*/
2438 /**
2439 * The SVGStopElement interface corresponds to the 'stop' element.
2440 */
2441 class SVGStopElement :
2442 virtual public SVGElement,
2443 public SVGStylable
2444 {
2445 public:
2447 /**
2448 * Corresponds to attribute offset on the given 'stop' element.
2449 */
2450 virtual SVGAnimatedNumber getOffset() =0;
2454 //##################
2455 //# Non-API methods
2456 //##################
2458 /**
2459 *
2460 */
2461 virtual ~SVGStopElement() {}
2463 };
2470 /*#########################################################################
2471 ## SVGPatternElement
2472 #########################################################################*/
2474 /**
2475 * The SVGPatternElement interface corresponds to the 'pattern' element.
2476 */
2477 class SVGPatternElement :
2478 virtual public SVGElement,
2479 public SVGURIReference,
2480 public SVGTests,
2481 public SVGLangSpace,
2482 public SVGExternalResourcesRequired,
2483 public SVGStylable,
2484 public SVGFitToViewBox,
2485 public SVGUnitTypes
2486 {
2488 public:
2490 /**
2491 * Corresponds to attribute patternUnits on the given 'pattern' element. Takes
2492 * one of the constants defined in SVGUnitTypes.
2493 */
2494 virtual SVGAnimatedEnumeration getPatternUnits() =0;
2496 /**
2497 * Corresponds to attribute patternContentUnits on the given 'pattern'
2498 * element. Takes one of the constants defined in SVGUnitTypes.
2499 */
2500 virtual SVGAnimatedEnumeration getPatternContentUnits() =0;
2502 /**
2503 * Corresponds to attribute patternTransform on the given 'pattern' element.
2504 */
2505 virtual SVGAnimatedTransformList getPatternTransform() =0;
2507 /**
2508 * Corresponds to attribute x on the given 'pattern' element.
2509 */
2510 virtual SVGAnimatedLength getX() =0;
2512 /**
2513 *
2514 */
2515 virtual SVGAnimatedLength getY() =0;
2517 /**
2518 * Corresponds to attribute width on the given 'pattern' element.
2519 */
2520 virtual SVGAnimatedLength getWidth() =0;
2522 /**
2523 * Corresponds to attribute height on the given 'pattern' element.
2524 */
2525 virtual SVGAnimatedLength getHeight() =0;
2529 //##################
2530 //# Non-API methods
2531 //##################
2533 /**
2534 *
2535 */
2536 virtual ~SVGPatternElement() {}
2538 };
2545 /*#########################################################################
2546 ## SVGClipPathElement
2547 #########################################################################*/
2549 /**
2550 * The SVGClipPathElement interface corresponds to the 'clipPath' element.
2551 */
2552 class SVGClipPathElement :
2553 virtual public SVGElement,
2554 public SVGTests,
2555 public SVGLangSpace,
2556 public SVGExternalResourcesRequired,
2557 public SVGStylable,
2558 public SVGTransformable,
2559 public SVGUnitTypes
2560 {
2562 public:
2564 /**
2565 * Corresponds to attribute clipPathUnits on the given 'clipPath' element.
2566 * Takes one of the constants defined in SVGUnitTypes.
2567 */
2568 virtual SVGAnimatedEnumeration getClipPathUnits() =0;
2573 //##################
2574 //# Non-API methods
2575 //##################
2577 /**
2578 *
2579 */
2580 virtual ~SVGClipPathElement() {}
2582 };
2589 /*#########################################################################
2590 ## SVGMaskElement
2591 #########################################################################*/
2593 /**
2594 * The SVGMaskElement interface corresponds to the 'mask' element.
2595 */
2596 class SVGMaskElement :
2597 virtual public SVGElement,
2598 public SVGTests,
2599 public SVGLangSpace,
2600 public SVGExternalResourcesRequired,
2601 public SVGStylable,
2602 public SVGUnitTypes
2603 {
2604 public:
2608 /**
2609 * Corresponds to attribute maskUnits on the given 'mask' element. Takes one of
2610 * the constants defined in SVGUnitTypes.
2611 */
2612 virtual SVGAnimatedEnumeration getMaskUnits() =0;
2614 /**
2615 * Corresponds to attribute maskContentUnits on the given 'mask' element. Takes
2616 * one of the constants defined in SVGUnitTypes.
2617 */
2618 virtual SVGAnimatedEnumeration getMaskContentUnits() =0;
2620 /**
2621 * Corresponds to attribute x on the given 'mask' element.
2622 */
2623 virtual SVGAnimatedLength getX() =0;
2625 /**
2626 * Corresponds to attribute y on the given 'mask' element.
2627 */
2628 virtual SVGAnimatedLength getY() =0;
2630 /**
2631 * Corresponds to attribute width on the given 'mask' element.
2632 */
2633 virtual SVGAnimatedLength getWidth() =0;
2635 /**
2636 * Corresponds to attribute height on the given 'mask' element.
2637 */
2638 virtual SVGAnimatedLength getHeight() =0;
2640 //##################
2641 //# Non-API methods
2642 //##################
2644 /**
2645 *
2646 */
2647 virtual ~SVGMaskElement() {}
2649 };
2656 /*#########################################################################
2657 ## SVGFilterElement
2658 #########################################################################*/
2660 /**
2661 * The SVGFilterElement interface corresponds to the 'filter' element.
2662 */
2663 class SVGFilterElement :
2664 virtual public SVGElement,
2665 public SVGURIReference,
2666 public SVGLangSpace,
2667 public SVGExternalResourcesRequired,
2668 public SVGStylable,
2669 public SVGUnitTypes
2670 {
2672 public:
2674 /**
2675 * Corresponds to attribute filterUnits on the given 'filter' element. Takes one
2676 * of the constants defined in SVGUnitTypes.
2677 */
2678 virtual SVGAnimatedEnumeration getFilterUnits() =0;
2680 /**
2681 * Corresponds to attribute primitiveUnits on the given 'filter' element. Takes
2682 * one of the constants defined in SVGUnitTypes.
2683 */
2684 virtual SVGAnimatedEnumeration getPrimitiveUnits() =0;
2686 /**
2687 *
2688 */
2689 virtual SVGAnimatedLength getX() =0;
2691 /**
2692 * Corresponds to attribute x on the given 'filter' element.
2693 */
2694 virtual SVGAnimatedLength getY() =0;
2696 /**
2697 * Corresponds to attribute y on the given 'filter' element.
2698 */
2699 virtual SVGAnimatedLength getWidth() =0;
2701 /**
2702 * Corresponds to attribute height on the given 'filter' element.
2703 */
2704 virtual SVGAnimatedLength getHeight() =0;
2707 /**
2708 * Corresponds to attribute filterRes on the given 'filter' element.
2709 * Contains the X component of attribute filterRes.
2710 */
2711 virtual SVGAnimatedInteger getFilterResX() =0;
2713 /**
2714 * Corresponds to attribute filterRes on the given 'filter' element.
2715 * Contains the Y component (possibly computed automatically)
2716 * of attribute filterRes.
2717 */
2718 virtual SVGAnimatedInteger getFilterResY() =0;
2720 /**
2721 * Sets the values for attribute filterRes.
2722 */
2723 virtual void setFilterRes (unsigned long filterResX,
2724 unsigned long filterResY ) =0;
2728 //##################
2729 //# Non-API methods
2730 //##################
2732 /**
2733 *
2734 */
2735 virtual ~SVGFilterElement() {}
2737 };
2743 /*#########################################################################
2744 ## SVGFEBlendElement
2745 #########################################################################*/
2747 /**
2748 * The SVGFEBlendElement interface corresponds to the 'feBlend' element.
2749 */
2750 class SVGFEBlendElement :
2751 virtual public SVGElement,
2752 public SVGFilterPrimitiveStandardAttributes
2753 {
2754 public:
2757 /**
2758 * Blend Mode Types
2759 */
2760 typedef enum
2761 {
2762 SVG_FEBLEND_MODE_UNKNOWN = 0,
2763 SVG_FEBLEND_MODE_NORMAL = 1,
2764 SVG_FEBLEND_MODE_MULTIPLY = 2,
2765 SVG_FEBLEND_MODE_SCREEN = 3,
2766 SVG_FEBLEND_MODE_DARKEN = 4,
2767 SVG_FEBLEND_MODE_LIGHTEN = 5
2768 } BlendModeType;
2770 /**
2771 * Corresponds to attribute in on the given 'feBlend' element.
2772 */
2773 virtual SVGAnimatedString getIn1() =0;
2775 /**
2776 * Corresponds to attribute in2 on the given 'feBlend' element.
2777 */
2778 virtual SVGAnimatedString getIn2() =0;
2780 /**
2781 * Corresponds to attribute mode on the given 'feBlend' element.
2782 * Takes one of the Blend Mode Types.
2783 */
2784 virtual SVGAnimatedEnumeration getMode() =0;
2787 //##################
2788 //# Non-API methods
2789 //##################
2791 /**
2792 *
2793 */
2794 virtual ~SVGFEBlendElement() {}
2796 };
2803 /*#########################################################################
2804 ## SVGFEColorMatrixElement
2805 #########################################################################*/
2807 /**
2808 * The SVGFEColorMatrixElement interface corresponds to the
2809 * 'feColorMatrix' element.
2810 */
2811 class SVGFEColorMatrixElement :
2812 virtual public SVGElement,
2813 public SVGFilterPrimitiveStandardAttributes
2814 {
2816 public:
2818 /**
2819 * Color Matrix Types
2820 */
2821 typedef enum
2822 {
2823 SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0,
2824 SVG_FECOLORMATRIX_TYPE_MATRIX = 1,
2825 SVG_FECOLORMATRIX_TYPE_SATURATE = 2,
2826 SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3,
2827 SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4
2828 } ColorMatrixType;
2831 /**
2832 * Corresponds to attribute in on the given 'feColorMatrix' element.
2833 */
2834 virtual SVGAnimatedString getIn1() =0;
2836 /**
2837 * Corresponds to attribute type on the given 'feColorMatrix' element.
2838 * Takes one of the Color Matrix Types.
2839 */
2840 virtual SVGAnimatedEnumeration getType() =0;
2842 /**
2843 * Corresponds to attribute values on the given 'feColorMatrix' element.
2844 * Provides access to the contents of the values attribute.
2845 */
2846 virtual SVGAnimatedNumberList getValues() =0;
2850 //##################
2851 //# Non-API methods
2852 //##################
2854 /**
2855 *
2856 */
2857 virtual ~SVGFEColorMatrixElement() {}
2859 };
2866 /*#########################################################################
2867 ## SVGFEComponentTransferElement
2868 #########################################################################*/
2870 /**
2871 * The SVGFEComponentTransferElement interface corresponds to
2872 * the 'feComponentTransfer' element.
2873 */
2874 class SVGFEComponentTransferElement :
2875 virtual public SVGElement,
2876 public SVGFilterPrimitiveStandardAttributes
2877 {
2878 public:
2880 /**
2881 * Corresponds to attribute in on the given 'feComponentTransfer' element.
2882 */
2883 virtual SVGAnimatedString getIn1() =0;
2885 //##################
2886 //# Non-API methods
2887 //##################
2889 /**
2890 *
2891 */
2892 virtual ~SVGFEComponentTransferElement() {}
2894 };
2901 /*#########################################################################
2902 ## SVGComponentTransferFunctionElement
2903 #########################################################################*/
2905 /**
2906 * This interface defines a base interface used by the component
2907 * transfer function interfaces.
2908 */
2909 class SVGComponentTransferFunctionElement : virtual public SVGElement
2910 {
2911 public:
2914 /**
2915 * Component Transfer Types
2916 */
2917 typedef enum
2918 {
2919 SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0,
2920 SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,
2921 SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2,
2922 SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,
2923 SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4,
2924 SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5
2925 } ComponentTransferType;
2928 /**
2929 * Corresponds to attribute type on the given element. Takes one\
2930 * of the Component Transfer Types.
2931 */
2932 virtual SVGAnimatedEnumeration getType() =0;
2934 /**
2935 * Corresponds to attribute tableValues on the given element.
2936 */
2937 virtual SVGAnimatedNumberList getTableValues() =0;
2939 /**
2940 * Corresponds to attribute slope on the given element.
2941 */
2942 virtual SVGAnimatedNumber getSlope() =0;
2944 /**
2945 * Corresponds to attribute intercept on the given element.
2946 */
2947 virtual SVGAnimatedNumber getIntercept() =0;
2949 /**
2950 * Corresponds to attribute amplitude on the given element.
2951 */
2952 virtual SVGAnimatedNumber getAmplitude() =0;
2954 /**
2955 * Corresponds to attribute exponent on the given element.
2956 */
2957 virtual SVGAnimatedNumber getExponent() =0;
2959 /**
2960 * Corresponds to attribute offset on the given element.
2961 */
2962 virtual SVGAnimatedNumber getOffset() =0;
2965 //##################
2966 //# Non-API methods
2967 //##################
2969 /**
2970 *
2971 */
2972 virtual ~SVGComponentTransferFunctionElement() {}
2974 };
2981 /*#########################################################################
2982 ## SVGFEFuncRElement
2983 #########################################################################*/
2985 /**
2986 * The SVGFEFuncRElement interface corresponds to the 'feFuncR' element.
2987 */
2988 class SVGFEFuncRElement : virtual public SVGComponentTransferFunctionElement
2989 {
2990 public:
2992 //##################
2993 //# Non-API methods
2994 //##################
2996 /**
2997 *
2998 */
2999 virtual ~SVGFEFuncRElement() {}
3001 };
3006 /*#########################################################################
3007 ## SVGFEFuncGElement
3008 #########################################################################*/
3010 /**
3011 * The SVGFEFuncGElement interface corresponds to the 'feFuncG' element.
3012 */
3013 class SVGFEFuncGElement : public virtual SVGComponentTransferFunctionElement
3014 {
3015 public:
3017 //##################
3018 //# Non-API methods
3019 //##################
3021 /**
3022 *
3023 */
3024 virtual ~SVGFEFuncGElement() {}
3026 };
3031 /*#########################################################################
3032 ## SVGFEFuncBElement
3033 #########################################################################*/
3035 /**
3036 * The SVGFEFuncBElement interface corresponds to the 'feFuncB' element.
3037 */
3038 class SVGFEFuncBElement : virtual public SVGComponentTransferFunctionElement
3039 {
3040 public:
3042 //##################
3043 //# Non-API methods
3044 //##################
3046 /**
3047 *
3048 */
3049 virtual ~SVGFEFuncBElement() {}
3051 };
3056 /*#########################################################################
3057 ## SVGFEFuncAElement
3058 #########################################################################*/
3060 /**
3061 * The SVGFEFuncAElement interface corresponds to the 'feFuncA' element.
3062 */
3063 class SVGFEFuncAElement : virtual public SVGComponentTransferFunctionElement
3064 {
3065 public:
3067 //##################
3068 //# Non-API methods
3069 //##################
3071 /**
3072 *
3073 */
3074 virtual ~SVGFEFuncAElement() {}
3076 };
3081 /*#########################################################################
3082 ## SVGFECompositeElement
3083 #########################################################################*/
3085 /**
3086 * The SVGFECompositeElement interface corresponds to the 'feComposite' element.
3087 */
3088 class SVGFECompositeElement :
3089 virtual public SVGElement,
3090 public SVGFilterPrimitiveStandardAttributes
3091 {
3092 public:
3096 /**
3097 * Composite Operators
3098 */
3099 typedef enum
3100 {
3101 SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0,
3102 SVG_FECOMPOSITE_OPERATOR_OVER = 1,
3103 SVG_FECOMPOSITE_OPERATOR_IN = 2,
3104 SVG_FECOMPOSITE_OPERATOR_OUT = 3,
3105 SVG_FECOMPOSITE_OPERATOR_ATOP = 4,
3106 SVG_FECOMPOSITE_OPERATOR_XOR = 5,
3107 SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6
3108 } CompositeOperatorType;
3110 /**
3111 * Corresponds to attribute in on the given 'feComposite' element.
3112 */
3113 virtual SVGAnimatedString getIn1() =0;
3115 /**
3116 * Corresponds to attribute in2 on the given 'feComposite' element.
3117 */
3118 virtual SVGAnimatedString getIn2() =0;
3120 /**
3121 * Corresponds to attribute operator on the given 'feComposite' element.
3122 * Takes one of the Composite Operators.
3123 */
3124 virtual SVGAnimatedEnumeration getOperator() =0;
3126 /**
3127 * Corresponds to attribute k1 on the given 'feComposite' element.
3128 */
3129 virtual SVGAnimatedNumber getK1() =0;
3131 /**
3132 * Corresponds to attribute k2 on the given 'feComposite' element.
3133 */
3134 virtual SVGAnimatedNumber getK2() =0;
3136 /**
3137 * Corresponds to attribute k3 on the given 'feComposite' element.
3138 */
3139 virtual SVGAnimatedNumber getK3() =0;
3141 /**
3142 * Corresponds to attribute k4 on the given 'feComposite' element.
3143 */
3144 virtual SVGAnimatedNumber getK4() =0;
3148 //##################
3149 //# Non-API methods
3150 //##################
3152 /**
3153 *
3154 */
3155 virtual ~SVGFECompositeElement() {}
3157 };
3164 /*#########################################################################
3165 ## SVGFEConvolveMatrixElement
3166 #########################################################################*/
3168 /**
3169 * The SVGFEConvolveMatrixElement interface corresponds to
3170 * the 'feConvolveMatrix' element.
3171 */
3172 class SVGFEConvolveMatrixElement :
3173 virtual public SVGElement,
3174 public SVGFilterPrimitiveStandardAttributes
3175 {
3177 public:
3179 /**
3180 * Edge Mode Values
3181 */
3182 typedef enum
3183 {
3184 SVG_EDGEMODE_UNKNOWN = 0,
3185 SVG_EDGEMODE_DUPLICATE = 1,
3186 SVG_EDGEMODE_WRAP = 2,
3187 SVG_EDGEMODE_NONE = 3
3188 } EdgeModeType;
3191 /**
3192 * Corresponds to attribute order on the given 'feConvolveMatrix' element.
3193 */
3194 virtual SVGAnimatedInteger getOrderX() =0;
3196 /**
3197 * Corresponds to attribute order on the given 'feConvolveMatrix' element.
3198 */
3199 virtual SVGAnimatedInteger getOrderY() =0;
3201 /**
3202 * Corresponds to attribute kernelMatrix on the given element.
3203 */
3204 virtual SVGAnimatedNumberList getKernelMatrix() =0;
3206 /**
3207 * Corresponds to attribute divisor on the given 'feConvolveMatrix' element.
3208 */
3209 virtual SVGAnimatedNumber getDivisor() =0;
3211 /**
3212 * Corresponds to attribute bias on the given 'feConvolveMatrix' element.
3213 */
3214 virtual SVGAnimatedNumber getBias() =0;
3216 /**
3217 * Corresponds to attribute targetX on the given 'feConvolveMatrix' element.
3218 */
3219 virtual SVGAnimatedInteger getTargetX() =0;
3221 /**
3222 * Corresponds to attribute targetY on the given 'feConvolveMatrix' element.
3223 */
3224 virtual SVGAnimatedInteger getTargetY() =0;
3226 /**
3227 * Corresponds to attribute edgeMode on the given 'feConvolveMatrix'
3228 * element. Takes one of the Edge Mode Types.
3229 */
3230 virtual SVGAnimatedEnumeration getEdgeMode() =0;
3232 /**
3233 * Corresponds to attribute kernelUnitLength on the
3234 * given 'feConvolveMatrix' element.
3235 */
3236 virtual SVGAnimatedLength getKernelUnitLengthX() =0;
3238 /**
3239 * Corresponds to attribute kernelUnitLength on the given
3240 * 'feConvolveMatrix' element.
3241 */
3242 virtual SVGAnimatedLength getKernelUnitLengthY() =0;
3244 /**
3245 * Corresponds to attribute preserveAlpha on the
3246 * given 'feConvolveMatrix' element.
3247 */
3248 virtual SVGAnimatedBoolean getPreserveAlpha() =0;
3252 //##################
3253 //# Non-API methods
3254 //##################
3256 /**
3257 *
3258 */
3259 virtual ~SVGFEConvolveMatrixElement() {}
3261 };
3268 /*#########################################################################
3269 ## SVGFEDiffuseLightingElement
3270 #########################################################################*/
3272 /**
3273 * The SVGFEDiffuseLightingElement interface corresponds to the
3274 * 'feDiffuseLighting' element.
3275 */
3276 class SVGFEDiffuseLightingElement :
3277 virtual public SVGElement,
3278 public SVGFilterPrimitiveStandardAttributes
3279 {
3280 public:
3282 /**
3283 * Corresponds to attribute in on the given 'feDiffuseLighting' element.
3284 */
3285 virtual SVGAnimatedString getIn1() =0;
3287 /**
3288 * Corresponds to attribute surfaceScale on the given
3289 * 'feDiffuseLighting' element.
3290 */
3291 virtual SVGAnimatedNumber getSurfaceScale() =0;
3293 /**
3294 * Corresponds to attribute diffuseConstant on the given
3295 * 'feDiffuseLighting' element.
3296 */
3297 virtual SVGAnimatedNumber getDiffuseConstant() =0;
3299 /**
3300 * Corresponds to attribute kernelUnitLength on the given
3301 * 'feDiffuseLighting' element.
3302 */
3303 virtual SVGAnimatedNumber getKernelUnitLengthX() =0;
3305 /**
3306 * Corresponds to attribute kernelUnitLength on the given
3307 * 'feDiffuseLighting' element.
3308 */
3309 virtual SVGAnimatedNumber getKernelUnitLengthY() =0;
3313 //##################
3314 //# Non-API methods
3315 //##################
3317 /**
3318 *
3319 */
3320 virtual ~SVGFEDiffuseLightingElement() {}
3322 };
3329 /*#########################################################################
3330 ## SVGFEDistantLightElement
3331 #########################################################################*/
3333 /**
3334 * The SVGFEDistantLightElement interface corresponds to the
3335 * 'feDistantLight' element.
3336 */
3337 class SVGFEDistantLightElement : virtual public SVGElement
3338 {
3339 public:
3341 /**
3342 * Corresponds to attribute azimuth on the given 'feDistantLight' element.
3343 */
3344 virtual SVGAnimatedNumber getAzimuth() =0;
3347 /**
3348 * Corresponds to attribute elevation on the given 'feDistantLight'
3349 * element
3350 */
3351 virtual SVGAnimatedNumber getElevation() =0;
3355 //##################
3356 //# Non-API methods
3357 //##################
3359 /**
3360 *
3361 */
3362 virtual ~SVGFEDistantLightElement() {}
3364 };
3371 /*#########################################################################
3372 ## SVGFEPointLightElement
3373 #########################################################################*/
3375 /**
3376 * The SVGFEPointLightElement interface corresponds to the 'fePointLight' element.
3377 */
3378 class SVGFEPointLightElement : virtual public SVGElement
3379 {
3380 public:
3382 /**
3383 * Corresponds to attribute x on the given 'fePointLight' element.
3384 */
3385 virtual SVGAnimatedNumber getX() =0;
3387 /**
3388 * Corresponds to attribute y on the given 'fePointLight' element.
3389 */
3390 virtual SVGAnimatedNumber getY() =0;
3392 /**
3393 * Corresponds to attribute z on the given 'fePointLight' element.
3394 */
3395 virtual SVGAnimatedNumber getZ() =0;
3397 //##################
3398 //# Non-API methods
3399 //##################
3401 /**
3402 *
3403 */
3404 virtual ~SVGFEPointLightElement() {}
3406 };
3413 /*#########################################################################
3414 ## SVGFESpotLightElement
3415 #########################################################################*/
3417 /**
3418 * The SVGFESpotLightElement interface corresponds to the 'feSpotLight' element.
3419 */
3420 class SVGFESpotLightElement : virtual public SVGElement
3421 {
3422 public:
3424 /**
3425 * Corresponds to attribute x on the given 'feSpotLight' element.
3426 */
3427 virtual SVGAnimatedNumber getX() =0;
3429 /**
3430 * Corresponds to attribute y on the given 'feSpotLight' element.
3431 */
3432 virtual SVGAnimatedNumber getY() =0;
3434 /**
3435 * Corresponds to attribute z on the given 'feSpotLight' element.
3436 */
3437 virtual SVGAnimatedNumber getZ() =0;
3439 /**
3440 * Corresponds to attribute pointsAtX on the given 'feSpotLight' element.
3441 */
3442 virtual SVGAnimatedNumber getPointsAtX() =0;
3444 /**
3445 * Corresponds to attribute pointsAtY on the given 'feSpotLight' element.
3446 */
3447 virtual SVGAnimatedNumber getPointsAtY() =0;
3449 /**
3450 * Corresponds to attribute pointsAtZ on the given 'feSpotLight' element.
3451 */
3452 virtual SVGAnimatedNumber getPointsAtZ() =0;
3454 /**
3455 * Corresponds to attribute specularExponent on the
3456 * given 'feSpotLight' element.
3457 */
3458 virtual SVGAnimatedNumber getSpecularExponent() =0;
3460 /**
3461 * Corresponds to attribute limitingConeAngle on the
3462 * given 'feSpotLight' element.
3463 */
3464 virtual SVGAnimatedNumber getLimitingConeAngle() =0;
3468 //##################
3469 //# Non-API methods
3470 //##################
3472 /**
3473 *
3474 */
3475 virtual ~SVGFESpotLightElement() {}
3477 };
3484 /*#########################################################################
3485 ## SVGFEDisplacementMapElement
3486 #########################################################################*/
3488 /**
3489 *
3490 */
3491 class SVGFEDisplacementMapElement :
3492 virtual public SVGElement,
3493 public SVGFilterPrimitiveStandardAttributes
3494 {
3495 public:
3499 /**
3500 * Channel Selectors
3501 */
3502 typedef enum
3503 {
3504 SVG_CHANNEL_UNKNOWN = 0,
3505 SVG_CHANNEL_R = 1,
3506 SVG_CHANNEL_G = 2,
3507 SVG_CHANNEL_B = 3,
3508 SVG_CHANNEL_A = 4
3509 } ChannelSelector;
3511 /**
3512 *
3513 */
3514 virtual SVGAnimatedString getIn1() =0;
3516 /**
3517 *
3518 */
3519 virtual SVGAnimatedString getIn2() =0;
3522 /**
3523 *
3524 */
3525 virtual SVGAnimatedNumber getScale() =0;
3527 /**
3528 *
3529 */
3530 virtual SVGAnimatedEnumeration getXChannelSelector() =0;
3532 /**
3533 *
3534 */
3535 virtual SVGAnimatedEnumeration getYChannelSelector() =0;
3539 //##################
3540 //# Non-API methods
3541 //##################
3543 /**
3544 *
3545 */
3546 virtual ~SVGFEDisplacementMapElement() {}
3548 };
3555 /*#########################################################################
3556 ## SVGFEFloodElement
3557 #########################################################################*/
3559 /**
3560 *
3561 */
3562 class SVGFEFloodElement :
3563 virtual public SVGElement,
3564 public SVGFilterPrimitiveStandardAttributes
3565 {
3566 public:
3567 /**
3568 *
3569 */
3570 virtual SVGAnimatedString getIn1() =0;
3573 //##################
3574 //# Non-API methods
3575 //##################
3577 /**
3578 *
3579 */
3580 virtual ~SVGFEFloodElement() {}
3582 };
3589 /*#########################################################################
3590 ## SVGFEGaussianBlurElement
3591 #########################################################################*/
3593 /**
3594 *
3595 */
3596 class SVGFEGaussianBlurElement :
3597 virtual public SVGElement,
3598 public SVGFilterPrimitiveStandardAttributes
3599 {
3600 public:
3601 /**
3602 *
3603 */
3604 virtual SVGAnimatedString getIn1() =0;
3607 /**
3608 *
3609 */
3610 virtual SVGAnimatedNumber getStdDeviationX() =0;
3612 /**
3613 *
3614 */
3615 virtual SVGAnimatedNumber getStdDeviationY() =0;
3618 /**
3619 *
3620 */
3621 virtual void setStdDeviation (double stdDeviationX, double stdDeviationY ) =0;
3625 //##################
3626 //# Non-API methods
3627 //##################
3629 /**
3630 *
3631 */
3632 virtual ~SVGFEGaussianBlurElement() {}
3634 };
3641 /*#########################################################################
3642 ## SVGFEImageElement
3643 #########################################################################*/
3645 /**
3646 *
3647 */
3648 class SVGFEImageElement :
3649 virtual public SVGElement,
3650 public SVGURIReference,
3651 public SVGLangSpace,
3652 public SVGExternalResourcesRequired,
3653 public SVGFilterPrimitiveStandardAttributes
3654 {
3655 public:
3657 //##################
3658 //# Non-API methods
3659 //##################
3661 /**
3662 *
3663 */
3664 virtual ~SVGFEImageElement() {}
3666 };
3671 /*#########################################################################
3672 ## SVGFEMergeElement
3673 #########################################################################*/
3675 /**
3676 *
3677 */
3678 class SVGFEMergeElement :
3679 virtual public SVGElement,
3680 public SVGFilterPrimitiveStandardAttributes
3681 {
3682 public:
3684 //##################
3685 //# Non-API methods
3686 //##################
3688 /**
3689 *
3690 */
3691 virtual ~SVGFEMergeElement() {}
3693 };
3698 /*#########################################################################
3699 ## SVGFEMergeNodeElement
3700 #########################################################################*/
3702 /**
3703 *
3704 */
3705 class SVGFEMergeNodeElement : virtual public SVGElement
3706 {
3707 public:
3708 /**
3709 *
3710 */
3711 virtual SVGAnimatedString getIn1() =0;
3714 //##################
3715 //# Non-API methods
3716 //##################
3718 /**
3719 *
3720 */
3721 virtual ~SVGFEMergeNodeElement() {}
3723 };
3730 /*#########################################################################
3731 ## SVGFEMorphologyElement
3732 #########################################################################*/
3734 /**
3735 *
3736 */
3737 class SVGFEMorphologyElement :
3738 virtual public SVGElement,
3739 public SVGFilterPrimitiveStandardAttributes
3740 {
3741 public:
3745 /**
3746 * Morphology Operators
3747 */
3748 typedef enum
3749 {
3750 SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0,
3751 SVG_MORPHOLOGY_OPERATOR_ERODE = 1,
3752 SVG_MORPHOLOGY_OPERATOR_DILATE = 2
3753 } MorphologyOperatorType;
3756 /**
3757 *
3758 */
3759 virtual SVGAnimatedString getIn1() =0;
3762 /**
3763 *
3764 */
3765 virtual SVGAnimatedEnumeration getOperator() =0;
3767 /**
3768 *
3769 */
3770 virtual SVGAnimatedLength getRadiusX() =0;
3772 /**
3773 *
3774 */
3775 virtual SVGAnimatedLength getRadiusY() =0;
3779 //##################
3780 //# Non-API methods
3781 //##################
3783 /**
3784 *
3785 */
3786 virtual ~SVGFEMorphologyElement() {}
3788 };
3795 /*#########################################################################
3796 ## SVGFEOffsetElement
3797 #########################################################################*/
3799 /**
3800 *
3801 */
3802 class SVGFEOffsetElement :
3803 virtual public SVGElement,
3804 public SVGFilterPrimitiveStandardAttributes
3805 {
3806 public:
3810 /**
3811 *
3812 */
3813 virtual SVGAnimatedString getIn1() =0;
3815 /**
3816 *
3817 */
3818 virtual SVGAnimatedLength getDx() =0;
3820 /**
3821 *
3822 */
3823 virtual SVGAnimatedLength getDy() =0;
3828 //##################
3829 //# Non-API methods
3830 //##################
3832 /**
3833 *
3834 */
3835 virtual ~SVGFEOffsetElement() {}
3837 };
3844 /*#########################################################################
3845 ## SVGFESpecularLightingElement
3846 #########################################################################*/
3848 /**
3849 *
3850 */
3851 class SVGFESpecularLightingElement :
3852 virtual public SVGElement,
3853 public SVGFilterPrimitiveStandardAttributes
3854 {
3855 public:
3857 /**
3858 *
3859 */
3860 virtual SVGAnimatedString getIn1() =0;
3862 /**
3863 *
3864 */
3865 virtual SVGAnimatedNumber getSurfaceScale() =0;
3867 /**
3868 *
3869 */
3870 virtual SVGAnimatedNumber getSpecularConstant() =0;
3872 /**
3873 *
3874 */
3875 virtual SVGAnimatedNumber getSpecularExponent() =0;
3878 //##################
3879 //# Non-API methods
3880 //##################
3882 /**
3883 *
3884 */
3885 virtual ~SVGFESpecularLightingElement() {}
3887 };
3894 /*#########################################################################
3895 ## SVGFETileElement
3896 #########################################################################*/
3898 /**
3899 *
3900 */
3901 class SVGFETileElement :
3902 virtual public SVGElement,
3903 public SVGFilterPrimitiveStandardAttributes
3904 {
3905 public:
3908 /**
3909 *
3910 */
3911 virtual SVGAnimatedString getIn1() =0;
3915 //##################
3916 //# Non-API methods
3917 //##################
3919 /**
3920 *
3921 */
3922 virtual ~SVGFETileElement() {}
3924 };
3931 /*#########################################################################
3932 ## SVGFETurbulenceElement
3933 #########################################################################*/
3935 /**
3936 *
3937 */
3938 class SVGFETurbulenceElement :
3939 virtual public SVGElement,
3940 public SVGFilterPrimitiveStandardAttributes
3941 {
3942 public:
3946 /**
3947 * Turbulence Types
3948 */
3949 typedef enum
3950 {
3951 SVG_TURBULENCE_TYPE_UNKNOWN = 0,
3952 SVG_TURBULENCE_TYPE_FRACTALNOISE = 1,
3953 SVG_TURBULENCE_TYPE_TURBULENCE = 2
3954 } TurbulenceType;
3956 /**
3957 * Stitch Options
3958 */
3959 typedef enum
3960 {
3961 SVG_STITCHTYPE_UNKNOWN = 0,
3962 SVG_STITCHTYPE_STITCH = 1,
3963 SVG_STITCHTYPE_NOSTITCH = 2
3964 } StitchOption;
3968 /**
3969 *
3970 */
3971 virtual SVGAnimatedNumber getBaseFrequencyX() =0;
3973 /**
3974 *
3975 */
3976 virtual SVGAnimatedNumber getBaseFrequencyY() =0;
3978 /**
3979 *
3980 */
3981 virtual SVGAnimatedInteger getNumOctaves() =0;
3983 /**
3984 *
3985 */
3986 virtual SVGAnimatedNumber getSeed() =0;
3988 /**
3989 *
3990 */
3991 virtual SVGAnimatedEnumeration getStitchTiles() =0;
3993 /**
3994 *
3995 */
3996 virtual SVGAnimatedEnumeration getType() =0;
4000 //##################
4001 //# Non-API methods
4002 //##################
4004 /**
4005 *
4006 */
4007 virtual ~SVGFETurbulenceElement() {}
4009 };
4016 /*#########################################################################
4017 ## SVGCursorElement
4018 #########################################################################*/
4020 /**
4021 *
4022 */
4023 class SVGCursorElement :
4024 virtual public SVGElement,
4025 public SVGURIReference,
4026 public SVGTests,
4027 public SVGExternalResourcesRequired
4028 {
4029 public:
4030 /**
4031 *
4032 */
4033 virtual SVGAnimatedLength getX() =0;
4035 /**
4036 *
4037 */
4038 virtual SVGAnimatedLength getY() =0;
4040 //##################
4041 //# Non-API methods
4042 //##################
4044 /**
4045 *
4046 */
4047 virtual ~SVGCursorElement() {}
4049 };
4056 /*#########################################################################
4057 ## SVGAElement
4058 #########################################################################*/
4060 /**
4061 *
4062 */
4063 class SVGAElement : virtual public SVGElement,
4064 public SVGURIReference,
4065 public SVGTests,
4066 public SVGLangSpace,
4067 public SVGExternalResourcesRequired,
4068 public SVGStylable,
4069 public SVGTransformable,
4070 public events::EventTarget
4071 {
4072 public:
4074 /**
4075 *
4076 */
4077 virtual SVGAnimatedString getTarget() =0;
4081 //##################
4082 //# Non-API methods
4083 //##################
4085 /**
4086 *
4087 */
4088 virtual ~SVGAElement() {}
4090 };
4097 /*#########################################################################
4098 ## SVGViewElement
4099 #########################################################################*/
4101 /**
4102 *
4103 */
4104 class SVGViewElement : virtual public SVGElement,
4105 public SVGExternalResourcesRequired,
4106 public SVGFitToViewBox,
4107 public SVGZoomAndPan
4108 {
4109 public:
4111 /**
4112 *
4113 */
4114 virtual SVGStringList getViewTarget() =0;
4118 //##################
4119 //# Non-API methods
4120 //##################
4122 /**
4123 *
4124 */
4125 virtual ~SVGViewElement() {}
4127 };
4134 /*#########################################################################
4135 ## SVGScriptElement
4136 #########################################################################*/
4138 /**
4139 *
4140 */
4141 class SVGScriptElement :
4142 virtual public SVGElement,
4143 public SVGURIReference,
4144 public SVGExternalResourcesRequired
4145 {
4146 public:
4148 /**
4149 *
4150 */
4151 virtual DOMString getType() =0;
4153 /**
4154 *
4155 */
4156 virtual void setType(const DOMString &val)
4157 throw (DOMException) =0;
4160 //##################
4161 //# Non-API methods
4162 //##################
4164 /**
4165 *
4166 */
4167 virtual ~SVGScriptElement() {}
4169 };
4175 /*#########################################################################
4176 ## SVGAnimationElement
4177 #########################################################################*/
4179 /**
4180 *
4181 */
4182 class SVGAnimationElement :
4183 virtual public SVGElement,
4184 public SVGTests,
4185 public SVGExternalResourcesRequired,
4186 public smil::ElementTimeControl,
4187 public events::EventTarget
4188 {
4189 public:
4192 /**
4193 *
4194 */
4195 virtual SVGElementPtr getTargetElement() =0;
4198 /**
4199 *
4200 */
4201 virtual double getStartTime ( ) =0;
4203 /**
4204 *
4205 */
4206 virtual double getCurrentTime ( ) =0;
4208 /**
4209 *
4210 */
4211 virtual double getSimpleDuration ( )
4212 throw( DOMException ) =0;
4213 ;
4217 //##################
4218 //# Non-API methods
4219 //##################
4221 /**
4222 *
4223 */
4224 virtual ~SVGAnimationElement() {}
4226 };
4233 /*#########################################################################
4234 ## SVGAnimateElement
4235 #########################################################################*/
4237 /**
4238 *
4239 */
4240 class SVGAnimateElement : virtual public SVGAnimationElement
4241 {
4242 public:
4244 //##################
4245 //# Non-API methods
4246 //##################
4248 /**
4249 *
4250 */
4251 virtual ~SVGAnimateElement() {}
4253 };
4258 /*#########################################################################
4259 ## SVGSetElement
4260 #########################################################################*/
4262 /**
4263 *
4264 */
4265 class SVGSetElement : virtual public SVGAnimationElement
4266 {
4267 public:
4269 //##################
4270 //# Non-API methods
4271 //##################
4273 /**
4274 *
4275 */
4276 virtual ~SVGSetElement() {}
4278 };
4283 /*#########################################################################
4284 ## SVGAnimateMotionElement
4285 #########################################################################*/
4287 /**
4288 *
4289 */
4290 class SVGAnimateMotionElement : virtual public SVGAnimationElement
4291 {
4292 public:
4294 //##################
4295 //# Non-API methods
4296 //##################
4298 /**
4299 *
4300 */
4301 virtual ~SVGAnimateMotionElement() {}
4303 };
4308 /*#########################################################################
4309 ## SVGMPathElement
4310 #########################################################################*/
4312 /**
4313 *
4314 */
4315 class SVGMPathElement :
4316 virtual public SVGElement,
4317 public SVGURIReference,
4318 public SVGExternalResourcesRequired
4319 {
4320 public:
4322 //##################
4323 //# Non-API methods
4324 //##################
4326 /**
4327 *
4328 */
4329 virtual ~SVGMPathElement() {}
4331 };
4336 /*#########################################################################
4337 ## SVGAnimateColorElement
4338 #########################################################################*/
4340 /**
4341 *
4342 */
4343 class SVGAnimateColorElement : virtual public SVGAnimationElement
4344 {
4345 public:
4347 //##################
4348 //# Non-API methods
4349 //##################
4351 /**
4352 *
4353 */
4354 virtual ~SVGAnimateColorElement() {}
4356 };
4361 /*#########################################################################
4362 ## SVGAnimateTransformElement
4363 #########################################################################*/
4365 /**
4366 *
4367 */
4368 class SVGAnimateTransformElement : virtual public SVGAnimationElement
4369 {
4370 public:
4372 //##################
4373 //# Non-API methods
4374 //##################
4376 /**
4377 *
4378 */
4379 virtual ~SVGAnimateTransformElement() {}
4381 };
4386 /*#########################################################################
4387 ## SVGFontElement
4388 #########################################################################*/
4390 /**
4391 *
4392 */
4393 class SVGFontElement : virtual public SVGElement,
4394 public SVGExternalResourcesRequired,
4395 public SVGStylable
4396 {
4397 public:
4399 //##################
4400 //# Non-API methods
4401 //##################
4403 /**
4404 *
4405 */
4406 virtual ~SVGFontElement() {}
4408 };
4413 /*#########################################################################
4414 ## SVGGlyphElement
4415 #########################################################################*/
4417 /**
4418 *
4419 */
4420 class SVGGlyphElement : virtual public SVGElement,
4421 public SVGStylable
4422 {
4423 public:
4425 //##################
4426 //# Non-API methods
4427 //##################
4429 /**
4430 *
4431 */
4432 virtual ~SVGGlyphElement() {}
4434 };
4439 /*#########################################################################
4440 ## SVGMissingGlyphElement
4441 #########################################################################*/
4443 /**
4444 *
4445 */
4446 class SVGMissingGlyphElement :
4447 virtual public SVGElement,
4448 public SVGStylable
4449 {
4450 public:
4452 //##################
4453 //# Non-API methods
4454 //##################
4456 /**
4457 *
4458 */
4459 virtual ~SVGMissingGlyphElement() {}
4461 };
4466 /*#########################################################################
4467 ## SVGHKernElement
4468 #########################################################################*/
4470 /**
4471 *
4472 */
4473 class SVGHKernElement : virtual public SVGElement
4474 {
4475 public:
4477 //##################
4478 //# Non-API methods
4479 //##################
4481 /**
4482 *
4483 */
4484 virtual ~SVGHKernElement() {}
4486 };
4491 /*#########################################################################
4492 ## SVGVKernElement
4493 #########################################################################*/
4495 /**
4496 *
4497 */
4498 class SVGVKernElement : public virtual SVGElement
4499 {
4500 public:
4502 //##################
4503 //# Non-API methods
4504 //##################
4506 /**
4507 *
4508 */
4509 virtual ~SVGVKernElement() {}
4511 };
4516 /*#########################################################################
4517 ## SVGFontFaceElement
4518 #########################################################################*/
4520 /**
4521 *
4522 */
4523 class SVGFontFaceElement : virtual public SVGElement
4524 {
4525 public:
4527 //##################
4528 //# Non-API methods
4529 //##################
4531 /**
4532 *
4533 */
4534 virtual ~SVGFontFaceElement() {}
4536 };
4541 /*#########################################################################
4542 ## SVGFontFaceSrcElement
4543 #########################################################################*/
4545 /**
4546 *
4547 */
4548 class SVGFontFaceSrcElement : virtual public SVGElement
4549 {
4550 public:
4552 //##################
4553 //# Non-API methods
4554 //##################
4556 /**
4557 *
4558 */
4559 virtual ~SVGFontFaceSrcElement() {}
4561 };
4566 /*#########################################################################
4567 ## SVGFontFaceUriElement
4568 #########################################################################*/
4570 /**
4571 *
4572 */
4573 class SVGFontFaceUriElement : virtual public SVGElement
4574 {
4575 public:
4577 //##################
4578 //# Non-API methods
4579 //##################
4581 /**
4582 *
4583 */
4584 virtual ~SVGFontFaceUriElement() {}
4586 };
4591 /*#########################################################################
4592 ## SVGFontFaceFormatElement
4593 #########################################################################*/
4595 /**
4596 *
4597 */
4598 class SVGFontFaceFormatElement : virtual public SVGElement
4599 {
4600 public:
4602 //##################
4603 //# Non-API methods
4604 //##################
4606 /**
4607 *
4608 */
4609 virtual ~SVGFontFaceFormatElement() {}
4611 };
4616 /*#########################################################################
4617 ## SVGFontFaceNameElement
4618 #########################################################################*/
4620 /**
4621 *
4622 */
4623 class SVGFontFaceNameElement : virtual public SVGElement
4624 {
4625 public:
4627 //##################
4628 //# Non-API methods
4629 //##################
4631 /**
4632 *
4633 */
4634 virtual ~SVGFontFaceNameElement() {}
4636 };
4641 /*#########################################################################
4642 ## SVGDefinitionSrcElement
4643 #########################################################################*/
4645 /**
4646 *
4647 */
4648 class SVGDefinitionSrcElement : virtual public SVGElement
4649 {
4650 public:
4652 //##################
4653 //# Non-API methods
4654 //##################
4656 /**
4657 *
4658 */
4659 virtual ~SVGDefinitionSrcElement() {}
4661 };
4666 /*#########################################################################
4667 ## SVGMetadataElement
4668 #########################################################################*/
4670 /**
4671 *
4672 */
4673 class SVGMetadataElement : virtual public SVGElement
4674 {
4675 public:
4677 //##################
4678 //# Non-API methods
4679 //##################
4681 /**
4682 *
4683 */
4684 virtual ~SVGMetadataElement() {}
4686 };
4690 /*#########################################################################
4691 ## SVGForeignObjectElement
4692 #########################################################################*/
4694 /**
4695 *
4696 */
4697 class SVGForeignObjectElement :
4698 virtual public SVGElement,
4699 public SVGTests,
4700 public SVGLangSpace,
4701 public SVGExternalResourcesRequired,
4702 public SVGStylable,
4703 public SVGTransformable,
4704 public events::EventTarget
4705 {
4706 public:
4709 /**
4710 *
4711 */
4712 virtual SVGAnimatedLength getX() =0;
4714 /**
4715 *
4716 */
4717 virtual SVGAnimatedLength getY() =0;
4719 /**
4720 *
4721 */
4722 virtual SVGAnimatedLength getWidth() =0;
4724 /**
4725 *
4726 */
4727 virtual SVGAnimatedLength getHeight() =0;
4731 //##################
4732 //# Non-API methods
4733 //##################
4736 /**
4737 *
4738 */
4739 virtual ~SVGForeignObjectElement() {}
4741 };
4747 } //namespace svg
4748 } //namespace dom
4749 } //namespace w3c
4750 } //namespace org
4752 #endif // __SVG_H__
4753 /*#########################################################################
4754 ## E N D O F F I L E
4755 #########################################################################*/