1/*
2 * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005, 2010 Rob Buis <buis@kde.org>
4 * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
5 * Copyright (C) 2006 Apple Inc. All rights reserved.
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 * Library General Public License for more details.
16 *
17 * You should have received a copy of the GNU Library General Public License
18 * along with this library; see the file COPYING.LIB.  If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02110-1301, USA.
21 */
22
23module svg {
24
25    // TODO: no css::ViewCSS available!
26    // TODO: Fix SVGSVGElement inheritance (css::DocumentCSS)!
27    // TODO: no events::DocumentEvent available!
28    interface [Conditional=SVG] SVGSVGElement : SVGElement,
29                                                SVGTests,
30                                                SVGLangSpace,
31                                                SVGExternalResourcesRequired,
32                                                SVGStylable,
33                                                SVGLocatable,
34                                                SVGFitToViewBox,
35                                                SVGZoomAndPan {
36        readonly attribute SVGAnimatedLength x;
37        readonly attribute SVGAnimatedLength y;
38        readonly attribute SVGAnimatedLength width;
39        readonly attribute SVGAnimatedLength height;
40                 attribute DOMString contentScriptType
41                     /*setter raises(DOMException)*/;
42                 attribute DOMString contentStyleType
43                     /*setter raises(DOMException)*/;
44        readonly attribute SVGRect viewport;
45        readonly attribute float pixelUnitToMillimeterX;
46        readonly attribute float pixelUnitToMillimeterY;
47        readonly attribute float screenPixelToMillimeterX;
48        readonly attribute float screenPixelToMillimeterY;
49                 attribute boolean useCurrentView
50                     /*setter raises(DOMException)*/;
51        // TODO    readonly attribute SVGViewSpec currentView;
52                 attribute float currentScale
53                     /*setter raises(DOMException)*/;
54        readonly attribute SVGPoint currentTranslate;
55
56        unsigned long suspendRedraw(in unsigned long maxWaitMilliseconds);
57        void unsuspendRedraw(in unsigned long suspendHandleId);
58        void unsuspendRedrawAll();
59        void forceRedraw();
60        void pauseAnimations();
61        void unpauseAnimations();
62        boolean animationsPaused();
63        float getCurrentTime();
64        void setCurrentTime(in float seconds);
65        NodeList getIntersectionList(in SVGRect rect,
66                                           in SVGElement referenceElement);
67        NodeList getEnclosureList(in SVGRect rect,
68                                        in SVGElement referenceElement);
69        boolean checkIntersection(in SVGElement element,
70                                  in SVGRect rect);
71        boolean checkEnclosure(in SVGElement element,
72                               in SVGRect rect);
73        void deselectAll();
74
75        SVGNumber createSVGNumber();
76        SVGLength createSVGLength();
77        SVGAngle createSVGAngle();
78        SVGPoint createSVGPoint();
79        SVGMatrix createSVGMatrix();
80        SVGRect createSVGRect();
81        SVGTransform createSVGTransform();
82        SVGTransform createSVGTransformFromMatrix(in SVGMatrix matrix);
83        Element getElementById(in DOMString elementId);
84    };
85
86}
87