OLD | NEW |
---|---|
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of $LIBRARYNAME; | 5 part of $LIBRARYNAME; |
6 | 6 |
7 $(ANNOTATIONS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC { | 7 $(ANNOTATIONS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC { |
8 $!MEMBERS | 8 $!MEMBERS |
9 | 9 |
10 /** | 10 /** |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
42 void setStrokeColorHsl(int h, num s, num l, [num a = 1]) { | 42 void setStrokeColorHsl(int h, num s, num l, [num a = 1]) { |
43 this.strokeStyle = 'hsla($h, $s%, $l%, $a)'; | 43 this.strokeStyle = 'hsla($h, $s%, $l%, $a)'; |
44 } | 44 } |
45 | 45 |
46 @DomName('CanvasRenderingContext2D.arc') | 46 @DomName('CanvasRenderingContext2D.arc') |
47 void arc(num x, num y, num radius, num startAngle, num endAngle, | 47 void arc(num x, num y, num radius, num startAngle, num endAngle, |
48 [bool anticlockwise = false]) { | 48 [bool anticlockwise = false]) { |
49 $dom_arc(x, y, radius, startAngle, endAngle, anticlockwise); | 49 $dom_arc(x, y, radius, startAngle, endAngle, anticlockwise); |
50 } | 50 } |
51 | 51 |
52 /** | |
53 * Draws an image from a [CanvasImageSource] to this canvas. | |
54 * | |
55 * The entire image from [source] will be drawn to this context with its top | |
56 * left corner at the point ([destinationX], [destinationY]). If the image is | |
57 * larger than canvas will allow, the image will be cropped to fit the | |
58 * available space. | |
59 * | |
60 * CanvasElement canvas = new CanvasElement(width: 600, height: 600); | |
61 * CanvasRenderingContext2D ctx = canvas.context2d; | |
62 * ImageElement img = document.query('img'); | |
63 * | |
64 * ctx.drawImage(img, 100, 100); | |
65 * | |
66 * VideoElement video = document.query('video'); | |
67 * ctx.drawImage(video, 0, 0); | |
68 * | |
69 * CanvasElement otherCanvas = document.query('canvas'); | |
70 * otherCanvas.width = 100; | |
71 * otherCanvas.height = 100; | |
72 * ctx.drawImage(otherCanvas, 590, 590); // will get cropped | |
73 * | |
74 * See also: | |
75 * | |
76 * * [CanvasImageSource] for more information on what data is retrieved | |
77 * from [source]. | |
78 * * [drawImage](http://www.whatwg.org/specs/web-apps/current-work/multipage /the-canvas-element.html#dom-context-2d-drawimage) | |
79 * from the WHATWG. | |
80 */ | |
81 @DomName('CanvasRenderingContext2D.drawImage') | |
82 void drawImage(CanvasImageSource source, num destinationX, num destinationY) { | |
83 $dom_drawImage(source, destinationX, destinationY); | |
84 } | |
85 | |
86 /** | |
87 * Draws an image from a [CanvasImageSource] to an area of this canvas. | |
88 * | |
89 * The image will be drawn to an area of this canvas defined by | |
90 * [destinationRectangle]. If [sourceRectangle] is not provided, then | |
91 * the entire rectangular image from [source] will be drawn to this context. | |
92 * If the dimensions of [source] or [sourceRectangle] | |
93 * differ from [destinationRectangle], then the image will be scaled to fit. | |
94 * If the image is larger than canvas | |
95 * will allow, the image will be cropped to fit the available space. | |
96 * | |
97 * CanvasElement canvas = new CanvasElement(width: 600, height: 600); | |
98 * CanvasRenderingContext2D ctx = canvas.context2d; | |
99 * ImageElement img = document.query('img'); | |
100 * img.width = 100; | |
101 * img.height = 100; | |
102 * | |
103 * // Scale the image to 20x20 | |
104 * ctx.drawImageAtScale(img, new Rect(50, 50, 20, 20)); | |
105 * | |
106 * VideoElement video = document.query('video'); | |
107 * video.width = 100; | |
108 * video.height = 100; | |
109 * // Take the middle 20x20 pixels from the video and stretch them. | |
110 * ctx.drawImageAtScale(video, new Rect(50, 50, 100, 100), | |
111 * sourceRectangle: new Rect(40, 40, 20, 20)); | |
112 * | |
113 * // Draw the top 100x20 pixels from the otherCanvas. | |
114 * CanvasElement otherCanvas = document.query('canvas'); | |
115 * ctx.drawImageAtScale(otherCanvas, new Rect(0, 0, 100, 20), | |
116 * sourceRectangle: new Rect(0, 0, 100, 20)); | |
117 * | |
118 * See also: | |
119 * | |
120 * * [CanvasImageSource] for more information on what data is retrieved | |
121 * from [source]. | |
122 * * [drawImage](http://www.whatwg.org/specs/web-apps/current-work/multipage /the-canvas-element.html#dom-context-2d-drawimage) | |
123 * from the WHATWG. | |
124 */ | |
125 @DomName('CanvasRenderingContext2D.drawImage') | |
126 void drawImageAtScale(CanvasImageSource source, Rect destinationRectangle, | |
127 {Rect sourceRectangle}) { | |
blois
2013/03/15 18:05:30
I'd call it sourceRect- rectangle is just too verb
Andrei Mouravski
2013/03/15 20:06:12
Done.
| |
128 if (sourceRectangle == null) { | |
129 $dom_drawImage(source, | |
130 destinationRectangle.left, | |
131 destinationRectangle.top, | |
132 destinationRectangle.width, | |
133 destinationRectangle.height); | |
134 } else { | |
135 $dom_drawImage(source, | |
136 sourceRectangle.left, | |
137 sourceRectangle.top, | |
138 sourceRectangle.width, | |
139 sourceRectangle.height, | |
140 destinationRectangle.left, | |
141 destinationRectangle.top, | |
142 destinationRectangle.width, | |
143 destinationRectangle.height); | |
144 } | |
145 } | |
52 | 146 |
53 $if DART2JS | 147 $if DART2JS |
54 @DomName('CanvasRenderingContext2D.lineDashOffset') | 148 @DomName('CanvasRenderingContext2D.lineDashOffset') |
55 num get lineDashOffset => JS('num', | 149 num get lineDashOffset => JS('num', |
56 '#.lineDashOffset || #.webkitLineDashOffset', this, this); | 150 '#.lineDashOffset || #.webkitLineDashOffset', this, this); |
57 | 151 |
58 @DomName('CanvasRenderingContext2D.lineDashOffset') | 152 @DomName('CanvasRenderingContext2D.lineDashOffset') |
59 void set lineDashOffset(num value) => JS('void', | 153 void set lineDashOffset(num value) => JS('void', |
60 'typeof #.lineDashOffset != "undefined" ? #.lineDashOffset = # : ' | 154 'typeof #.lineDashOffset != "undefined" ? #.lineDashOffset = # : ' |
61 '#.webkitLineDashOffset = #', this, this, value, this, value); | 155 '#.webkitLineDashOffset = #', this, this, value, this, value); |
62 $endif | 156 $endif |
63 } | 157 } |
OLD | NEW |