09a58a7e52ae4c7fd8ad125d643a8a232525e46c
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>
67 namespace org
68 {
69 namespace w3c
70 {
71 namespace dom
72 {
73 namespace svg
74 {
77 //local definitions
78 typedef dom::DOMString DOMString;
79 typedef dom::DOMException DOMException;
80 typedef dom::Element Element;
81 typedef dom::ElementPtr ElementPtr;
82 typedef dom::Document Document;
83 typedef dom::DocumentPtr DocumentPtr;
84 typedef dom::NodeList NodeList;
89 class SVGElement;
90 typedef Ptr<SVGElement> SVGElementPtr;
91 class SVGSVGElement;
92 typedef Ptr<SVGSVGElement> SVGSVGElementPtr;
93 class SVGDocument;
94 typedef Ptr<SVGDocument> SVGDocumentPtr;
97 /*#########################################################################
98 ## SVGElement
99 #########################################################################*/
101 /**
102 * All of the SVG DOM interfaces that correspond directly to elements in the SVG
103 * language (e.g., the SVGPathElement interface corresponds directly to the
104 * 'path' element in the language) are derivative from base class SVGElement.
105 */
106 class SVGElement : virtual public Element
107 {
108 public:
110 /**
111 * Get the value of the id attribute on the given element.
112 */
113 virtual DOMString getId() =0;
115 /**
116 * Set the value of the id attribute on the given element.
117 */
118 virtual void setId(const DOMString &val)
119 throw (DOMException) =0;
121 /**
122 * Corresponds to attribute xml:base on the given element.
123 */
124 virtual DOMString getXmlBase() = 0;
126 /**
127 * Corresponds to attribute xml:base on the given element.
128 */
129 virtual void setXmlBase(const DOMString &val)
130 throw (DOMException) = 0;
132 /**
133 * The nearest ancestor 'svg' element. Null if the given element is the
134 * outermost 'svg' element.
135 */
136 virtual SVGSVGElementPtr getOwnerSVGElement() = 0;
138 /**
139 * The element which established the current viewport. Often, the nearest
140 * ancestor 'svg' element. Null if the given element is the outermost 'svg'
141 * element.
142 */
143 virtual SVGElementPtr getViewportElement() = 0;
146 //##################
147 //# Non-API methods
148 //##################
151 /**
152 *
153 */
154 virtual ~SVGElement() {}
157 };
161 /*#########################################################################
162 ## SVGDocument
163 #########################################################################*/
165 /**
166 * When an 'svg' element is embedded inline as a component of a document from
167 * another namespace, such as when an 'svg' element is embedded inline within an
168 * XHTML document [XHTML], then an SVGDocument object will not exist; instead,
169 * the root object in the document object hierarchy will be a Document object of
170 * a different type, such as an HTMLDocument object.
171 *
172 * However, an SVGDocument object will indeed exist when the root element of the
173 * XML document hierarchy is an 'svg' element, such as when viewing a stand-alone
174 * SVG file (i.e., a file with MIME type "image/svg+xml"). In this case, the
175 * SVGDocument object will be the root object of the document object model
176 * hierarchy.
177 *
178 * In the case where an SVG document is embedded by reference, such as when an
179 * XHTML document has an 'object' element whose href attribute references an SVG
180 * document (i.e., a document whose MIME type is "image/svg+xml" and whose root
181 * element is thus an 'svg' element), there will exist two distinct DOM
182 * hierarchies. The first DOM hierarchy will be for the referencing document
183 * (e.g., an XHTML document). The second DOM hierarchy will be for the referenced
184 * SVG document. In this second DOM hierarchy, the root object of the document
185 * object model hierarchy is an SVGDocument object.
186 */
187 class SVGDocument : virtual public Document,
188 virtual public events::DocumentEvent
189 {
190 public:
193 /**
194 * The title of a document as specified by the title sub-element of the 'svg'
195 * root element (i.e., <svg><title>Here is the title</title>...</svg>)
196 */
197 virtual DOMString getTitle() =0;
199 /**
200 * Returns the URI of the page that linked to this page. The value is an empty
201 * string if the user navigated to the page directly (not through a link, but,
202 * for example, via a bookmark).
203 */
204 virtual DOMString getReferrer() =0;
206 /**
207 * The domain name of the server that served the document, or a null string if
208 * the server cannot be identified by a domain name.
209 */
210 virtual DOMString getDomain() =0;
212 /**
213 * The complete URI of the document.
214 */
215 virtual DOMString getURL() =0;
217 /**
218 * The root 'svg' element in the document hierarchy.
219 */
220 virtual SVGSVGElementPtr getRootElement() =0;
223 //##################
224 //# Non-API methods
225 //##################
227 /**
228 *
229 */
230 virtual ~SVGDocument() {}
232 };
236 /*#########################################################################
237 ## SVGSVGElement
238 #########################################################################*/
240 /**
241 * A key interface definition is the SVGSVGElement interface, which is the
242 * interface that corresponds to the 'svg' element. This interface contains
243 * various miscellaneous commonly-used utility methods, such as matrix operations
244 * and the ability to control the time of redraw on visual rendering devices.
245 *
246 * SVGSVGElement extends ViewCSS and DocumentCSS to provide access to the
247 * computed values of properties and the override style sheet as described in DOM2.
248 */
249 class SVGSVGElement : virtual public SVGElement,
250 public SVGTests,
251 public SVGLangSpace,
252 public SVGExternalResourcesRequired,
253 public SVGStylable,
254 public SVGLocatable,
255 public SVGFitToViewBox,
256 public SVGZoomAndPan,
257 public events::EventTarget,
258 public events::DocumentEvent,
259 public css::ViewCSS,
260 public css::DocumentCSS
261 {
262 public:
264 /**
265 * Corresponds to attribute x on the given 'svg' element.
266 */
267 virtual SVGAnimatedLength getX() =0;
269 /**
270 * Corresponds to attribute y on the given 'svg' element.
271 */
272 virtual SVGAnimatedLength getY() =0;
274 /**
275 * Corresponds to attribute width on the given 'svg' element.
276 */
277 virtual SVGAnimatedLength getWidth() =0;
279 /**
280 * Corresponds to attribute height on the given 'svg' element.
281 */
282 virtual SVGAnimatedLength getHeight() =0;
284 /**
285 * Get the attribute contentScriptType on the given 'svg' element.
286 */
287 virtual DOMString getContentScriptType() =0;
289 /**
290 * Set the attribute contentScriptType on the given 'svg' element.
291 */
292 virtual void setContentScriptType(const DOMString &val)
293 throw (DOMException) =0;
296 /**
297 * Get the attribute contentStyleType on the given 'svg' element.
298 */
299 virtual DOMString getContentStyleType() =0;
301 /**
302 * Set the attribute contentStyleType on the given 'svg' element.
303 */
304 virtual void setContentStyleType(const DOMString &val)
305 throw (DOMException) =0;
307 /**
308 * The position and size of the viewport (implicit or explicit) that corresponds
309 * to this 'svg' element. When the user agent is actually rendering the content,
310 * then the position and size values represent the actual values when rendering.
311 * The position and size values are unitless values in the coordinate system of
312 * the parent element. If no parent element exists (i.e., 'svg' element
313 * represents the root of the document tree), if this SVG document is embedded as
314 * part of another document (e.g., via the HTML 'object' element), then the
315 * position and size are unitless values in the coordinate system of the parent
316 * document. (If the parent uses CSS or XSL layout, then unitless values
317 * represent pixel units for the current CSS or XSL viewport, as described in the
318 * CSS2 specification.) If the parent element does not have a coordinate system,
319 * then the user agent should provide reasonable default values for this attribute.
320 * */
321 virtual SVGRect getViewport() =0;
323 /**
324 * Size of a pixel units (as defined by CSS2) along the x-axis of the viewport,
325 * which represents a unit somewhere in the range of 70dpi to 120dpi, and, on
326 * systems that support this, might actually match the characteristics of the
327 * target medium. On systems where it is impossible to know the size of a pixel,
328 * a suitable default pixel size is provided.
329 */
330 virtual double getPixelUnitToMillimeterX() =0;
332 /**
333 * Corresponding size of a pixel unit along the y-axis of the viewport.
334 */
335 virtual double getPixelUnitToMillimeterY() =0;
337 /**
338 * User interface (UI) events in DOM Level 2 indicate the screen positions at
339 * which the given UI event occurred. When the user agent actually knows the
340 * physical size of a "screen unit", this attribute will express that information;
341 * otherwise, user agents will provide a suitable default value such as .28mm.
342 */
343 virtual double getScreenPixelToMillimeterX() =0;
345 /**
346 * Corresponding size of a screen pixel along the y-axis of the viewport.
347 */
348 virtual double getScreenPixelToMillimeterY() =0;
351 /**
352 * The initial view (i.e., before magnification and panning) of the current
353 * innermost SVG document fragment can be either the "standard" view (i.e., based
354 * on attributes on the 'svg' element such as fitBoxToViewport) or to a "custom"
355 * view (i.e., a hyperlink into a particular 'view' or other element - see
356 * Linking into SVG content: URI fragments and SVG views). If the initial view is
357 * the "standard" view, then this attribute is false. If the initial view is a
358 * "custom" view, then this attribute is true.
359 */
360 virtual bool getUseCurrentView() =0;
362 /**
363 * Set the value above
364 */
365 virtual void setUseCurrentView(bool val) throw (DOMException) =0;
367 /**
368 * The definition of the initial view (i.e., before magnification and panning) of
369 * the current innermost SVG document fragment. The meaning depends on the
370 * situation:
371 *
372 * * If the initial view was a "standard" view, then:
373 * o the values for viewBox, preserveAspectRatio and zoomAndPan within
374 * currentView will match the values for the corresponding DOM attributes that
375 * are on SVGSVGElement directly
376 * o the values for transform and viewTarget within currentView will be null
377 * * If the initial view was a link into a 'view' element, then:
378 * o the values for viewBox, preserveAspectRatio and zoomAndPan within
379 * currentView will correspond to the corresponding attributes for the given
380 * 'view' element
381 * o the values for transform and viewTarget within currentView will be null
382 * * If the initial view was a link into another element (i.e., other than a
383 * 'view'), then:
384 * o the values for viewBox, preserveAspectRatio and zoomAndPan within
385 * currentView will match the values for the corresponding DOM attributes that
386 * are on SVGSVGElement directly for the closest ancestor 'svg' element
387 * o the values for transform within currentView will be null
388 * o the viewTarget within currentView will represent the target of the link
389 * * If the initial view was a link into the SVG document fragment using an SVG
390 * view specification fragment identifier (i.e., #svgView(...)), then:
391 * o the values for viewBox, preserveAspectRatio, zoomAndPan, transform and
392 * viewTarget within currentView will correspond to the values from the SVG view
393 * specification fragment identifier
394 *
395 */
396 virtual SVGViewSpec getCurrentView() =0;
399 /**
400 * This attribute indicates the current scale factor relative to the initial view
401 * to take into account user magnification and panning operations, as described
402 * under Magnification and panning. DOM attributes currentScale and
403 * currentTranslate are equivalent to the 2x3 matrix [a b c d e f] =
404 * [currentScale 0 0 currentScale currentTranslate.x currentTranslate.y]. If
405 * "magnification" is enabled (i.e., zoomAndPan="magnify"), then the effect is as
406 * if an extra transformation were placed at the outermost level on the SVG
407 * document fragment (i.e., outside the outermost 'svg' element).
408 */
409 virtual double getCurrentScale() =0;
411 /**
412 * Set the value above.
413 */
414 virtual void setCurrentScale(double val)
415 throw (DOMException) =0;
418 /**
419 * The corresponding translation factor that takes into account
420 * user "magnification".
421 */
422 virtual SVGPoint getCurrentTranslate() =0;
425 /**
426 * Takes a time-out value which indicates that redraw shall not occur until: (a)
427 * the corresponding unsuspendRedraw(suspend_handle_id) call has been made, (b)
428 * an unsuspendRedrawAll() call has been made, or (c) its timer has timed out. In
429 * environments that do not support interactivity (e.g., print media), then
430 * redraw shall not be suspended. suspend_handle_id =
431 * suspendRedraw(max_wait_milliseconds) and unsuspendRedraw(suspend_handle_id)
432 * must be packaged as balanced pairs. When you want to suspend redraw actions as
433 * a collection of SVG DOM changes occur, then precede the changes to the SVG DOM
434 * with a method call similar to suspend_handle_id =
435 * suspendRedraw(max_wait_milliseconds) and follow the changes with a method call
436 * similar to unsuspendRedraw(suspend_handle_id). Note that multiple
437 * suspendRedraw calls can be used at once and that each such method call is
438 * treated independently of the other suspendRedraw method calls.
439 */
440 virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds ) =0;
442 /**
443 * Cancels a specified suspendRedraw() by providing a unique suspend_handle_id.
444 */
445 virtual void unsuspendRedraw (unsigned long suspend_handle_id )
446 throw( DOMException ) =0;
448 /**
449 * Cancels all currently active suspendRedraw() method calls. This method is most
450 * useful at the very end of a set of SVG DOM calls to ensure that all pending
451 * suspendRedraw() method calls have been cancelled.
452 */
453 virtual void unsuspendRedrawAll ( ) =0;
455 /**
456 * In rendering environments supporting interactivity, forces the user agent to
457 * immediately redraw all regions of the viewport that require updating.
458 */
459 virtual void forceRedraw ( ) =0;
461 /**
462 * Suspends (i.e., pauses) all currently running animations that are defined
463 * within the SVG document fragment corresponding to this 'svg' element, causing
464 * the animation clock corresponding to this document fragment to stand still
465 * until it is unpaused.
466 */
467 virtual void pauseAnimations ( ) =0;
469 /**
470 * Unsuspends (i.e., unpauses) currently running animations that are defined
471 * within the SVG document fragment, causing the animation clock to continue from
472 * the time at which it was suspended.
473 */
474 virtual void unpauseAnimations ( ) =0;
476 /**
477 * Returns true if this SVG document fragment is in a paused state.
478 */
479 virtual bool animationsPaused ( ) =0;
481 /**
482 * Returns the current time in seconds relative to the start time for
483 * the current SVG document fragment.
484 */
485 virtual double getCurrentTime ( ) =0;
487 /**
488 * Adjusts the clock for this SVG document fragment, establishing
489 * a new current time.
490 */
491 virtual void setCurrentTime (double seconds ) =0;
493 /**
494 * Returns the list of graphics elements whose rendered content intersects the
495 * supplied rectangle, honoring the 'pointer-events' property value on each
496 * candidate graphics element.
497 */
498 virtual NodeList getIntersectionList(const SVGRect &rect,
499 const SVGElementPtr referenceElement ) =0;
501 /**
502 * Returns the list of graphics elements whose rendered content is entirely
503 * contained within the supplied rectangle, honoring the 'pointer-events'
504 * property value on each candidate graphics element.
505 */
506 virtual NodeList getEnclosureList (const SVGRect &rect,
507 const SVGElementPtr referenceElement ) =0;
509 /**
510 * Returns true if the rendered content of the given element intersects the
511 * supplied rectangle, honoring the 'pointer-events' property value on each
512 * candidate graphics element.
513 */
514 virtual bool checkIntersection (const SVGElementPtr element, const SVGRect &rect ) =0;
516 /**
517 * Returns true if the rendered content of the given element is entirely
518 * contained within the supplied rectangle, honoring the 'pointer-events'
519 * property value on each candidate graphics element.
520 */
521 virtual bool checkEnclosure (const SVGElementPtr element, const SVGRect &rect ) =0;
523 /**
524 * Unselects any selected objects, including any selections of text
525 * strings and type-in bars.
526 */
527 virtual void deselectAll ( ) =0;
529 /**
530 * Creates an SVGNumber object outside of any document trees. The object
531 * is initialized to a value of zero.
532 */
533 virtual SVGNumber createSVGNumber ( ) =0;
535 /**
536 * Creates an SVGLength object outside of any document trees. The object
537 * is initialized to the value of 0 user units.
538 */
539 virtual SVGLength createSVGLength ( ) =0;
541 /**
542 * Creates an SVGAngle object outside of any document trees. The object
543 * is initialized to the value 0 degrees (unitless).
544 */
545 virtual SVGAngle createSVGAngle ( ) =0;
547 /**
548 * Creates an SVGPoint object outside of any document trees. The object
549 * is initialized to the point (0,0) in the user coordinate system.
550 */
551 virtual SVGPoint createSVGPoint ( ) =0;
553 /**
554 * Creates an SVGMatrix object outside of any document trees. The object
555 * is initialized to the identity matrix.
556 */
557 virtual SVGMatrix createSVGMatrix ( ) =0;
559 /**
560 * Creates an SVGRect object outside of any document trees. The object
561 * is initialized such that all values are set to 0 user units.
562 */
563 virtual SVGRect createSVGRect ( ) =0;
565 /**
566 * Creates an SVGTransform object outside of any document trees.
567 * The object is initialized to an identity matrix transform
568 * (SVG_TRANSFORM_MATRIX).
569 */
570 virtual SVGTransform createSVGTransform ( ) =0;
572 /**
573 * Creates an SVGTransform object outside of any document trees.
574 * The object is initialized to the given matrix transform
575 * (i.e., SVG_TRANSFORM_MATRIX).
576 */
577 virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix ) =0;
579 /**
580 * Searches this SVG document fragment (i.e., the search is restricted to a
581 * subset of the document tree) for an Element whose id is given by elementId. If
582 * an Element is found, that Element is returned. If no such element exists,
583 * returns null. Behavior is not defined if more than one element has this id.
584 */
585 virtual ElementPtr getElementById (const DOMString& elementId ) =0;
589 //##################
590 //# Non-API methods
591 //##################
593 /**
594 *
595 */
596 virtual ~SVGSVGElement() {}
598 };
602 /*#########################################################################
603 ## SVGGElement
604 #########################################################################*/
606 /**
607 * The SVGGElement interface corresponds to the 'g' element.
608 */
609 class SVGGElement : virtual public SVGElement,
610 public SVGTests,
611 public SVGLangSpace,
612 public SVGExternalResourcesRequired,
613 public SVGStylable,
614 public SVGTransformable,
615 public events::EventTarget
616 {
617 public:
619 //##################
620 //# Non-API methods
621 //##################
623 /**
624 *
625 */
626 virtual ~SVGGElement() {}
628 };
633 /*#########################################################################
634 ## SVGDefsElement
635 #########################################################################*/
637 /**
638 * The SVGDefsElement interface corresponds to the 'defs' element.
639 */
640 class SVGDefsElement :
641 virtual public SVGElement,
642 public SVGTests,
643 public SVGLangSpace,
644 public SVGExternalResourcesRequired,
645 public SVGStylable,
646 public SVGTransformable,
647 public events::EventTarget
648 {
649 public:
651 //##################
652 //# Non-API methods
653 //##################
655 /**
656 *
657 */
658 virtual ~SVGDefsElement() {}
660 };
665 /*#########################################################################
666 ## SVGDescElement
667 #########################################################################*/
669 /**
670 * The SVGDescElement interface corresponds to the 'desc' element.
671 */
672 class SVGDescElement :
673 virtual public SVGElement,
674 public SVGLangSpace,
675 public SVGStylable
676 {
677 public:
679 //##################
680 //# Non-API methods
681 //##################
683 /**
684 *
685 */
686 virtual ~SVGDescElement() {}
688 };
693 /*#########################################################################
694 ## SVGTitleElement
695 #########################################################################*/
697 /**
698 * The SVGTitleElement interface corresponds to the 'title' element.
699 */
700 class SVGTitleElement :
701 virtual public SVGElement,
702 public SVGLangSpace,
703 public SVGStylable
704 {
705 public:
707 //##################
708 //# Non-API methods
709 //##################
711 /**
712 *
713 */
714 virtual ~SVGTitleElement() {}
716 };
721 /*#########################################################################
722 ## SVGSymbolElement
723 #########################################################################*/
725 /**
726 * The SVGSymbolElement interface corresponds to the 'symbol' element.
727 */
728 class SVGSymbolElement :
729 virtual public SVGElement,
730 public SVGLangSpace,
731 public SVGExternalResourcesRequired,
732 public SVGStylable,
733 public SVGFitToViewBox,
734 public events::EventTarget
735 {
736 public:
738 //##################
739 //# Non-API methods
740 //##################
742 /**
743 *
744 */
745 virtual ~SVGSymbolElement() {}
747 };
752 /*#########################################################################
753 ## SVGUseElement
754 #########################################################################*/
756 /**
757 * The SVGUseElement interface corresponds to the 'use' element.
758 */
759 class SVGUseElement :
760 virtual public SVGElement,
761 public SVGURIReference,
762 public SVGTests,
763 public SVGLangSpace,
764 public SVGExternalResourcesRequired,
765 public SVGStylable,
766 public SVGTransformable,
767 public events::EventTarget
768 {
769 public:
774 /**
775 * Corresponds to attribute x on the given 'use' element.
776 */
777 virtual SVGAnimatedLength getX() =0;
779 /**
780 * Corresponds to attribute y on the given 'use' element.
781 */
782 virtual SVGAnimatedLength getY() =0;
784 /**
785 * Corresponds to attribute width on the given 'use' element.
786 */
787 virtual SVGAnimatedLength getWidth() =0;
789 /**
790 * Corresponds to attribute height on the given 'use' element.
791 */
792 virtual SVGAnimatedLength getHeight() =0;
794 /**
795 * The root of the "instance tree". See description of SVGElementInstance for
796 * a discussion on the instance tree.
797 * */
798 virtual SVGElementInstance getInstanceRoot() =0;
800 /**
801 * If the 'href' attribute is being animated, contains the current animated root
802 * of the "instance tree". If the 'href' attribute is not currently being
803 * animated, contains the same value as 'instanceRoot'. The root of the "instance
804 * tree". See description of SVGElementInstance for a discussion on the instance
805 * tree.
806 */
807 virtual SVGElementInstance getAnimatedInstanceRoot() =0;
811 //##################
812 //# Non-API methods
813 //##################
815 /**
816 *
817 */
818 virtual ~SVGUseElement() {}
820 };
828 /*#########################################################################
829 ## SVGImageElement
830 #########################################################################*/
832 /**
833 * The SVGImageElement interface corresponds to the 'image' element.
834 */
835 class SVGImageElement :
836 virtual public SVGElement,
837 public SVGURIReference,
838 public SVGTests,
839 public SVGLangSpace,
840 public SVGExternalResourcesRequired,
841 public SVGStylable,
842 public SVGTransformable,
843 public events::EventTarget
844 {
845 public:
848 /**
849 * Corresponds to attribute x on the given 'image' element.
850 */
851 virtual SVGAnimatedLength getX() =0;
853 /**
854 * Corresponds to attribute y on the given 'image' element.
855 */
856 virtual SVGAnimatedLength getY() =0;
858 /**
859 * Corresponds to attribute width on the given 'image' element.
860 */
861 virtual SVGAnimatedLength getWidth() =0;
863 /**
864 * Corresponds to attribute height on the given 'image' element.
865 */
866 virtual SVGAnimatedLength getHeight() =0;
869 /**
870 * Corresponds to attribute preserveAspectRatio on the given element.
871 */
872 virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio() =0;
876 //##################
877 //# Non-API methods
878 //##################
880 /**
881 *
882 */
883 virtual ~SVGImageElement() {}
885 };
892 /*#########################################################################
893 ## SVGSwitchElement
894 #########################################################################*/
896 /**
897 * The SVGSwitchElement interface corresponds to the 'switch' element.
898 */
899 class SVGSwitchElement :
900 virtual public SVGElement,
901 public SVGTests,
902 public SVGLangSpace,
903 public SVGExternalResourcesRequired,
904 public SVGStylable,
905 public SVGTransformable,
906 public events::EventTarget
907 {
908 public:
910 //##################
911 //# Non-API methods
912 //##################
914 /**
915 *
916 */
917 virtual ~SVGSwitchElement() {}
919 };
924 /*#########################################################################
925 ## GetSVGDocument
926 #########################################################################*/
928 /**
929 * In the case where an SVG document is embedded by reference, such as when an
930 * XHTML document has an 'object' element whose href (or equivalent) attribute
931 * references an SVG document (i.e., a document whose MIME type is
932 * "image/svg+xml" and whose root element is thus an 'svg' element), the SVG user
933 * agent is required to implement the GetSVGDocument interface for the element
934 * which references the SVG document (e.g., the HTML 'object' or comparable
935 * referencing elements).
936 */
937 class GetSVGDocument
938 {
939 public:
941 /**
942 * Returns the SVGDocument object for the referenced SVG document.
943 */
944 virtual SVGDocumentPtr getSVGDocument ( )
945 throw( DOMException ) =0;
947 //##################
948 //# Non-API methods
949 //##################
951 /**
952 *
953 */
954 virtual ~GetSVGDocument() {}
956 };
963 /*#########################################################################
964 ## SVGStyleElement
965 #########################################################################*/
967 /**
968 * The SVGStyleElement interface corresponds to the 'style' element.
969 */
970 class SVGStyleElement : virtual public SVGElement
971 {
972 public:
974 /**
975 * Get the attribute xml:space on the given element.
976 */
977 virtual DOMString getXmlspace() = 0;
979 /**
980 * Set the attribute xml:space on the given element.
981 */
982 virtual void setXmlspace(const DOMString &val)
983 throw (DOMException) =0;
985 /**
986 * Get the attribute type on the given 'style' element.
987 */
988 virtual DOMString getType() = 0;
990 /**
991 * Set the attribute type on the given 'style' element.
992 */
993 virtual void setType(const DOMString &val)
994 throw (DOMException) =0;
996 /**
997 * Get the attribute media on the given 'style' element.
998 */
999 virtual DOMString getMedia() = 0;
1001 /**
1002 * Set the attribute media on the given 'style' element.
1003 */
1004 virtual void setMedia(const DOMString &val)
1005 throw (DOMException) =0;
1007 /**
1008 * Get the attribute title on the given 'style' element.
1009 */
1010 virtual DOMString getTitle() = 0;
1012 /**
1013 * Set the attribute title on the given 'style' element.
1014 */
1015 virtual void setTitle(const DOMString &val)
1016 throw (DOMException) =0;
1020 //##################
1021 //# Non-API methods
1022 //##################
1024 /**
1025 *
1026 */
1027 virtual ~SVGStyleElement() {}
1029 };
1036 /*#########################################################################
1037 ## SVGPathElement
1038 #########################################################################*/
1040 /**
1041 * The SVGPathElement interface corresponds to the 'path' element.
1042 */
1043 class SVGPathElement :
1044 virtual public SVGElement,
1045 public SVGTests,
1046 public SVGLangSpace,
1047 public SVGExternalResourcesRequired,
1048 public SVGStylable,
1049 public SVGTransformable,
1050 public events::EventTarget,
1051 public SVGAnimatedPathData
1052 {
1054 public:
1056 /**
1057 * Corresponds to attribute pathLength on the given 'path' element.
1058 */
1059 virtual SVGAnimatedNumber getPathLength() =0;
1061 /**
1062 * Returns the user agent's computed value for the total length of the path using
1063 * the user agent's distance-along-a-path algorithm, as a distance in the current
1064 * user coordinate system.
1065 */
1066 virtual double getTotalLength ( ) =0;
1068 /**
1069 * Returns the (x,y) coordinate in user space which is distance units along the
1070 * path, utilizing the user agent's distance-along-a-path algorithm.
1071 */
1072 virtual SVGPoint getPointAtLength (double distance ) =0;
1074 /**
1075 * Returns the index into pathSegList which is distance units along the path,
1076 * utilizing the user agent's distance-along-a-path algorithm.
1077 */
1078 virtual unsigned long getPathSegAtLength (double distance ) =0;
1080 /**
1081 * Returns a stand-alone, parentless SVGPathSegClosePath object.
1082 */
1083 virtual SVGPathSegClosePath
1084 createSVGPathSegClosePath ( ) =0;
1086 /**
1087 * Returns a stand-alone, parentless SVGPathSegMovetoAbs object.
1088 */
1089 virtual SVGPathSegMovetoAbs
1090 createSVGPathSegMovetoAbs (double x, double y ) =0;
1092 /**
1093 * Returns a stand-alone, parentless SVGPathSegMovetoRel object.
1094 */
1095 virtual SVGPathSegMovetoRel
1096 createSVGPathSegMovetoRel (double x, double y ) =0;
1098 /**
1099 * Returns a stand-alone, parentless SVGPathSegLinetoAbs object.
1100 */
1101 virtual SVGPathSegLinetoAbs
1102 createSVGPathSegLinetoAbs (double x, double y ) =0;
1104 /**
1105 * Returns a stand-alone, parentless SVGPathSegLinetoRel object.
1106 */
1107 virtual SVGPathSegLinetoRel
1108 createSVGPathSegLinetoRel (double x, double y ) =0;
1110 /**
1111 * Returns a stand-alone, parentless SVGPathSegCurvetoCubicAbs object.
1112 */
1113 virtual SVGPathSegCurvetoCubicAbs
1114 createSVGPathSegCurvetoCubicAbs (double x, double y,
1115 double x1, double y1, double x2, double y2 ) =0;
1117 /**
1118 * Returns a stand-alone, parentless SVGPathSegCurvetoCubicRel object.
1119 */
1120 virtual SVGPathSegCurvetoCubicRel
1121 createSVGPathSegCurvetoCubicRel (double x, double y,
1122 double x1, double y1, double x2, double y2 ) =0;
1124 /**
1125 * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticAbs object.
1126 */
1127 virtual SVGPathSegCurvetoQuadraticAbs
1128 createSVGPathSegCurvetoQuadraticAbs (double x, double y,
1129 double x1, double y1 ) =0;
1131 /**
1132 * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticRel object.
1133 */
1134 virtual SVGPathSegCurvetoQuadraticRel
1135 createSVGPathSegCurvetoQuadraticRel (double x, double y,
1136 double x1, double y1 ) =0;
1138 /**
1139 * Returns a stand-alone, parentless SVGPathSegArcAbs object.
1140 */
1141 virtual SVGPathSegArcAbs
1142 createSVGPathSegArcAbs (double x, double y,
1143 double r1, double r2, double angle,
1144 bool largeArcFlag, bool sweepFlag ) =0;
1146 /**
1147 * Returns a stand-alone, parentless SVGPathSegArcRel object.
1148 */
1149 virtual SVGPathSegArcRel
1150 createSVGPathSegArcRel (double x, double y, double r1,
1151 double r2, double angle, bool largeArcFlag,
1152 bool sweepFlag ) =0;
1154 /**
1155 * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalAbs object.
1156 */
1157 virtual SVGPathSegLinetoHorizontalAbs
1158 createSVGPathSegLinetoHorizontalAbs (double x ) =0;
1160 /**
1161 * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalRel object.
1162 */
1163 virtual SVGPathSegLinetoHorizontalRel
1164 createSVGPathSegLinetoHorizontalRel (double x ) =0;
1166 /**
1167 * Returns a stand-alone, parentless SVGPathSegLinetoVerticalAbs object.
1168 */
1169 virtual SVGPathSegLinetoVerticalAbs
1170 createSVGPathSegLinetoVerticalAbs (double y ) =0;
1172 /**
1173 * Returns a stand-alone, parentless SVGPathSegLinetoVerticalRel object.
1174 */
1175 virtual SVGPathSegLinetoVerticalRel
1176 createSVGPathSegLinetoVerticalRel (double y ) =0;
1178 /**
1179 * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothAbs object.
1180 */
1181 virtual SVGPathSegCurvetoCubicSmoothAbs
1182 createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
1183 double x2, double y2 ) =0;
1185 /**
1186 * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothRel object.
1187 */
1188 virtual SVGPathSegCurvetoCubicSmoothRel
1189 createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
1190 double x2, double y2 ) =0;
1192 /**
1193 * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothAbs
1194 * object.
1195 */
1196 virtual SVGPathSegCurvetoQuadraticSmoothAbs
1197 createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y ) =0;
1199 /**
1200 * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothRel
1201 * object.
1202 */
1203 virtual SVGPathSegCurvetoQuadraticSmoothRel
1204 createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y ) =0;
1208 //##################
1209 //# Non-API methods
1210 //##################
1212 /**
1213 *
1214 */
1215 virtual ~SVGPathElement() {}
1217 };
1224 /*#########################################################################
1225 ## SVGRectElement
1226 #########################################################################*/
1228 /**
1229 * The SVGRectElement interface corresponds to the 'rect' element.
1230 */
1231 class SVGRectElement :
1232 virtual public SVGElement,
1233 public SVGTests,
1234 public SVGLangSpace,
1235 public SVGExternalResourcesRequired,
1236 public SVGStylable,
1237 public SVGTransformable,
1238 public events::EventTarget
1239 {
1240 public:
1242 /**
1243 * Corresponds to attribute x on the given 'rect' element.
1244 */
1245 virtual SVGAnimatedLength getX() =0;
1247 /**
1248 * Corresponds to attribute y on the given 'rect' element.
1249 */
1250 virtual SVGAnimatedLength getY() =0;
1252 /**
1253 * Corresponds to attribute width on the given 'rect' element.
1254 */
1255 virtual SVGAnimatedLength getWidth() =0;
1257 /**
1258 * Corresponds to attribute height on the given 'rect' element.
1259 */
1260 virtual SVGAnimatedLength getHeight() =0;
1263 /**
1264 * Corresponds to attribute rx on the given 'rect' element.
1265 */
1266 virtual SVGAnimatedLength getRx() =0;
1268 /**
1269 * Corresponds to attribute ry on the given 'rect' element.
1270 */
1271 virtual SVGAnimatedLength getRy() =0;
1275 //##################
1276 //# Non-API methods
1277 //##################
1279 /**
1280 *
1281 */
1282 virtual ~SVGRectElement() {}
1284 };
1291 /*#########################################################################
1292 ## SVGCircleElement
1293 #########################################################################*/
1295 /**
1296 * The SVGCircleElement interface corresponds to the 'circle' element.
1297 */
1298 class SVGCircleElement :
1299 virtual public SVGElement,
1300 public SVGTests,
1301 public SVGLangSpace,
1302 public SVGExternalResourcesRequired,
1303 public SVGStylable,
1304 public SVGTransformable,
1305 public events::EventTarget
1306 {
1307 public:
1309 /**
1310 * Corresponds to attribute cx on the given 'circle' element.
1311 */
1312 virtual SVGAnimatedLength getCx() =0;
1314 /**
1315 * Corresponds to attribute cy on the given 'circle' element.
1316 */
1317 virtual SVGAnimatedLength getCy() =0;
1319 /**
1320 * Corresponds to attribute r on the given 'circle' element.
1321 */
1322 virtual SVGAnimatedLength getR() =0;
1326 //##################
1327 //# Non-API methods
1328 //##################
1330 /**
1331 *
1332 */
1333 virtual ~SVGCircleElement() {}
1335 };
1342 /*#########################################################################
1343 ## SVGEllipseElement
1344 #########################################################################*/
1346 /**
1347 * The SVGEllipseElement interface corresponds to the 'ellipse' element.
1348 */
1349 class SVGEllipseElement :
1350 virtual public SVGElement,
1351 public SVGTests,
1352 public SVGLangSpace,
1353 public SVGExternalResourcesRequired,
1354 public SVGStylable,
1355 public SVGTransformable,
1356 public events::EventTarget
1357 {
1358 public:
1360 /**
1361 * Corresponds to attribute cx on the given 'ellipse' element.
1362 */
1363 virtual SVGAnimatedLength getCx() =0;
1365 /**
1366 * Corresponds to attribute cy on the given 'ellipse' element.
1367 */
1368 virtual SVGAnimatedLength getCy() =0;
1370 /**
1371 * Corresponds to attribute rx on the given 'ellipse' element.
1372 */
1373 virtual SVGAnimatedLength getRx() =0;
1375 /**
1376 * Corresponds to attribute ry on the given 'ellipse' element.
1377 */
1378 virtual SVGAnimatedLength getRy() =0;
1381 //##################
1382 //# Non-API methods
1383 //##################
1385 /**
1386 *
1387 */
1388 virtual ~SVGEllipseElement() {}
1390 };
1397 /*#########################################################################
1398 ## SVGLineElement
1399 #########################################################################*/
1401 /**
1402 * The SVGLineElement interface corresponds to the 'line' element.
1403 */
1404 class SVGLineElement :
1405 virtual public SVGElement,
1406 public SVGTests,
1407 public SVGLangSpace,
1408 public SVGExternalResourcesRequired,
1409 public SVGStylable,
1410 public SVGTransformable,
1411 public events::EventTarget
1412 {
1413 public:
1415 /**
1416 * Corresponds to attribute x1 on the given 'line' element.
1417 */
1418 virtual SVGAnimatedLength getX1() =0;
1420 /**
1421 * Corresponds to attribute y1 on the given 'line' element.
1422 */
1423 virtual SVGAnimatedLength getY1() =0;
1425 /**
1426 * Corresponds to attribute x2 on the given 'line' element.
1427 */
1428 virtual SVGAnimatedLength getX2() =0;
1430 /**
1431 * Corresponds to attribute y2 on the given 'line' element.
1432 */
1433 virtual SVGAnimatedLength getY2() =0;
1435 //##################
1436 //# Non-API methods
1437 //##################
1439 /**
1440 *
1441 */
1442 virtual ~SVGLineElement() {}
1444 };
1449 /*#########################################################################
1450 ## SVGPolylineElement
1451 #########################################################################*/
1453 /**
1454 * The SVGPolylineElement interface corresponds to the 'polyline' element.
1455 */
1456 class SVGPolylineElement :
1457 virtual public SVGElement,
1458 public SVGTests,
1459 public SVGLangSpace,
1460 public SVGExternalResourcesRequired,
1461 public SVGStylable,
1462 public SVGTransformable,
1463 public events::EventTarget,
1464 public SVGAnimatedPoints
1465 {
1467 public:
1469 //##################
1470 //# Non-API methods
1471 //##################
1473 /**
1474 *
1475 */
1476 virtual ~SVGPolylineElement() {}
1478 };
1483 /*#########################################################################
1484 ## SVGPolygonElement
1485 #########################################################################*/
1487 /**
1488 * The SVGPolygonElement interface corresponds to the 'polygon' element.
1489 */
1490 class SVGPolygonElement :
1491 virtual public SVGElement,
1492 public SVGTests,
1493 public SVGLangSpace,
1494 public SVGExternalResourcesRequired,
1495 public SVGStylable,
1496 public SVGTransformable,
1497 public events::EventTarget,
1498 public SVGAnimatedPoints
1499 {
1500 public:
1502 //##################
1503 //# Non-API methods
1504 //##################
1506 /**
1507 *
1508 */
1509 virtual ~SVGPolygonElement() {}
1511 };
1516 /*#########################################################################
1517 ## SVGTextContentElement
1518 #########################################################################*/
1520 /**
1521 * The SVGTextContentElement interface is inherited by various text-related
1522 * interfaces, such as SVGTextElement, SVGTSpanElement, SVGTRefElement,
1523 * SVGAltGlyphElement and SVGTextPathElement.
1524 */
1525 class SVGTextContentElement :
1526 virtual public SVGElement,
1527 public SVGTests,
1528 public SVGLangSpace,
1529 public SVGExternalResourcesRequired,
1530 public SVGStylable,
1531 public events::EventTarget
1532 {
1534 public:
1536 /**
1537 * lengthAdjust Types
1538 */
1539 typedef enum
1540 {
1541 LENGTHADJUST_UNKNOWN = 0,
1542 LENGTHADJUST_SPACING = 1,
1543 LENGTHADJUST_SPACINGANDGLYPHS = 2
1544 } LengthAdjustType;
1547 /**
1548 * Corresponds to attribute textLength on the given element.
1549 */
1550 virtual SVGAnimatedLength getTextLength() =0;
1553 /**
1554 * Corresponds to attribute lengthAdjust on the given element. The value must be
1555 * one of the length adjust constants specified above.
1556 */
1557 virtual SVGAnimatedEnumeration getLengthAdjust() =0;
1560 /**
1561 * Returns the total number of characters to be rendered within the current
1562 * element. Includes characters which are included via a 'tref' reference.
1563 */
1564 virtual long getNumberOfChars ( ) =0;
1566 /**
1567 * The total sum of all of the advance values from rendering all of the
1568 * characters within this element, including the advance value on the glyphs
1569 * (horizontal or vertical), the effect of properties 'kerning', 'letter-spacing'
1570 * and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan'
1571 * elements. For non-rendering environments, the user agent shall make reasonable
1572 * assumptions about glyph metrics.
1573 */
1574 virtual double getComputedTextLength ( ) =0;
1576 /**
1577 * The total sum of all of the advance values from rendering the specified
1578 * substring of the characters, including the advance value on the glyphs
1579 * (horizontal or vertical), the effect of properties 'kerning', 'letter-spacing'
1580 * and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan'
1581 * elements. For non-rendering environments, the user agent shall make reasonable
1582 * assumptions about glyph metrics.
1583 */
1584 virtual double getSubStringLength (unsigned long charnum, unsigned long nchars )
1585 throw( DOMException ) =0;
1587 /**
1588 * Returns the current text position before rendering the character in the user
1589 * coordinate system for rendering the glyph(s) that correspond to the specified
1590 * character. The current text position has already taken into account the
1591 * effects of any inter-character adjustments due to properties 'kerning',
1592 * 'letter-spacing' and 'word-spacing' and adjustments due to attributes x, y, dx
1593 * and dy. If multiple consecutive characters are rendered inseparably (e.g., as
1594 * a single glyph or a sequence of glyphs), then each of the inseparable
1595 * characters will return the start position for the first glyph.
1596 */
1597 virtual SVGPoint getStartPositionOfChar (unsigned long charnum )
1598 throw( DOMException ) =0;
1600 /**
1601 * Returns the current text position after rendering the character in the user
1602 * coordinate system for rendering the glyph(s) that correspond to the specified
1603 * character. This current text position does not take into account the effects
1604 * of any inter-character adjustments to prepare for the next character, such as
1605 * properties 'kerning', 'letter-spacing' and 'word-spacing' and adjustments due
1606 * to attributes x, y, dx and dy. If multiple consecutive characters are rendered
1607 * inseparably (e.g., as a single glyph or a sequence of glyphs), then each of
1608 * the inseparable characters will return the end position for the last glyph.
1609 */
1610 virtual SVGPoint getEndPositionOfChar (unsigned long charnum )
1611 throw( DOMException ) =0;
1613 /**
1614 * Returns a tightest rectangle which defines the minimum and maximum X and Y
1615 * values in the user coordinate system for rendering the glyph(s) that
1616 * correspond to the specified character. The calculations assume that all glyphs
1617 * occupy the full standard glyph cell for the font. If multiple consecutive
1618 * characters are rendered inseparably (e.g., as a single glyph or a sequence of
1619 * glyphs), then each of the inseparable characters will return the same extent.
1620 */
1621 virtual SVGRect getExtentOfChar (unsigned long charnum )
1622 throw( DOMException ) =0;
1624 /**
1625 * Returns the rotation value relative to the current user coordinate system used
1626 * to render the glyph(s) corresponding to the specified character. If multiple
1627 * glyph(s) are used to render the given character and the glyphs each have
1628 * different rotations (e.g., due to text-on-a-path), the user agent shall return
1629 * an average value (e.g., the rotation angle at the midpoint along the path for
1630 * all glyphs used to render this character). The rotation value represents the
1631 * rotation that is supplemental to any rotation due to properties
1632 * 'glyph-orientation-horizontal' and 'glyph-orientation-vertical'; thus, any
1633 * glyph rotations due to these properties are not included into the returned
1634 * rotation value. If multiple consecutive characters are rendered inseparably
1635 * (e.g., as a single glyph or a sequence of glyphs), then each of the
1636 * inseparable characters will return the same rotation value.
1637 */
1638 virtual double getRotationOfChar (unsigned long charnum )
1639 throw( DOMException ) =0;
1641 /**
1642 * Returns the index of the character whose corresponding glyph cell bounding box
1643 * contains the specified point. The calculations assume that all glyphs occupy
1644 * the full standard glyph cell for the font. If no such character exists, a
1645 * value of -1 is returned. If multiple such characters exist, the character
1646 * within the element whose glyphs were rendered last (i.e., take into account
1647 * any reordering such as for bidirectional text) is used. If multiple
1648 * consecutive characters are rendered inseparably (e.g., as a single glyph or a
1649 * sequence of glyphs), then the user agent shall allocate an equal percentage of
1650 * the text advance amount to each of the contributing characters in determining
1651 * which of the characters is chosen.
1652 */
1653 virtual long getCharNumAtPosition (const SVGPoint &point ) =0;
1655 /**
1656 * Causes the specified substring to be selected just as if the user
1657 * selected the substring interactively.
1658 */
1659 virtual void selectSubString (unsigned long charnum, unsigned long nchars )
1660 throw( DOMException ) =0;
1664 //##################
1665 //# Non-API methods
1666 //##################
1668 /**
1669 *
1670 */
1671 virtual ~SVGTextContentElement() {}
1673 };
1680 /*#########################################################################
1681 ## SVGTextPositioningElement
1682 #########################################################################*/
1684 /**
1685 * The SVGTextPositioningElement interface is inherited by text-related
1686 * interfaces: SVGTextElement, SVGTSpanElement, SVGTRefElement and
1687 * SVGAltGlyphElement.
1688 */
1689 class SVGTextPositioningElement : virtual public SVGTextContentElement
1690 {
1691 public:
1693 /**
1694 * Corresponds to attribute x on the given element.
1695 */
1696 virtual SVGAnimatedLength getX() =0;
1698 /**
1699 * Corresponds to attribute y on the given element.
1700 */
1701 virtual SVGAnimatedLength getY() =0;
1703 /**
1704 * Corresponds to attribute dx on the given element.
1705 */
1706 virtual SVGAnimatedLength getDx() =0;
1708 /**
1709 * Corresponds to attribute dy on the given element.
1710 */
1711 virtual SVGAnimatedLength getDy() =0;
1714 /**
1715 * Corresponds to attribute rotate on the given element.
1716 */
1717 virtual SVGAnimatedNumberList getRotate() =0;
1721 //##################
1722 //# Non-API methods
1723 //##################
1725 /**
1726 *
1727 */
1728 virtual ~SVGTextPositioningElement() {}
1730 };
1737 /*#########################################################################
1738 ## SVGTextElement
1739 #########################################################################*/
1741 /**
1742 * The SVGTextElement interface corresponds to the 'text' element.
1743 */
1744 class SVGTextElement : virtual public SVGTextPositioningElement,
1745 public SVGTransformable
1746 {
1747 public:
1749 //##################
1750 //# Non-API methods
1751 //##################
1753 /**
1754 *
1755 */
1756 virtual ~SVGTextElement() {}
1758 };
1763 /*#########################################################################
1764 ## SVGTSpanElement
1765 #########################################################################*/
1767 /**
1768 * The SVGTSpanElement interface corresponds to the 'tspan' element.
1769 */
1770 class SVGTSpanElement : virtual public SVGTextPositioningElement
1771 {
1772 public:
1774 //##################
1775 //# Non-API methods
1776 //##################
1778 /**
1779 *
1780 */
1781 virtual ~SVGTSpanElement() {}
1783 };
1788 /*#########################################################################
1789 ## SVGTRefElement
1790 #########################################################################*/
1792 /**
1793 * The SVGTRefElement interface corresponds to the 'tref' element.
1794 */
1795 class SVGTRefElement :
1796 virtual public SVGTextPositioningElement,
1797 public SVGURIReference
1798 {
1799 public:
1801 //##################
1802 //# Non-API methods
1803 //##################
1805 /**
1806 *
1807 */
1808 virtual ~SVGTRefElement() {}
1810 };
1815 /*#########################################################################
1816 ## SVGTextPathElement
1817 #########################################################################*/
1819 /**
1820 * The SVGTextPathElement interface corresponds to the 'textPath' element.
1821 */
1822 class SVGTextPathElement :
1823 virtual public SVGTextContentElement,
1824 public SVGURIReference
1825 {
1826 public:
1830 /**
1831 * textPath Method Types
1832 */
1833 typedef enum
1834 {
1835 TEXTPATH_METHODTYPE_UNKNOWN = 0,
1836 TEXTPATH_METHODTYPE_ALIGN = 1,
1837 TEXTPATH_METHODTYPE_STRETCH = 2
1838 } TextPathMethodType;
1840 /**
1841 * textPath Spacing Types
1842 */
1843 typedef enum
1844 {
1845 TEXTPATH_SPACINGTYPE_UNKNOWN = 0,
1846 TEXTPATH_SPACINGTYPE_AUTO = 1,
1847 TEXTPATH_SPACINGTYPE_EXACT = 2
1848 } TextPathSpacingType;
1851 /**
1852 * Corresponds to attribute startOffset on the given 'textPath' element.
1853 */
1854 virtual SVGAnimatedLength getStartOffset() =0;
1856 /**
1857 * Corresponds to attribute method on the given 'textPath' element. The value
1858 * must be one of the method type constants specified above.
1859 */
1860 virtual SVGAnimatedEnumeration getMethod() =0;
1862 /**
1863 * Corresponds to attribute spacing on the given 'textPath' element.
1864 * The value must be one of the spacing type constants specified above.
1865 */
1866 virtual SVGAnimatedEnumeration getSpacing() =0;
1870 //##################
1871 //# Non-API methods
1872 //##################
1874 /**
1875 *
1876 */
1877 virtual ~SVGTextPathElement() {}
1879 };
1886 /*#########################################################################
1887 ## SVGAltGlyphElement
1888 #########################################################################*/
1890 /**
1891 * The SVGAltGlyphElement interface corresponds to the 'altGlyph' element.
1892 */
1893 class SVGAltGlyphElement :
1894 virtual public SVGTextPositioningElement,
1895 public SVGURIReference
1896 {
1897 public:
1899 /**
1900 * Get the attribute glyphRef on the given element.
1901 */
1902 virtual DOMString getGlyphRef() =0;
1904 /**
1905 * Set the attribute glyphRef on the given element.
1906 */
1907 virtual void setGlyphRef(const DOMString &val)
1908 throw (DOMException) =0;
1910 /**
1911 * Get the attribute format on the given element.
1912 */
1913 virtual DOMString getFormat() =0;
1915 /**
1916 * Set the attribute format on the given element.
1917 */
1918 virtual void setFormat(const DOMString &val)
1919 throw (DOMException) =0;
1924 //##################
1925 //# Non-API methods
1926 //##################
1928 /**
1929 *
1930 */
1931 virtual ~SVGAltGlyphElement() {}
1933 };
1940 /*#########################################################################
1941 ## SVGAltGlyphDefElement
1942 #########################################################################*/
1944 /**
1945 * The SVGAltGlyphDefElement interface corresponds to the 'altGlyphDef' element.
1946 */
1947 class SVGAltGlyphDefElement : virtual public SVGElement
1948 {
1949 public:
1951 //##################
1952 //# Non-API methods
1953 //##################
1955 /**
1956 *
1957 */
1958 virtual ~SVGAltGlyphDefElement() {}
1960 };
1965 /*#########################################################################
1966 ## SVGAltGlyphItemElement
1967 #########################################################################*/
1969 /**
1970 * The SVGAltGlyphItemElement interface corresponds to the
1971 * 'altGlyphItem' element.
1972 */
1973 class SVGAltGlyphItemElement : virtual public SVGElement
1974 {
1975 public:
1977 //##################
1978 //# Non-API methods
1979 //##################
1981 /**
1982 *
1983 */
1984 virtual ~SVGAltGlyphItemElement() {}
1986 };
1991 /*#########################################################################
1992 ## SVGGlyphRefElement
1993 #########################################################################*/
1995 /**
1996 * The SVGGlyphRefElement interface corresponds to the 'glyphRef' element.
1997 */
1998 class SVGGlyphRefElement : virtual public SVGElement,
1999 public SVGURIReference,
2000 public SVGStylable
2001 {
2002 public:
2004 /**
2005 * Get the attribute glyphRef on the given element.
2006 */
2007 virtual DOMString getGlyphRef() =0;
2009 /**
2010 * Set the attribute glyphRef on the given element.
2011 */
2012 virtual void setGlyphRef(const DOMString &val)
2013 throw (DOMException) =0;
2015 /**
2016 * Get the attribute format on the given element.
2017 */
2018 virtual DOMString getFormat() =0;
2020 /**
2021 * Set the attribute format on the given element.
2022 */
2023 virtual void setFormat(const DOMString &val)
2024 throw (DOMException) =0;
2026 /**
2027 * Get the attribute x on the given element.
2028 */
2029 virtual double getX() = 0;
2031 /**
2032 * Set the attribute x on the given element.
2033 */
2034 virtual void setX(double val) throw (DOMException) =0;
2036 /**
2037 * Get the attribute y on the given element.
2038 */
2039 virtual double getY() = 0;
2041 /**
2042 * Set the attribute y on the given element.
2043 */
2044 virtual void setY(double val) throw (DOMException) =0;
2046 /**
2047 * Get the attribute dx on the given element.
2048 */
2049 virtual double getDx() = 0;
2051 /**
2052 * Set the attribute dx on the given element.
2053 */
2054 virtual void setDx(double val) throw (DOMException) =0;
2056 /**
2057 * Get the attribute dy on the given element.
2058 */
2059 virtual double getDy() = 0;
2061 /**
2062 * Set the attribute dy on the given element.
2063 */
2064 virtual void setDy(double val) throw (DOMException) =0;
2069 //##################
2070 //# Non-API methods
2071 //##################
2073 /**
2074 *
2075 */
2076 virtual ~SVGGlyphRefElement() {}
2078 };
2084 /*#########################################################################
2085 ## SVGMarkerElement
2086 #########################################################################*/
2088 /**
2089 * The SVGMarkerElement interface corresponds to the 'marker' element.
2090 */
2091 class SVGMarkerElement :
2092 virtual public SVGElement,
2093 public SVGLangSpace,
2094 public SVGExternalResourcesRequired,
2095 public SVGStylable,
2096 public SVGFitToViewBox
2097 {
2098 public:
2102 /**
2103 * Marker Unit Types
2104 */
2105 typedef enum
2106 {
2107 SVG_MARKERUNITS_UNKNOWN = 0,
2108 SVG_MARKERUNITS_USERSPACEONUSE = 1,
2109 SVG_MARKERUNITS_STROKEWIDTH = 2
2110 } MarkerUnitType;
2112 /**
2113 * Marker Orientation Types
2114 */
2115 typedef enum
2116 {
2117 SVG_MARKER_ORIENT_UNKNOWN = 0,
2118 SVG_MARKER_ORIENT_AUTO = 1,
2119 SVG_MARKER_ORIENT_ANGLE = 2
2120 } MarkerOrientationType;
2123 /**
2124 * Corresponds to attribute refX on the given 'marker' element.
2125 */
2126 virtual SVGAnimatedLength getRefX() =0;
2128 /**
2129 * Corresponds to attribute refY on the given 'marker' element.
2130 */
2131 virtual SVGAnimatedLength getRefY() =0;
2133 /**
2134 * Corresponds to attribute markerUnits on the given 'marker' element.
2135 * One of the Marker Units Types defined above.
2136 */
2137 virtual SVGAnimatedEnumeration getMarkerUnits() =0;
2139 /**
2140 * Corresponds to attribute markerWidth on the given 'marker' element.
2141 */
2142 virtual SVGAnimatedLength getMarkerWidth() =0;
2144 /**
2145 * Corresponds to attribute markerHeight on the given 'marker' element.
2146 */
2147 virtual SVGAnimatedLength getMarkerHeight() =0;
2149 /**
2150 * Corresponds to attribute orient on the given 'marker' element.
2151 * One of the Marker Orientation Types defined above.
2152 */
2153 virtual SVGAnimatedEnumeration getOrientType() =0;
2155 /**
2156 * Corresponds to attribute orient on the given 'marker' element.
2157 * If markerUnits is SVG_MARKER_ORIENT_ANGLE, the angle value for
2158 * attribute orient; otherwise, it will be set to zero.
2159 */
2160 virtual SVGAnimatedAngle getOrientAngle() =0;
2163 /**
2164 * Sets the value of attribute orient to 'auto'.
2165 */
2166 virtual void setOrientToAuto ( ) =0;
2168 /**
2169 * Sets the value of attribute orient to the given angle.
2170 */
2171 virtual void setOrientToAngle (const SVGAngle &angle) =0;
2175 //##################
2176 //# Non-API methods
2177 //##################
2179 /**
2180 *
2181 */
2182 virtual ~SVGMarkerElement() {}
2184 };
2191 /*#########################################################################
2192 ## SVGColorProfileElement
2193 #########################################################################*/
2195 /**
2196 * The SVGColorProfileElement interface corresponds to the
2197 * 'color-profile' element.
2198 */
2199 class SVGColorProfileElement :
2200 virtual public SVGElement,
2201 public SVGURIReference,
2202 public SVGRenderingIntent
2203 {
2204 public:
2206 /**
2207 * Get the attribute local on the given element.
2208 */
2209 virtual DOMString getLocal() =0;
2211 /**
2212 * Set the attribute local on the given element.
2213 */
2214 virtual void setLocal(const DOMString &val)
2215 throw (DOMException) =0;
2217 /**
2218 * Get the attribute name on the given element.
2219 */
2220 virtual DOMString getName() =0;
2222 /**
2223 * Set the attribute name on the given element.
2224 */
2225 virtual void setName(const DOMString &val)
2226 throw (DOMException) =0;
2228 /**
2229 * Set the attribute rendering-intent on the given element.
2230 * The type of rendering intent, identified by one of the
2231 * SVGRenderingIntent constants.
2232 */
2233 virtual unsigned short getRenderingIntent() =0;
2235 /**
2236 * Get the attribute rendering-intent on the given element.
2237 */
2238 virtual void setRenderingIntent(unsigned short val)
2239 throw (DOMException) =0;
2243 //##################
2244 //# Non-API methods
2245 //##################
2247 /**
2248 *
2249 */
2250 virtual ~SVGColorProfileElement() {}
2252 };
2257 /*#########################################################################
2258 ## SVGGradientElement
2259 #########################################################################*/
2261 /**
2262 * The SVGGradientElement interface is a base interface used by
2263 * SVGLinearGradientElement and SVGRadialGradientElement.
2264 */
2265 class SVGGradientElement :
2266 virtual public SVGElement,
2267 public SVGURIReference,
2268 public SVGExternalResourcesRequired,
2269 public SVGStylable,
2270 public SVGUnitTypes
2271 {
2273 public:
2275 /**
2276 * Spread Method Types
2277 */
2278 typedef enum
2279 {
2280 SVG_SPREADMETHOD_UNKNOWN = 0,
2281 SVG_SPREADMETHOD_PAD = 1,
2282 SVG_SPREADMETHOD_REFLECT = 2,
2283 SVG_SPREADMETHOD_REPEAT = 3
2284 } SpreadMethodType;
2287 /**
2288 * Corresponds to attribute gradientUnits on the given element.
2289 * Takes one of the constants defined in SVGUnitTypes.
2290 */
2291 virtual SVGAnimatedEnumeration getGradientUnits() =0;
2293 /**
2294 * Corresponds to attribute gradientTransform on the given element.
2295 */
2296 virtual SVGAnimatedTransformList getGradientTransform() =0;
2298 /**
2299 * Corresponds to attribute spreadMethod on the given element.
2300 * One of the Spread Method Types.
2301 */
2302 virtual SVGAnimatedEnumeration getSpreadMethod() =0;
2306 //##################
2307 //# Non-API methods
2308 //##################
2310 /**
2311 *
2312 */
2313 virtual ~SVGGradientElement() {}
2315 };
2322 /*#########################################################################
2323 ## SVGLinearGradientElement
2324 #########################################################################*/
2326 /**
2327 * The SVGLinearGradientElement interface corresponds to the
2328 * 'linearGradient' element.
2329 */
2330 class SVGLinearGradientElement : virtual public SVGGradientElement
2331 {
2332 public:
2335 /**
2336 * Corresponds to attribute x1 on the given 'linearGradient' element.
2337 */
2338 virtual SVGAnimatedLength getX1() =0;
2340 /**
2341 * Corresponds to attribute y1 on the given 'linearGradient' element.
2342 */
2343 virtual SVGAnimatedLength getY1() =0;
2345 /**
2346 * Corresponds to attribute x2 on the given 'linearGradient' element.
2347 */
2348 virtual SVGAnimatedLength getX2() =0;
2350 /**
2351 * Corresponds to attribute y2 on the given 'linearGradient' element.
2352 */
2353 virtual SVGAnimatedLength getY2() =0;
2356 //##################
2357 //# Non-API methods
2358 //##################
2360 /**
2361 *
2362 */
2363 virtual ~SVGLinearGradientElement() {}
2365 };
2372 /*#########################################################################
2373 ## SVGRadialGradientElement
2374 #########################################################################*/
2376 /**
2377 * The SVGRadialGradientElement interface corresponds to the
2378 * 'radialGradient' element.
2379 */
2380 class SVGRadialGradientElement : virtual public SVGGradientElement
2381 {
2383 public:
2385 /**
2386 * Corresponds to attribute cx on the given 'radialGradient' element.
2387 */
2388 virtual SVGAnimatedLength getCx() =0;
2391 /**
2392 * Corresponds to attribute cy on the given 'radialGradient' element.
2393 */
2394 virtual SVGAnimatedLength getCy() =0;
2397 /**
2398 * Corresponds to attribute r on the given 'radialGradient' element.
2399 */
2400 virtual SVGAnimatedLength getR() =0;
2403 /**
2404 * Corresponds to attribute fx on the given 'radialGradient' element.
2405 */
2406 virtual SVGAnimatedLength getFx() =0;
2409 /**
2410 * Corresponds to attribute fy on the given 'radialGradient' element.
2411 */
2412 virtual SVGAnimatedLength getFy() =0;
2417 //##################
2418 //# Non-API methods
2419 //##################
2421 /**
2422 *
2423 */
2424 virtual ~SVGRadialGradientElement() {}
2426 };
2433 /*#########################################################################
2434 ## SVGStopElement
2435 #########################################################################*/
2437 /**
2438 * The SVGStopElement interface corresponds to the 'stop' element.
2439 */
2440 class SVGStopElement :
2441 virtual public SVGElement,
2442 public SVGStylable
2443 {
2444 public:
2446 /**
2447 * Corresponds to attribute offset on the given 'stop' element.
2448 */
2449 virtual SVGAnimatedNumber getOffset() =0;
2453 //##################
2454 //# Non-API methods
2455 //##################
2457 /**
2458 *
2459 */
2460 virtual ~SVGStopElement() {}
2462 };
2469 /*#########################################################################
2470 ## SVGPatternElement
2471 #########################################################################*/
2473 /**
2474 * The SVGPatternElement interface corresponds to the 'pattern' element.
2475 */
2476 class SVGPatternElement :
2477 virtual public SVGElement,
2478 public SVGURIReference,
2479 public SVGTests,
2480 public SVGLangSpace,
2481 public SVGExternalResourcesRequired,
2482 public SVGStylable,
2483 public SVGFitToViewBox,
2484 public SVGUnitTypes
2485 {
2487 public:
2489 /**
2490 * Corresponds to attribute patternUnits on the given 'pattern' element. Takes
2491 * one of the constants defined in SVGUnitTypes.
2492 */
2493 virtual SVGAnimatedEnumeration getPatternUnits() =0;
2495 /**
2496 * Corresponds to attribute patternContentUnits on the given 'pattern'
2497 * element. Takes one of the constants defined in SVGUnitTypes.
2498 */
2499 virtual SVGAnimatedEnumeration getPatternContentUnits() =0;
2501 /**
2502 * Corresponds to attribute patternTransform on the given 'pattern' element.
2503 */
2504 virtual SVGAnimatedTransformList getPatternTransform() =0;
2506 /**
2507 * Corresponds to attribute x on the given 'pattern' element.
2508 */
2509 virtual SVGAnimatedLength getX() =0;
2511 /**
2512 *
2513 */
2514 virtual SVGAnimatedLength getY() =0;
2516 /**
2517 * Corresponds to attribute width on the given 'pattern' element.
2518 */
2519 virtual SVGAnimatedLength getWidth() =0;
2521 /**
2522 * Corresponds to attribute height on the given 'pattern' element.
2523 */
2524 virtual SVGAnimatedLength getHeight() =0;
2528 //##################
2529 //# Non-API methods
2530 //##################
2532 /**
2533 *
2534 */
2535 virtual ~SVGPatternElement() {}
2537 };
2544 /*#########################################################################
2545 ## SVGClipPathElement
2546 #########################################################################*/
2548 /**
2549 * The SVGClipPathElement interface corresponds to the 'clipPath' element.
2550 */
2551 class SVGClipPathElement :
2552 virtual public SVGElement,
2553 public SVGTests,
2554 public SVGLangSpace,
2555 public SVGExternalResourcesRequired,
2556 public SVGStylable,
2557 public SVGTransformable,
2558 public SVGUnitTypes
2559 {
2561 public:
2563 /**
2564 * Corresponds to attribute clipPathUnits on the given 'clipPath' element.
2565 * Takes one of the constants defined in SVGUnitTypes.
2566 */
2567 virtual SVGAnimatedEnumeration getClipPathUnits() =0;
2572 //##################
2573 //# Non-API methods
2574 //##################
2576 /**
2577 *
2578 */
2579 virtual ~SVGClipPathElement() {}
2581 };
2588 /*#########################################################################
2589 ## SVGMaskElement
2590 #########################################################################*/
2592 /**
2593 * The SVGMaskElement interface corresponds to the 'mask' element.
2594 */
2595 class SVGMaskElement :
2596 virtual public SVGElement,
2597 public SVGTests,
2598 public SVGLangSpace,
2599 public SVGExternalResourcesRequired,
2600 public SVGStylable,
2601 public SVGUnitTypes
2602 {
2603 public:
2607 /**
2608 * Corresponds to attribute maskUnits on the given 'mask' element. Takes one of
2609 * the constants defined in SVGUnitTypes.
2610 */
2611 virtual SVGAnimatedEnumeration getMaskUnits() =0;
2613 /**
2614 * Corresponds to attribute maskContentUnits on the given 'mask' element. Takes
2615 * one of the constants defined in SVGUnitTypes.
2616 */
2617 virtual SVGAnimatedEnumeration getMaskContentUnits() =0;
2619 /**
2620 * Corresponds to attribute x on the given 'mask' element.
2621 */
2622 virtual SVGAnimatedLength getX() =0;
2624 /**
2625 * Corresponds to attribute y on the given 'mask' element.
2626 */
2627 virtual SVGAnimatedLength getY() =0;
2629 /**
2630 * Corresponds to attribute width on the given 'mask' element.
2631 */
2632 virtual SVGAnimatedLength getWidth() =0;
2634 /**
2635 * Corresponds to attribute height on the given 'mask' element.
2636 */
2637 virtual SVGAnimatedLength getHeight() =0;
2639 //##################
2640 //# Non-API methods
2641 //##################
2643 /**
2644 *
2645 */
2646 virtual ~SVGMaskElement() {}
2648 };
2655 /*#########################################################################
2656 ## SVGFilterElement
2657 #########################################################################*/
2659 /**
2660 * The SVGFilterElement interface corresponds to the 'filter' element.
2661 */
2662 class SVGFilterElement :
2663 virtual public SVGElement,
2664 public SVGURIReference,
2665 public SVGLangSpace,
2666 public SVGExternalResourcesRequired,
2667 public SVGStylable,
2668 public SVGUnitTypes
2669 {
2671 public:
2673 /**
2674 * Corresponds to attribute filterUnits on the given 'filter' element. Takes one
2675 * of the constants defined in SVGUnitTypes.
2676 */
2677 virtual SVGAnimatedEnumeration getFilterUnits() =0;
2679 /**
2680 * Corresponds to attribute primitiveUnits on the given 'filter' element. Takes
2681 * one of the constants defined in SVGUnitTypes.
2682 */
2683 virtual SVGAnimatedEnumeration getPrimitiveUnits() =0;
2685 /**
2686 *
2687 */
2688 virtual SVGAnimatedLength getX() =0;
2690 /**
2691 * Corresponds to attribute x on the given 'filter' element.
2692 */
2693 virtual SVGAnimatedLength getY() =0;
2695 /**
2696 * Corresponds to attribute y on the given 'filter' element.
2697 */
2698 virtual SVGAnimatedLength getWidth() =0;
2700 /**
2701 * Corresponds to attribute height on the given 'filter' element.
2702 */
2703 virtual SVGAnimatedLength getHeight() =0;
2706 /**
2707 * Corresponds to attribute filterRes on the given 'filter' element.
2708 * Contains the X component of attribute filterRes.
2709 */
2710 virtual SVGAnimatedInteger getFilterResX() =0;
2712 /**
2713 * Corresponds to attribute filterRes on the given 'filter' element.
2714 * Contains the Y component (possibly computed automatically)
2715 * of attribute filterRes.
2716 */
2717 virtual SVGAnimatedInteger getFilterResY() =0;
2719 /**
2720 * Sets the values for attribute filterRes.
2721 */
2722 virtual void setFilterRes (unsigned long filterResX,
2723 unsigned long filterResY ) =0;
2727 //##################
2728 //# Non-API methods
2729 //##################
2731 /**
2732 *
2733 */
2734 virtual ~SVGFilterElement() {}
2736 };
2742 /*#########################################################################
2743 ## SVGFEBlendElement
2744 #########################################################################*/
2746 /**
2747 * The SVGFEBlendElement interface corresponds to the 'feBlend' element.
2748 */
2749 class SVGFEBlendElement :
2750 virtual public SVGElement,
2751 public SVGFilterPrimitiveStandardAttributes
2752 {
2753 public:
2756 /**
2757 * Blend Mode Types
2758 */
2759 typedef enum
2760 {
2761 SVG_FEBLEND_MODE_UNKNOWN = 0,
2762 SVG_FEBLEND_MODE_NORMAL = 1,
2763 SVG_FEBLEND_MODE_MULTIPLY = 2,
2764 SVG_FEBLEND_MODE_SCREEN = 3,
2765 SVG_FEBLEND_MODE_DARKEN = 4,
2766 SVG_FEBLEND_MODE_LIGHTEN = 5
2767 } BlendModeType;
2769 /**
2770 * Corresponds to attribute in on the given 'feBlend' element.
2771 */
2772 virtual SVGAnimatedString getIn1() =0;
2774 /**
2775 * Corresponds to attribute in2 on the given 'feBlend' element.
2776 */
2777 virtual SVGAnimatedString getIn2() =0;
2779 /**
2780 * Corresponds to attribute mode on the given 'feBlend' element.
2781 * Takes one of the Blend Mode Types.
2782 */
2783 virtual SVGAnimatedEnumeration getMode() =0;
2786 //##################
2787 //# Non-API methods
2788 //##################
2790 /**
2791 *
2792 */
2793 virtual ~SVGFEBlendElement() {}
2795 };
2802 /*#########################################################################
2803 ## SVGFEColorMatrixElement
2804 #########################################################################*/
2806 /**
2807 * The SVGFEColorMatrixElement interface corresponds to the
2808 * 'feColorMatrix' element.
2809 */
2810 class SVGFEColorMatrixElement :
2811 virtual public SVGElement,
2812 public SVGFilterPrimitiveStandardAttributes
2813 {
2815 public:
2817 /**
2818 * Color Matrix Types
2819 */
2820 typedef enum
2821 {
2822 SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0,
2823 SVG_FECOLORMATRIX_TYPE_MATRIX = 1,
2824 SVG_FECOLORMATRIX_TYPE_SATURATE = 2,
2825 SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3,
2826 SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4
2827 } ColorMatrixType;
2830 /**
2831 * Corresponds to attribute in on the given 'feColorMatrix' element.
2832 */
2833 virtual SVGAnimatedString getIn1() =0;
2835 /**
2836 * Corresponds to attribute type on the given 'feColorMatrix' element.
2837 * Takes one of the Color Matrix Types.
2838 */
2839 virtual SVGAnimatedEnumeration getType() =0;
2841 /**
2842 * Corresponds to attribute values on the given 'feColorMatrix' element.
2843 * Provides access to the contents of the values attribute.
2844 */
2845 virtual SVGAnimatedNumberList getValues() =0;
2849 //##################
2850 //# Non-API methods
2851 //##################
2853 /**
2854 *
2855 */
2856 virtual ~SVGFEColorMatrixElement() {}
2858 };
2865 /*#########################################################################
2866 ## SVGFEComponentTransferElement
2867 #########################################################################*/
2869 /**
2870 * The SVGFEComponentTransferElement interface corresponds to
2871 * the 'feComponentTransfer' element.
2872 */
2873 class SVGFEComponentTransferElement :
2874 virtual public SVGElement,
2875 public SVGFilterPrimitiveStandardAttributes
2876 {
2877 public:
2879 /**
2880 * Corresponds to attribute in on the given 'feComponentTransfer' element.
2881 */
2882 virtual SVGAnimatedString getIn1() =0;
2884 //##################
2885 //# Non-API methods
2886 //##################
2888 /**
2889 *
2890 */
2891 virtual ~SVGFEComponentTransferElement() {}
2893 };
2900 /*#########################################################################
2901 ## SVGComponentTransferFunctionElement
2902 #########################################################################*/
2904 /**
2905 * This interface defines a base interface used by the component
2906 * transfer function interfaces.
2907 */
2908 class SVGComponentTransferFunctionElement : virtual public SVGElement
2909 {
2910 public:
2913 /**
2914 * Component Transfer Types
2915 */
2916 typedef enum
2917 {
2918 SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0,
2919 SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,
2920 SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2,
2921 SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,
2922 SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4,
2923 SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5
2924 } ComponentTransferType;
2927 /**
2928 * Corresponds to attribute type on the given element. Takes one\
2929 * of the Component Transfer Types.
2930 */
2931 virtual SVGAnimatedEnumeration getType() =0;
2933 /**
2934 * Corresponds to attribute tableValues on the given element.
2935 */
2936 virtual SVGAnimatedNumberList getTableValues() =0;
2938 /**
2939 * Corresponds to attribute slope on the given element.
2940 */
2941 virtual SVGAnimatedNumber getSlope() =0;
2943 /**
2944 * Corresponds to attribute intercept on the given element.
2945 */
2946 virtual SVGAnimatedNumber getIntercept() =0;
2948 /**
2949 * Corresponds to attribute amplitude on the given element.
2950 */
2951 virtual SVGAnimatedNumber getAmplitude() =0;
2953 /**
2954 * Corresponds to attribute exponent on the given element.
2955 */
2956 virtual SVGAnimatedNumber getExponent() =0;
2958 /**
2959 * Corresponds to attribute offset on the given element.
2960 */
2961 virtual SVGAnimatedNumber getOffset() =0;
2964 //##################
2965 //# Non-API methods
2966 //##################
2968 /**
2969 *
2970 */
2971 virtual ~SVGComponentTransferFunctionElement() {}
2973 };
2980 /*#########################################################################
2981 ## SVGFEFuncRElement
2982 #########################################################################*/
2984 /**
2985 * The SVGFEFuncRElement interface corresponds to the 'feFuncR' element.
2986 */
2987 class SVGFEFuncRElement : virtual public SVGComponentTransferFunctionElement
2988 {
2989 public:
2991 //##################
2992 //# Non-API methods
2993 //##################
2995 /**
2996 *
2997 */
2998 virtual ~SVGFEFuncRElement() {}
3000 };
3005 /*#########################################################################
3006 ## SVGFEFuncGElement
3007 #########################################################################*/
3009 /**
3010 * The SVGFEFuncGElement interface corresponds to the 'feFuncG' element.
3011 */
3012 class SVGFEFuncGElement : public virtual SVGComponentTransferFunctionElement
3013 {
3014 public:
3016 //##################
3017 //# Non-API methods
3018 //##################
3020 /**
3021 *
3022 */
3023 virtual ~SVGFEFuncGElement() {}
3025 };
3030 /*#########################################################################
3031 ## SVGFEFuncBElement
3032 #########################################################################*/
3034 /**
3035 * The SVGFEFuncBElement interface corresponds to the 'feFuncB' element.
3036 */
3037 class SVGFEFuncBElement : virtual public SVGComponentTransferFunctionElement
3038 {
3039 public:
3041 //##################
3042 //# Non-API methods
3043 //##################
3045 /**
3046 *
3047 */
3048 virtual ~SVGFEFuncBElement() {}
3050 };
3055 /*#########################################################################
3056 ## SVGFEFuncAElement
3057 #########################################################################*/
3059 /**
3060 * The SVGFEFuncAElement interface corresponds to the 'feFuncA' element.
3061 */
3062 class SVGFEFuncAElement : virtual public SVGComponentTransferFunctionElement
3063 {
3064 public:
3066 //##################
3067 //# Non-API methods
3068 //##################
3070 /**
3071 *
3072 */
3073 virtual ~SVGFEFuncAElement() {}
3075 };
3080 /*#########################################################################
3081 ## SVGFECompositeElement
3082 #########################################################################*/
3084 /**
3085 * The SVGFECompositeElement interface corresponds to the 'feComposite' element.
3086 */
3087 class SVGFECompositeElement :
3088 virtual public SVGElement,
3089 public SVGFilterPrimitiveStandardAttributes
3090 {
3091 public:
3095 /**
3096 * Composite Operators
3097 */
3098 typedef enum
3099 {
3100 SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0,
3101 SVG_FECOMPOSITE_OPERATOR_OVER = 1,
3102 SVG_FECOMPOSITE_OPERATOR_IN = 2,
3103 SVG_FECOMPOSITE_OPERATOR_OUT = 3,
3104 SVG_FECOMPOSITE_OPERATOR_ATOP = 4,
3105 SVG_FECOMPOSITE_OPERATOR_XOR = 5,
3106 SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6
3107 } CompositeOperatorType;
3109 /**
3110 * Corresponds to attribute in on the given 'feComposite' element.
3111 */
3112 virtual SVGAnimatedString getIn1() =0;
3114 /**
3115 * Corresponds to attribute in2 on the given 'feComposite' element.
3116 */
3117 virtual SVGAnimatedString getIn2() =0;
3119 /**
3120 * Corresponds to attribute operator on the given 'feComposite' element.
3121 * Takes one of the Composite Operators.
3122 */
3123 virtual SVGAnimatedEnumeration getOperator() =0;
3125 /**
3126 * Corresponds to attribute k1 on the given 'feComposite' element.
3127 */
3128 virtual SVGAnimatedNumber getK1() =0;
3130 /**
3131 * Corresponds to attribute k2 on the given 'feComposite' element.
3132 */
3133 virtual SVGAnimatedNumber getK2() =0;
3135 /**
3136 * Corresponds to attribute k3 on the given 'feComposite' element.
3137 */
3138 virtual SVGAnimatedNumber getK3() =0;
3140 /**
3141 * Corresponds to attribute k4 on the given 'feComposite' element.
3142 */
3143 virtual SVGAnimatedNumber getK4() =0;
3147 //##################
3148 //# Non-API methods
3149 //##################
3151 /**
3152 *
3153 */
3154 virtual ~SVGFECompositeElement() {}
3156 };
3163 /*#########################################################################
3164 ## SVGFEConvolveMatrixElement
3165 #########################################################################*/
3167 /**
3168 * The SVGFEConvolveMatrixElement interface corresponds to
3169 * the 'feConvolveMatrix' element.
3170 */
3171 class SVGFEConvolveMatrixElement :
3172 virtual public SVGElement,
3173 public SVGFilterPrimitiveStandardAttributes
3174 {
3176 public:
3178 /**
3179 * Edge Mode Values
3180 */
3181 typedef enum
3182 {
3183 SVG_EDGEMODE_UNKNOWN = 0,
3184 SVG_EDGEMODE_DUPLICATE = 1,
3185 SVG_EDGEMODE_WRAP = 2,
3186 SVG_EDGEMODE_NONE = 3
3187 } EdgeModeType;
3190 /**
3191 * Corresponds to attribute order on the given 'feConvolveMatrix' element.
3192 */
3193 virtual SVGAnimatedInteger getOrderX() =0;
3195 /**
3196 * Corresponds to attribute order on the given 'feConvolveMatrix' element.
3197 */
3198 virtual SVGAnimatedInteger getOrderY() =0;
3200 /**
3201 * Corresponds to attribute kernelMatrix on the given element.
3202 */
3203 virtual SVGAnimatedNumberList getKernelMatrix() =0;
3205 /**
3206 * Corresponds to attribute divisor on the given 'feConvolveMatrix' element.
3207 */
3208 virtual SVGAnimatedNumber getDivisor() =0;
3210 /**
3211 * Corresponds to attribute bias on the given 'feConvolveMatrix' element.
3212 */
3213 virtual SVGAnimatedNumber getBias() =0;
3215 /**
3216 * Corresponds to attribute targetX on the given 'feConvolveMatrix' element.
3217 */
3218 virtual SVGAnimatedInteger getTargetX() =0;
3220 /**
3221 * Corresponds to attribute targetY on the given 'feConvolveMatrix' element.
3222 */
3223 virtual SVGAnimatedInteger getTargetY() =0;
3225 /**
3226 * Corresponds to attribute edgeMode on the given 'feConvolveMatrix'
3227 * element. Takes one of the Edge Mode Types.
3228 */
3229 virtual SVGAnimatedEnumeration getEdgeMode() =0;
3231 /**
3232 * Corresponds to attribute kernelUnitLength on the
3233 * given 'feConvolveMatrix' element.
3234 */
3235 virtual SVGAnimatedLength getKernelUnitLengthX() =0;
3237 /**
3238 * Corresponds to attribute kernelUnitLength on the given
3239 * 'feConvolveMatrix' element.
3240 */
3241 virtual SVGAnimatedLength getKernelUnitLengthY() =0;
3243 /**
3244 * Corresponds to attribute preserveAlpha on the
3245 * given 'feConvolveMatrix' element.
3246 */
3247 virtual SVGAnimatedBoolean getPreserveAlpha() =0;
3251 //##################
3252 //# Non-API methods
3253 //##################
3255 /**
3256 *
3257 */
3258 virtual ~SVGFEConvolveMatrixElement() {}
3260 };
3267 /*#########################################################################
3268 ## SVGFEDiffuseLightingElement
3269 #########################################################################*/
3271 /**
3272 * The SVGFEDiffuseLightingElement interface corresponds to the
3273 * 'feDiffuseLighting' element.
3274 */
3275 class SVGFEDiffuseLightingElement :
3276 virtual public SVGElement,
3277 public SVGFilterPrimitiveStandardAttributes
3278 {
3279 public:
3281 /**
3282 * Corresponds to attribute in on the given 'feDiffuseLighting' element.
3283 */
3284 virtual SVGAnimatedString getIn1() =0;
3286 /**
3287 * Corresponds to attribute surfaceScale on the given
3288 * 'feDiffuseLighting' element.
3289 */
3290 virtual SVGAnimatedNumber getSurfaceScale() =0;
3292 /**
3293 * Corresponds to attribute diffuseConstant on the given
3294 * 'feDiffuseLighting' element.
3295 */
3296 virtual SVGAnimatedNumber getDiffuseConstant() =0;
3298 /**
3299 * Corresponds to attribute kernelUnitLength on the given
3300 * 'feDiffuseLighting' element.
3301 */
3302 virtual SVGAnimatedNumber getKernelUnitLengthX() =0;
3304 /**
3305 * Corresponds to attribute kernelUnitLength on the given
3306 * 'feDiffuseLighting' element.
3307 */
3308 virtual SVGAnimatedNumber getKernelUnitLengthY() =0;
3312 //##################
3313 //# Non-API methods
3314 //##################
3316 /**
3317 *
3318 */
3319 virtual ~SVGFEDiffuseLightingElement() {}
3321 };
3328 /*#########################################################################
3329 ## SVGFEDistantLightElement
3330 #########################################################################*/
3332 /**
3333 * The SVGFEDistantLightElement interface corresponds to the
3334 * 'feDistantLight' element.
3335 */
3336 class SVGFEDistantLightElement : virtual public SVGElement
3337 {
3338 public:
3340 /**
3341 * Corresponds to attribute azimuth on the given 'feDistantLight' element.
3342 */
3343 virtual SVGAnimatedNumber getAzimuth() =0;
3346 /**
3347 * Corresponds to attribute elevation on the given 'feDistantLight'
3348 * element
3349 */
3350 virtual SVGAnimatedNumber getElevation() =0;
3354 //##################
3355 //# Non-API methods
3356 //##################
3358 /**
3359 *
3360 */
3361 virtual ~SVGFEDistantLightElement() {}
3363 };
3370 /*#########################################################################
3371 ## SVGFEPointLightElement
3372 #########################################################################*/
3374 /**
3375 * The SVGFEPointLightElement interface corresponds to the 'fePointLight' element.
3376 */
3377 class SVGFEPointLightElement : virtual public SVGElement
3378 {
3379 public:
3381 /**
3382 * Corresponds to attribute x on the given 'fePointLight' element.
3383 */
3384 virtual SVGAnimatedNumber getX() =0;
3386 /**
3387 * Corresponds to attribute y on the given 'fePointLight' element.
3388 */
3389 virtual SVGAnimatedNumber getY() =0;
3391 /**
3392 * Corresponds to attribute z on the given 'fePointLight' element.
3393 */
3394 virtual SVGAnimatedNumber getZ() =0;
3396 //##################
3397 //# Non-API methods
3398 //##################
3400 /**
3401 *
3402 */
3403 virtual ~SVGFEPointLightElement() {}
3405 };
3412 /*#########################################################################
3413 ## SVGFESpotLightElement
3414 #########################################################################*/
3416 /**
3417 * The SVGFESpotLightElement interface corresponds to the 'feSpotLight' element.
3418 */
3419 class SVGFESpotLightElement : virtual public SVGElement
3420 {
3421 public:
3423 /**
3424 * Corresponds to attribute x on the given 'feSpotLight' element.
3425 */
3426 virtual SVGAnimatedNumber getX() =0;
3428 /**
3429 * Corresponds to attribute y on the given 'feSpotLight' element.
3430 */
3431 virtual SVGAnimatedNumber getY() =0;
3433 /**
3434 * Corresponds to attribute z on the given 'feSpotLight' element.
3435 */
3436 virtual SVGAnimatedNumber getZ() =0;
3438 /**
3439 * Corresponds to attribute pointsAtX on the given 'feSpotLight' element.
3440 */
3441 virtual SVGAnimatedNumber getPointsAtX() =0;
3443 /**
3444 * Corresponds to attribute pointsAtY on the given 'feSpotLight' element.
3445 */
3446 virtual SVGAnimatedNumber getPointsAtY() =0;
3448 /**
3449 * Corresponds to attribute pointsAtZ on the given 'feSpotLight' element.
3450 */
3451 virtual SVGAnimatedNumber getPointsAtZ() =0;
3453 /**
3454 * Corresponds to attribute specularExponent on the
3455 * given 'feSpotLight' element.
3456 */
3457 virtual SVGAnimatedNumber getSpecularExponent() =0;
3459 /**
3460 * Corresponds to attribute limitingConeAngle on the
3461 * given 'feSpotLight' element.
3462 */
3463 virtual SVGAnimatedNumber getLimitingConeAngle() =0;
3467 //##################
3468 //# Non-API methods
3469 //##################
3471 /**
3472 *
3473 */
3474 virtual ~SVGFESpotLightElement() {}
3476 };
3483 /*#########################################################################
3484 ## SVGFEDisplacementMapElement
3485 #########################################################################*/
3487 /**
3488 *
3489 */
3490 class SVGFEDisplacementMapElement :
3491 virtual public SVGElement,
3492 public SVGFilterPrimitiveStandardAttributes
3493 {
3494 public:
3498 /**
3499 * Channel Selectors
3500 */
3501 typedef enum
3502 {
3503 SVG_CHANNEL_UNKNOWN = 0,
3504 SVG_CHANNEL_R = 1,
3505 SVG_CHANNEL_G = 2,
3506 SVG_CHANNEL_B = 3,
3507 SVG_CHANNEL_A = 4
3508 } ChannelSelector;
3510 /**
3511 *
3512 */
3513 virtual SVGAnimatedString getIn1() =0;
3515 /**
3516 *
3517 */
3518 virtual SVGAnimatedString getIn2() =0;
3521 /**
3522 *
3523 */
3524 virtual SVGAnimatedNumber getScale() =0;
3526 /**
3527 *
3528 */
3529 virtual SVGAnimatedEnumeration getXChannelSelector() =0;
3531 /**
3532 *
3533 */
3534 virtual SVGAnimatedEnumeration getYChannelSelector() =0;
3538 //##################
3539 //# Non-API methods
3540 //##################
3542 /**
3543 *
3544 */
3545 virtual ~SVGFEDisplacementMapElement() {}
3547 };
3554 /*#########################################################################
3555 ## SVGFEFloodElement
3556 #########################################################################*/
3558 /**
3559 *
3560 */
3561 class SVGFEFloodElement :
3562 virtual public SVGElement,
3563 public SVGFilterPrimitiveStandardAttributes
3564 {
3565 public:
3566 /**
3567 *
3568 */
3569 virtual SVGAnimatedString getIn1() =0;
3572 //##################
3573 //# Non-API methods
3574 //##################
3576 /**
3577 *
3578 */
3579 virtual ~SVGFEFloodElement() {}
3581 };
3588 /*#########################################################################
3589 ## SVGFEGaussianBlurElement
3590 #########################################################################*/
3592 /**
3593 *
3594 */
3595 class SVGFEGaussianBlurElement :
3596 virtual public SVGElement,
3597 public SVGFilterPrimitiveStandardAttributes
3598 {
3599 public:
3600 /**
3601 *
3602 */
3603 virtual SVGAnimatedString getIn1() =0;
3606 /**
3607 *
3608 */
3609 virtual SVGAnimatedNumber getStdDeviationX() =0;
3611 /**
3612 *
3613 */
3614 virtual SVGAnimatedNumber getStdDeviationY() =0;
3617 /**
3618 *
3619 */
3620 virtual void setStdDeviation (double stdDeviationX, double stdDeviationY ) =0;
3624 //##################
3625 //# Non-API methods
3626 //##################
3628 /**
3629 *
3630 */
3631 virtual ~SVGFEGaussianBlurElement() {}
3633 };
3640 /*#########################################################################
3641 ## SVGFEImageElement
3642 #########################################################################*/
3644 /**
3645 *
3646 */
3647 class SVGFEImageElement :
3648 virtual public SVGElement,
3649 public SVGURIReference,
3650 public SVGLangSpace,
3651 public SVGExternalResourcesRequired,
3652 public SVGFilterPrimitiveStandardAttributes
3653 {
3654 public:
3656 //##################
3657 //# Non-API methods
3658 //##################
3660 /**
3661 *
3662 */
3663 virtual ~SVGFEImageElement() {}
3665 };
3670 /*#########################################################################
3671 ## SVGFEMergeElement
3672 #########################################################################*/
3674 /**
3675 *
3676 */
3677 class SVGFEMergeElement :
3678 virtual public SVGElement,
3679 public SVGFilterPrimitiveStandardAttributes
3680 {
3681 public:
3683 //##################
3684 //# Non-API methods
3685 //##################
3687 /**
3688 *
3689 */
3690 virtual ~SVGFEMergeElement() {}
3692 };
3697 /*#########################################################################
3698 ## SVGFEMergeNodeElement
3699 #########################################################################*/
3701 /**
3702 *
3703 */
3704 class SVGFEMergeNodeElement : virtual public SVGElement
3705 {
3706 public:
3707 /**
3708 *
3709 */
3710 virtual SVGAnimatedString getIn1() =0;
3713 //##################
3714 //# Non-API methods
3715 //##################
3717 /**
3718 *
3719 */
3720 virtual ~SVGFEMergeNodeElement() {}
3722 };
3729 /*#########################################################################
3730 ## SVGFEMorphologyElement
3731 #########################################################################*/
3733 /**
3734 *
3735 */
3736 class SVGFEMorphologyElement :
3737 virtual public SVGElement,
3738 public SVGFilterPrimitiveStandardAttributes
3739 {
3740 public:
3744 /**
3745 * Morphology Operators
3746 */
3747 typedef enum
3748 {
3749 SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0,
3750 SVG_MORPHOLOGY_OPERATOR_ERODE = 1,
3751 SVG_MORPHOLOGY_OPERATOR_DILATE = 2
3752 } MorphologyOperatorType;
3755 /**
3756 *
3757 */
3758 virtual SVGAnimatedString getIn1() =0;
3761 /**
3762 *
3763 */
3764 virtual SVGAnimatedEnumeration getOperator() =0;
3766 /**
3767 *
3768 */
3769 virtual SVGAnimatedLength getRadiusX() =0;
3771 /**
3772 *
3773 */
3774 virtual SVGAnimatedLength getRadiusY() =0;
3778 //##################
3779 //# Non-API methods
3780 //##################
3782 /**
3783 *
3784 */
3785 virtual ~SVGFEMorphologyElement() {}
3787 };
3794 /*#########################################################################
3795 ## SVGFEOffsetElement
3796 #########################################################################*/
3798 /**
3799 *
3800 */
3801 class SVGFEOffsetElement :
3802 virtual public SVGElement,
3803 public SVGFilterPrimitiveStandardAttributes
3804 {
3805 public:
3809 /**
3810 *
3811 */
3812 virtual SVGAnimatedString getIn1() =0;
3814 /**
3815 *
3816 */
3817 virtual SVGAnimatedLength getDx() =0;
3819 /**
3820 *
3821 */
3822 virtual SVGAnimatedLength getDy() =0;
3827 //##################
3828 //# Non-API methods
3829 //##################
3831 /**
3832 *
3833 */
3834 virtual ~SVGFEOffsetElement() {}
3836 };
3843 /*#########################################################################
3844 ## SVGFESpecularLightingElement
3845 #########################################################################*/
3847 /**
3848 *
3849 */
3850 class SVGFESpecularLightingElement :
3851 virtual public SVGElement,
3852 public SVGFilterPrimitiveStandardAttributes
3853 {
3854 public:
3856 /**
3857 *
3858 */
3859 virtual SVGAnimatedString getIn1() =0;
3861 /**
3862 *
3863 */
3864 virtual SVGAnimatedNumber getSurfaceScale() =0;
3866 /**
3867 *
3868 */
3869 virtual SVGAnimatedNumber getSpecularConstant() =0;
3871 /**
3872 *
3873 */
3874 virtual SVGAnimatedNumber getSpecularExponent() =0;
3877 //##################
3878 //# Non-API methods
3879 //##################
3881 /**
3882 *
3883 */
3884 virtual ~SVGFESpecularLightingElement() {}
3886 };
3893 /*#########################################################################
3894 ## SVGFETileElement
3895 #########################################################################*/
3897 /**
3898 *
3899 */
3900 class SVGFETileElement :
3901 virtual public SVGElement,
3902 public SVGFilterPrimitiveStandardAttributes
3903 {
3904 public:
3907 /**
3908 *
3909 */
3910 virtual SVGAnimatedString getIn1() =0;
3914 //##################
3915 //# Non-API methods
3916 //##################
3918 /**
3919 *
3920 */
3921 virtual ~SVGFETileElement() {}
3923 };
3930 /*#########################################################################
3931 ## SVGFETurbulenceElement
3932 #########################################################################*/
3934 /**
3935 *
3936 */
3937 class SVGFETurbulenceElement :
3938 virtual public SVGElement,
3939 public SVGFilterPrimitiveStandardAttributes
3940 {
3941 public:
3945 /**
3946 * Turbulence Types
3947 */
3948 typedef enum
3949 {
3950 SVG_TURBULENCE_TYPE_UNKNOWN = 0,
3951 SVG_TURBULENCE_TYPE_FRACTALNOISE = 1,
3952 SVG_TURBULENCE_TYPE_TURBULENCE = 2
3953 } TurbulenceType;
3955 /**
3956 * Stitch Options
3957 */
3958 typedef enum
3959 {
3960 SVG_STITCHTYPE_UNKNOWN = 0,
3961 SVG_STITCHTYPE_STITCH = 1,
3962 SVG_STITCHTYPE_NOSTITCH = 2
3963 } StitchOption;
3967 /**
3968 *
3969 */
3970 virtual SVGAnimatedNumber getBaseFrequencyX() =0;
3972 /**
3973 *
3974 */
3975 virtual SVGAnimatedNumber getBaseFrequencyY() =0;
3977 /**
3978 *
3979 */
3980 virtual SVGAnimatedInteger getNumOctaves() =0;
3982 /**
3983 *
3984 */
3985 virtual SVGAnimatedNumber getSeed() =0;
3987 /**
3988 *
3989 */
3990 virtual SVGAnimatedEnumeration getStitchTiles() =0;
3992 /**
3993 *
3994 */
3995 virtual SVGAnimatedEnumeration getType() =0;
3999 //##################
4000 //# Non-API methods
4001 //##################
4003 /**
4004 *
4005 */
4006 virtual ~SVGFETurbulenceElement() {}
4008 };
4015 /*#########################################################################
4016 ## SVGCursorElement
4017 #########################################################################*/
4019 /**
4020 *
4021 */
4022 class SVGCursorElement :
4023 virtual public SVGElement,
4024 public SVGURIReference,
4025 public SVGTests,
4026 public SVGExternalResourcesRequired
4027 {
4028 public:
4029 /**
4030 *
4031 */
4032 virtual SVGAnimatedLength getX() =0;
4034 /**
4035 *
4036 */
4037 virtual SVGAnimatedLength getY() =0;
4039 //##################
4040 //# Non-API methods
4041 //##################
4043 /**
4044 *
4045 */
4046 virtual ~SVGCursorElement() {}
4048 };
4055 /*#########################################################################
4056 ## SVGAElement
4057 #########################################################################*/
4059 /**
4060 *
4061 */
4062 class SVGAElement : virtual public SVGElement,
4063 public SVGURIReference,
4064 public SVGTests,
4065 public SVGLangSpace,
4066 public SVGExternalResourcesRequired,
4067 public SVGStylable,
4068 public SVGTransformable,
4069 public events::EventTarget
4070 {
4071 public:
4073 /**
4074 *
4075 */
4076 virtual SVGAnimatedString getTarget() =0;
4080 //##################
4081 //# Non-API methods
4082 //##################
4084 /**
4085 *
4086 */
4087 virtual ~SVGAElement() {}
4089 };
4096 /*#########################################################################
4097 ## SVGViewElement
4098 #########################################################################*/
4100 /**
4101 *
4102 */
4103 class SVGViewElement : virtual public SVGElement,
4104 public SVGExternalResourcesRequired,
4105 public SVGFitToViewBox,
4106 public SVGZoomAndPan
4107 {
4108 public:
4110 /**
4111 *
4112 */
4113 virtual SVGStringList getViewTarget() =0;
4117 //##################
4118 //# Non-API methods
4119 //##################
4121 /**
4122 *
4123 */
4124 virtual ~SVGViewElement() {}
4126 };
4133 /*#########################################################################
4134 ## SVGScriptElement
4135 #########################################################################*/
4137 /**
4138 *
4139 */
4140 class SVGScriptElement :
4141 virtual public SVGElement,
4142 public SVGURIReference,
4143 public SVGExternalResourcesRequired
4144 {
4145 public:
4147 /**
4148 *
4149 */
4150 virtual DOMString getType() =0;
4152 /**
4153 *
4154 */
4155 virtual void setType(const DOMString &val)
4156 throw (DOMException) =0;
4159 //##################
4160 //# Non-API methods
4161 //##################
4163 /**
4164 *
4165 */
4166 virtual ~SVGScriptElement() {}
4168 };
4174 /*#########################################################################
4175 ## SVGAnimationElement
4176 #########################################################################*/
4178 /**
4179 *
4180 */
4181 class SVGAnimationElement :
4182 virtual public SVGElement,
4183 public SVGTests,
4184 public SVGExternalResourcesRequired,
4185 public smil::ElementTimeControl,
4186 public events::EventTarget
4187 {
4188 public:
4191 /**
4192 *
4193 */
4194 virtual SVGElementPtr getTargetElement() =0;
4197 /**
4198 *
4199 */
4200 virtual double getStartTime ( ) =0;
4202 /**
4203 *
4204 */
4205 virtual double getCurrentTime ( ) =0;
4207 /**
4208 *
4209 */
4210 virtual double getSimpleDuration ( )
4211 throw( DOMException ) =0;
4212 ;
4216 //##################
4217 //# Non-API methods
4218 //##################
4220 /**
4221 *
4222 */
4223 virtual ~SVGAnimationElement() {}
4225 };
4232 /*#########################################################################
4233 ## SVGAnimateElement
4234 #########################################################################*/
4236 /**
4237 *
4238 */
4239 class SVGAnimateElement : virtual public SVGAnimationElement
4240 {
4241 public:
4243 //##################
4244 //# Non-API methods
4245 //##################
4247 /**
4248 *
4249 */
4250 virtual ~SVGAnimateElement() {}
4252 };
4257 /*#########################################################################
4258 ## SVGSetElement
4259 #########################################################################*/
4261 /**
4262 *
4263 */
4264 class SVGSetElement : virtual public SVGAnimationElement
4265 {
4266 public:
4268 //##################
4269 //# Non-API methods
4270 //##################
4272 /**
4273 *
4274 */
4275 virtual ~SVGSetElement() {}
4277 };
4282 /*#########################################################################
4283 ## SVGAnimateMotionElement
4284 #########################################################################*/
4286 /**
4287 *
4288 */
4289 class SVGAnimateMotionElement : virtual public SVGAnimationElement
4290 {
4291 public:
4293 //##################
4294 //# Non-API methods
4295 //##################
4297 /**
4298 *
4299 */
4300 virtual ~SVGAnimateMotionElement() {}
4302 };
4307 /*#########################################################################
4308 ## SVGMPathElement
4309 #########################################################################*/
4311 /**
4312 *
4313 */
4314 class SVGMPathElement :
4315 virtual public SVGElement,
4316 public SVGURIReference,
4317 public SVGExternalResourcesRequired
4318 {
4319 public:
4321 //##################
4322 //# Non-API methods
4323 //##################
4325 /**
4326 *
4327 */
4328 virtual ~SVGMPathElement() {}
4330 };
4335 /*#########################################################################
4336 ## SVGAnimateColorElement
4337 #########################################################################*/
4339 /**
4340 *
4341 */
4342 class SVGAnimateColorElement : virtual public SVGAnimationElement
4343 {
4344 public:
4346 //##################
4347 //# Non-API methods
4348 //##################
4350 /**
4351 *
4352 */
4353 virtual ~SVGAnimateColorElement() {}
4355 };
4360 /*#########################################################################
4361 ## SVGAnimateTransformElement
4362 #########################################################################*/
4364 /**
4365 *
4366 */
4367 class SVGAnimateTransformElement : virtual public SVGAnimationElement
4368 {
4369 public:
4371 //##################
4372 //# Non-API methods
4373 //##################
4375 /**
4376 *
4377 */
4378 virtual ~SVGAnimateTransformElement() {}
4380 };
4385 /*#########################################################################
4386 ## SVGFontElement
4387 #########################################################################*/
4389 /**
4390 *
4391 */
4392 class SVGFontElement : virtual public SVGElement,
4393 public SVGExternalResourcesRequired,
4394 public SVGStylable
4395 {
4396 public:
4398 //##################
4399 //# Non-API methods
4400 //##################
4402 /**
4403 *
4404 */
4405 virtual ~SVGFontElement() {}
4407 };
4412 /*#########################################################################
4413 ## SVGGlyphElement
4414 #########################################################################*/
4416 /**
4417 *
4418 */
4419 class SVGGlyphElement : virtual public SVGElement,
4420 public SVGStylable
4421 {
4422 public:
4424 //##################
4425 //# Non-API methods
4426 //##################
4428 /**
4429 *
4430 */
4431 virtual ~SVGGlyphElement() {}
4433 };
4438 /*#########################################################################
4439 ## SVGMissingGlyphElement
4440 #########################################################################*/
4442 /**
4443 *
4444 */
4445 class SVGMissingGlyphElement :
4446 virtual public SVGElement,
4447 public SVGStylable
4448 {
4449 public:
4451 //##################
4452 //# Non-API methods
4453 //##################
4455 /**
4456 *
4457 */
4458 virtual ~SVGMissingGlyphElement() {}
4460 };
4465 /*#########################################################################
4466 ## SVGHKernElement
4467 #########################################################################*/
4469 /**
4470 *
4471 */
4472 class SVGHKernElement : virtual public SVGElement
4473 {
4474 public:
4476 //##################
4477 //# Non-API methods
4478 //##################
4480 /**
4481 *
4482 */
4483 virtual ~SVGHKernElement() {}
4485 };
4490 /*#########################################################################
4491 ## SVGVKernElement
4492 #########################################################################*/
4494 /**
4495 *
4496 */
4497 class SVGVKernElement : public virtual SVGElement
4498 {
4499 public:
4501 //##################
4502 //# Non-API methods
4503 //##################
4505 /**
4506 *
4507 */
4508 virtual ~SVGVKernElement() {}
4510 };
4515 /*#########################################################################
4516 ## SVGFontFaceElement
4517 #########################################################################*/
4519 /**
4520 *
4521 */
4522 class SVGFontFaceElement : virtual public SVGElement
4523 {
4524 public:
4526 //##################
4527 //# Non-API methods
4528 //##################
4530 /**
4531 *
4532 */
4533 virtual ~SVGFontFaceElement() {}
4535 };
4540 /*#########################################################################
4541 ## SVGFontFaceSrcElement
4542 #########################################################################*/
4544 /**
4545 *
4546 */
4547 class SVGFontFaceSrcElement : virtual public SVGElement
4548 {
4549 public:
4551 //##################
4552 //# Non-API methods
4553 //##################
4555 /**
4556 *
4557 */
4558 virtual ~SVGFontFaceSrcElement() {}
4560 };
4565 /*#########################################################################
4566 ## SVGFontFaceUriElement
4567 #########################################################################*/
4569 /**
4570 *
4571 */
4572 class SVGFontFaceUriElement : virtual public SVGElement
4573 {
4574 public:
4576 //##################
4577 //# Non-API methods
4578 //##################
4580 /**
4581 *
4582 */
4583 virtual ~SVGFontFaceUriElement() {}
4585 };
4590 /*#########################################################################
4591 ## SVGFontFaceFormatElement
4592 #########################################################################*/
4594 /**
4595 *
4596 */
4597 class SVGFontFaceFormatElement : virtual public SVGElement
4598 {
4599 public:
4601 //##################
4602 //# Non-API methods
4603 //##################
4605 /**
4606 *
4607 */
4608 virtual ~SVGFontFaceFormatElement() {}
4610 };
4615 /*#########################################################################
4616 ## SVGFontFaceNameElement
4617 #########################################################################*/
4619 /**
4620 *
4621 */
4622 class SVGFontFaceNameElement : virtual public SVGElement
4623 {
4624 public:
4626 //##################
4627 //# Non-API methods
4628 //##################
4630 /**
4631 *
4632 */
4633 virtual ~SVGFontFaceNameElement() {}
4635 };
4640 /*#########################################################################
4641 ## SVGDefinitionSrcElement
4642 #########################################################################*/
4644 /**
4645 *
4646 */
4647 class SVGDefinitionSrcElement : virtual public SVGElement
4648 {
4649 public:
4651 //##################
4652 //# Non-API methods
4653 //##################
4655 /**
4656 *
4657 */
4658 virtual ~SVGDefinitionSrcElement() {}
4660 };
4665 /*#########################################################################
4666 ## SVGMetadataElement
4667 #########################################################################*/
4669 /**
4670 *
4671 */
4672 class SVGMetadataElement : virtual public SVGElement
4673 {
4674 public:
4676 //##################
4677 //# Non-API methods
4678 //##################
4680 /**
4681 *
4682 */
4683 virtual ~SVGMetadataElement() {}
4685 };
4689 /*#########################################################################
4690 ## SVGForeignObjectElement
4691 #########################################################################*/
4693 /**
4694 *
4695 */
4696 class SVGForeignObjectElement :
4697 virtual public SVGElement,
4698 public SVGTests,
4699 public SVGLangSpace,
4700 public SVGExternalResourcesRequired,
4701 public SVGStylable,
4702 public SVGTransformable,
4703 public events::EventTarget
4704 {
4705 public:
4708 /**
4709 *
4710 */
4711 virtual SVGAnimatedLength getX() =0;
4713 /**
4714 *
4715 */
4716 virtual SVGAnimatedLength getY() =0;
4718 /**
4719 *
4720 */
4721 virtual SVGAnimatedLength getWidth() =0;
4723 /**
4724 *
4725 */
4726 virtual SVGAnimatedLength getHeight() =0;
4730 //##################
4731 //# Non-API methods
4732 //##################
4735 /**
4736 *
4737 */
4738 virtual ~SVGForeignObjectElement() {}
4740 };
4746 } //namespace svg
4747 } //namespace dom
4748 } //namespace w3c
4749 } //namespace org
4751 #endif // __SVG_H__
4752 /*#########################################################################
4753 ## E N D O F F I L E
4754 #########################################################################*/