Back to index

lightning-sunbird  0.9+nobinonly
nsIDOMSVGPathElement.idl
Go to the documentation of this file.
00001 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
00002 /* ***** BEGIN LICENSE BLOCK *****
00003  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00004  *
00005  * The contents of this file are subject to the Mozilla Public License Version
00006  * 1.1 (the "License"); you may not use this file except in compliance with
00007  * the License. You may obtain a copy of the License at
00008  * http://www.mozilla.org/MPL/
00009  *
00010  * Software distributed under the License is distributed on an "AS IS" basis,
00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00012  * for the specific language governing rights and limitations under the
00013  * License.
00014  *
00015  * The Original Code is the Mozilla SVG project.
00016  *
00017  * The Initial Developer of the Original Code is
00018  * Crocodile Clips Ltd..
00019  * Portions created by the Initial Developer are Copyright (C) 2001
00020  * the Initial Developer. All Rights Reserved.
00021  *
00022  * Contributor(s):
00023  *   Alex Fritze <alex.fritze@crocodile-clips.com> (original author)
00024  *
00025  * Alternatively, the contents of this file may be used under the terms of
00026  * either of the GNU General Public License Version 2 or later (the "GPL"),
00027  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00028  * in which case the provisions of the GPL or the LGPL are applicable instead
00029  * of those above. If you wish to allow use of your version of this file only
00030  * under the terms of either the GPL or the LGPL, and not to allow others to
00031  * use your version of this file under the terms of the MPL, indicate your
00032  * decision by deleting the provisions above and replace them with the notice
00033  * and other provisions required by the GPL or the LGPL. If you do not delete
00034  * the provisions above, a recipient may use your version of this file under
00035  * the terms of any one of the MPL, the GPL or the LGPL.
00036  *
00037  * ***** END LICENSE BLOCK ***** */
00038 
00039 #include "nsIDOMSVGElement.idl"
00040 
00041 interface nsIDOMSVGAnimatedNumber;
00042 interface nsIDOMSVGPoint;
00043 interface nsIDOMSVGPathSegClosePath;
00044 interface nsIDOMSVGPathSegMovetoAbs;
00045 interface nsIDOMSVGPathSegMovetoRel;
00046 interface nsIDOMSVGPathSegLinetoAbs;
00047 interface nsIDOMSVGPathSegLinetoRel;
00048 interface nsIDOMSVGPathSegCurvetoCubicAbs;
00049 interface nsIDOMSVGPathSegCurvetoCubicRel;
00050 interface nsIDOMSVGPathSegCurvetoQuadraticAbs;
00051 interface nsIDOMSVGPathSegCurvetoQuadraticRel;
00052 interface nsIDOMSVGPathSegArcAbs;
00053 interface nsIDOMSVGPathSegArcRel;
00054 interface nsIDOMSVGPathSegLinetoHorizontalAbs;
00055 interface nsIDOMSVGPathSegLinetoHorizontalRel;
00056 interface nsIDOMSVGPathSegLinetoVerticalAbs;
00057 interface nsIDOMSVGPathSegLinetoVerticalRel;
00058 interface nsIDOMSVGPathSegCurvetoCubicSmoothAbs;
00059 interface nsIDOMSVGPathSegCurvetoCubicSmoothRel;
00060 interface nsIDOMSVGPathSegCurvetoQuadraticSmoothAbs;
00061 interface nsIDOMSVGPathSegCurvetoQuadraticSmoothRel;
00062 
00063 [scriptable, uuid(2b19e692-3338-440f-a998-3cb1e8474999)]
00064 interface nsIDOMSVGPathElement
00065   : nsIDOMSVGElement
00066 /*
00067         The SVG DOM makes use of multiple interface inheritance.
00068         Since XPCOM only supports single interface inheritance,
00069         the best thing that we can do is to promise that whenever
00070         an object implements _this_ interface it will also
00071         implement the following interfaces. (We then have to QI to
00072         hop between them.)
00073         
00074     nsIDOMSVGTests,
00075     nsIDOMSVGLangSpace,
00076     nsIDOMSVGExternalResourcesRequired,
00077     nsIDOMSVGStylable,
00078     nsIDOMSVGTransformable,
00079     events::nsIDOMEventTarget,
00080     nsIDOMSVGAnimatedPathData
00081 */
00082 { 
00083   readonly attribute nsIDOMSVGAnimatedNumber pathLength;
00084   
00085   float          getTotalLength();
00086   nsIDOMSVGPoint getPointAtLength(in float distance);
00087   unsigned long  getPathSegAtLength(in float distance);
00088 
00089   nsIDOMSVGPathSegClosePath createSVGPathSegClosePath();
00090   nsIDOMSVGPathSegMovetoAbs createSVGPathSegMovetoAbs(in float x, in float y);
00091   nsIDOMSVGPathSegMovetoRel createSVGPathSegMovetoRel(in float x, in float y);
00092   nsIDOMSVGPathSegLinetoAbs createSVGPathSegLinetoAbs(in float x, in float y);
00093   nsIDOMSVGPathSegLinetoRel createSVGPathSegLinetoRel(in float x, in float y);
00094 
00095   nsIDOMSVGPathSegCurvetoCubicAbs     createSVGPathSegCurvetoCubicAbs(in float x,
00096                                                                       in float y,
00097                                                                       in float x1,
00098                                                                       in float y1,
00099                                                                       in float x2,
00100                                                                       in float y2);
00101   nsIDOMSVGPathSegCurvetoCubicRel     createSVGPathSegCurvetoCubicRel(in float x,
00102                                                                       in float y,
00103                                                                       in float x1,
00104                                                                       in float y1,
00105                                                                       in float x2,
00106                                                                       in float y2);
00107   nsIDOMSVGPathSegCurvetoQuadraticAbs createSVGPathSegCurvetoQuadraticAbs(in float x,
00108                                                                           in float y,
00109                                                                           in float x1,
00110                                                                           in float y1);
00111   nsIDOMSVGPathSegCurvetoQuadraticRel createSVGPathSegCurvetoQuadraticRel(in float x,
00112                                                                           in float y,
00113                                                                           in float x1,
00114                                                                           in float y1);
00115 
00116   nsIDOMSVGPathSegArcAbs createSVGPathSegArcAbs(in float x, in float y, in float r1,
00117                                                 in float r2, in float angle,
00118                                                 in boolean largeArcFlag,
00119                                                 in boolean sweepFlag);
00120   nsIDOMSVGPathSegArcRel createSVGPathSegArcRel(in float x, in float y, in float r1,
00121                                                 in float r2, in float angle,
00122                                                 in boolean largeArcFlag,
00123                                                 in boolean sweepFlag);
00124 
00125   nsIDOMSVGPathSegLinetoHorizontalAbs createSVGPathSegLinetoHorizontalAbs(in float x);
00126   nsIDOMSVGPathSegLinetoHorizontalRel createSVGPathSegLinetoHorizontalRel(in float x);
00127   nsIDOMSVGPathSegLinetoVerticalAbs   createSVGPathSegLinetoVerticalAbs(in float y);
00128   nsIDOMSVGPathSegLinetoVerticalRel   createSVGPathSegLinetoVerticalRel(in float y);
00129 
00130   nsIDOMSVGPathSegCurvetoCubicSmoothAbs     createSVGPathSegCurvetoCubicSmoothAbs(in float x,
00131                                                                                   in float y,
00132                                                                                   in float x2,
00133                                                                                   in float y2);
00134   nsIDOMSVGPathSegCurvetoCubicSmoothRel     createSVGPathSegCurvetoCubicSmoothRel(in float x,
00135                                                                                   in float y,
00136                                                                                   in float x2,
00137                                                                                   in float y2);
00138   nsIDOMSVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs(in float x,
00139                                                                                       in float y);
00140   nsIDOMSVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel(in float x,
00141                                                                                       in float y);
00142 };