Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/.
5 *
6 * The origin of this IDL file is
7 * http://www.w3.org/TR/SVG2/
8 *
9 * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
10 * liability, trademark and document use rules apply.
11 */
13 interface SVGPathSeg {
15 // Path Segment Types
16 const unsigned short PATHSEG_UNKNOWN = 0;
17 const unsigned short PATHSEG_CLOSEPATH = 1;
18 const unsigned short PATHSEG_MOVETO_ABS = 2;
19 const unsigned short PATHSEG_MOVETO_REL = 3;
20 const unsigned short PATHSEG_LINETO_ABS = 4;
21 const unsigned short PATHSEG_LINETO_REL = 5;
22 const unsigned short PATHSEG_CURVETO_CUBIC_ABS = 6;
23 const unsigned short PATHSEG_CURVETO_CUBIC_REL = 7;
24 const unsigned short PATHSEG_CURVETO_QUADRATIC_ABS = 8;
25 const unsigned short PATHSEG_CURVETO_QUADRATIC_REL = 9;
26 const unsigned short PATHSEG_ARC_ABS = 10;
27 const unsigned short PATHSEG_ARC_REL = 11;
28 const unsigned short PATHSEG_LINETO_HORIZONTAL_ABS = 12;
29 const unsigned short PATHSEG_LINETO_HORIZONTAL_REL = 13;
30 const unsigned short PATHSEG_LINETO_VERTICAL_ABS = 14;
31 const unsigned short PATHSEG_LINETO_VERTICAL_REL = 15;
32 const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;
33 const unsigned short PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;
34 const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;
35 const unsigned short PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;
37 readonly attribute unsigned short pathSegType;
38 readonly attribute DOMString pathSegTypeAsLetter;
39 };
41 interface SVGPathSegClosePath : SVGPathSeg {
42 };
44 interface SVGPathSegMovetoAbs : SVGPathSeg {
45 [SetterThrows]
46 attribute float x;
47 [SetterThrows]
48 attribute float y;
49 };
51 interface SVGPathSegMovetoRel : SVGPathSeg {
52 [SetterThrows]
53 attribute float x;
54 [SetterThrows]
55 attribute float y;
56 };
58 interface SVGPathSegLinetoAbs : SVGPathSeg {
59 [SetterThrows]
60 attribute float x;
61 [SetterThrows]
62 attribute float y;
63 };
65 interface SVGPathSegLinetoRel : SVGPathSeg {
66 [SetterThrows]
67 attribute float x;
68 [SetterThrows]
69 attribute float y;
70 };
72 interface SVGPathSegCurvetoCubicAbs : SVGPathSeg {
73 [SetterThrows]
74 attribute float x;
75 [SetterThrows]
76 attribute float y;
77 [SetterThrows]
78 attribute float x1;
79 [SetterThrows]
80 attribute float y1;
81 [SetterThrows]
82 attribute float x2;
83 [SetterThrows]
84 attribute float y2;
85 };
87 interface SVGPathSegCurvetoCubicRel : SVGPathSeg {
88 [SetterThrows]
89 attribute float x;
90 [SetterThrows]
91 attribute float y;
92 [SetterThrows]
93 attribute float x1;
94 [SetterThrows]
95 attribute float y1;
96 [SetterThrows]
97 attribute float x2;
98 [SetterThrows]
99 attribute float y2;
100 };
102 interface SVGPathSegCurvetoQuadraticAbs : SVGPathSeg {
103 [SetterThrows]
104 attribute float x;
105 [SetterThrows]
106 attribute float y;
107 [SetterThrows]
108 attribute float x1;
109 [SetterThrows]
110 attribute float y1;
111 };
113 interface SVGPathSegCurvetoQuadraticRel : SVGPathSeg {
114 [SetterThrows]
115 attribute float x;
116 [SetterThrows]
117 attribute float y;
118 [SetterThrows]
119 attribute float x1;
120 [SetterThrows]
121 attribute float y1;
122 };
124 interface SVGPathSegArcAbs : SVGPathSeg {
125 [SetterThrows]
126 attribute float x;
127 [SetterThrows]
128 attribute float y;
129 [SetterThrows]
130 attribute float r1;
131 [SetterThrows]
132 attribute float r2;
133 [SetterThrows]
134 attribute float angle;
135 [SetterThrows]
136 attribute boolean largeArcFlag;
137 [SetterThrows]
138 attribute boolean sweepFlag;
139 };
141 interface SVGPathSegArcRel : SVGPathSeg {
142 [SetterThrows]
143 attribute float x;
144 [SetterThrows]
145 attribute float y;
146 [SetterThrows]
147 attribute float r1;
148 [SetterThrows]
149 attribute float r2;
150 [SetterThrows]
151 attribute float angle;
152 [SetterThrows]
153 attribute boolean largeArcFlag;
154 [SetterThrows]
155 attribute boolean sweepFlag;
156 };
158 interface SVGPathSegLinetoHorizontalAbs : SVGPathSeg {
159 [SetterThrows]
160 attribute float x;
161 };
163 interface SVGPathSegLinetoHorizontalRel : SVGPathSeg {
164 [SetterThrows]
165 attribute float x;
166 };
168 interface SVGPathSegLinetoVerticalAbs : SVGPathSeg {
169 [SetterThrows]
170 attribute float y;
171 };
173 interface SVGPathSegLinetoVerticalRel : SVGPathSeg {
174 [SetterThrows]
175 attribute float y;
176 };
178 interface SVGPathSegCurvetoCubicSmoothAbs : SVGPathSeg {
179 [SetterThrows]
180 attribute float x;
181 [SetterThrows]
182 attribute float y;
183 [SetterThrows]
184 attribute float x2;
185 [SetterThrows]
186 attribute float y2;
187 };
189 interface SVGPathSegCurvetoCubicSmoothRel : SVGPathSeg {
190 [SetterThrows]
191 attribute float x;
192 [SetterThrows]
193 attribute float y;
194 [SetterThrows]
195 attribute float x2;
196 [SetterThrows]
197 attribute float y2;
198 };
200 interface SVGPathSegCurvetoQuadraticSmoothAbs : SVGPathSeg {
201 [SetterThrows]
202 attribute float x;
203 [SetterThrows]
204 attribute float y;
205 };
207 interface SVGPathSegCurvetoQuadraticSmoothRel : SVGPathSeg {
208 [SetterThrows]
209 attribute float x;
210 [SetterThrows]
211 attribute float y;
212 };