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 */
41 // For access to DOM2 core
42 #include "dom/dom.h"
44 // For access to DOM2 events
45 #include "dom/events.h"
47 // For access to those parts from DOM2 CSS OM used by SVG DOM.
48 #include "dom/css.h"
50 // For access to those parts from DOM2 Views OM used by SVG DOM.
51 #include "dom/views.h"
53 // For access to the SMIL OM used by SVG DOM.
54 #include "dom/smil.h"
58 #include "svgtypes.h"
60 #include <math.h>
64 namespace org
65 {
66 namespace w3c
67 {
68 namespace dom
69 {
70 namespace svg
71 {
74 //local definitions
75 typedef dom::DOMString DOMString;
76 typedef dom::DOMException DOMException;
77 typedef dom::Element Element;
78 typedef dom::ElementPtr ElementPtr;
79 typedef dom::Document Document;
80 typedef dom::DocumentPtr DocumentPtr;
81 typedef dom::NodeList NodeList;
86 class SVGElement;
87 typedef Ptr<SVGElement> SVGElementPtr;
88 class SVGSVGElement;
89 typedef Ptr<SVGSVGElement> SVGSVGElementPtr;
90 class SVGDocument;
91 typedef Ptr<SVGDocument> SVGDocumentPtr;
94 /*#########################################################################
95 ## SVGElement
96 #########################################################################*/
98 /**
99 * All of the SVG DOM interfaces that correspond directly to elements in the SVG
100 * language (e.g., the SVGPathElement interface corresponds directly to the
101 * 'path' element in the language) are derivative from base class SVGElement.
102 */
103 class SVGElement : virtual public Element
104 {
105 public:
107 /**
108 * Get the value of the id attribute on the given element.
109 */
110 virtual DOMString getId() =0;
112 /**
113 * Set the value of the id attribute on the given element.
114 */
115 virtual void setId(const DOMString &val)
116 throw (DOMException) =0;
118 /**
119 * Corresponds to attribute xml:base on the given element.
120 */
121 virtual DOMString getXmlBase() = 0;
123 /**
124 * Corresponds to attribute xml:base on the given element.
125 */
126 virtual void setXmlBase(const DOMString &val)
127 throw (DOMException) = 0;
129 /**
130 * The nearest ancestor 'svg' element. Null if the given element is the
131 * outermost 'svg' element.
132 */
133 virtual SVGSVGElementPtr getOwnerSVGElement() = 0;
135 /**
136 * The element which established the current viewport. Often, the nearest
137 * ancestor 'svg' element. Null if the given element is the outermost 'svg'
138 * element.
139 */
140 virtual SVGElementPtr getViewportElement() = 0;
143 //##################
144 //# Non-API methods
145 //##################
148 /**
149 *
150 */
151 virtual ~SVGElement() {}
154 };
158 /*#########################################################################
159 ## SVGDocument
160 #########################################################################*/
162 /**
163 * When an 'svg' element is embedded inline as a component of a document from
164 * another namespace, such as when an 'svg' element is embedded inline within an
165 * XHTML document [XHTML], then an SVGDocument object will not exist; instead,
166 * the root object in the document object hierarchy will be a Document object of
167 * a different type, such as an HTMLDocument object.
168 *
169 * However, an SVGDocument object will indeed exist when the root element of the
170 * XML document hierarchy is an 'svg' element, such as when viewing a stand-alone
171 * SVG file (i.e., a file with MIME type "image/svg+xml"). In this case, the
172 * SVGDocument object will be the root object of the document object model
173 * hierarchy.
174 *
175 * In the case where an SVG document is embedded by reference, such as when an
176 * XHTML document has an 'object' element whose href attribute references an SVG
177 * document (i.e., a document whose MIME type is "image/svg+xml" and whose root
178 * element is thus an 'svg' element), there will exist two distinct DOM
179 * hierarchies. The first DOM hierarchy will be for the referencing document
180 * (e.g., an XHTML document). The second DOM hierarchy will be for the referenced
181 * SVG document. In this second DOM hierarchy, the root object of the document
182 * object model hierarchy is an SVGDocument object.
183 */
184 class SVGDocument : virtual public Document,
185 virtual public events::DocumentEvent
186 {
187 public:
190 /**
191 * The title of a document as specified by the title sub-element of the 'svg'
192 * root element (i.e., <svg><title>Here is the title</title>...</svg>)
193 */
194 virtual DOMString getTitle() =0;
196 /**
197 * Returns the URI of the page that linked to this page. The value is an empty
198 * string if the user navigated to the page directly (not through a link, but,
199 * for example, via a bookmark).
200 */
201 virtual DOMString getReferrer() =0;
203 /**
204 * The domain name of the server that served the document, or a null string if
205 * the server cannot be identified by a domain name.
206 */
207 virtual DOMString getDomain() =0;
209 /**
210 * The complete URI of the document.
211 */
212 virtual DOMString getURL() =0;
214 /**
215 * The root 'svg' element in the document hierarchy.
216 */
217 virtual SVGSVGElementPtr getRootElement() =0;
220 //##################
221 //# Non-API methods
222 //##################
224 /**
225 *
226 */
227 virtual ~SVGDocument() {}
229 };
233 /*#########################################################################
234 ## SVGSVGElement
235 #########################################################################*/
237 /**
238 * A key interface definition is the SVGSVGElement interface, which is the
239 * interface that corresponds to the 'svg' element. This interface contains
240 * various miscellaneous commonly-used utility methods, such as matrix operations
241 * and the ability to control the time of redraw on visual rendering devices.
242 *
243 * SVGSVGElement extends ViewCSS and DocumentCSS to provide access to the
244 * computed values of properties and the override style sheet as described in DOM2.
245 */
246 class SVGSVGElement : virtual public SVGElement,
247 public SVGTests,
248 public SVGLangSpace,
249 public SVGExternalResourcesRequired,
250 public SVGStylable,
251 public SVGLocatable,
252 public SVGFitToViewBox,
253 public SVGZoomAndPan,
254 public events::EventTarget,
255 public events::DocumentEvent,
256 public css::ViewCSS,
257 public css::DocumentCSS
258 {
259 public:
261 /**
262 * Corresponds to attribute x on the given 'svg' element.
263 */
264 virtual SVGAnimatedLength getX() =0;
266 /**
267 * Corresponds to attribute y on the given 'svg' element.
268 */
269 virtual SVGAnimatedLength getY() =0;
271 /**
272 * Corresponds to attribute width on the given 'svg' element.
273 */
274 virtual SVGAnimatedLength getWidth() =0;
276 /**
277 * Corresponds to attribute height on the given 'svg' element.
278 */
279 virtual SVGAnimatedLength getHeight() =0;
281 /**
282 * Get the attribute contentScriptType on the given 'svg' element.
283 */
284 virtual DOMString getContentScriptType() =0;
286 /**
287 * Set the attribute contentScriptType on the given 'svg' element.
288 */
289 virtual void setContentScriptType(const DOMString &val)
290 throw (DOMException) =0;
293 /**
294 * Get the attribute contentStyleType on the given 'svg' element.
295 */
296 virtual DOMString getContentStyleType() =0;
298 /**
299 * Set the attribute contentStyleType on the given 'svg' element.
300 */
301 virtual void setContentStyleType(const DOMString &val)
302 throw (DOMException) =0;
304 /**
305 * The position and size of the viewport (implicit or explicit) that corresponds
306 * to this 'svg' element. When the user agent is actually rendering the content,
307 * then the position and size values represent the actual values when rendering.
308 * The position and size values are unitless values in the coordinate system of
309 * the parent element. If no parent element exists (i.e., 'svg' element
310 * represents the root of the document tree), if this SVG document is embedded as
311 * part of another document (e.g., via the HTML 'object' element), then the
312 * position and size are unitless values in the coordinate system of the parent
313 * document. (If the parent uses CSS or XSL layout, then unitless values
314 * represent pixel units for the current CSS or XSL viewport, as described in the
315 * CSS2 specification.) If the parent element does not have a coordinate system,
316 * then the user agent should provide reasonable default values for this attribute.
317 * */
318 virtual SVGRect getViewport() =0;
320 /**
321 * Size of a pixel units (as defined by CSS2) along the x-axis of the viewport,
322 * which represents a unit somewhere in the range of 70dpi to 120dpi, and, on
323 * systems that support this, might actually match the characteristics of the
324 * target medium. On systems where it is impossible to know the size of a pixel,
325 * a suitable default pixel size is provided.
326 */
327 virtual double getPixelUnitToMillimeterX() =0;
329 /**
330 * Corresponding size of a pixel unit along the y-axis of the viewport.
331 */
332 virtual double getPixelUnitToMillimeterY() =0;
334 /**
335 * User interface (UI) events in DOM Level 2 indicate the screen positions at
336 * which the given UI event occurred. When the user agent actually knows the
337 * physical size of a "screen unit", this attribute will express that information;
338 * otherwise, user agents will provide a suitable default value such as .28mm.
339 */
340 virtual double getScreenPixelToMillimeterX() =0;
342 /**
343 * Corresponding size of a screen pixel along the y-axis of the viewport.
344 */
345 virtual double getScreenPixelToMillimeterY() =0;
348 /**
349 * The initial view (i.e., before magnification and panning) of the current
350 * innermost SVG document fragment can be either the "standard" view (i.e., based
351 * on attributes on the 'svg' element such as fitBoxToViewport) or to a "custom"
352 * view (i.e., a hyperlink into a particular 'view' or other element - see
353 * Linking into SVG content: URI fragments and SVG views). If the initial view is
354 * the "standard" view, then this attribute is false. If the initial view is a
355 * "custom" view, then this attribute is true.
356 */
357 virtual bool getUseCurrentView() =0;
359 /**
360 * Set the value above
361 */
362 virtual void setUseCurrentView(bool val) throw (DOMException) =0;
364 /**
365 * The definition of the initial view (i.e., before magnification and panning) of
366 * the current innermost SVG document fragment. The meaning depends on the
367 * situation:
368 *
369 * * If the initial view was a "standard" view, then:
370 * o the values for viewBox, preserveAspectRatio and zoomAndPan within
371 * currentView will match the values for the corresponding DOM attributes that
372 * are on SVGSVGElement directly
373 * o the values for transform and viewTarget within currentView will be null
374 * * If the initial view was a link into a 'view' element, then:
375 * o the values for viewBox, preserveAspectRatio and zoomAndPan within
376 * currentView will correspond to the corresponding attributes for the given
377 * 'view' element
378 * o the values for transform and viewTarget within currentView will be null
379 * * If the initial view was a link into another element (i.e., other than a
380 * 'view'), then:
381 * o the values for viewBox, preserveAspectRatio and zoomAndPan within
382 * currentView will match the values for the corresponding DOM attributes that
383 * are on SVGSVGElement directly for the closest ancestor 'svg' element
384 * o the values for transform within currentView will be null
385 * o the viewTarget within currentView will represent the target of the link
386 * * If the initial view was a link into the SVG document fragment using an SVG
387 * view specification fragment identifier (i.e., #svgView(...)), then:
388 * o the values for viewBox, preserveAspectRatio, zoomAndPan, transform and
389 * viewTarget within currentView will correspond to the values from the SVG view
390 * specification fragment identifier
391 *
392 */
393 virtual SVGViewSpec getCurrentView() =0;
396 /**
397 * This attribute indicates the current scale factor relative to the initial view
398 * to take into account user magnification and panning operations, as described
399 * under Magnification and panning. DOM attributes currentScale and
400 * currentTranslate are equivalent to the 2x3 matrix [a b c d e f] =
401 * [currentScale 0 0 currentScale currentTranslate.x currentTranslate.y]. If
402 * "magnification" is enabled (i.e., zoomAndPan="magnify"), then the effect is as
403 * if an extra transformation were placed at the outermost level on the SVG
404 * document fragment (i.e., outside the outermost 'svg' element).
405 */
406 virtual double getCurrentScale() =0;
408 /**
409 * Set the value above.
410 */
411 virtual void setCurrentScale(double val)
412 throw (DOMException) =0;
415 /**
416 * The corresponding translation factor that takes into account
417 * user "magnification".
418 */
419 virtual SVGPoint getCurrentTranslate() =0;
422 /**
423 * Takes a time-out value which indicates that redraw shall not occur until: (a)
424 * the corresponding unsuspendRedraw(suspend_handle_id) call has been made, (b)
425 * an unsuspendRedrawAll() call has been made, or (c) its timer has timed out. In
426 * environments that do not support interactivity (e.g., print media), then
427 * redraw shall not be suspended. suspend_handle_id =
428 * suspendRedraw(max_wait_milliseconds) and unsuspendRedraw(suspend_handle_id)
429 * must be packaged as balanced pairs. When you want to suspend redraw actions as
430 * a collection of SVG DOM changes occur, then precede the changes to the SVG DOM
431 * with a method call similar to suspend_handle_id =
432 * suspendRedraw(max_wait_milliseconds) and follow the changes with a method call
433 * similar to unsuspendRedraw(suspend_handle_id). Note that multiple
434 * suspendRedraw calls can be used at once and that each such method call is
435 * treated independently of the other suspendRedraw method calls.
436 */
437 virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds ) =0;
439 /**
440 * Cancels a specified suspendRedraw() by providing a unique suspend_handle_id.
441 */
442 virtual void unsuspendRedraw (unsigned long suspend_handle_id )
443 throw( DOMException ) =0;
445 /**
446 * Cancels all currently active suspendRedraw() method calls. This method is most
447 * useful at the very end of a set of SVG DOM calls to ensure that all pending
448 * suspendRedraw() method calls have been cancelled.
449 */
450 virtual void unsuspendRedrawAll ( ) =0;
452 /**
453 * In rendering environments supporting interactivity, forces the user agent to
454 * immediately redraw all regions of the viewport that require updating.
455 */
456 virtual void forceRedraw ( ) =0;
458 /**
459 * Suspends (i.e., pauses) all currently running animations that are defined
460 * within the SVG document fragment corresponding to this 'svg' element, causing
461 * the animation clock corresponding to this document fragment to stand still
462 * until it is unpaused.
463 */
464 virtual void pauseAnimations ( ) =0;
466 /**
467 * Unsuspends (i.e., unpauses) currently running animations that are defined
468 * within the SVG document fragment, causing the animation clock to continue from
469 * the time at which it was suspended.
470 */
471 virtual void unpauseAnimations ( ) =0;
473 /**
474 * Returns true if this SVG document fragment is in a paused state.
475 */
476 virtual bool animationsPaused ( ) =0;
478 /**
479 * Returns the current time in seconds relative to the start time for
480 * the current SVG document fragment.
481 */
482 virtual double getCurrentTime ( ) =0;
484 /**
485 * Adjusts the clock for this SVG document fragment, establishing
486 * a new current time.
487 */
488 virtual void setCurrentTime (double seconds ) =0;
490 /**
491 * Returns the list of graphics elements whose rendered content intersects the
492 * supplied rectangle, honoring the 'pointer-events' property value on each
493 * candidate graphics element.
494 */
495 virtual NodeList getIntersectionList(const SVGRect &rect,
496 const SVGElementPtr referenceElement ) =0;
498 /**
499 * Returns the list of graphics elements whose rendered content is entirely
500 * contained within the supplied rectangle, honoring the 'pointer-events'
501 * property value on each candidate graphics element.
502 */
503 virtual NodeList getEnclosureList (const SVGRect &rect,
504 const SVGElementPtr referenceElement ) =0;
506 /**
507 * Returns true if the rendered content of the given element intersects the
508 * supplied rectangle, honoring the 'pointer-events' property value on each
509 * candidate graphics element.
510 */
511 virtual bool checkIntersection (const SVGElementPtr element, const SVGRect &rect ) =0;
513 /**
514 * Returns true if the rendered content of the given element is entirely
515 * contained within the supplied rectangle, honoring the 'pointer-events'
516 * property value on each candidate graphics element.
517 */
518 virtual bool checkEnclosure (const SVGElementPtr element, const SVGRect &rect ) =0;
520 /**
521 * Unselects any selected objects, including any selections of text
522 * strings and type-in bars.
523 */
524 virtual void deselectAll ( ) =0;
526 /**
527 * Creates an SVGNumber object outside of any document trees. The object
528 * is initialized to a value of zero.
529 */
530 virtual SVGNumber createSVGNumber ( ) =0;
532 /**
533 * Creates an SVGLength object outside of any document trees. The object
534 * is initialized to the value of 0 user units.
535 */
536 virtual SVGLength createSVGLength ( ) =0;
538 /**
539 * Creates an SVGAngle object outside of any document trees. The object
540 * is initialized to the value 0 degrees (unitless).
541 */
542 virtual SVGAngle createSVGAngle ( ) =0;
544 /**
545 * Creates an SVGPoint object outside of any document trees. The object
546 * is initialized to the point (0,0) in the user coordinate system.
547 */
548 virtual SVGPoint createSVGPoint ( ) =0;
550 /**
551 * Creates an SVGMatrix object outside of any document trees. The object
552 * is initialized to the identity matrix.
553 */
554 virtual SVGMatrix createSVGMatrix ( ) =0;
556 /**
557 * Creates an SVGRect object outside of any document trees. The object
558 * is initialized such that all values are set to 0 user units.
559 */
560 virtual SVGRect createSVGRect ( ) =0;
562 /**
563 * Creates an SVGTransform object outside of any document trees.
564 * The object is initialized to an identity matrix transform
565 * (SVG_TRANSFORM_MATRIX).
566 */
567 virtual SVGTransform createSVGTransform ( ) =0;
569 /**
570 * Creates an SVGTransform object outside of any document trees.
571 * The object is initialized to the given matrix transform
572 * (i.e., SVG_TRANSFORM_MATRIX).
573 */
574 virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix ) =0;
576 /**
577 * Searches this SVG document fragment (i.e., the search is restricted to a
578 * subset of the document tree) for an Element whose id is given by elementId. If
579 * an Element is found, that Element is returned. If no such element exists,
580 * returns null. Behavior is not defined if more than one element has this id.
581 */
582 virtual ElementPtr getElementById (const DOMString& elementId ) =0;
586 //##################
587 //# Non-API methods
588 //##################
590 /**
591 *
592 */
593 virtual ~SVGSVGElement() {}
595 };
599 /*#########################################################################
600 ## SVGGElement
601 #########################################################################*/
603 /**
604 * The SVGGElement interface corresponds to the 'g' element.
605 */
606 class SVGGElement : virtual public SVGElement,
607 public SVGTests,
608 public SVGLangSpace,
609 public SVGExternalResourcesRequired,
610 public SVGStylable,
611 public SVGTransformable,
612 public events::EventTarget
613 {
614 public:
616 //##################
617 //# Non-API methods
618 //##################
620 /**
621 *
622 */
623 virtual ~SVGGElement() {}
625 };
630 /*#########################################################################
631 ## SVGDefsElement
632 #########################################################################*/
634 /**
635 * The SVGDefsElement interface corresponds to the 'defs' element.
636 */
637 class SVGDefsElement :
638 virtual public SVGElement,
639 public SVGTests,
640 public SVGLangSpace,
641 public SVGExternalResourcesRequired,
642 public SVGStylable,
643 public SVGTransformable,
644 public events::EventTarget
645 {
646 public:
648 //##################
649 //# Non-API methods
650 //##################
652 /**
653 *
654 */
655 virtual ~SVGDefsElement() {}
657 };
662 /*#########################################################################
663 ## SVGDescElement
664 #########################################################################*/
666 /**
667 * The SVGDescElement interface corresponds to the 'desc' element.
668 */
669 class SVGDescElement :
670 virtual public SVGElement,
671 public SVGLangSpace,
672 public SVGStylable
673 {
674 public:
676 //##################
677 //# Non-API methods
678 //##################
680 /**
681 *
682 */
683 virtual ~SVGDescElement() {}
685 };
690 /*#########################################################################
691 ## SVGTitleElement
692 #########################################################################*/
694 /**
695 * The SVGTitleElement interface corresponds to the 'title' element.
696 */
697 class SVGTitleElement :
698 virtual public SVGElement,
699 public SVGLangSpace,
700 public SVGStylable
701 {
702 public:
704 //##################
705 //# Non-API methods
706 //##################
708 /**
709 *
710 */
711 virtual ~SVGTitleElement() {}
713 };
718 /*#########################################################################
719 ## SVGSymbolElement
720 #########################################################################*/
722 /**
723 * The SVGSymbolElement interface corresponds to the 'symbol' element.
724 */
725 class SVGSymbolElement :
726 virtual public SVGElement,
727 public SVGLangSpace,
728 public SVGExternalResourcesRequired,
729 public SVGStylable,
730 public SVGFitToViewBox,
731 public events::EventTarget
732 {
733 public:
735 //##################
736 //# Non-API methods
737 //##################
739 /**
740 *
741 */
742 virtual ~SVGSymbolElement() {}
744 };
749 /*#########################################################################
750 ## SVGUseElement
751 #########################################################################*/
753 /**
754 * The SVGUseElement interface corresponds to the 'use' element.
755 */
756 class SVGUseElement :
757 virtual public SVGElement,
758 public SVGURIReference,
759 public SVGTests,
760 public SVGLangSpace,
761 public SVGExternalResourcesRequired,
762 public SVGStylable,
763 public SVGTransformable,
764 public events::EventTarget
765 {
766 public:
771 /**
772 * Corresponds to attribute x on the given 'use' element.
773 */
774 virtual SVGAnimatedLength getX() =0;
776 /**
777 * Corresponds to attribute y on the given 'use' element.
778 */
779 virtual SVGAnimatedLength getY() =0;
781 /**
782 * Corresponds to attribute width on the given 'use' element.
783 */
784 virtual SVGAnimatedLength getWidth() =0;
786 /**
787 * Corresponds to attribute height on the given 'use' element.
788 */
789 virtual SVGAnimatedLength getHeight() =0;
791 /**
792 * The root of the "instance tree". See description of SVGElementInstance for
793 * a discussion on the instance tree.
794 * */
795 virtual SVGElementInstance getInstanceRoot() =0;
797 /**
798 * If the 'href' attribute is being animated, contains the current animated root
799 * of the "instance tree". If the 'href' attribute is not currently being
800 * animated, contains the same value as 'instanceRoot'. The root of the "instance
801 * tree". See description of SVGElementInstance for a discussion on the instance
802 * tree.
803 */
804 virtual SVGElementInstance getAnimatedInstanceRoot() =0;
808 //##################
809 //# Non-API methods
810 //##################
812 /**
813 *
814 */
815 virtual ~SVGUseElement() {}
817 };
825 /*#########################################################################
826 ## SVGImageElement
827 #########################################################################*/
829 /**
830 * The SVGImageElement interface corresponds to the 'image' element.
831 */
832 class SVGImageElement :
833 virtual public SVGElement,
834 public SVGURIReference,
835 public SVGTests,
836 public SVGLangSpace,
837 public SVGExternalResourcesRequired,
838 public SVGStylable,
839 public SVGTransformable,
840 public events::EventTarget
841 {
842 public:
845 /**
846 * Corresponds to attribute x on the given 'image' element.
847 */
848 virtual SVGAnimatedLength getX() =0;
850 /**
851 * Corresponds to attribute y on the given 'image' element.
852 */
853 virtual SVGAnimatedLength getY() =0;
855 /**
856 * Corresponds to attribute width on the given 'image' element.
857 */
858 virtual SVGAnimatedLength getWidth() =0;
860 /**
861 * Corresponds to attribute height on the given 'image' element.
862 */
863 virtual SVGAnimatedLength getHeight() =0;
866 /**
867 * Corresponds to attribute preserveAspectRatio on the given element.
868 */
869 virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio() =0;
873 //##################
874 //# Non-API methods
875 //##################
877 /**
878 *
879 */
880 virtual ~SVGImageElement() {}
882 };
889 /*#########################################################################
890 ## SVGSwitchElement
891 #########################################################################*/
893 /**
894 * The SVGSwitchElement interface corresponds to the 'switch' element.
895 */
896 class SVGSwitchElement :
897 virtual public SVGElement,
898 public SVGTests,
899 public SVGLangSpace,
900 public SVGExternalResourcesRequired,
901 public SVGStylable,
902 public SVGTransformable,
903 public events::EventTarget
904 {
905 public:
907 //##################
908 //# Non-API methods
909 //##################
911 /**
912 *
913 */
914 virtual ~SVGSwitchElement() {}
916 };
921 /*#########################################################################
922 ## GetSVGDocument
923 #########################################################################*/
925 /**
926 * In the case where an SVG document is embedded by reference, such as when an
927 * XHTML document has an 'object' element whose href (or equivalent) attribute
928 * references an SVG document (i.e., a document whose MIME type is
929 * "image/svg+xml" and whose root element is thus an 'svg' element), the SVG user
930 * agent is required to implement the GetSVGDocument interface for the element
931 * which references the SVG document (e.g., the HTML 'object' or comparable
932 * referencing elements).
933 */
934 class GetSVGDocument
935 {
936 public:
938 /**
939 * Returns the SVGDocument object for the referenced SVG document.
940 */
941 virtual SVGDocumentPtr getSVGDocument ( )
942 throw( DOMException ) =0;
944 //##################
945 //# Non-API methods
946 //##################
948 /**
949 *
950 */
951 virtual ~GetSVGDocument() {}
953 };
960 /*#########################################################################
961 ## SVGStyleElement
962 #########################################################################*/
964 /**
965 * The SVGStyleElement interface corresponds to the 'style' element.
966 */
967 class SVGStyleElement : virtual public SVGElement
968 {
969 public:
971 /**
972 * Get the attribute xml:space on the given element.
973 */
974 virtual DOMString getXmlspace() = 0;
976 /**
977 * Set the attribute xml:space on the given element.
978 */
979 virtual void setXmlspace(const DOMString &val)
980 throw (DOMException) =0;
982 /**
983 * Get the attribute type on the given 'style' element.
984 */
985 virtual DOMString getType() = 0;
987 /**
988 * Set the attribute type on the given 'style' element.
989 */
990 virtual void setType(const DOMString &val)
991 throw (DOMException) =0;
993 /**
994 * Get the attribute media on the given 'style' element.
995 */
996 virtual DOMString getMedia() = 0;
998 /**
999 * Set the attribute media on the given 'style' element.
1000 */
1001 virtual void setMedia(const DOMString &val)
1002 throw (DOMException) =0;
1004 /**
1005 * Get the attribute title on the given 'style' element.
1006 */
1007 virtual DOMString getTitle() = 0;
1009 /**
1010 * Set the attribute title on the given 'style' element.
1011 */
1012 virtual void setTitle(const DOMString &val)
1013 throw (DOMException) =0;
1017 //##################
1018 //# Non-API methods
1019 //##################
1021 /**
1022 *
1023 */
1024 virtual ~SVGStyleElement() {}
1026 };
1033 /*#########################################################################
1034 ## SVGPathElement
1035 #########################################################################*/
1037 /**
1038 * The SVGPathElement interface corresponds to the 'path' element.
1039 */
1040 class SVGPathElement :
1041 virtual public SVGElement,
1042 public SVGTests,
1043 public SVGLangSpace,
1044 public SVGExternalResourcesRequired,
1045 public SVGStylable,
1046 public SVGTransformable,
1047 public events::EventTarget,
1048 public SVGAnimatedPathData
1049 {
1051 public:
1053 /**
1054 * Corresponds to attribute pathLength on the given 'path' element.
1055 */
1056 virtual SVGAnimatedNumber getPathLength() =0;
1058 /**
1059 * Returns the user agent's computed value for the total length of the path using
1060 * the user agent's distance-along-a-path algorithm, as a distance in the current
1061 * user coordinate system.
1062 */
1063 virtual double getTotalLength ( ) =0;
1065 /**
1066 * Returns the (x,y) coordinate in user space which is distance units along the
1067 * path, utilizing the user agent's distance-along-a-path algorithm.
1068 */
1069 virtual SVGPoint getPointAtLength (double distance ) =0;
1071 /**
1072 * Returns the index into pathSegList which is distance units along the path,
1073 * utilizing the user agent's distance-along-a-path algorithm.
1074 */
1075 virtual unsigned long getPathSegAtLength (double distance ) =0;
1077 /**
1078 * Returns a stand-alone, parentless SVGPathSegClosePath object.
1079 */
1080 virtual SVGPathSegClosePath
1081 createSVGPathSegClosePath ( ) =0;
1083 /**
1084 * Returns a stand-alone, parentless SVGPathSegMovetoAbs object.
1085 */
1086 virtual SVGPathSegMovetoAbs
1087 createSVGPathSegMovetoAbs (double x, double y ) =0;
1089 /**
1090 * Returns a stand-alone, parentless SVGPathSegMovetoRel object.
1091 */
1092 virtual SVGPathSegMovetoRel
1093 createSVGPathSegMovetoRel (double x, double y ) =0;
1095 /**
1096 * Returns a stand-alone, parentless SVGPathSegLinetoAbs object.
1097 */
1098 virtual SVGPathSegLinetoAbs
1099 createSVGPathSegLinetoAbs (double x, double y ) =0;
1101 /**
1102 * Returns a stand-alone, parentless SVGPathSegLinetoRel object.
1103 */
1104 virtual SVGPathSegLinetoRel
1105 createSVGPathSegLinetoRel (double x, double y ) =0;
1107 /**
1108 * Returns a stand-alone, parentless SVGPathSegCurvetoCubicAbs object.
1109 */
1110 virtual SVGPathSegCurvetoCubicAbs
1111 createSVGPathSegCurvetoCubicAbs (double x, double y,
1112 double x1, double y1, double x2, double y2 ) =0;
1114 /**
1115 * Returns a stand-alone, parentless SVGPathSegCurvetoCubicRel object.
1116 */
1117 virtual SVGPathSegCurvetoCubicRel
1118 createSVGPathSegCurvetoCubicRel (double x, double y,
1119 double x1, double y1, double x2, double y2 ) =0;
1121 /**
1122 * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticAbs object.
1123 */
1124 virtual SVGPathSegCurvetoQuadraticAbs
1125 createSVGPathSegCurvetoQuadraticAbs (double x, double y,
1126 double x1, double y1 ) =0;
1128 /**
1129 * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticRel object.
1130 */
1131 virtual SVGPathSegCurvetoQuadraticRel
1132 createSVGPathSegCurvetoQuadraticRel (double x, double y,
1133 double x1, double y1 ) =0;
1135 /**
1136 * Returns a stand-alone, parentless SVGPathSegArcAbs object.
1137 */
1138 virtual SVGPathSegArcAbs
1139 createSVGPathSegArcAbs (double x, double y,
1140 double r1, double r2, double angle,
1141 bool largeArcFlag, bool sweepFlag ) =0;
1143 /**
1144 * Returns a stand-alone, parentless SVGPathSegArcRel object.
1145 */
1146 virtual SVGPathSegArcRel
1147 createSVGPathSegArcRel (double x, double y, double r1,
1148 double r2, double angle, bool largeArcFlag,
1149 bool sweepFlag ) =0;
1151 /**
1152 * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalAbs object.
1153 */
1154 virtual SVGPathSegLinetoHorizontalAbs
1155 createSVGPathSegLinetoHorizontalAbs (double x ) =0;
1157 /**
1158 * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalRel object.
1159 */
1160 virtual SVGPathSegLinetoHorizontalRel
1161 createSVGPathSegLinetoHorizontalRel (double x ) =0;
1163 /**
1164 * Returns a stand-alone, parentless SVGPathSegLinetoVerticalAbs object.
1165 */
1166 virtual SVGPathSegLinetoVerticalAbs
1167 createSVGPathSegLinetoVerticalAbs (double y ) =0;
1169 /**
1170 * Returns a stand-alone, parentless SVGPathSegLinetoVerticalRel object.
1171 */
1172 virtual SVGPathSegLinetoVerticalRel
1173 createSVGPathSegLinetoVerticalRel (double y ) =0;
1175 /**
1176 * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothAbs object.
1177 */
1178 virtual SVGPathSegCurvetoCubicSmoothAbs
1179 createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
1180 double x2, double y2 ) =0;
1182 /**
1183 * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothRel object.
1184 */
1185 virtual SVGPathSegCurvetoCubicSmoothRel
1186 createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
1187 double x2, double y2 ) =0;
1189 /**
1190 * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothAbs
1191 * object.
1192 */
1193 virtual SVGPathSegCurvetoQuadraticSmoothAbs
1194 createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y ) =0;
1196 /**
1197 * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothRel
1198 * object.
1199 */
1200 virtual SVGPathSegCurvetoQuadraticSmoothRel
1201 createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y ) =0;
1205 //##################
1206 //# Non-API methods
1207 //##################
1209 /**
1210 *
1211 */
1212 virtual ~SVGPathElement() {}
1214 };
1221 /*#########################################################################
1222 ## SVGRectElement
1223 #########################################################################*/
1225 /**
1226 * The SVGRectElement interface corresponds to the 'rect' element.
1227 */
1228 class SVGRectElement :
1229 virtual public SVGElement,
1230 public SVGTests,
1231 public SVGLangSpace,
1232 public SVGExternalResourcesRequired,
1233 public SVGStylable,
1234 public SVGTransformable,
1235 public events::EventTarget
1236 {
1237 public:
1239 /**
1240 * Corresponds to attribute x on the given 'rect' element.
1241 */
1242 virtual SVGAnimatedLength getX() =0;
1244 /**
1245 * Corresponds to attribute y on the given 'rect' element.
1246 */
1247 virtual SVGAnimatedLength getY() =0;
1249 /**
1250 * Corresponds to attribute width on the given 'rect' element.
1251 */
1252 virtual SVGAnimatedLength getWidth() =0;
1254 /**
1255 * Corresponds to attribute height on the given 'rect' element.
1256 */
1257 virtual SVGAnimatedLength getHeight() =0;
1260 /**
1261 * Corresponds to attribute rx on the given 'rect' element.
1262 */
1263 virtual SVGAnimatedLength getRx() =0;
1265 /**
1266 * Corresponds to attribute ry on the given 'rect' element.
1267 */
1268 virtual SVGAnimatedLength getRy() =0;
1272 //##################
1273 //# Non-API methods
1274 //##################
1276 /**
1277 *
1278 */
1279 virtual ~SVGRectElement() {}
1281 };
1288 /*#########################################################################
1289 ## SVGCircleElement
1290 #########################################################################*/
1292 /**
1293 * The SVGCircleElement interface corresponds to the 'circle' element.
1294 */
1295 class SVGCircleElement :
1296 virtual public SVGElement,
1297 public SVGTests,
1298 public SVGLangSpace,
1299 public SVGExternalResourcesRequired,
1300 public SVGStylable,
1301 public SVGTransformable,
1302 public events::EventTarget
1303 {
1304 public:
1306 /**
1307 * Corresponds to attribute cx on the given 'circle' element.
1308 */
1309 virtual SVGAnimatedLength getCx() =0;
1311 /**
1312 * Corresponds to attribute cy on the given 'circle' element.
1313 */
1314 virtual SVGAnimatedLength getCy() =0;
1316 /**
1317 * Corresponds to attribute r on the given 'circle' element.
1318 */
1319 virtual SVGAnimatedLength getR() =0;
1323 //##################
1324 //# Non-API methods
1325 //##################
1327 /**
1328 *
1329 */
1330 virtual ~SVGCircleElement() {}
1332 };
1339 /*#########################################################################
1340 ## SVGEllipseElement
1341 #########################################################################*/
1343 /**
1344 * The SVGEllipseElement interface corresponds to the 'ellipse' element.
1345 */
1346 class SVGEllipseElement :
1347 virtual public SVGElement,
1348 public SVGTests,
1349 public SVGLangSpace,
1350 public SVGExternalResourcesRequired,
1351 public SVGStylable,
1352 public SVGTransformable,
1353 public events::EventTarget
1354 {
1355 public:
1357 /**
1358 * Corresponds to attribute cx on the given 'ellipse' element.
1359 */
1360 virtual SVGAnimatedLength getCx() =0;
1362 /**
1363 * Corresponds to attribute cy on the given 'ellipse' element.
1364 */
1365 virtual SVGAnimatedLength getCy() =0;
1367 /**
1368 * Corresponds to attribute rx on the given 'ellipse' element.
1369 */
1370 virtual SVGAnimatedLength getRx() =0;
1372 /**
1373 * Corresponds to attribute ry on the given 'ellipse' element.
1374 */
1375 virtual SVGAnimatedLength getRy() =0;
1378 //##################
1379 //# Non-API methods
1380 //##################
1382 /**
1383 *
1384 */
1385 virtual ~SVGEllipseElement() {}
1387 };
1394 /*#########################################################################
1395 ## SVGLineElement
1396 #########################################################################*/
1398 /**
1399 * The SVGLineElement interface corresponds to the 'line' element.
1400 */
1401 class SVGLineElement :
1402 virtual public SVGElement,
1403 public SVGTests,
1404 public SVGLangSpace,
1405 public SVGExternalResourcesRequired,
1406 public SVGStylable,
1407 public SVGTransformable,
1408 public events::EventTarget
1409 {
1410 public:
1412 /**
1413 * Corresponds to attribute x1 on the given 'line' element.
1414 */
1415 virtual SVGAnimatedLength getX1() =0;
1417 /**
1418 * Corresponds to attribute y1 on the given 'line' element.
1419 */
1420 virtual SVGAnimatedLength getY1() =0;
1422 /**
1423 * Corresponds to attribute x2 on the given 'line' element.
1424 */
1425 virtual SVGAnimatedLength getX2() =0;
1427 /**
1428 * Corresponds to attribute y2 on the given 'line' element.
1429 */
1430 virtual SVGAnimatedLength getY2() =0;
1432 //##################
1433 //# Non-API methods
1434 //##################
1436 /**
1437 *
1438 */
1439 virtual ~SVGLineElement() {}
1441 };
1446 /*#########################################################################
1447 ## SVGPolylineElement
1448 #########################################################################*/
1450 /**
1451 * The SVGPolylineElement interface corresponds to the 'polyline' element.
1452 */
1453 class SVGPolylineElement :
1454 virtual public SVGElement,
1455 public SVGTests,
1456 public SVGLangSpace,
1457 public SVGExternalResourcesRequired,
1458 public SVGStylable,
1459 public SVGTransformable,
1460 public events::EventTarget,
1461 public SVGAnimatedPoints
1462 {
1464 public:
1466 //##################
1467 //# Non-API methods
1468 //##################
1470 /**
1471 *
1472 */
1473 virtual ~SVGPolylineElement() {}
1475 };
1480 /*#########################################################################
1481 ## SVGPolygonElement
1482 #########################################################################*/
1484 /**
1485 * The SVGPolygonElement interface corresponds to the 'polygon' element.
1486 */
1487 class SVGPolygonElement :
1488 virtual public SVGElement,
1489 public SVGTests,
1490 public SVGLangSpace,
1491 public SVGExternalResourcesRequired,
1492 public SVGStylable,
1493 public SVGTransformable,
1494 public events::EventTarget,
1495 public SVGAnimatedPoints
1496 {
1497 public:
1499 //##################
1500 //# Non-API methods
1501 //##################
1503 /**
1504 *
1505 */
1506 virtual ~SVGPolygonElement() {}
1508 };
1513 /*#########################################################################
1514 ## SVGTextContentElement
1515 #########################################################################*/
1517 /**
1518 * The SVGTextContentElement interface is inherited by various text-related
1519 * interfaces, such as SVGTextElement, SVGTSpanElement, SVGTRefElement,
1520 * SVGAltGlyphElement and SVGTextPathElement.
1521 */
1522 class SVGTextContentElement :
1523 virtual public SVGElement,
1524 public SVGTests,
1525 public SVGLangSpace,
1526 public SVGExternalResourcesRequired,
1527 public SVGStylable,
1528 public events::EventTarget
1529 {
1531 public:
1533 /**
1534 * lengthAdjust Types
1535 */
1536 typedef enum
1537 {
1538 LENGTHADJUST_UNKNOWN = 0,
1539 LENGTHADJUST_SPACING = 1,
1540 LENGTHADJUST_SPACINGANDGLYPHS = 2
1541 } LengthAdjustType;
1544 /**
1545 * Corresponds to attribute textLength on the given element.
1546 */
1547 virtual SVGAnimatedLength getTextLength() =0;
1550 /**
1551 * Corresponds to attribute lengthAdjust on the given element. The value must be
1552 * one of the length adjust constants specified above.
1553 */
1554 virtual SVGAnimatedEnumeration getLengthAdjust() =0;
1557 /**
1558 * Returns the total number of characters to be rendered within the current
1559 * element. Includes characters which are included via a 'tref' reference.
1560 */
1561 virtual long getNumberOfChars ( ) =0;
1563 /**
1564 * The total sum of all of the advance values from rendering all of the
1565 * characters within this element, including the advance value on the glyphs
1566 * (horizontal or vertical), the effect of properties 'kerning', 'letter-spacing'
1567 * and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan'
1568 * elements. For non-rendering environments, the user agent shall make reasonable
1569 * assumptions about glyph metrics.
1570 */
1571 virtual double getComputedTextLength ( ) =0;
1573 /**
1574 * The total sum of all of the advance values from rendering the specified
1575 * substring of the characters, including the advance value on the glyphs
1576 * (horizontal or vertical), the effect of properties 'kerning', 'letter-spacing'
1577 * and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan'
1578 * elements. For non-rendering environments, the user agent shall make reasonable
1579 * assumptions about glyph metrics.
1580 */
1581 virtual double getSubStringLength (unsigned long charnum, unsigned long nchars )
1582 throw( DOMException ) =0;
1584 /**
1585 * Returns the current text position before rendering the character in the user
1586 * coordinate system for rendering the glyph(s) that correspond to the specified
1587 * character. The current text position has already taken into account the
1588 * effects of any inter-character adjustments due to properties 'kerning',
1589 * 'letter-spacing' and 'word-spacing' and adjustments due to attributes x, y, dx
1590 * and dy. If multiple consecutive characters are rendered inseparably (e.g., as
1591 * a single glyph or a sequence of glyphs), then each of the inseparable
1592 * characters will return the start position for the first glyph.
1593 */
1594 virtual SVGPoint getStartPositionOfChar (unsigned long charnum )
1595 throw( DOMException ) =0;
1597 /**
1598 * Returns the current text position after rendering the character in the user
1599 * coordinate system for rendering the glyph(s) that correspond to the specified
1600 * character. This current text position does not take into account the effects
1601 * of any inter-character adjustments to prepare for the next character, such as
1602 * properties 'kerning', 'letter-spacing' and 'word-spacing' and adjustments due
1603 * to attributes x, y, dx and dy. If multiple consecutive characters are rendered
1604 * inseparably (e.g., as a single glyph or a sequence of glyphs), then each of
1605 * the inseparable characters will return the end position for the last glyph.
1606 */
1607 virtual SVGPoint getEndPositionOfChar (unsigned long charnum )
1608 throw( DOMException ) =0;
1610 /**
1611 * Returns a tightest rectangle which defines the minimum and maximum X and Y
1612 * values in the user coordinate system for rendering the glyph(s) that
1613 * correspond to the specified character. The calculations assume that all glyphs
1614 * occupy the full standard glyph cell for the font. If multiple consecutive
1615 * characters are rendered inseparably (e.g., as a single glyph or a sequence of
1616 * glyphs), then each of the inseparable characters will return the same extent.
1617 */
1618 virtual SVGRect getExtentOfChar (unsigned long charnum )
1619 throw( DOMException ) =0;
1621 /**
1622 * Returns the rotation value relative to the current user coordinate system used
1623 * to render the glyph(s) corresponding to the specified character. If multiple
1624 * glyph(s) are used to render the given character and the glyphs each have
1625 * different rotations (e.g., due to text-on-a-path), the user agent shall return
1626 * an average value (e.g., the rotation angle at the midpoint along the path for
1627 * all glyphs used to render this character). The rotation value represents the
1628 * rotation that is supplemental to any rotation due to properties
1629 * 'glyph-orientation-horizontal' and 'glyph-orientation-vertical'; thus, any
1630 * glyph rotations due to these properties are not included into the returned
1631 * rotation value. If multiple consecutive characters are rendered inseparably
1632 * (e.g., as a single glyph or a sequence of glyphs), then each of the
1633 * inseparable characters will return the same rotation value.
1634 */
1635 virtual double getRotationOfChar (unsigned long charnum )
1636 throw( DOMException ) =0;
1638 /**
1639 * Returns the index of the character whose corresponding glyph cell bounding box
1640 * contains the specified point. The calculations assume that all glyphs occupy
1641 * the full standard glyph cell for the font. If no such character exists, a
1642 * value of -1 is returned. If multiple such characters exist, the character
1643 * within the element whose glyphs were rendered last (i.e., take into account
1644 * any reordering such as for bidirectional text) is used. If multiple
1645 * consecutive characters are rendered inseparably (e.g., as a single glyph or a
1646 * sequence of glyphs), then the user agent shall allocate an equal percentage of
1647 * the text advance amount to each of the contributing characters in determining
1648 * which of the characters is chosen.
1649 */
1650 virtual long getCharNumAtPosition (const SVGPoint &point ) =0;
1652 /**
1653 * Causes the specified substring to be selected just as if the user
1654 * selected the substring interactively.
1655 */
1656 virtual void selectSubString (unsigned long charnum, unsigned long nchars )
1657 throw( DOMException ) =0;
1661 //##################
1662 //# Non-API methods
1663 //##################
1665 /**
1666 *
1667 */
1668 virtual ~SVGTextContentElement() {}
1670 };
1677 /*#########################################################################
1678 ## SVGTextPositioningElement
1679 #########################################################################*/
1681 /**
1682 * The SVGTextPositioningElement interface is inherited by text-related
1683 * interfaces: SVGTextElement, SVGTSpanElement, SVGTRefElement and
1684 * SVGAltGlyphElement.
1685 */
1686 class SVGTextPositioningElement : virtual public SVGTextContentElement
1687 {
1688 public:
1690 /**
1691 * Corresponds to attribute x on the given element.
1692 */
1693 virtual SVGAnimatedLength getX() =0;
1695 /**
1696 * Corresponds to attribute y on the given element.
1697 */
1698 virtual SVGAnimatedLength getY() =0;
1700 /**
1701 * Corresponds to attribute dx on the given element.
1702 */
1703 virtual SVGAnimatedLength getDx() =0;
1705 /**
1706 * Corresponds to attribute dy on the given element.
1707 */
1708 virtual SVGAnimatedLength getDy() =0;
1711 /**
1712 * Corresponds to attribute rotate on the given element.
1713 */
1714 virtual SVGAnimatedNumberList getRotate() =0;
1718 //##################
1719 //# Non-API methods
1720 //##################
1722 /**
1723 *
1724 */
1725 virtual ~SVGTextPositioningElement() {}
1727 };
1734 /*#########################################################################
1735 ## SVGTextElement
1736 #########################################################################*/
1738 /**
1739 * The SVGTextElement interface corresponds to the 'text' element.
1740 */
1741 class SVGTextElement : virtual public SVGTextPositioningElement,
1742 public SVGTransformable
1743 {
1744 public:
1746 //##################
1747 //# Non-API methods
1748 //##################
1750 /**
1751 *
1752 */
1753 virtual ~SVGTextElement() {}
1755 };
1760 /*#########################################################################
1761 ## SVGTSpanElement
1762 #########################################################################*/
1764 /**
1765 * The SVGTSpanElement interface corresponds to the 'tspan' element.
1766 */
1767 class SVGTSpanElement : virtual public SVGTextPositioningElement
1768 {
1769 public:
1771 //##################
1772 //# Non-API methods
1773 //##################
1775 /**
1776 *
1777 */
1778 virtual ~SVGTSpanElement() {}
1780 };
1785 /*#########################################################################
1786 ## SVGTRefElement
1787 #########################################################################*/
1789 /**
1790 * The SVGTRefElement interface corresponds to the 'tref' element.
1791 */
1792 class SVGTRefElement :
1793 virtual public SVGTextPositioningElement,
1794 public SVGURIReference
1795 {
1796 public:
1798 //##################
1799 //# Non-API methods
1800 //##################
1802 /**
1803 *
1804 */
1805 virtual ~SVGTRefElement() {}
1807 };
1812 /*#########################################################################
1813 ## SVGTextPathElement
1814 #########################################################################*/
1816 /**
1817 * The SVGTextPathElement interface corresponds to the 'textPath' element.
1818 */
1819 class SVGTextPathElement :
1820 virtual public SVGTextContentElement,
1821 public SVGURIReference
1822 {
1823 public:
1827 /**
1828 * textPath Method Types
1829 */
1830 typedef enum
1831 {
1832 TEXTPATH_METHODTYPE_UNKNOWN = 0,
1833 TEXTPATH_METHODTYPE_ALIGN = 1,
1834 TEXTPATH_METHODTYPE_STRETCH = 2
1835 } TextPathMethodType;
1837 /**
1838 * textPath Spacing Types
1839 */
1840 typedef enum
1841 {
1842 TEXTPATH_SPACINGTYPE_UNKNOWN = 0,
1843 TEXTPATH_SPACINGTYPE_AUTO = 1,
1844 TEXTPATH_SPACINGTYPE_EXACT = 2
1845 } TextPathSpacingType;
1848 /**
1849 * Corresponds to attribute startOffset on the given 'textPath' element.
1850 */
1851 virtual SVGAnimatedLength getStartOffset() =0;
1853 /**
1854 * Corresponds to attribute method on the given 'textPath' element. The value
1855 * must be one of the method type constants specified above.
1856 */
1857 virtual SVGAnimatedEnumeration getMethod() =0;
1859 /**
1860 * Corresponds to attribute spacing on the given 'textPath' element.
1861 * The value must be one of the spacing type constants specified above.
1862 */
1863 virtual SVGAnimatedEnumeration getSpacing() =0;
1867 //##################
1868 //# Non-API methods
1869 //##################
1871 /**
1872 *
1873 */
1874 virtual ~SVGTextPathElement() {}
1876 };
1883 /*#########################################################################
1884 ## SVGAltGlyphElement
1885 #########################################################################*/
1887 /**
1888 * The SVGAltGlyphElement interface corresponds to the 'altGlyph' element.
1889 */
1890 class SVGAltGlyphElement :
1891 virtual public SVGTextPositioningElement,
1892 public SVGURIReference
1893 {
1894 public:
1896 /**
1897 * Get the attribute glyphRef on the given element.
1898 */
1899 virtual DOMString getGlyphRef() =0;
1901 /**
1902 * Set the attribute glyphRef on the given element.
1903 */
1904 virtual void setGlyphRef(const DOMString &val)
1905 throw (DOMException) =0;
1907 /**
1908 * Get the attribute format on the given element.
1909 */
1910 virtual DOMString getFormat() =0;
1912 /**
1913 * Set the attribute format on the given element.
1914 */
1915 virtual void setFormat(const DOMString &val)
1916 throw (DOMException) =0;
1921 //##################
1922 //# Non-API methods
1923 //##################
1925 /**
1926 *
1927 */
1928 virtual ~SVGAltGlyphElement() {}
1930 };
1937 /*#########################################################################
1938 ## SVGAltGlyphDefElement
1939 #########################################################################*/
1941 /**
1942 * The SVGAltGlyphDefElement interface corresponds to the 'altGlyphDef' element.
1943 */
1944 class SVGAltGlyphDefElement : virtual public SVGElement
1945 {
1946 public:
1948 //##################
1949 //# Non-API methods
1950 //##################
1952 /**
1953 *
1954 */
1955 virtual ~SVGAltGlyphDefElement() {}
1957 };
1962 /*#########################################################################
1963 ## SVGAltGlyphItemElement
1964 #########################################################################*/
1966 /**
1967 * The SVGAltGlyphItemElement interface corresponds to the
1968 * 'altGlyphItem' element.
1969 */
1970 class SVGAltGlyphItemElement : virtual public SVGElement
1971 {
1972 public:
1974 //##################
1975 //# Non-API methods
1976 //##################
1978 /**
1979 *
1980 */
1981 virtual ~SVGAltGlyphItemElement() {}
1983 };
1988 /*#########################################################################
1989 ## SVGGlyphRefElement
1990 #########################################################################*/
1992 /**
1993 * The SVGGlyphRefElement interface corresponds to the 'glyphRef' element.
1994 */
1995 class SVGGlyphRefElement : virtual public SVGElement,
1996 public SVGURIReference,
1997 public SVGStylable
1998 {
1999 public:
2001 /**
2002 * Get the attribute glyphRef on the given element.
2003 */
2004 virtual DOMString getGlyphRef() =0;
2006 /**
2007 * Set the attribute glyphRef on the given element.
2008 */
2009 virtual void setGlyphRef(const DOMString &val)
2010 throw (DOMException) =0;
2012 /**
2013 * Get the attribute format on the given element.
2014 */
2015 virtual DOMString getFormat() =0;
2017 /**
2018 * Set the attribute format on the given element.
2019 */
2020 virtual void setFormat(const DOMString &val)
2021 throw (DOMException) =0;
2023 /**
2024 * Get the attribute x on the given element.
2025 */
2026 virtual double getX() = 0;
2028 /**
2029 * Set the attribute x on the given element.
2030 */
2031 virtual void setX(double val) throw (DOMException) =0;
2033 /**
2034 * Get the attribute y on the given element.
2035 */
2036 virtual double getY() = 0;
2038 /**
2039 * Set the attribute y on the given element.
2040 */
2041 virtual void setY(double val) throw (DOMException) =0;
2043 /**
2044 * Get the attribute dx on the given element.
2045 */
2046 virtual double getDx() = 0;
2048 /**
2049 * Set the attribute dx on the given element.
2050 */
2051 virtual void setDx(double val) throw (DOMException) =0;
2053 /**
2054 * Get the attribute dy on the given element.
2055 */
2056 virtual double getDy() = 0;
2058 /**
2059 * Set the attribute dy on the given element.
2060 */
2061 virtual void setDy(double val) throw (DOMException) =0;
2066 //##################
2067 //# Non-API methods
2068 //##################
2070 /**
2071 *
2072 */
2073 virtual ~SVGGlyphRefElement() {}
2075 };
2081 /*#########################################################################
2082 ## SVGMarkerElement
2083 #########################################################################*/
2085 /**
2086 * The SVGMarkerElement interface corresponds to the 'marker' element.
2087 */
2088 class SVGMarkerElement :
2089 virtual public SVGElement,
2090 public SVGLangSpace,
2091 public SVGExternalResourcesRequired,
2092 public SVGStylable,
2093 public SVGFitToViewBox
2094 {
2095 public:
2099 /**
2100 * Marker Unit Types
2101 */
2102 typedef enum
2103 {
2104 SVG_MARKERUNITS_UNKNOWN = 0,
2105 SVG_MARKERUNITS_USERSPACEONUSE = 1,
2106 SVG_MARKERUNITS_STROKEWIDTH = 2
2107 } MarkerUnitType;
2109 /**
2110 * Marker Orientation Types
2111 */
2112 typedef enum
2113 {
2114 SVG_MARKER_ORIENT_UNKNOWN = 0,
2115 SVG_MARKER_ORIENT_AUTO = 1,
2116 SVG_MARKER_ORIENT_ANGLE = 2
2117 } MarkerOrientationType;
2120 /**
2121 * Corresponds to attribute refX on the given 'marker' element.
2122 */
2123 virtual SVGAnimatedLength getRefX() =0;
2125 /**
2126 * Corresponds to attribute refY on the given 'marker' element.
2127 */
2128 virtual SVGAnimatedLength getRefY() =0;
2130 /**
2131 * Corresponds to attribute markerUnits on the given 'marker' element.
2132 * One of the Marker Units Types defined above.
2133 */
2134 virtual SVGAnimatedEnumeration getMarkerUnits() =0;
2136 /**
2137 * Corresponds to attribute markerWidth on the given 'marker' element.
2138 */
2139 virtual SVGAnimatedLength getMarkerWidth() =0;
2141 /**
2142 * Corresponds to attribute markerHeight on the given 'marker' element.
2143 */
2144 virtual SVGAnimatedLength getMarkerHeight() =0;
2146 /**
2147 * Corresponds to attribute orient on the given 'marker' element.
2148 * One of the Marker Orientation Types defined above.
2149 */
2150 virtual SVGAnimatedEnumeration getOrientType() =0;
2152 /**
2153 * Corresponds to attribute orient on the given 'marker' element.
2154 * If markerUnits is SVG_MARKER_ORIENT_ANGLE, the angle value for
2155 * attribute orient; otherwise, it will be set to zero.
2156 */
2157 virtual SVGAnimatedAngle getOrientAngle() =0;
2160 /**
2161 * Sets the value of attribute orient to 'auto'.
2162 */
2163 virtual void setOrientToAuto ( ) =0;
2165 /**
2166 * Sets the value of attribute orient to the given angle.
2167 */
2168 virtual void setOrientToAngle (const SVGAngle &angle) =0;
2172 //##################
2173 //# Non-API methods
2174 //##################
2176 /**
2177 *
2178 */
2179 virtual ~SVGMarkerElement() {}
2181 };
2188 /*#########################################################################
2189 ## SVGColorProfileElement
2190 #########################################################################*/
2192 /**
2193 * The SVGColorProfileElement interface corresponds to the
2194 * 'color-profile' element.
2195 */
2196 class SVGColorProfileElement :
2197 virtual public SVGElement,
2198 public SVGURIReference,
2199 public SVGRenderingIntent
2200 {
2201 public:
2203 /**
2204 * Get the attribute local on the given element.
2205 */
2206 virtual DOMString getLocal() =0;
2208 /**
2209 * Set the attribute local on the given element.
2210 */
2211 virtual void setLocal(const DOMString &val)
2212 throw (DOMException) =0;
2214 /**
2215 * Get the attribute name on the given element.
2216 */
2217 virtual DOMString getName() =0;
2219 /**
2220 * Set the attribute name on the given element.
2221 */
2222 virtual void setName(const DOMString &val)
2223 throw (DOMException) =0;
2225 /**
2226 * Set the attribute rendering-intent on the given element.
2227 * The type of rendering intent, identified by one of the
2228 * SVGRenderingIntent constants.
2229 */
2230 virtual unsigned short getRenderingIntent() =0;
2232 /**
2233 * Get the attribute rendering-intent on the given element.
2234 */
2235 virtual void setRenderingIntent(unsigned short val)
2236 throw (DOMException) =0;
2240 //##################
2241 //# Non-API methods
2242 //##################
2244 /**
2245 *
2246 */
2247 virtual ~SVGColorProfileElement() {}
2249 };
2254 /*#########################################################################
2255 ## SVGGradientElement
2256 #########################################################################*/
2258 /**
2259 * The SVGGradientElement interface is a base interface used by
2260 * SVGLinearGradientElement and SVGRadialGradientElement.
2261 */
2262 class SVGGradientElement :
2263 virtual public SVGElement,
2264 public SVGURIReference,
2265 public SVGExternalResourcesRequired,
2266 public SVGStylable,
2267 public SVGUnitTypes
2268 {
2270 public:
2272 /**
2273 * Spread Method Types
2274 */
2275 typedef enum
2276 {
2277 SVG_SPREADMETHOD_UNKNOWN = 0,
2278 SVG_SPREADMETHOD_PAD = 1,
2279 SVG_SPREADMETHOD_REFLECT = 2,
2280 SVG_SPREADMETHOD_REPEAT = 3
2281 } SpreadMethodType;
2284 /**
2285 * Corresponds to attribute gradientUnits on the given element.
2286 * Takes one of the constants defined in SVGUnitTypes.
2287 */
2288 virtual SVGAnimatedEnumeration getGradientUnits() =0;
2290 /**
2291 * Corresponds to attribute gradientTransform on the given element.
2292 */
2293 virtual SVGAnimatedTransformList getGradientTransform() =0;
2295 /**
2296 * Corresponds to attribute spreadMethod on the given element.
2297 * One of the Spread Method Types.
2298 */
2299 virtual SVGAnimatedEnumeration getSpreadMethod() =0;
2303 //##################
2304 //# Non-API methods
2305 //##################
2307 /**
2308 *
2309 */
2310 virtual ~SVGGradientElement() {}
2312 };
2319 /*#########################################################################
2320 ## SVGLinearGradientElement
2321 #########################################################################*/
2323 /**
2324 * The SVGLinearGradientElement interface corresponds to the
2325 * 'linearGradient' element.
2326 */
2327 class SVGLinearGradientElement : virtual public SVGGradientElement
2328 {
2329 public:
2332 /**
2333 * Corresponds to attribute x1 on the given 'linearGradient' element.
2334 */
2335 virtual SVGAnimatedLength getX1() =0;
2337 /**
2338 * Corresponds to attribute y1 on the given 'linearGradient' element.
2339 */
2340 virtual SVGAnimatedLength getY1() =0;
2342 /**
2343 * Corresponds to attribute x2 on the given 'linearGradient' element.
2344 */
2345 virtual SVGAnimatedLength getX2() =0;
2347 /**
2348 * Corresponds to attribute y2 on the given 'linearGradient' element.
2349 */
2350 virtual SVGAnimatedLength getY2() =0;
2353 //##################
2354 //# Non-API methods
2355 //##################
2357 /**
2358 *
2359 */
2360 virtual ~SVGLinearGradientElement() {}
2362 };
2369 /*#########################################################################
2370 ## SVGRadialGradientElement
2371 #########################################################################*/
2373 /**
2374 * The SVGRadialGradientElement interface corresponds to the
2375 * 'radialGradient' element.
2376 */
2377 class SVGRadialGradientElement : virtual public SVGGradientElement
2378 {
2380 public:
2382 /**
2383 * Corresponds to attribute cx on the given 'radialGradient' element.
2384 */
2385 virtual SVGAnimatedLength getCx() =0;
2388 /**
2389 * Corresponds to attribute cy on the given 'radialGradient' element.
2390 */
2391 virtual SVGAnimatedLength getCy() =0;
2394 /**
2395 * Corresponds to attribute r on the given 'radialGradient' element.
2396 */
2397 virtual SVGAnimatedLength getR() =0;
2400 /**
2401 * Corresponds to attribute fx on the given 'radialGradient' element.
2402 */
2403 virtual SVGAnimatedLength getFx() =0;
2406 /**
2407 * Corresponds to attribute fy on the given 'radialGradient' element.
2408 */
2409 virtual SVGAnimatedLength getFy() =0;
2414 //##################
2415 //# Non-API methods
2416 //##################
2418 /**
2419 *
2420 */
2421 virtual ~SVGRadialGradientElement() {}
2423 };
2430 /*#########################################################################
2431 ## SVGStopElement
2432 #########################################################################*/
2434 /**
2435 * The SVGStopElement interface corresponds to the 'stop' element.
2436 */
2437 class SVGStopElement :
2438 virtual public SVGElement,
2439 public SVGStylable
2440 {
2441 public:
2443 /**
2444 * Corresponds to attribute offset on the given 'stop' element.
2445 */
2446 virtual SVGAnimatedNumber getOffset() =0;
2450 //##################
2451 //# Non-API methods
2452 //##################
2454 /**
2455 *
2456 */
2457 virtual ~SVGStopElement() {}
2459 };
2466 /*#########################################################################
2467 ## SVGPatternElement
2468 #########################################################################*/
2470 /**
2471 * The SVGPatternElement interface corresponds to the 'pattern' element.
2472 */
2473 class SVGPatternElement :
2474 virtual public SVGElement,
2475 public SVGURIReference,
2476 public SVGTests,
2477 public SVGLangSpace,
2478 public SVGExternalResourcesRequired,
2479 public SVGStylable,
2480 public SVGFitToViewBox,
2481 public SVGUnitTypes
2482 {
2484 public:
2486 /**
2487 * Corresponds to attribute patternUnits on the given 'pattern' element. Takes
2488 * one of the constants defined in SVGUnitTypes.
2489 */
2490 virtual SVGAnimatedEnumeration getPatternUnits() =0;
2492 /**
2493 * Corresponds to attribute patternContentUnits on the given 'pattern'
2494 * element. Takes one of the constants defined in SVGUnitTypes.
2495 */
2496 virtual SVGAnimatedEnumeration getPatternContentUnits() =0;
2498 /**
2499 * Corresponds to attribute patternTransform on the given 'pattern' element.
2500 */
2501 virtual SVGAnimatedTransformList getPatternTransform() =0;
2503 /**
2504 * Corresponds to attribute x on the given 'pattern' element.
2505 */
2506 virtual SVGAnimatedLength getX() =0;
2508 /**
2509 *
2510 */
2511 virtual SVGAnimatedLength getY() =0;
2513 /**
2514 * Corresponds to attribute width on the given 'pattern' element.
2515 */
2516 virtual SVGAnimatedLength getWidth() =0;
2518 /**
2519 * Corresponds to attribute height on the given 'pattern' element.
2520 */
2521 virtual SVGAnimatedLength getHeight() =0;
2525 //##################
2526 //# Non-API methods
2527 //##################
2529 /**
2530 *
2531 */
2532 virtual ~SVGPatternElement() {}
2534 };
2541 /*#########################################################################
2542 ## SVGClipPathElement
2543 #########################################################################*/
2545 /**
2546 * The SVGClipPathElement interface corresponds to the 'clipPath' element.
2547 */
2548 class SVGClipPathElement :
2549 virtual public SVGElement,
2550 public SVGTests,
2551 public SVGLangSpace,
2552 public SVGExternalResourcesRequired,
2553 public SVGStylable,
2554 public SVGTransformable,
2555 public SVGUnitTypes
2556 {
2558 public:
2560 /**
2561 * Corresponds to attribute clipPathUnits on the given 'clipPath' element.
2562 * Takes one of the constants defined in SVGUnitTypes.
2563 */
2564 virtual SVGAnimatedEnumeration getClipPathUnits() =0;
2569 //##################
2570 //# Non-API methods
2571 //##################
2573 /**
2574 *
2575 */
2576 virtual ~SVGClipPathElement() {}
2578 };
2585 /*#########################################################################
2586 ## SVGMaskElement
2587 #########################################################################*/
2589 /**
2590 * The SVGMaskElement interface corresponds to the 'mask' element.
2591 */
2592 class SVGMaskElement :
2593 virtual public SVGElement,
2594 public SVGTests,
2595 public SVGLangSpace,
2596 public SVGExternalResourcesRequired,
2597 public SVGStylable,
2598 public SVGUnitTypes
2599 {
2600 public:
2604 /**
2605 * Corresponds to attribute maskUnits on the given 'mask' element. Takes one of
2606 * the constants defined in SVGUnitTypes.
2607 */
2608 virtual SVGAnimatedEnumeration getMaskUnits() =0;
2610 /**
2611 * Corresponds to attribute maskContentUnits on the given 'mask' element. Takes
2612 * one of the constants defined in SVGUnitTypes.
2613 */
2614 virtual SVGAnimatedEnumeration getMaskContentUnits() =0;
2616 /**
2617 * Corresponds to attribute x on the given 'mask' element.
2618 */
2619 virtual SVGAnimatedLength getX() =0;
2621 /**
2622 * Corresponds to attribute y on the given 'mask' element.
2623 */
2624 virtual SVGAnimatedLength getY() =0;
2626 /**
2627 * Corresponds to attribute width on the given 'mask' element.
2628 */
2629 virtual SVGAnimatedLength getWidth() =0;
2631 /**
2632 * Corresponds to attribute height on the given 'mask' element.
2633 */
2634 virtual SVGAnimatedLength getHeight() =0;
2636 //##################
2637 //# Non-API methods
2638 //##################
2640 /**
2641 *
2642 */
2643 virtual ~SVGMaskElement() {}
2645 };
2652 /*#########################################################################
2653 ## SVGFilterElement
2654 #########################################################################*/
2656 /**
2657 * The SVGFilterElement interface corresponds to the 'filter' element.
2658 */
2659 class SVGFilterElement :
2660 virtual public SVGElement,
2661 public SVGURIReference,
2662 public SVGLangSpace,
2663 public SVGExternalResourcesRequired,
2664 public SVGStylable,
2665 public SVGUnitTypes
2666 {
2668 public:
2670 /**
2671 * Corresponds to attribute filterUnits on the given 'filter' element. Takes one
2672 * of the constants defined in SVGUnitTypes.
2673 */
2674 virtual SVGAnimatedEnumeration getFilterUnits() =0;
2676 /**
2677 * Corresponds to attribute primitiveUnits on the given 'filter' element. Takes
2678 * one of the constants defined in SVGUnitTypes.
2679 */
2680 virtual SVGAnimatedEnumeration getPrimitiveUnits() =0;
2682 /**
2683 *
2684 */
2685 virtual SVGAnimatedLength getX() =0;
2687 /**
2688 * Corresponds to attribute x on the given 'filter' element.
2689 */
2690 virtual SVGAnimatedLength getY() =0;
2692 /**
2693 * Corresponds to attribute y on the given 'filter' element.
2694 */
2695 virtual SVGAnimatedLength getWidth() =0;
2697 /**
2698 * Corresponds to attribute height on the given 'filter' element.
2699 */
2700 virtual SVGAnimatedLength getHeight() =0;
2703 /**
2704 * Corresponds to attribute filterRes on the given 'filter' element.
2705 * Contains the X component of attribute filterRes.
2706 */
2707 virtual SVGAnimatedInteger getFilterResX() =0;
2709 /**
2710 * Corresponds to attribute filterRes on the given 'filter' element.
2711 * Contains the Y component (possibly computed automatically)
2712 * of attribute filterRes.
2713 */
2714 virtual SVGAnimatedInteger getFilterResY() =0;
2716 /**
2717 * Sets the values for attribute filterRes.
2718 */
2719 virtual void setFilterRes (unsigned long filterResX,
2720 unsigned long filterResY ) =0;
2724 //##################
2725 //# Non-API methods
2726 //##################
2728 /**
2729 *
2730 */
2731 virtual ~SVGFilterElement() {}
2733 };
2739 /*#########################################################################
2740 ## SVGFEBlendElement
2741 #########################################################################*/
2743 /**
2744 * The SVGFEBlendElement interface corresponds to the 'feBlend' element.
2745 */
2746 class SVGFEBlendElement :
2747 virtual public SVGElement,
2748 public SVGFilterPrimitiveStandardAttributes
2749 {
2750 public:
2753 /**
2754 * Blend Mode Types
2755 */
2756 typedef enum
2757 {
2758 SVG_FEBLEND_MODE_UNKNOWN = 0,
2759 SVG_FEBLEND_MODE_NORMAL = 1,
2760 SVG_FEBLEND_MODE_MULTIPLY = 2,
2761 SVG_FEBLEND_MODE_SCREEN = 3,
2762 SVG_FEBLEND_MODE_DARKEN = 4,
2763 SVG_FEBLEND_MODE_LIGHTEN = 5
2764 } BlendModeType;
2766 /**
2767 * Corresponds to attribute in on the given 'feBlend' element.
2768 */
2769 virtual SVGAnimatedString getIn1() =0;
2771 /**
2772 * Corresponds to attribute in2 on the given 'feBlend' element.
2773 */
2774 virtual SVGAnimatedString getIn2() =0;
2776 /**
2777 * Corresponds to attribute mode on the given 'feBlend' element.
2778 * Takes one of the Blend Mode Types.
2779 */
2780 virtual SVGAnimatedEnumeration getMode() =0;
2783 //##################
2784 //# Non-API methods
2785 //##################
2787 /**
2788 *
2789 */
2790 virtual ~SVGFEBlendElement() {}
2792 };
2799 /*#########################################################################
2800 ## SVGFEColorMatrixElement
2801 #########################################################################*/
2803 /**
2804 * The SVGFEColorMatrixElement interface corresponds to the
2805 * 'feColorMatrix' element.
2806 */
2807 class SVGFEColorMatrixElement :
2808 virtual public SVGElement,
2809 public SVGFilterPrimitiveStandardAttributes
2810 {
2812 public:
2814 /**
2815 * Color Matrix Types
2816 */
2817 typedef enum
2818 {
2819 SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0,
2820 SVG_FECOLORMATRIX_TYPE_MATRIX = 1,
2821 SVG_FECOLORMATRIX_TYPE_SATURATE = 2,
2822 SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3,
2823 SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4
2824 } ColorMatrixType;
2827 /**
2828 * Corresponds to attribute in on the given 'feColorMatrix' element.
2829 */
2830 virtual SVGAnimatedString getIn1() =0;
2832 /**
2833 * Corresponds to attribute type on the given 'feColorMatrix' element.
2834 * Takes one of the Color Matrix Types.
2835 */
2836 virtual SVGAnimatedEnumeration getType() =0;
2838 /**
2839 * Corresponds to attribute values on the given 'feColorMatrix' element.
2840 * Provides access to the contents of the values attribute.
2841 */
2842 virtual SVGAnimatedNumberList getValues() =0;
2846 //##################
2847 //# Non-API methods
2848 //##################
2850 /**
2851 *
2852 */
2853 virtual ~SVGFEColorMatrixElement() {}
2855 };
2862 /*#########################################################################
2863 ## SVGFEComponentTransferElement
2864 #########################################################################*/
2866 /**
2867 * The SVGFEComponentTransferElement interface corresponds to
2868 * the 'feComponentTransfer' element.
2869 */
2870 class SVGFEComponentTransferElement :
2871 virtual public SVGElement,
2872 public SVGFilterPrimitiveStandardAttributes
2873 {
2874 public:
2876 /**
2877 * Corresponds to attribute in on the given 'feComponentTransfer' element.
2878 */
2879 virtual SVGAnimatedString getIn1() =0;
2881 //##################
2882 //# Non-API methods
2883 //##################
2885 /**
2886 *
2887 */
2888 virtual ~SVGFEComponentTransferElement() {}
2890 };
2897 /*#########################################################################
2898 ## SVGComponentTransferFunctionElement
2899 #########################################################################*/
2901 /**
2902 * This interface defines a base interface used by the component
2903 * transfer function interfaces.
2904 */
2905 class SVGComponentTransferFunctionElement : virtual public SVGElement
2906 {
2907 public:
2910 /**
2911 * Component Transfer Types
2912 */
2913 typedef enum
2914 {
2915 SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0,
2916 SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,
2917 SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2,
2918 SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,
2919 SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4,
2920 SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5
2921 } ComponentTransferType;
2924 /**
2925 * Corresponds to attribute type on the given element. Takes one\
2926 * of the Component Transfer Types.
2927 */
2928 virtual SVGAnimatedEnumeration getType() =0;
2930 /**
2931 * Corresponds to attribute tableValues on the given element.
2932 */
2933 virtual SVGAnimatedNumberList getTableValues() =0;
2935 /**
2936 * Corresponds to attribute slope on the given element.
2937 */
2938 virtual SVGAnimatedNumber getSlope() =0;
2940 /**
2941 * Corresponds to attribute intercept on the given element.
2942 */
2943 virtual SVGAnimatedNumber getIntercept() =0;
2945 /**
2946 * Corresponds to attribute amplitude on the given element.
2947 */
2948 virtual SVGAnimatedNumber getAmplitude() =0;
2950 /**
2951 * Corresponds to attribute exponent on the given element.
2952 */
2953 virtual SVGAnimatedNumber getExponent() =0;
2955 /**
2956 * Corresponds to attribute offset on the given element.
2957 */
2958 virtual SVGAnimatedNumber getOffset() =0;
2961 //##################
2962 //# Non-API methods
2963 //##################
2965 /**
2966 *
2967 */
2968 virtual ~SVGComponentTransferFunctionElement() {}
2970 };
2977 /*#########################################################################
2978 ## SVGFEFuncRElement
2979 #########################################################################*/
2981 /**
2982 * The SVGFEFuncRElement interface corresponds to the 'feFuncR' element.
2983 */
2984 class SVGFEFuncRElement : virtual public SVGComponentTransferFunctionElement
2985 {
2986 public:
2988 //##################
2989 //# Non-API methods
2990 //##################
2992 /**
2993 *
2994 */
2995 virtual ~SVGFEFuncRElement() {}
2997 };
3002 /*#########################################################################
3003 ## SVGFEFuncGElement
3004 #########################################################################*/
3006 /**
3007 * The SVGFEFuncGElement interface corresponds to the 'feFuncG' element.
3008 */
3009 class SVGFEFuncGElement : public virtual SVGComponentTransferFunctionElement
3010 {
3011 public:
3013 //##################
3014 //# Non-API methods
3015 //##################
3017 /**
3018 *
3019 */
3020 virtual ~SVGFEFuncGElement() {}
3022 };
3027 /*#########################################################################
3028 ## SVGFEFuncBElement
3029 #########################################################################*/
3031 /**
3032 * The SVGFEFuncBElement interface corresponds to the 'feFuncB' element.
3033 */
3034 class SVGFEFuncBElement : virtual public SVGComponentTransferFunctionElement
3035 {
3036 public:
3038 //##################
3039 //# Non-API methods
3040 //##################
3042 /**
3043 *
3044 */
3045 virtual ~SVGFEFuncBElement() {}
3047 };
3052 /*#########################################################################
3053 ## SVGFEFuncAElement
3054 #########################################################################*/
3056 /**
3057 * The SVGFEFuncAElement interface corresponds to the 'feFuncA' element.
3058 */
3059 class SVGFEFuncAElement : virtual public SVGComponentTransferFunctionElement
3060 {
3061 public:
3063 //##################
3064 //# Non-API methods
3065 //##################
3067 /**
3068 *
3069 */
3070 virtual ~SVGFEFuncAElement() {}
3072 };
3077 /*#########################################################################
3078 ## SVGFECompositeElement
3079 #########################################################################*/
3081 /**
3082 * The SVGFECompositeElement interface corresponds to the 'feComposite' element.
3083 */
3084 class SVGFECompositeElement :
3085 virtual public SVGElement,
3086 public SVGFilterPrimitiveStandardAttributes
3087 {
3088 public:
3092 /**
3093 * Composite Operators
3094 */
3095 typedef enum
3096 {
3097 SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0,
3098 SVG_FECOMPOSITE_OPERATOR_OVER = 1,
3099 SVG_FECOMPOSITE_OPERATOR_IN = 2,
3100 SVG_FECOMPOSITE_OPERATOR_OUT = 3,
3101 SVG_FECOMPOSITE_OPERATOR_ATOP = 4,
3102 SVG_FECOMPOSITE_OPERATOR_XOR = 5,
3103 SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6
3104 } CompositeOperatorType;
3106 /**
3107 * Corresponds to attribute in on the given 'feComposite' element.
3108 */
3109 virtual SVGAnimatedString getIn1() =0;
3111 /**
3112 * Corresponds to attribute in2 on the given 'feComposite' element.
3113 */
3114 virtual SVGAnimatedString getIn2() =0;
3116 /**
3117 * Corresponds to attribute operator on the given 'feComposite' element.
3118 * Takes one of the Composite Operators.
3119 */
3120 virtual SVGAnimatedEnumeration getOperator() =0;
3122 /**
3123 * Corresponds to attribute k1 on the given 'feComposite' element.
3124 */
3125 virtual SVGAnimatedNumber getK1() =0;
3127 /**
3128 * Corresponds to attribute k2 on the given 'feComposite' element.
3129 */
3130 virtual SVGAnimatedNumber getK2() =0;
3132 /**
3133 * Corresponds to attribute k3 on the given 'feComposite' element.
3134 */
3135 virtual SVGAnimatedNumber getK3() =0;
3137 /**
3138 * Corresponds to attribute k4 on the given 'feComposite' element.
3139 */
3140 virtual SVGAnimatedNumber getK4() =0;
3144 //##################
3145 //# Non-API methods
3146 //##################
3148 /**
3149 *
3150 */
3151 virtual ~SVGFECompositeElement() {}
3153 };
3160 /*#########################################################################
3161 ## SVGFEConvolveMatrixElement
3162 #########################################################################*/
3164 /**
3165 * The SVGFEConvolveMatrixElement interface corresponds to
3166 * the 'feConvolveMatrix' element.
3167 */
3168 class SVGFEConvolveMatrixElement :
3169 virtual public SVGElement,
3170 public SVGFilterPrimitiveStandardAttributes
3171 {
3173 public:
3175 /**
3176 * Edge Mode Values
3177 */
3178 typedef enum
3179 {
3180 SVG_EDGEMODE_UNKNOWN = 0,
3181 SVG_EDGEMODE_DUPLICATE = 1,
3182 SVG_EDGEMODE_WRAP = 2,
3183 SVG_EDGEMODE_NONE = 3
3184 } EdgeModeType;
3187 /**
3188 * Corresponds to attribute order on the given 'feConvolveMatrix' element.
3189 */
3190 virtual SVGAnimatedInteger getOrderX() =0;
3192 /**
3193 * Corresponds to attribute order on the given 'feConvolveMatrix' element.
3194 */
3195 virtual SVGAnimatedInteger getOrderY() =0;
3197 /**
3198 * Corresponds to attribute kernelMatrix on the given element.
3199 */
3200 virtual SVGAnimatedNumberList getKernelMatrix() =0;
3202 /**
3203 * Corresponds to attribute divisor on the given 'feConvolveMatrix' element.
3204 */
3205 virtual SVGAnimatedNumber getDivisor() =0;
3207 /**
3208 * Corresponds to attribute bias on the given 'feConvolveMatrix' element.
3209 */
3210 virtual SVGAnimatedNumber getBias() =0;
3212 /**
3213 * Corresponds to attribute targetX on the given 'feConvolveMatrix' element.
3214 */
3215 virtual SVGAnimatedInteger getTargetX() =0;
3217 /**
3218 * Corresponds to attribute targetY on the given 'feConvolveMatrix' element.
3219 */
3220 virtual SVGAnimatedInteger getTargetY() =0;
3222 /**
3223 * Corresponds to attribute edgeMode on the given 'feConvolveMatrix'
3224 * element. Takes one of the Edge Mode Types.
3225 */
3226 virtual SVGAnimatedEnumeration getEdgeMode() =0;
3228 /**
3229 * Corresponds to attribute kernelUnitLength on the
3230 * given 'feConvolveMatrix' element.
3231 */
3232 virtual SVGAnimatedLength getKernelUnitLengthX() =0;
3234 /**
3235 * Corresponds to attribute kernelUnitLength on the given
3236 * 'feConvolveMatrix' element.
3237 */
3238 virtual SVGAnimatedLength getKernelUnitLengthY() =0;
3240 /**
3241 * Corresponds to attribute preserveAlpha on the
3242 * given 'feConvolveMatrix' element.
3243 */
3244 virtual SVGAnimatedBoolean getPreserveAlpha() =0;
3248 //##################
3249 //# Non-API methods
3250 //##################
3252 /**
3253 *
3254 */
3255 virtual ~SVGFEConvolveMatrixElement() {}
3257 };
3264 /*#########################################################################
3265 ## SVGFEDiffuseLightingElement
3266 #########################################################################*/
3268 /**
3269 * The SVGFEDiffuseLightingElement interface corresponds to the
3270 * 'feDiffuseLighting' element.
3271 */
3272 class SVGFEDiffuseLightingElement :
3273 virtual public SVGElement,
3274 public SVGFilterPrimitiveStandardAttributes
3275 {
3276 public:
3278 /**
3279 * Corresponds to attribute in on the given 'feDiffuseLighting' element.
3280 */
3281 virtual SVGAnimatedString getIn1() =0;
3283 /**
3284 * Corresponds to attribute surfaceScale on the given
3285 * 'feDiffuseLighting' element.
3286 */
3287 virtual SVGAnimatedNumber getSurfaceScale() =0;
3289 /**
3290 * Corresponds to attribute diffuseConstant on the given
3291 * 'feDiffuseLighting' element.
3292 */
3293 virtual SVGAnimatedNumber getDiffuseConstant() =0;
3295 /**
3296 * Corresponds to attribute kernelUnitLength on the given
3297 * 'feDiffuseLighting' element.
3298 */
3299 virtual SVGAnimatedNumber getKernelUnitLengthX() =0;
3301 /**
3302 * Corresponds to attribute kernelUnitLength on the given
3303 * 'feDiffuseLighting' element.
3304 */
3305 virtual SVGAnimatedNumber getKernelUnitLengthY() =0;
3309 //##################
3310 //# Non-API methods
3311 //##################
3313 /**
3314 *
3315 */
3316 virtual ~SVGFEDiffuseLightingElement() {}
3318 };
3325 /*#########################################################################
3326 ## SVGFEDistantLightElement
3327 #########################################################################*/
3329 /**
3330 * The SVGFEDistantLightElement interface corresponds to the
3331 * 'feDistantLight' element.
3332 */
3333 class SVGFEDistantLightElement : virtual public SVGElement
3334 {
3335 public:
3337 /**
3338 * Corresponds to attribute azimuth on the given 'feDistantLight' element.
3339 */
3340 virtual SVGAnimatedNumber getAzimuth() =0;
3343 /**
3344 * Corresponds to attribute elevation on the given 'feDistantLight'
3345 * element
3346 */
3347 virtual SVGAnimatedNumber getElevation() =0;
3351 //##################
3352 //# Non-API methods
3353 //##################
3355 /**
3356 *
3357 */
3358 virtual ~SVGFEDistantLightElement() {}
3360 };
3367 /*#########################################################################
3368 ## SVGFEPointLightElement
3369 #########################################################################*/
3371 /**
3372 * The SVGFEPointLightElement interface corresponds to the 'fePointLight' element.
3373 */
3374 class SVGFEPointLightElement : virtual public SVGElement
3375 {
3376 public:
3378 /**
3379 * Corresponds to attribute x on the given 'fePointLight' element.
3380 */
3381 virtual SVGAnimatedNumber getX() =0;
3383 /**
3384 * Corresponds to attribute y on the given 'fePointLight' element.
3385 */
3386 virtual SVGAnimatedNumber getY() =0;
3388 /**
3389 * Corresponds to attribute z on the given 'fePointLight' element.
3390 */
3391 virtual SVGAnimatedNumber getZ() =0;
3393 //##################
3394 //# Non-API methods
3395 //##################
3397 /**
3398 *
3399 */
3400 virtual ~SVGFEPointLightElement() {}
3402 };
3409 /*#########################################################################
3410 ## SVGFESpotLightElement
3411 #########################################################################*/
3413 /**
3414 * The SVGFESpotLightElement interface corresponds to the 'feSpotLight' element.
3415 */
3416 class SVGFESpotLightElement : virtual public SVGElement
3417 {
3418 public:
3420 /**
3421 * Corresponds to attribute x on the given 'feSpotLight' element.
3422 */
3423 virtual SVGAnimatedNumber getX() =0;
3425 /**
3426 * Corresponds to attribute y on the given 'feSpotLight' element.
3427 */
3428 virtual SVGAnimatedNumber getY() =0;
3430 /**
3431 * Corresponds to attribute z on the given 'feSpotLight' element.
3432 */
3433 virtual SVGAnimatedNumber getZ() =0;
3435 /**
3436 * Corresponds to attribute pointsAtX on the given 'feSpotLight' element.
3437 */
3438 virtual SVGAnimatedNumber getPointsAtX() =0;
3440 /**
3441 * Corresponds to attribute pointsAtY on the given 'feSpotLight' element.
3442 */
3443 virtual SVGAnimatedNumber getPointsAtY() =0;
3445 /**
3446 * Corresponds to attribute pointsAtZ on the given 'feSpotLight' element.
3447 */
3448 virtual SVGAnimatedNumber getPointsAtZ() =0;
3450 /**
3451 * Corresponds to attribute specularExponent on the
3452 * given 'feSpotLight' element.
3453 */
3454 virtual SVGAnimatedNumber getSpecularExponent() =0;
3456 /**
3457 * Corresponds to attribute limitingConeAngle on the
3458 * given 'feSpotLight' element.
3459 */
3460 virtual SVGAnimatedNumber getLimitingConeAngle() =0;
3464 //##################
3465 //# Non-API methods
3466 //##################
3468 /**
3469 *
3470 */
3471 virtual ~SVGFESpotLightElement() {}
3473 };
3480 /*#########################################################################
3481 ## SVGFEDisplacementMapElement
3482 #########################################################################*/
3484 /**
3485 *
3486 */
3487 class SVGFEDisplacementMapElement :
3488 virtual public SVGElement,
3489 public SVGFilterPrimitiveStandardAttributes
3490 {
3491 public:
3495 /**
3496 * Channel Selectors
3497 */
3498 typedef enum
3499 {
3500 SVG_CHANNEL_UNKNOWN = 0,
3501 SVG_CHANNEL_R = 1,
3502 SVG_CHANNEL_G = 2,
3503 SVG_CHANNEL_B = 3,
3504 SVG_CHANNEL_A = 4
3505 } ChannelSelector;
3507 /**
3508 *
3509 */
3510 virtual SVGAnimatedString getIn1() =0;
3512 /**
3513 *
3514 */
3515 virtual SVGAnimatedString getIn2() =0;
3518 /**
3519 *
3520 */
3521 virtual SVGAnimatedNumber getScale() =0;
3523 /**
3524 *
3525 */
3526 virtual SVGAnimatedEnumeration getXChannelSelector() =0;
3528 /**
3529 *
3530 */
3531 virtual SVGAnimatedEnumeration getYChannelSelector() =0;
3535 //##################
3536 //# Non-API methods
3537 //##################
3539 /**
3540 *
3541 */
3542 virtual ~SVGFEDisplacementMapElement() {}
3544 };
3551 /*#########################################################################
3552 ## SVGFEFloodElement
3553 #########################################################################*/
3555 /**
3556 *
3557 */
3558 class SVGFEFloodElement :
3559 virtual public SVGElement,
3560 public SVGFilterPrimitiveStandardAttributes
3561 {
3562 public:
3563 /**
3564 *
3565 */
3566 virtual SVGAnimatedString getIn1() =0;
3569 //##################
3570 //# Non-API methods
3571 //##################
3573 /**
3574 *
3575 */
3576 virtual ~SVGFEFloodElement() {}
3578 };
3585 /*#########################################################################
3586 ## SVGFEGaussianBlurElement
3587 #########################################################################*/
3589 /**
3590 *
3591 */
3592 class SVGFEGaussianBlurElement :
3593 virtual public SVGElement,
3594 public SVGFilterPrimitiveStandardAttributes
3595 {
3596 public:
3597 /**
3598 *
3599 */
3600 virtual SVGAnimatedString getIn1() =0;
3603 /**
3604 *
3605 */
3606 virtual SVGAnimatedNumber getStdDeviationX() =0;
3608 /**
3609 *
3610 */
3611 virtual SVGAnimatedNumber getStdDeviationY() =0;
3614 /**
3615 *
3616 */
3617 virtual void setStdDeviation (double stdDeviationX, double stdDeviationY ) =0;
3621 //##################
3622 //# Non-API methods
3623 //##################
3625 /**
3626 *
3627 */
3628 virtual ~SVGFEGaussianBlurElement() {}
3630 };
3637 /*#########################################################################
3638 ## SVGFEImageElement
3639 #########################################################################*/
3641 /**
3642 *
3643 */
3644 class SVGFEImageElement :
3645 virtual public SVGElement,
3646 public SVGURIReference,
3647 public SVGLangSpace,
3648 public SVGExternalResourcesRequired,
3649 public SVGFilterPrimitiveStandardAttributes
3650 {
3651 public:
3653 //##################
3654 //# Non-API methods
3655 //##################
3657 /**
3658 *
3659 */
3660 virtual ~SVGFEImageElement() {}
3662 };
3667 /*#########################################################################
3668 ## SVGFEMergeElement
3669 #########################################################################*/
3671 /**
3672 *
3673 */
3674 class SVGFEMergeElement :
3675 virtual public SVGElement,
3676 public SVGFilterPrimitiveStandardAttributes
3677 {
3678 public:
3680 //##################
3681 //# Non-API methods
3682 //##################
3684 /**
3685 *
3686 */
3687 virtual ~SVGFEMergeElement() {}
3689 };
3694 /*#########################################################################
3695 ## SVGFEMergeNodeElement
3696 #########################################################################*/
3698 /**
3699 *
3700 */
3701 class SVGFEMergeNodeElement : virtual public SVGElement
3702 {
3703 public:
3704 /**
3705 *
3706 */
3707 virtual SVGAnimatedString getIn1() =0;
3710 //##################
3711 //# Non-API methods
3712 //##################
3714 /**
3715 *
3716 */
3717 virtual ~SVGFEMergeNodeElement() {}
3719 };
3726 /*#########################################################################
3727 ## SVGFEMorphologyElement
3728 #########################################################################*/
3730 /**
3731 *
3732 */
3733 class SVGFEMorphologyElement :
3734 virtual public SVGElement,
3735 public SVGFilterPrimitiveStandardAttributes
3736 {
3737 public:
3741 /**
3742 * Morphology Operators
3743 */
3744 typedef enum
3745 {
3746 SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0,
3747 SVG_MORPHOLOGY_OPERATOR_ERODE = 1,
3748 SVG_MORPHOLOGY_OPERATOR_DILATE = 2
3749 } MorphologyOperatorType;
3752 /**
3753 *
3754 */
3755 virtual SVGAnimatedString getIn1() =0;
3758 /**
3759 *
3760 */
3761 virtual SVGAnimatedEnumeration getOperator() =0;
3763 /**
3764 *
3765 */
3766 virtual SVGAnimatedLength getRadiusX() =0;
3768 /**
3769 *
3770 */
3771 virtual SVGAnimatedLength getRadiusY() =0;
3775 //##################
3776 //# Non-API methods
3777 //##################
3779 /**
3780 *
3781 */
3782 virtual ~SVGFEMorphologyElement() {}
3784 };
3791 /*#########################################################################
3792 ## SVGFEOffsetElement
3793 #########################################################################*/
3795 /**
3796 *
3797 */
3798 class SVGFEOffsetElement :
3799 virtual public SVGElement,
3800 public SVGFilterPrimitiveStandardAttributes
3801 {
3802 public:
3806 /**
3807 *
3808 */
3809 virtual SVGAnimatedString getIn1() =0;
3811 /**
3812 *
3813 */
3814 virtual SVGAnimatedLength getDx() =0;
3816 /**
3817 *
3818 */
3819 virtual SVGAnimatedLength getDy() =0;
3824 //##################
3825 //# Non-API methods
3826 //##################
3828 /**
3829 *
3830 */
3831 virtual ~SVGFEOffsetElement() {}
3833 };
3840 /*#########################################################################
3841 ## SVGFESpecularLightingElement
3842 #########################################################################*/
3844 /**
3845 *
3846 */
3847 class SVGFESpecularLightingElement :
3848 virtual public SVGElement,
3849 public SVGFilterPrimitiveStandardAttributes
3850 {
3851 public:
3853 /**
3854 *
3855 */
3856 virtual SVGAnimatedString getIn1() =0;
3858 /**
3859 *
3860 */
3861 virtual SVGAnimatedNumber getSurfaceScale() =0;
3863 /**
3864 *
3865 */
3866 virtual SVGAnimatedNumber getSpecularConstant() =0;
3868 /**
3869 *
3870 */
3871 virtual SVGAnimatedNumber getSpecularExponent() =0;
3874 //##################
3875 //# Non-API methods
3876 //##################
3878 /**
3879 *
3880 */
3881 virtual ~SVGFESpecularLightingElement() {}
3883 };
3890 /*#########################################################################
3891 ## SVGFETileElement
3892 #########################################################################*/
3894 /**
3895 *
3896 */
3897 class SVGFETileElement :
3898 virtual public SVGElement,
3899 public SVGFilterPrimitiveStandardAttributes
3900 {
3901 public:
3904 /**
3905 *
3906 */
3907 virtual SVGAnimatedString getIn1() =0;
3911 //##################
3912 //# Non-API methods
3913 //##################
3915 /**
3916 *
3917 */
3918 virtual ~SVGFETileElement() {}
3920 };
3927 /*#########################################################################
3928 ## SVGFETurbulenceElement
3929 #########################################################################*/
3931 /**
3932 *
3933 */
3934 class SVGFETurbulenceElement :
3935 virtual public SVGElement,
3936 public SVGFilterPrimitiveStandardAttributes
3937 {
3938 public:
3942 /**
3943 * Turbulence Types
3944 */
3945 typedef enum
3946 {
3947 SVG_TURBULENCE_TYPE_UNKNOWN = 0,
3948 SVG_TURBULENCE_TYPE_FRACTALNOISE = 1,
3949 SVG_TURBULENCE_TYPE_TURBULENCE = 2
3950 } TurbulenceType;
3952 /**
3953 * Stitch Options
3954 */
3955 typedef enum
3956 {
3957 SVG_STITCHTYPE_UNKNOWN = 0,
3958 SVG_STITCHTYPE_STITCH = 1,
3959 SVG_STITCHTYPE_NOSTITCH = 2
3960 } StitchOption;
3964 /**
3965 *
3966 */
3967 virtual SVGAnimatedNumber getBaseFrequencyX() =0;
3969 /**
3970 *
3971 */
3972 virtual SVGAnimatedNumber getBaseFrequencyY() =0;
3974 /**
3975 *
3976 */
3977 virtual SVGAnimatedInteger getNumOctaves() =0;
3979 /**
3980 *
3981 */
3982 virtual SVGAnimatedNumber getSeed() =0;
3984 /**
3985 *
3986 */
3987 virtual SVGAnimatedEnumeration getStitchTiles() =0;
3989 /**
3990 *
3991 */
3992 virtual SVGAnimatedEnumeration getType() =0;
3996 //##################
3997 //# Non-API methods
3998 //##################
4000 /**
4001 *
4002 */
4003 virtual ~SVGFETurbulenceElement() {}
4005 };
4012 /*#########################################################################
4013 ## SVGCursorElement
4014 #########################################################################*/
4016 /**
4017 *
4018 */
4019 class SVGCursorElement :
4020 virtual public SVGElement,
4021 public SVGURIReference,
4022 public SVGTests,
4023 public SVGExternalResourcesRequired
4024 {
4025 public:
4026 /**
4027 *
4028 */
4029 virtual SVGAnimatedLength getX() =0;
4031 /**
4032 *
4033 */
4034 virtual SVGAnimatedLength getY() =0;
4036 //##################
4037 //# Non-API methods
4038 //##################
4040 /**
4041 *
4042 */
4043 virtual ~SVGCursorElement() {}
4045 };
4052 /*#########################################################################
4053 ## SVGAElement
4054 #########################################################################*/
4056 /**
4057 *
4058 */
4059 class SVGAElement : virtual public SVGElement,
4060 public SVGURIReference,
4061 public SVGTests,
4062 public SVGLangSpace,
4063 public SVGExternalResourcesRequired,
4064 public SVGStylable,
4065 public SVGTransformable,
4066 public events::EventTarget
4067 {
4068 public:
4070 /**
4071 *
4072 */
4073 virtual SVGAnimatedString getTarget() =0;
4077 //##################
4078 //# Non-API methods
4079 //##################
4081 /**
4082 *
4083 */
4084 virtual ~SVGAElement() {}
4086 };
4093 /*#########################################################################
4094 ## SVGViewElement
4095 #########################################################################*/
4097 /**
4098 *
4099 */
4100 class SVGViewElement : virtual public SVGElement,
4101 public SVGExternalResourcesRequired,
4102 public SVGFitToViewBox,
4103 public SVGZoomAndPan
4104 {
4105 public:
4107 /**
4108 *
4109 */
4110 virtual SVGStringList getViewTarget() =0;
4114 //##################
4115 //# Non-API methods
4116 //##################
4118 /**
4119 *
4120 */
4121 virtual ~SVGViewElement() {}
4123 };
4130 /*#########################################################################
4131 ## SVGScriptElement
4132 #########################################################################*/
4134 /**
4135 *
4136 */
4137 class SVGScriptElement :
4138 virtual public SVGElement,
4139 public SVGURIReference,
4140 public SVGExternalResourcesRequired
4141 {
4142 public:
4144 /**
4145 *
4146 */
4147 virtual DOMString getType() =0;
4149 /**
4150 *
4151 */
4152 virtual void setType(const DOMString &val)
4153 throw (DOMException) =0;
4156 //##################
4157 //# Non-API methods
4158 //##################
4160 /**
4161 *
4162 */
4163 virtual ~SVGScriptElement() {}
4165 };
4171 /*#########################################################################
4172 ## SVGAnimationElement
4173 #########################################################################*/
4175 /**
4176 *
4177 */
4178 class SVGAnimationElement :
4179 virtual public SVGElement,
4180 public SVGTests,
4181 public SVGExternalResourcesRequired,
4182 public smil::ElementTimeControl,
4183 public events::EventTarget
4184 {
4185 public:
4188 /**
4189 *
4190 */
4191 virtual SVGElementPtr getTargetElement() =0;
4194 /**
4195 *
4196 */
4197 virtual double getStartTime ( ) =0;
4199 /**
4200 *
4201 */
4202 virtual double getCurrentTime ( ) =0;
4204 /**
4205 *
4206 */
4207 virtual double getSimpleDuration ( )
4208 throw( DOMException ) =0;
4209 ;
4213 //##################
4214 //# Non-API methods
4215 //##################
4217 /**
4218 *
4219 */
4220 virtual ~SVGAnimationElement() {}
4222 };
4229 /*#########################################################################
4230 ## SVGAnimateElement
4231 #########################################################################*/
4233 /**
4234 *
4235 */
4236 class SVGAnimateElement : virtual public SVGAnimationElement
4237 {
4238 public:
4240 //##################
4241 //# Non-API methods
4242 //##################
4244 /**
4245 *
4246 */
4247 virtual ~SVGAnimateElement() {}
4249 };
4254 /*#########################################################################
4255 ## SVGSetElement
4256 #########################################################################*/
4258 /**
4259 *
4260 */
4261 class SVGSetElement : virtual public SVGAnimationElement
4262 {
4263 public:
4265 //##################
4266 //# Non-API methods
4267 //##################
4269 /**
4270 *
4271 */
4272 virtual ~SVGSetElement() {}
4274 };
4279 /*#########################################################################
4280 ## SVGAnimateMotionElement
4281 #########################################################################*/
4283 /**
4284 *
4285 */
4286 class SVGAnimateMotionElement : virtual public SVGAnimationElement
4287 {
4288 public:
4290 //##################
4291 //# Non-API methods
4292 //##################
4294 /**
4295 *
4296 */
4297 virtual ~SVGAnimateMotionElement() {}
4299 };
4304 /*#########################################################################
4305 ## SVGMPathElement
4306 #########################################################################*/
4308 /**
4309 *
4310 */
4311 class SVGMPathElement :
4312 virtual public SVGElement,
4313 public SVGURIReference,
4314 public SVGExternalResourcesRequired
4315 {
4316 public:
4318 //##################
4319 //# Non-API methods
4320 //##################
4322 /**
4323 *
4324 */
4325 virtual ~SVGMPathElement() {}
4327 };
4332 /*#########################################################################
4333 ## SVGAnimateColorElement
4334 #########################################################################*/
4336 /**
4337 *
4338 */
4339 class SVGAnimateColorElement : virtual public SVGAnimationElement
4340 {
4341 public:
4343 //##################
4344 //# Non-API methods
4345 //##################
4347 /**
4348 *
4349 */
4350 virtual ~SVGAnimateColorElement() {}
4352 };
4357 /*#########################################################################
4358 ## SVGAnimateTransformElement
4359 #########################################################################*/
4361 /**
4362 *
4363 */
4364 class SVGAnimateTransformElement : virtual public SVGAnimationElement
4365 {
4366 public:
4368 //##################
4369 //# Non-API methods
4370 //##################
4372 /**
4373 *
4374 */
4375 virtual ~SVGAnimateTransformElement() {}
4377 };
4382 /*#########################################################################
4383 ## SVGFontElement
4384 #########################################################################*/
4386 /**
4387 *
4388 */
4389 class SVGFontElement : virtual public SVGElement,
4390 public SVGExternalResourcesRequired,
4391 public SVGStylable
4392 {
4393 public:
4395 //##################
4396 //# Non-API methods
4397 //##################
4399 /**
4400 *
4401 */
4402 virtual ~SVGFontElement() {}
4404 };
4409 /*#########################################################################
4410 ## SVGGlyphElement
4411 #########################################################################*/
4413 /**
4414 *
4415 */
4416 class SVGGlyphElement : virtual public SVGElement,
4417 public SVGStylable
4418 {
4419 public:
4421 //##################
4422 //# Non-API methods
4423 //##################
4425 /**
4426 *
4427 */
4428 virtual ~SVGGlyphElement() {}
4430 };
4435 /*#########################################################################
4436 ## SVGMissingGlyphElement
4437 #########################################################################*/
4439 /**
4440 *
4441 */
4442 class SVGMissingGlyphElement :
4443 virtual public SVGElement,
4444 public SVGStylable
4445 {
4446 public:
4448 //##################
4449 //# Non-API methods
4450 //##################
4452 /**
4453 *
4454 */
4455 virtual ~SVGMissingGlyphElement() {}
4457 };
4462 /*#########################################################################
4463 ## SVGHKernElement
4464 #########################################################################*/
4466 /**
4467 *
4468 */
4469 class SVGHKernElement : virtual public SVGElement
4470 {
4471 public:
4473 //##################
4474 //# Non-API methods
4475 //##################
4477 /**
4478 *
4479 */
4480 virtual ~SVGHKernElement() {}
4482 };
4487 /*#########################################################################
4488 ## SVGVKernElement
4489 #########################################################################*/
4491 /**
4492 *
4493 */
4494 class SVGVKernElement : public virtual SVGElement
4495 {
4496 public:
4498 //##################
4499 //# Non-API methods
4500 //##################
4502 /**
4503 *
4504 */
4505 virtual ~SVGVKernElement() {}
4507 };
4512 /*#########################################################################
4513 ## SVGFontFaceElement
4514 #########################################################################*/
4516 /**
4517 *
4518 */
4519 class SVGFontFaceElement : virtual public SVGElement
4520 {
4521 public:
4523 //##################
4524 //# Non-API methods
4525 //##################
4527 /**
4528 *
4529 */
4530 virtual ~SVGFontFaceElement() {}
4532 };
4537 /*#########################################################################
4538 ## SVGFontFaceSrcElement
4539 #########################################################################*/
4541 /**
4542 *
4543 */
4544 class SVGFontFaceSrcElement : virtual public SVGElement
4545 {
4546 public:
4548 //##################
4549 //# Non-API methods
4550 //##################
4552 /**
4553 *
4554 */
4555 virtual ~SVGFontFaceSrcElement() {}
4557 };
4562 /*#########################################################################
4563 ## SVGFontFaceUriElement
4564 #########################################################################*/
4566 /**
4567 *
4568 */
4569 class SVGFontFaceUriElement : virtual public SVGElement
4570 {
4571 public:
4573 //##################
4574 //# Non-API methods
4575 //##################
4577 /**
4578 *
4579 */
4580 virtual ~SVGFontFaceUriElement() {}
4582 };
4587 /*#########################################################################
4588 ## SVGFontFaceFormatElement
4589 #########################################################################*/
4591 /**
4592 *
4593 */
4594 class SVGFontFaceFormatElement : virtual public SVGElement
4595 {
4596 public:
4598 //##################
4599 //# Non-API methods
4600 //##################
4602 /**
4603 *
4604 */
4605 virtual ~SVGFontFaceFormatElement() {}
4607 };
4612 /*#########################################################################
4613 ## SVGFontFaceNameElement
4614 #########################################################################*/
4616 /**
4617 *
4618 */
4619 class SVGFontFaceNameElement : virtual public SVGElement
4620 {
4621 public:
4623 //##################
4624 //# Non-API methods
4625 //##################
4627 /**
4628 *
4629 */
4630 virtual ~SVGFontFaceNameElement() {}
4632 };
4637 /*#########################################################################
4638 ## SVGDefinitionSrcElement
4639 #########################################################################*/
4641 /**
4642 *
4643 */
4644 class SVGDefinitionSrcElement : virtual public SVGElement
4645 {
4646 public:
4648 //##################
4649 //# Non-API methods
4650 //##################
4652 /**
4653 *
4654 */
4655 virtual ~SVGDefinitionSrcElement() {}
4657 };
4662 /*#########################################################################
4663 ## SVGMetadataElement
4664 #########################################################################*/
4666 /**
4667 *
4668 */
4669 class SVGMetadataElement : virtual public SVGElement
4670 {
4671 public:
4673 //##################
4674 //# Non-API methods
4675 //##################
4677 /**
4678 *
4679 */
4680 virtual ~SVGMetadataElement() {}
4682 };
4686 /*#########################################################################
4687 ## SVGForeignObjectElement
4688 #########################################################################*/
4690 /**
4691 *
4692 */
4693 class SVGForeignObjectElement :
4694 virtual public SVGElement,
4695 public SVGTests,
4696 public SVGLangSpace,
4697 public SVGExternalResourcesRequired,
4698 public SVGStylable,
4699 public SVGTransformable,
4700 public events::EventTarget
4701 {
4702 public:
4705 /**
4706 *
4707 */
4708 virtual SVGAnimatedLength getX() =0;
4710 /**
4711 *
4712 */
4713 virtual SVGAnimatedLength getY() =0;
4715 /**
4716 *
4717 */
4718 virtual SVGAnimatedLength getWidth() =0;
4720 /**
4721 *
4722 */
4723 virtual SVGAnimatedLength getHeight() =0;
4727 //##################
4728 //# Non-API methods
4729 //##################
4732 /**
4733 *
4734 */
4735 virtual ~SVGForeignObjectElement() {}
4737 };
4743 } //namespace svg
4744 } //namespace dom
4745 } //namespace w3c
4746 } //namespace org
4748 #endif // __SVG_H__
4749 /*#########################################################################
4750 ## E N D O F F I L E
4751 #########################################################################*/