gecko/dom/interfaces/svg/nsIDOMSVGPathElement.idl
2012-12-22 23:54:25 -05:00

110 lines
5.7 KiB
Plaintext

/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsIDOMSVGElement.idl"
interface nsIDOMSVGAnimatedNumber;
[scriptable, uuid(89AF3EAE-1703-461A-A2E0-86D2131C11AC)]
interface nsIDOMSVGPathElement
: nsIDOMSVGElement
/*
The SVG DOM makes use of multiple interface inheritance.
Since XPCOM only supports single interface inheritance,
the best thing that we can do is to promise that whenever
an object implements _this_ interface it will also
implement the following interfaces. (We then have to QI to
hop between them.)
nsIDOMSVGTests,
nsIDOMSVGLangSpace,
nsIDOMSVGExternalResourcesRequired,
nsIDOMSVGStylable,
nsIDOMSVGTransformable,
events::nsIDOMEventTarget,
nsIDOMSVGAnimatedPathData
*/
{
readonly attribute nsIDOMSVGAnimatedNumber pathLength;
float getTotalLength();
// SVGPoint
nsISupports getPointAtLength(in float distance);
unsigned long getPathSegAtLength(in float distance);
// SVGPathSegClosePath
nsISupports createSVGPathSegClosePath();
// SVGPathSegMoveToAbs
nsISupports createSVGPathSegMovetoAbs(in float x, in float y);
// SVGPathSegMoveToRel
nsISupports createSVGPathSegMovetoRel(in float x, in float y);
// SVGPathSegLineToAbs
nsISupports createSVGPathSegLinetoAbs(in float x, in float y);
// SVGPathSegLineToRel
nsISupports createSVGPathSegLinetoRel(in float x, in float y);
// SVGPathSegCurveToCubicAbs
nsISupports createSVGPathSegCurvetoCubicAbs(in float x,
in float y,
in float x1,
in float y1,
in float x2,
in float y2);
// SVGPathSegCurveToCubicRel
nsISupports createSVGPathSegCurvetoCubicRel(in float x,
in float y,
in float x1,
in float y1,
in float x2,
in float y2);
// SVGPathSegCurveToQuadraticAbs
nsISupports createSVGPathSegCurvetoQuadraticAbs(in float x,
in float y,
in float x1,
in float y1);
// SVGPathSegCurveToQuadraticRel
nsISupports createSVGPathSegCurvetoQuadraticRel(in float x,
in float y,
in float x1,
in float y1);
// SVGPathSegArcAbs
nsISupports createSVGPathSegArcAbs(in float x, in float y, in float r1,
in float r2, in float angle,
in boolean largeArcFlag,
in boolean sweepFlag);
// SVGPathSegArcRel
nsISupports createSVGPathSegArcRel(in float x, in float y, in float r1,
in float r2, in float angle,
in boolean largeArcFlag,
in boolean sweepFlag);
// SVGPathSegLineToHorizontalAbs
nsISupports createSVGPathSegLinetoHorizontalAbs(in float x);
// SVGPathSegLineToHorizontalRel
nsISupports createSVGPathSegLinetoHorizontalRel(in float x);
// SVGPathSegLineToVerticalAbs
nsISupports createSVGPathSegLinetoVerticalAbs(in float y);
// SVGPathSegLineToVerticalRel
nsISupports createSVGPathSegLinetoVerticalRel(in float y);
// SVGPathSegCurveToCubicSmoothAbs
nsISupports createSVGPathSegCurvetoCubicSmoothAbs(in float x,
in float y,
in float x2,
in float y2);
// SVGPathSegCurveToCubicSmoothRel
nsISupports createSVGPathSegCurvetoCubicSmoothRel(in float x,
in float y,
in float x2,
in float y2);
// SVGPathSegCurveToQuadraticSmoothAbs
nsISupports createSVGPathSegCurvetoQuadraticSmoothAbs(in float x,
in float y);
// SVGPathSegCurveToQuadraticSmoothRel
nsISupports createSVGPathSegCurvetoQuadraticSmoothRel(in float x,
in float y);
};