1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* ***** BEGIN LICENSE BLOCK *****
3 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4 *
5 * The contents of this file are subject to the Mozilla Public License Version
6 * 1.1 (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 * http://www.mozilla.org/MPL/
9 *
10 * Software distributed under the License is distributed on an "AS IS" basis,
11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 * for the specific language governing rights and limitations under the
13 * License.
14 *
15 * The Original Code is the Mozilla SVG project.
16 *
17 * The Initial Developer of the Original Code is
18 * Crocodile Clips Ltd..
19 * Portions created by the Initial Developer are Copyright (C) 2001
20 * the Initial Developer. All Rights Reserved.
21 *
22 * Contributor(s):
23 * Alex Fritze <alex.fritze@crocodile-clips.com> (original author)
24 *
25 * Alternatively, the contents of this file may be used under the terms of
26 * either of the GNU General Public License Version 2 or later (the "GPL"),
27 * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
28 * in which case the provisions of the GPL or the LGPL are applicable instead
29 * of those above. If you wish to allow use of your version of this file only
30 * under the terms of either the GPL or the LGPL, and not to allow others to
31 * use your version of this file under the terms of the MPL, indicate your
32 * decision by deleting the provisions above and replace them with the notice
33 * and other provisions required by the GPL or the LGPL. If you do not delete
34 * the provisions above, a recipient may use your version of this file under
35 * the terms of any one of the MPL, the GPL or the LGPL.
36 *
37 * ***** END LICENSE BLOCK ***** */
38
39 #include "domstubs.idl"
40
41 [scriptable, uuid(b9022da7-e26d-4df3-8c94-b45c4aedda7c)]
42 interface nsIDOMSVGPathSeg : nsISupports
43 {
44 // Path Segment Types
45 const unsigned short PATHSEG_UNKNOWN = 0;
46 const unsigned short PATHSEG_CLOSEPATH = 1;
47 const unsigned short PATHSEG_MOVETO_ABS = 2;
48 const unsigned short PATHSEG_MOVETO_REL = 3;
49 const unsigned short PATHSEG_LINETO_ABS = 4;
50 const unsigned short PATHSEG_LINETO_REL = 5;
51 const unsigned short PATHSEG_CURVETO_CUBIC_ABS = 6;
52 const unsigned short PATHSEG_CURVETO_CUBIC_REL = 7;
53 const unsigned short PATHSEG_CURVETO_QUADRATIC_ABS = 8;
54 const unsigned short PATHSEG_CURVETO_QUADRATIC_REL = 9;
55 const unsigned short PATHSEG_ARC_ABS = 10;
56 const unsigned short PATHSEG_ARC_REL = 11;
57 const unsigned short PATHSEG_LINETO_HORIZONTAL_ABS = 12;
58 const unsigned short PATHSEG_LINETO_HORIZONTAL_REL = 13;
59 const unsigned short PATHSEG_LINETO_VERTICAL_ABS = 14;
60 const unsigned short PATHSEG_LINETO_VERTICAL_REL = 15;
61 const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;
62 const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;
63 const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;
64 const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;
65
66 readonly attribute unsigned short pathSegType;
67 readonly attribute DOMString pathSegTypeAsLetter;
68 };
69
70
71 [scriptable, uuid(4970505f-2cc0-4afa-92e6-0cf4bdbf5a53)]
72 interface nsIDOMSVGPathSegClosePath : nsISupports
73 {
74 };
75
76
77 [scriptable, uuid(30cf7749-bf1f-4f9c-9558-8ee24da3a22c)]
78 interface nsIDOMSVGPathSegMovetoAbs : nsISupports
79 {
80 attribute float x;
81 // raises nsIDOMDOMException on setting
82 attribute float y;
83 // raises nsIDOMDOMException on setting
84 };
85
86 [scriptable, uuid(58ca7e86-661a-473a-96de-89682e7e24d6)]
87 interface nsIDOMSVGPathSegMovetoRel : nsISupports
88 {
89 attribute float x;
90 // raises nsIDOMDOMException on setting
91 attribute float y;
92 // raises nsIDOMDOMException on setting
93 };
94
95 [scriptable, uuid(5c7ba7b0-c7c5-4a7b-bc1c-2d784153be77)]
96 interface nsIDOMSVGPathSegLinetoAbs : nsISupports
97 {
98 attribute float x;
99 // raises nsIDOMDOMException on setting
100 attribute float y;
101 // raises nsIDOMDOMException on setting
102 };
103
104 [scriptable, uuid(7933a81a-72c5-4489-ba64-5635f4c23063)]
105 interface nsIDOMSVGPathSegLinetoRel : nsISupports
106 {
107 attribute float x;
108 // raises nsIDOMDOMException on setting
109 attribute float y;
110 // raises nsIDOMDOMException on setting
111 };
112
113 [scriptable, uuid(380afecd-f884-4da7-a0d7-5ffc4531b70b)]
114 interface nsIDOMSVGPathSegCurvetoCubicAbs : nsISupports
115 {
116 attribute float x;
117 // raises nsIDOMDOMException on setting
118 attribute float y;
119 // raises nsIDOMDOMException on setting
120 attribute float x1;
121 // raises nsIDOMDOMException on setting
122 attribute float y1;
123 // raises nsIDOMDOMException on setting
124 attribute float x2;
125 // raises nsIDOMDOMException on setting
126 attribute float y2;
127 // raises nsIDOMDOMException on setting
128 };
129
130 [scriptable, uuid(0e661233-0c4f-4e0d-94d3-fbc460ad1f88)]
131 interface nsIDOMSVGPathSegCurvetoCubicRel : nsISupports
132 {
133 attribute float x;
134 // raises nsIDOMDOMException on setting
135 attribute float y;
136 // raises nsIDOMDOMException on setting
137 attribute float x1;
138 // raises nsIDOMDOMException on setting
139 attribute float y1;
140 // raises nsIDOMDOMException on setting
141 attribute float x2;
142 // raises nsIDOMDOMException on setting
143 attribute float y2;
144 // raises nsIDOMDOMException on setting
145 };
146
147 [scriptable, uuid(b7aef0f0-2830-4145-b04f-fe05789ccf8a)]
148 interface nsIDOMSVGPathSegCurvetoQuadraticAbs : nsISupports
149 {
150 attribute float x;
151 // raises nsIDOMDOMException on setting
152 attribute float y;
153 // raises nsIDOMDOMException on setting
154 attribute float x1;
155 // raises nsIDOMDOMException on setting
156 attribute float y1;
157 // raises nsIDOMDOMException on setting
158 };
159
160 [scriptable, uuid(c46eb661-9c05-4d46-9b2a-c2ae5b166060)]
161 interface nsIDOMSVGPathSegCurvetoQuadraticRel : nsISupports
162 {
163 attribute float x;
164 // raises nsIDOMDOMException on setting
165 attribute float y;
166 // raises nsIDOMDOMException on setting
167 attribute float x1;
168 // raises nsIDOMDOMException on setting
169 attribute float y1;
170 // raises nsIDOMDOMException on setting
171 };
172
173 [scriptable, uuid(c9e222e5-31fd-4083-ae1f-fcf013681340)]
174 interface nsIDOMSVGPathSegArcAbs : nsISupports
175 {
176 attribute float x;
177 // raises nsIDOMDOMException on setting
178 attribute float y;
179 // raises nsIDOMDOMException on setting
180 attribute float r1;
181 // raises nsIDOMDOMException on setting
182 attribute float r2;
183 // raises nsIDOMDOMException on setting
184 attribute float angle;
185 // raises nsIDOMDOMException on setting
186 attribute boolean largeArcFlag;
187 // raises nsIDOMDOMException on setting
188 attribute boolean sweepFlag;
189 // raises nsIDOMDOMException on setting
190 };
191
192 [scriptable, uuid(49d0360d-bb66-4ab9-b9b0-f49b93398595)]
193 interface nsIDOMSVGPathSegArcRel : nsISupports
194 {
195 attribute float x;
196 // raises nsIDOMDOMException on setting
197 attribute float y;
198 // raises nsIDOMDOMException on setting
199 attribute float r1;
200 // raises nsIDOMDOMException on setting
201 attribute float r2;
202 // raises nsIDOMDOMException on setting
203 attribute float angle;
204 // raises nsIDOMDOMException on setting
205 attribute boolean largeArcFlag;
206 // raises nsIDOMDOMException on setting
207 attribute boolean sweepFlag;
208 // raises nsIDOMDOMException on setting
209 };
210
211 [scriptable, uuid(4a54a4d2-edef-4e19-9600-2330311000f4)]
212 interface nsIDOMSVGPathSegLinetoHorizontalAbs : nsISupports
213 {
214 attribute float x;
215 // raises nsIDOMDOMException on setting
216 };
217
218 [scriptable, uuid(8693268c-5180-43fd-acc3-5b9c09f43386)]
219 interface nsIDOMSVGPathSegLinetoHorizontalRel : nsISupports
220 {
221 attribute float x;
222 // raises nsIDOMDOMException on setting
223 };
224
225 [scriptable, uuid(fd5ffb7b-7279-4c09-abfd-b733dc872e80)]
226 interface nsIDOMSVGPathSegLinetoVerticalAbs : nsISupports
227 {
228 attribute float y;
229 // raises nsIDOMDOMException on setting
230 };
231
232 [scriptable, uuid(d3ef2128-8de3-4aac-a6b4-13c7563119a6)]
233 interface nsIDOMSVGPathSegLinetoVerticalRel : nsISupports
234 {
235 attribute float y;
236 // raises nsIDOMDOMException on setting
237 };
238
239 [scriptable, uuid(5fa8fea8-bdd1-4315-ac44-a39b3ff347b5)]
240 interface nsIDOMSVGPathSegCurvetoCubicSmoothAbs : nsISupports
241 {
242 attribute float x;
243 // raises nsIDOMDOMException on setting
244 attribute float y;
245 // raises nsIDOMDOMException on setting
246 attribute float x2;
247 // raises nsIDOMDOMException on setting
248 attribute float y2;
249 // raises nsIDOMDOMException on setting
250 };
251
252 [scriptable, uuid(dd5b4b00-edaa-493a-b477-bbc2576b4a98)]
253 interface nsIDOMSVGPathSegCurvetoCubicSmoothRel : nsISupports
254 {
255 attribute float x;
256 // raises nsIDOMDOMException on setting
257 attribute float y;
258 // raises nsIDOMDOMException on setting
259 attribute float x2;
260 // raises nsIDOMDOMException on setting
261 attribute float y2;
262 // raises nsIDOMDOMException on setting
263 };
264
265 [scriptable, uuid(ff5bbb58-b49a-450f-b91b-e50585c34b3d)]
266 interface nsIDOMSVGPathSegCurvetoQuadraticSmoothAbs : nsISupports
267 {
268 attribute float x;
269 // raises nsIDOMDOMException on setting
270 attribute float y;
271 // raises nsIDOMDOMException on setting
272 };
273
274 [scriptable, uuid(ac0b2007-04e4-4e70-a0e0-294f374b29c4)]
275 interface nsIDOMSVGPathSegCurvetoQuadraticSmoothRel : nsISupports
276 {
277 attribute float x;
278 // raises nsIDOMDOMException on setting
279 attribute float y;
280 // raises nsIDOMDOMException on setting
281 };