Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(287)

Side by Side Diff: test/codegen/dom.dart

Issue 1007313003: Move sunflower to a new directory, make final tweaks to make it all work. (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/src/codegen/html_codegen.dart ('k') | test/codegen/expect/dom.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 @JsName(name: 'window')
6 library dom;
7
8
9 class JsName {
10 /// The JavaScript name.
11 /// Used for classes and libraries.
12 /// Note that this could be an expression, e.g. `lib.TypeName` in JS, but it
13 /// should be kept simple, as it will be generated directly into the code.
14 final String name;
15 const JsName({this.name});
16 }
17 class Overload {
18 const Overload();
19 }
20 const overload = const Overload();
21
22 external Document get document;
23
24 @JsName(name: 'Document')
25 abstract class Document {
26 Element querySelector(String selector);
27 }
28
29 @JsName(name: 'Element')
30 abstract class Element {
31 void addEventListener(String type, EventListener callback, [bool capture]);
32 String textContent;
33 }
34
35 typedef void EventListener(Event e);
36
37 abstract class Event {}
38
39 @JsName(name: 'HTMLInputElement')
40 abstract class InputElement extends Element {
41 String value;
42 }
43
44 @JsName(name: 'HTMLCanvasElement')
45 abstract class CanvasElement extends Element {
46 RenderingContext getContext(String contextId);
47 }
48
49 // TODO(jmesserly): union type of CanvasRenderingContext2D and
50 // WebGLRenderingContext
51 abstract class RenderingContext {}
52
53 // http://www.w3.org/html/wg/drafts/2dcontext/html5_canvas_CR/
54 @JsName()
55 abstract class CanvasRenderingContext2D
56 implements CanvasDrawingStyles, CanvasPathMethods, RenderingContext {
57
58 // back-reference to the canvas
59 CanvasElement get canvas;
60
61 // state
62 void save(); // push state on state stack
63 void restore(); // pop state stack and restore state
64
65 // transformations (default transform is the identity matrix)
66 void scale(num x, num y);
67 void rotate(num angle);
68 void translate(num x, num y);
69 void transform(num a, num b, num c, num d, num e, num f);
70 void setTransform(num a, num b, num c, num d, num e, num f);
71
72 // compositing
73 num globalAlpha; // (default 1.0)
74 String globalCompositeOperation; // (default source-over)
75
76 // colors and styles (see also the CanvasDrawingStyles interface)
77 Object strokeStyle; // (default black)
78 Object fillStyle; // (default black)
79 CanvasGradient createLinearGradient(num x0, num y0, num x1, num y1);
80 CanvasGradient createRadialGradient(
81 num x0, num y0, num r0, num x1, num y1, num r1);
82 CanvasPattern createPattern(Element image, [String repetition]);
83
84 // shadows
85 num shadowOffsetX; // (default 0)
86 num shadowOffsetY; // (default 0)
87 num shadowBlur; // (default 0)
88 String shadowColor; // (default transparent black)
89
90 // rects
91 void clearRect(num x, num y, num w, num h);
92 void fillRect(num x, num y, num w, num h);
93 void strokeRect(num x, num y, num w, num h);
94
95 // path API (see also CanvasPathMethods)
96 void beginPath();
97 void fill();
98 void stroke();
99 void drawFocusIfNeeded(Element element);
100 void clip();
101 bool isPointInPath(num x, num y);
102
103 // text (see also the CanvasDrawingStyles interface)
104 void fillText(String text, num x, num y, [num maxWidth]);
105 void strokeText(String text, num x, num y, [num maxWidth]);
106 TextMetrics measureText(String text);
107
108 // drawing images
109 void drawImage(Element image, num dx_or_sx, num dy_or_sy,
110 [num dw_or_sw, num dh_or_sh, num dx, num dy, num dw, num dh]);
111 @overload void _drawImage_0(Element image, num dx, num dy);
112 @overload void _drawImage_1(Element image, num dx, num dy, num dw, num dh);
113 @overload void _drawImage_2(Element image, num sx, num sy, num sw, num sh,
114 num dx, num dy, num dw, num dh);
115
116 // hit regions
117 void addHitRegion({String id: '', Element control});
118 void removeHitRegion(String id);
119 void clearHitRegions();
120
121 // pixel manipulation
122 ImageData createImageData(Object sw_or_imageData, [num sh]);
123 @overload ImageData _createImageData_0(num sw, num sh);
124 @overload ImageData _createImageData_1(ImageData imagedata);
125
126 ImageData getImageData(num sx, num sy, num sw, num sh);
127 void putImageData(ImageData imagedata, num dx, num dy,
128 [num dirtyX, num dirtyY, num dirtyWidth, num dirtyHeight]);
129 @overload void _putImageData_0(ImageData imagedata, num dx, num dy,
130 num dirtyX, num dirtyY, num dirtyWidth, num dirtyHeight);
131 @overload void _putImageData_1(ImageData imagedata, num dx, num dy);
132 }
133
134 abstract class CanvasDrawingStyles {
135 // line caps/joins
136 num lineWidth; // (default 1)
137 String lineCap; // "butt", "round", "square" (default "butt")
138 String lineJoin; // "round", "bevel", "miter" (default "miter")
139 num miterLimit; // (default 10)
140
141 // dashed lines
142 void setLineDash(List<num> segments); // default empty
143 List<num> getLineDash();
144 num lineDashOffset;
145
146 // text
147 String font; // (default 10px sans-serif)
148
149 // "start", "end", "left", "right", "center" (default: "start")
150 String textAlign;
151
152 // "top", "hanging", "middle", "alphabetic",
153 // "ideographic", "bottom" (default: "alphabetic")
154 String textBaseline;
155 }
156
157 abstract class CanvasPathMethods {
158 // shared path API methods
159 void closePath();
160 void moveTo(num x, num y);
161 void lineTo(num x, num y);
162 void quadraticCurveTo(num cpx, num cpy, num x, num y);
163 void bezierCurveTo(num cp1x, num cp1y, num cp2x, num cp2y, num x, num y);
164 void arcTo(num x1, num y1, num x2, num y2, num radius);
165 void rect(num x, num y, num w, num h);
166 void arc(num x, num y, num radius, num startAngle, num endAngle,
167 [bool anticlockwise]);
168 }
169
170 @JsName()
171 abstract class CanvasGradient {
172 // opaque object
173 void addColorStop(num offset, String color);
174 }
175
176 @JsName()
177 abstract class CanvasPattern {
178 // opaque object
179 }
180
181 @JsName()
182 abstract class TextMetrics {
183 num get width;
184 }
185
186 @JsName()
187 abstract class ImageData {
188 int get width;
189 int get height;
190 // TODO: readonly Uint8ClampedArray data;
191 }
OLDNEW
« no previous file with comments | « lib/src/codegen/html_codegen.dart ('k') | test/codegen/expect/dom.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698