2 * Back 2 Browser Bytecode Translator Copyright (C) 2012 Jaroslav Tulach
3 * <jaroslav.tulach@apidesign.org>
5 * This program is free software: you can redistribute it and/or modify it under
6 * the terms of the GNU General Public License as published by the Free Software
7 * Foundation, version 2 of the License.
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14 * You should have received a copy of the GNU General Public License along with
15 * this program. Look for COPYING file in the top folder. If not, see
16 * http://opensource.org/licenses/GPL-2.0.
18 package net.java.html.canvas;
20 import net.java.html.canvas.Style.Color;
21 import net.java.html.canvas.Style.LinearGradient;
22 import net.java.html.canvas.Style.Pattern;
23 import net.java.html.canvas.Style.RadialGradient;
24 import net.java.html.canvas.spi.GraphicsEnvironment;
30 public final class GraphicsContext {
32 GraphicsEnvironment graphicsEnvironmentImpl;
34 public GraphicsContext(GraphicsEnvironment graphicsEnvironment) {
35 this.graphicsEnvironmentImpl = graphicsEnvironment;
38 public void arc(double centerX,
44 graphicsEnvironmentImpl.arc(centerX, centerY, startAngle, radius, endAngle, ccw);
47 public void arcTo(double x1,
52 graphicsEnvironmentImpl.arcTo(x1, y1, x2, y2, r);
55 public boolean isPointInPath(double x, double y) {
56 return graphicsEnvironmentImpl.isPointInPath(x, y);
60 graphicsEnvironmentImpl.fill();
63 public void stroke() {
64 graphicsEnvironmentImpl.stroke();
67 public void beginPath() {
68 graphicsEnvironmentImpl.beginPath();
71 public void closePath(){
72 graphicsEnvironmentImpl.closePath();
76 graphicsEnvironmentImpl.clip();
79 public void moveTo(double x, double y){
80 graphicsEnvironmentImpl.moveTo(x, y);
83 public void lineTo(double x, double y){
84 graphicsEnvironmentImpl.lineTo(x, y);
87 public void quadraticCurveTo(double cpx, double cpy, double x, double y){
88 graphicsEnvironmentImpl.quadraticCurveTo(cpx, cpy, x, y);
91 public void bezierCurveTo(double cp1x, double cp1y, double cp2x, double cp2y, double x, double y){
92 graphicsEnvironmentImpl.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);
95 public void fillRect(double x, double y, double width, double height){
96 graphicsEnvironmentImpl.fillRect(x, y, width, height);
99 public void strokeRect(double x, double y, double width, double height){
100 graphicsEnvironmentImpl.strokeRect(x, y, width, height);
103 public void clearRect(double x, double y, double width, double height){
104 graphicsEnvironmentImpl.clearRect(x, y, width, height);
107 public void rect(double x, double y, double width, double height){
108 graphicsEnvironmentImpl.rect(x, y, width, height);
112 graphicsEnvironmentImpl.save();
115 public void restore(){
116 graphicsEnvironmentImpl.restore();
119 public void rotate(double angle){
120 graphicsEnvironmentImpl.rotate(angle);
123 public void transform(double a, double b, double c, double d, double e, double f){
124 graphicsEnvironmentImpl.transform(a, b, c, d, e, f);
127 public void setTransform(double a, double b, double c, double d, double e, double f){
128 graphicsEnvironmentImpl.setTransform(a, b, c, d, e, f);
131 public void translate(double x, double y){
132 graphicsEnvironmentImpl.translate(x, y);
135 public void scale(double x, double y){
136 graphicsEnvironmentImpl.scale(x, y);
139 public void paintImage(Image image, double x, double y){
140 Object nativeImage = graphicsEnvironmentImpl.drawImage(image, x, y, image.getCached());
141 image.cache(nativeImage);
144 public void paintImage(Image image, double x, double y, double width, double height){
145 Object nativeImage = graphicsEnvironmentImpl.drawImage(image, x, y, width, height, image.getCached());
146 image.cache(nativeImage);
149 public void paintImage(Image image, double sx, double sy, double sWidth, double sHeight, double x, double y, double width, double height){
150 Object nativeImage = graphicsEnvironmentImpl.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height, image.getCached());
151 image.cache(nativeImage);
154 public void setShadowColor(String color){
155 graphicsEnvironmentImpl.setShadowColor(color);
158 public void setShadowBlur(double blur){
159 graphicsEnvironmentImpl.setShadowBlur(blur);
162 public void setShadowOffsetX(double x){
163 graphicsEnvironmentImpl.setShadowOffsetX(x);
166 public void setShadowOffsetY(double y){
167 graphicsEnvironmentImpl.setShadowOffsetY(y);
170 public String getShadowColor(){
171 return graphicsEnvironmentImpl.getShadowColor();
174 public double getShadowBlur(){
175 return graphicsEnvironmentImpl.getShadowBlur();
178 public double getShadowOffsetX(){
179 return graphicsEnvironmentImpl.getShadowOffsetX();
182 public double getShadowOffsetY(){
183 return graphicsEnvironmentImpl.getShadowOffsetY();
186 public String getLineCap(){
187 return graphicsEnvironmentImpl.getLineCap();
190 public void setLineCap(String style){
191 graphicsEnvironmentImpl.setLineCap(style);
194 public String getLineJoin(){
195 return graphicsEnvironmentImpl.getLineJoin();
198 public void setLineJoin(String style){
199 graphicsEnvironmentImpl.setLineJoin(style);
202 public double getLineWidth(){
203 return graphicsEnvironmentImpl.getLineWidth();
206 public void setLineWidth(double width){
207 graphicsEnvironmentImpl.setLineWidth(width);
210 public double getMiterLimit(){
211 return graphicsEnvironmentImpl.getMiterLimit();
214 public void setMiterLimit(double limit){
215 graphicsEnvironmentImpl.setMiterLimit(limit);
218 public void setFillStyle(Style style){
219 Object nativeFillStyle = graphicsEnvironmentImpl.setFillStyle(style, style.getCached());
220 style.cache(nativeFillStyle);
223 public String getFont(){
224 return graphicsEnvironmentImpl.getFont();
227 public void setFont(String font){
228 graphicsEnvironmentImpl.setFont(font);
231 public void setStrokeStyle(Style style){
232 Object nativeStrokeStyle = graphicsEnvironmentImpl.setStrokeStyle(style, style.getCached());
233 style.cache(nativeStrokeStyle);
236 public String getTextAlign(){
237 return graphicsEnvironmentImpl.getTextAlign();
240 public void setTextAlign(String textAlign){
241 graphicsEnvironmentImpl.setTextAlign(textAlign);
244 public String getTextBaseline(){
245 return graphicsEnvironmentImpl.getTextBaseline();
248 public void setTextBaseline(String textbaseline){
249 graphicsEnvironmentImpl.setTextBaseline(textbaseline);
252 public void fillText(String text, double x, double y){
253 graphicsEnvironmentImpl.fillText(text, x, y);
256 public void fillText(String text, double x, double y, double maxWidth){
257 graphicsEnvironmentImpl.fillText(text, x, y, maxWidth);
260 public Dimension measureText(String text){
261 return graphicsEnvironmentImpl.measureText(text);
264 public void strokeText(String text, double x, double y){
265 graphicsEnvironmentImpl.strokeText(text, x, y);
268 public void strokeText(String text, double x, double y, double maxWidth){
269 graphicsEnvironmentImpl.strokeText(text, x, y, maxWidth);
272 public ImageData createPixelMap(double x, double y){
273 return graphicsEnvironmentImpl.createPixelMap(x, y);
276 public ImageData createPixelMap(ImageData pixelMap){
277 return graphicsEnvironmentImpl.createPixelMap(pixelMap);
280 public ImageData getSnapshot(double x, double y, double width, double height){
281 return graphicsEnvironmentImpl.getPixelMap(x, y, width, height);
284 public void paintPixelMap(ImageData pixelMap, double x, double y){
285 graphicsEnvironmentImpl.putPixelMap(pixelMap, x, y);
288 public void paintPixelMap(ImageData pixelMap, double x, double y, double dirtyx, double dirtyy, double dirtywidth, double dirtyheight){
289 graphicsEnvironmentImpl.putPixelMap(pixelMap, x, y, dirtyx, dirtyy, dirtywidth, dirtyheight);
292 public void setGlobalAlpha(double alpha){
293 graphicsEnvironmentImpl.setGlobalAlpha(alpha);
296 public double getGlobalAlpha(){
297 return graphicsEnvironmentImpl.getGlobalAlpha();
300 public void setGlobalCompositeOperation(String operation){
301 graphicsEnvironmentImpl.setGlobalCompositeOperation(operation);
304 public String getGlobalCompositeOperation(){
305 return graphicsEnvironmentImpl.getGlobalCompositeOperation();
308 public LinearGradient createLinearGradient(double x0, double y0, double x1, double y1){
309 return new Style.LinearGradient(x0, y0, x1, y1);
312 public Pattern createPattern(Image image, String repeat){
313 return new Pattern(image, repeat);
316 public RadialGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1){
317 return new RadialGradient(x0, y0, r0, x1, y1, r1);
320 public Color getWebColor(String webColor){
321 return new Style.Color(webColor);
324 public Image getImageForPath(String path){
325 return graphicsEnvironmentImpl.getImageForPath(path);
328 public int getHeight(){
329 return graphicsEnvironmentImpl.getHeight();
332 public int getWidth(){
333 return graphicsEnvironmentImpl.getWidth();
336 public void setHeight(int height){
337 graphicsEnvironmentImpl.setHeight(height);
340 public void setWidth(int width){
341 graphicsEnvironmentImpl.setWidth(width);