/*
* Copyright (C) 2004, 2005 Nikolas Zimmermann <[email protected]>
* Copyright (C) 2004, 2005, 2010 Rob Buis <[email protected]>
* Copyright (C) 2006 Samuel Weinig <[email protected]>
* Copyright (C) 2006 Apple Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
// https://svgwg.org/svg2-draft/struct.html#InterfaceSVGSVGElement
[Exposed=Window]
interface SVGSVGElement : SVGGraphicsElement {
[MeasureAs=SVG1DOMSVGElement] readonly attribute SVGAnimatedLength x;
[MeasureAs=SVG1DOMSVGElement] readonly attribute SVGAnimatedLength y;
[MeasureAs=SVG1DOMSVGElement] readonly attribute SVGAnimatedLength width;
[MeasureAs=SVG1DOMSVGElement] readonly attribute SVGAnimatedLength height;
attribute float currentScale;
// TODO(foolip): currentTranslate should be a DOMPointReadOnly.
[ImplementedAs=currentTranslateFromJavascript] readonly attribute SVGPoint currentTranslate;
// TODO(foolip): The rect arguments should be DOMRectReadOnly.
NodeList getIntersectionList(SVGRect rect, SVGElement? referenceElement);
NodeList getEnclosureList(SVGRect rect, SVGElement? referenceElement);
boolean checkIntersection(SVGElement element, SVGRect rect);
boolean checkEnclosure(SVGElement element, SVGRect rect);
void deselectAll();
[Measure] SVGNumber createSVGNumber();
[Measure] SVGLength createSVGLength();
[Measure] SVGAngle createSVGAngle();
// TODO(foolip): SVGPoint/Matrix/Rect should be DOMPoint/Matrix/Rect.
[Measure] SVGPoint createSVGPoint();
[Measure] SVGMatrix createSVGMatrix();
[Measure] SVGRect createSVGRect();
[Measure] SVGTransform createSVGTransform();
[Measure] SVGTransform createSVGTransformFromMatrix(SVGMatrix matrix);
[Measure] Element getElementById(DOMString elementId);
[MeasureAs=SVGSVGElementSuspendRedraw] unsigned long suspendRedraw(unsigned long maxWaitMilliseconds);
[MeasureAs=SVGSVGElementUnsuspendRedraw] void unsuspendRedraw(unsigned long suspendHandleId);
[MeasureAs=SVGSVGElementUnsuspendRedrawAll] void unsuspendRedrawAll();
[MeasureAs=SVGSVGElementForceRedraw] void forceRedraw();
// SVG Animations
// https://svgwg.org/specs/animations/#InterfaceSVGSVGElement
[MeasureAs=SVGSMILPausing] void pauseAnimations();
[MeasureAs=SVGSMILPausing] void unpauseAnimations();
[MeasureAs=SVGSMILPausing] boolean animationsPaused();
[MeasureAs=SVGSMILCurrentTime] float getCurrentTime();
[MeasureAs=SVGSMILCurrentTime] void setCurrentTime(float seconds);
};
SVGSVGElement includes SVGFitToViewBox;
SVGSVGElement includes SVGZoomAndPan;