|
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 */ |
|
12 |
|
13 interface SVGPathSeg { |
|
14 |
|
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; |
|
36 |
|
37 readonly attribute unsigned short pathSegType; |
|
38 readonly attribute DOMString pathSegTypeAsLetter; |
|
39 }; |
|
40 |
|
41 interface SVGPathSegClosePath : SVGPathSeg { |
|
42 }; |
|
43 |
|
44 interface SVGPathSegMovetoAbs : SVGPathSeg { |
|
45 [SetterThrows] |
|
46 attribute float x; |
|
47 [SetterThrows] |
|
48 attribute float y; |
|
49 }; |
|
50 |
|
51 interface SVGPathSegMovetoRel : SVGPathSeg { |
|
52 [SetterThrows] |
|
53 attribute float x; |
|
54 [SetterThrows] |
|
55 attribute float y; |
|
56 }; |
|
57 |
|
58 interface SVGPathSegLinetoAbs : SVGPathSeg { |
|
59 [SetterThrows] |
|
60 attribute float x; |
|
61 [SetterThrows] |
|
62 attribute float y; |
|
63 }; |
|
64 |
|
65 interface SVGPathSegLinetoRel : SVGPathSeg { |
|
66 [SetterThrows] |
|
67 attribute float x; |
|
68 [SetterThrows] |
|
69 attribute float y; |
|
70 }; |
|
71 |
|
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 }; |
|
86 |
|
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 }; |
|
101 |
|
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 }; |
|
112 |
|
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 }; |
|
123 |
|
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 }; |
|
140 |
|
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 }; |
|
157 |
|
158 interface SVGPathSegLinetoHorizontalAbs : SVGPathSeg { |
|
159 [SetterThrows] |
|
160 attribute float x; |
|
161 }; |
|
162 |
|
163 interface SVGPathSegLinetoHorizontalRel : SVGPathSeg { |
|
164 [SetterThrows] |
|
165 attribute float x; |
|
166 }; |
|
167 |
|
168 interface SVGPathSegLinetoVerticalAbs : SVGPathSeg { |
|
169 [SetterThrows] |
|
170 attribute float y; |
|
171 }; |
|
172 |
|
173 interface SVGPathSegLinetoVerticalRel : SVGPathSeg { |
|
174 [SetterThrows] |
|
175 attribute float y; |
|
176 }; |
|
177 |
|
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 }; |
|
188 |
|
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 }; |
|
199 |
|
200 interface SVGPathSegCurvetoQuadraticSmoothAbs : SVGPathSeg { |
|
201 [SetterThrows] |
|
202 attribute float x; |
|
203 [SetterThrows] |
|
204 attribute float y; |
|
205 }; |
|
206 |
|
207 interface SVGPathSegCurvetoQuadraticSmoothRel : SVGPathSeg { |
|
208 [SetterThrows] |
|
209 attribute float x; |
|
210 [SetterThrows] |
|
211 attribute float y; |
|
212 }; |
|
213 |