Started extracting GraphicsContext interface from JavaQuery API. First extracting methods with primitive parameters and return type.
1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/Canvas.java Fri May 17 11:00:23 2013 +0200
1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/Canvas.java Fri May 17 11:00:38 2013 +0200
1.3 @@ -54,8 +54,8 @@
1.4 + "return e.getContext('2d');\n")
1.5 private native static Object getContextImpl(Canvas el);
1.6
1.7 - public GraphicsContext getContext() {
1.8 - return new GraphicsContext(getContextImpl(this));
1.9 + public HTML5GraphicsContext getContext() {
1.10 + return new HTML5GraphicsContext(getContextImpl(this));
1.11 }
1.12
1.13 @Override
2.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/GraphicsContext.java Fri May 17 11:00:23 2013 +0200
2.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2.3 @@ -1,335 +0,0 @@
2.4 -/**
2.5 - * Back 2 Browser Bytecode Translator
2.6 - * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
2.7 - *
2.8 - * This program is free software: you can redistribute it and/or modify
2.9 - * it under the terms of the GNU General Public License as published by
2.10 - * the Free Software Foundation, version 2 of the License.
2.11 - *
2.12 - * This program is distributed in the hope that it will be useful,
2.13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
2.14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2.15 - * GNU General Public License for more details.
2.16 - *
2.17 - * You should have received a copy of the GNU General Public License
2.18 - * along with this program. Look for COPYING file in the top folder.
2.19 - * If not, see http://opensource.org/licenses/GPL-2.0.
2.20 - */
2.21 -package org.apidesign.bck2brwsr.htmlpage.api;
2.22 -
2.23 -import org.apidesign.bck2brwsr.core.JavaScriptBody;
2.24 -
2.25 -/**
2.26 - *
2.27 - * @author Anton Epple <toni.epple@eppleton.de>
2.28 - */
2.29 -public class GraphicsContext {
2.30 -
2.31 - Object context;
2.32 -
2.33 - GraphicsContext(Object contextImpl) {
2.34 - this.context = contextImpl;
2.35 - }
2.36 -
2.37 - @JavaScriptBody(args = {"centerx", "centery", "radius", "startangle", "endangle", "ccw"},
2.38 - body = "this._context().arc(centerx,centery, radius, startangle, endangle,ccw);")
2.39 - public native void arc(double centerX,
2.40 - double centerY,
2.41 - double startAngle,
2.42 - double radius,
2.43 - double endAngle,
2.44 - boolean ccw);
2.45 -
2.46 - @JavaScriptBody(args = {"x1", "y1", "x2", "y2", "r"},
2.47 - body = "this._context().arcTo(x1,y1,x2,y2,r);")
2.48 - public native void arcTo(double x1,
2.49 - double y1,
2.50 - double x2,
2.51 - double y2,
2.52 - double r);
2.53 -
2.54 - @JavaScriptBody(args = {"x", "y"},
2.55 - body = "return this._context().isPointInPath(x,y);")
2.56 - public native boolean isPointInPath(double x, double y);
2.57 -
2.58 - @JavaScriptBody(args = {}, body = "this._context().fill();")
2.59 - public native void fill();
2.60 -
2.61 - @JavaScriptBody(args = {}, body = "this._context().stroke();")
2.62 - public native void stroke();
2.63 -
2.64 - @JavaScriptBody(args = {}, body = "this._context().beginPath();")
2.65 - public native void beginPath();
2.66 -
2.67 - @JavaScriptBody(args = {}, body = "this._context().closePath();")
2.68 - public native void closePath();
2.69 -
2.70 - @JavaScriptBody(args = {}, body = "this._context().clip();")
2.71 - public native void clip();
2.72 -
2.73 - @JavaScriptBody(args = {"x", "y"}, body = "this._context().moveTo(x,y);")
2.74 - public native void moveTo(double x, double y);
2.75 -
2.76 - @JavaScriptBody(args = {"x", "y"}, body = "this._context().lineTo(x,y);")
2.77 - public native void lineTo(double x, double y);
2.78 -
2.79 - @JavaScriptBody(args = {"cpx", "cpy", "x", "y"}, body = "this._context().quadraticCurveTo(cpx,cpy,x,y);")
2.80 - public native void quadraticCurveTo(double cpx, double cpy, double x, double y);
2.81 -
2.82 - @JavaScriptBody(args = {"cp1x", "cp1y", "cp2x", "cp2y", "x", "y"},
2.83 - body = "this._context().bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y);")
2.84 - public native void bezierCurveTo(double cp1x, double cp1y, double cp2x, double cp2y, double x, double y);
2.85 -
2.86 - @JavaScriptBody(args = {"x", "y", "width", "height"}, body = "this._context().fillRect(x,y,width,height);")
2.87 - public native void fillRect(double x, double y, double width, double height);
2.88 -
2.89 - @JavaScriptBody(args = {"x", "y", "width", "height"}, body = "this._context().strokeRect(x,y,width,height);")
2.90 - public native void strokeRect(double x, double y, double width, double height);
2.91 -
2.92 - @JavaScriptBody(args = {"x", "y", "width", "height"}, body = "this._context().clearRect(x,y,width,height);")
2.93 - public native void clearRect(double x, double y, double width, double height);
2.94 -
2.95 - @JavaScriptBody(args = {"x", "y", "width", "height"}, body = "this._context().rectect(x,y,width,height);")
2.96 - public native void rect(double x, double y, double width, double height);
2.97 -
2.98 - @JavaScriptBody(args = {}, body = "this._context().save();")
2.99 - public native void save();
2.100 -
2.101 - @JavaScriptBody(args = {}, body = "this._context().restore();")
2.102 - public native void restore();
2.103 -
2.104 - @JavaScriptBody(args = {"angle"}, body = "this._context().rotate(angle);")
2.105 - public native void rotate(double angle);
2.106 -
2.107 - @JavaScriptBody(args = {"a", "b", "c", "d", "e", "f"}, body = "this._context().transform(a,b,c,d,e,f);")
2.108 - public native void transform(double a, double b, double c, double d, double e, double f);
2.109 -
2.110 - @JavaScriptBody(args = {"a", "b", "c", "d", "e", "f"}, body = "this._context().setTransform(a,b,c,d,e,f);")
2.111 - public native void setTransform(double a, double b, double c, double d, double e, double f);
2.112 -
2.113 - @JavaScriptBody(args = {"x", "y"}, body = "this._context().translate(x,y);")
2.114 - public native void translate(double x, double y);
2.115 -
2.116 - @JavaScriptBody(args = {"x", "y"}, body = "this._context().scale(x,y);")
2.117 - public native void scale(double x, double y);
2.118 -
2.119 - public void drawImage(Image image, double x, double y) {
2.120 - drawImageImpl(context, Element.getElementById(image), x, y);
2.121 - }
2.122 -
2.123 - public void drawImage(Image image, double x, double y, double width, double height) {
2.124 - drawImageImpl(context, Element.getElementById(image), x, y, width, height);
2.125 - }
2.126 -
2.127 - public void drawImage(Image image, double sx, double sy, double sWidth, double sHeight, double x, double y, double width, double height) {
2.128 - drawImageImpl(context, Element.getElementById(image), sx, sy, sWidth, sHeight, x, y, width, height);
2.129 - }
2.130 -
2.131 - @JavaScriptBody(args = {"ctx", "img", "x", "y", "width", "height"}, body = "ctx.drawImage(img,x,y,width,height);")
2.132 - private native static void drawImageImpl(Object ctx, Object img, double x, double y, double width, double height);
2.133 -
2.134 - @JavaScriptBody(args = {"ctx", "img", "sx", "sy", "swidth", "sheight", "x", "y", "width", "height"}, body = "ctx.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);")
2.135 - private native static void drawImageImpl(Object ctx, Object img, double sx, double sy, double sWidth, double sHeight, double x, double y, double width, double height);
2.136 -
2.137 - @JavaScriptBody(args = {"ctx", "img", "x", "y"}, body = "ctx.drawImage(img,x,y);")
2.138 - private native static void drawImageImpl(Object ctx, Object img, double x, double y);
2.139 -
2.140 - @JavaScriptBody(args = {"style"}, body = "this._context().fillStyle=style.valueOf();")
2.141 - public native void setFillStyle(String style);
2.142 -
2.143 - @JavaScriptBody(args = {}, body = "return this._context().fillStyle;")
2.144 - public native String getFillStyle();
2.145 -
2.146 - public void setFillStyle(LinearGradient style) {
2.147 - setFillStyleImpl(context, style.object());
2.148 - }
2.149 -
2.150 - public void setFillStyle(RadialGradient style) {
2.151 - setFillStyleImpl(context, style.object());
2.152 - }
2.153 -
2.154 - public void setFillStyle(Pattern style) {
2.155 - setFillStyleImpl(context, style.object());
2.156 - }
2.157 -
2.158 - @JavaScriptBody(args = {"context","obj"}, body = "context.fillStyle=obj;")
2.159 - private native void setFillStyleImpl(Object context, Object obj);
2.160 -
2.161 - @JavaScriptBody(args = {"style"}, body = "this._context().strokeStyle=style.valueOf();")
2.162 - public native void setStrokeStyle(String style);
2.163 -
2.164 - public void setStrokeStyle(LinearGradient style) {
2.165 - setStrokeStyleImpl(context, style.object());
2.166 - }
2.167 -
2.168 - public void setStrokeStyle(RadialGradient style) {
2.169 - setStrokeStyleImpl(context, style.object());
2.170 - }
2.171 -
2.172 - @JavaScriptBody(args = {"style"}, body = "this._context().fillStyle=style;")
2.173 - public void setStrokeStyle(Pattern style) {
2.174 - setStrokeStyleImpl(context, style.object());
2.175 - }
2.176 -
2.177 - @JavaScriptBody(args = {"context","obj"}, body = "context.strokeStyle=obj;")
2.178 - private native void setStrokeStyleImpl(Object context, Object obj);
2.179 -
2.180 - @JavaScriptBody(args = {"color"}, body = "this._context().shadowColor=color.valueOf();")
2.181 - public native void setShadowColor(String color);
2.182 -
2.183 - @JavaScriptBody(args = {"blur"}, body = "this._context().shadowBlur=blur;")
2.184 - public native void setShadowBlur(double blur);
2.185 -
2.186 - @JavaScriptBody(args = {"x"}, body = "this._context().shadowOffsetX=x;")
2.187 - public native void setShadowOffsetX(double x);
2.188 -
2.189 - @JavaScriptBody(args = {"y"}, body = "this._context().shadowOffsetY=y;")
2.190 - public native void setShadowOffsetY(double y);
2.191 -
2.192 - @JavaScriptBody(args = {}, body = "return this._context().strokeStyle;")
2.193 - public native String getStrokeStyle();
2.194 -
2.195 - @JavaScriptBody(args = {}, body = "return this._context().shadowColor;")
2.196 - public native String getShadowColor();
2.197 -
2.198 - @JavaScriptBody(args = {}, body = "return this._context().shadowBlur;")
2.199 - public native double getShadowBlur();
2.200 -
2.201 - @JavaScriptBody(args = {}, body = "return this._context().shadowOffsetX;")
2.202 - public native double getShadowOffsetX();
2.203 -
2.204 - @JavaScriptBody(args = {}, body = "return this._context().shadowOffsetY;")
2.205 - public native double getShadowOffsetY();
2.206 -
2.207 - @JavaScriptBody(args = {}, body = "return this._context().lineCap;")
2.208 - public native String getLineCap();
2.209 -
2.210 - @JavaScriptBody(args = {"style"}, body = "this._context().lineCap=style.valueOf();")
2.211 - public native void setLineCap(String style);
2.212 -
2.213 - @JavaScriptBody(args = {}, body = "return this._context().lineJoin;")
2.214 - public native String getLineJoin();
2.215 -
2.216 - @JavaScriptBody(args = {"style"}, body = "this._context().lineJoin=style.valueOf();")
2.217 - public native void setLineJoin(String style) ;
2.218 -
2.219 - @JavaScriptBody(args = {}, body = "return this._context().lineWidth;")
2.220 - public native double getLineWidth();
2.221 -
2.222 - @JavaScriptBody(args = {"width"}, body = "this._context().lineWidth=width;")
2.223 - public native void setLineWidth(double width);
2.224 -
2.225 - @JavaScriptBody(args = {}, body = "return this._context().miterLimit;")
2.226 - public native double getMiterLimit();
2.227 -
2.228 - @JavaScriptBody(args = {"limit"}, body = "this._context().miterLimit=limit;")
2.229 - public native void setMiterLimit(double limit);
2.230 -
2.231 - @JavaScriptBody(args = {}, body = "return this._context().font;")
2.232 - public native String getFont();
2.233 -
2.234 - @JavaScriptBody(args = {"font"}, body = "this._context().font=font.valueOf();")
2.235 - public native void setFont(String font);
2.236 -
2.237 - @JavaScriptBody(args = {}, body = "return this._context().textAlign;")
2.238 - public native String getTextAlign();
2.239 -
2.240 - @JavaScriptBody(args = {"textalign"}, body = "this._context().textAlign=textalign.valueOf();")
2.241 - public native void setTextAlign(String textAlign);
2.242 -
2.243 - @JavaScriptBody(args = {}, body = "return this._context().textBaseline;")
2.244 - public native String getTextBaseline();
2.245 -
2.246 - @JavaScriptBody(args = {"textbaseline"}, body = "this._context().textBaseline=textbaseline.valueOf();")
2.247 - public native void setTextBaseline(String textbaseline);
2.248 -
2.249 - @JavaScriptBody(args = {"text", "x", "y"}, body = "this._context().fillText(text,x,y);")
2.250 - public native void fillText(String text, double x, double y);
2.251 -
2.252 - @JavaScriptBody(args = {"text", "x", "y", "maxwidth"}, body = "this._context().fillText(text,x,y,maxwidth);")
2.253 - public void fillText(String text, double x, double y, double maxWidth) {
2.254 - }
2.255 -
2.256 - public TextMetrics measureText(String text) {
2.257 - return new TextMetrics(measureTextImpl(text));
2.258 - }
2.259 -
2.260 - @JavaScriptBody(args = {"text"},
2.261 - body = "return this._context().measureText(text);")
2.262 - private native Object measureTextImpl(String text);
2.263 -
2.264 - @JavaScriptBody(args = {"text", "x", "y"}, body = "this._context().strokeText(text,x,y);")
2.265 - public native void strokeText(String text, double x, double y);
2.266 -
2.267 - @JavaScriptBody(args = {"text", "x", "y", "maxWidth"}, body = "this._context().strokeText(text,x,y,maxWidth);")
2.268 - public native void strokeText(String text, double x, double y, double maxWidth) ;
2.269 -
2.270 - public ImageData createImageData(double x, double y) {
2.271 - return new ImageData(createImageDataImpl(x, y));
2.272 - }
2.273 -
2.274 - @JavaScriptBody(args = {"x", "y"},
2.275 - body = "return this._context().createImageData(x,y);")
2.276 - private native Object createImageDataImpl(double x, double y);
2.277 -
2.278 - public ImageData createImageData(ImageData imageData) {
2.279 - return new ImageData(createImageDataImpl(imageData.getWidth(), imageData.getHeight()));
2.280 - }
2.281 -
2.282 - public ImageData getImageData(double x, double y, double width, double height) {
2.283 - return new ImageData(getImageDataImpl(x, y, width, height));
2.284 - }
2.285 -
2.286 - @JavaScriptBody(args = {"x", "y", "width", "height"},
2.287 - body = "return this._context().getImageData(x,y,width,height);")
2.288 - private native Object getImageDataImpl(double x, double y, double width, double height);
2.289 -
2.290 - public void putImageData(ImageData imageData, double x, double y) {
2.291 - putImageDataImpl(imageData.object(), x, y);
2.292 - }
2.293 -
2.294 - @JavaScriptBody(args = {"imageData", "x", "y"},
2.295 - body = "this._context().putImageData(imageData,x,y);")
2.296 - private native void putImageDataImpl(Object imageData, double x, double y);
2.297 -
2.298 - public void putImageData(ImageData imageData, double x, double y, double dirtyx, double dirtyy, double dirtywidth, double dirtyheight) {
2.299 - putImageDataImpl(imageData.object(), x, y, dirtyx, dirtyy, dirtywidth, dirtyheight);
2.300 - }
2.301 -
2.302 - @JavaScriptBody(args = {"imageData", "x", "y", "dirtyx", "dirtyy", "dirtywidth", "dirtyheight"},
2.303 - body = "this._context().putImageData(imageData,x,y, dirtyx, dirtyy, dirtywidth,dirtyheight);")
2.304 - private native void putImageDataImpl(Object imageData, double x, double y, double dirtyx, double dirtyy, double dirtywidth, double dirtyheight);
2.305 -
2.306 - @JavaScriptBody(args = {"alpha"}, body = "this._context().globalAlpha=alpha;")
2.307 - public native void setGlobalAlpha(double alpha) ;
2.308 -
2.309 - @JavaScriptBody(args = {}, body = "return this._context().globalAlpha;")
2.310 - public native double getGlobalAlpha();
2.311 -
2.312 - @JavaScriptBody(args = {"operation"}, body = "this._context().globalCompositeOperation=operation.valueOf();")
2.313 - public native void setGlobalCompositeOperation(String operation);
2.314 -
2.315 - @JavaScriptBody(args = {}, body = "return this._context().globalCompositeOperation;")
2.316 - public native String getGlobalCompositeOperation();
2.317 -
2.318 - public LinearGradient createLinearGradient(double x0, double y0, double x1, double y1) {
2.319 - return new LinearGradient(createLinearGradientImpl(context, x0, y0, x1, y1));
2.320 - }
2.321 -
2.322 - @JavaScriptBody(args = {"context", "x0", "y0", "x1", "y1"}, body = "return context.createLinearGradient(x0,y0,x1,y1);")
2.323 - private native Object createLinearGradientImpl(Object context, double x0, double y0, double x1, double y1);
2.324 -
2.325 - public Pattern createPattern(Image image, String repeat) {
2.326 - return new Pattern(createPatternImpl(context, image, repeat));
2.327 - }
2.328 -
2.329 - @JavaScriptBody(args = {"context", "image", "repeat"}, body = "return context.createPattern(image, repeat);")
2.330 - private static native Object createPatternImpl(Object context, Image image, String repeat);
2.331 -
2.332 - public RadialGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1) {
2.333 - return new RadialGradient(createRadialGradientImpl(context, x0, y0, r0, x1, y1, r1));
2.334 - }
2.335 -
2.336 - @JavaScriptBody(args = {"context", "x0", "y0", "r0", "x1", "y1", "r1"}, body = "return context.createRadialGradient(x0,y0,r0,x1,y1,r1);")
2.337 - private static native Object createRadialGradientImpl(Object context, double x0, double y0, double r0, double x1, double y1, double r1);
2.338 -}
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/HTML5GraphicsContext.java Fri May 17 11:00:38 2013 +0200
3.3 @@ -0,0 +1,393 @@
3.4 +/**
3.5 + * Back 2 Browser Bytecode Translator
3.6 + * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
3.7 + *
3.8 + * This program is free software: you can redistribute it and/or modify
3.9 + * it under the terms of the GNU General Public License as published by
3.10 + * the Free Software Foundation, version 2 of the License.
3.11 + *
3.12 + * This program is distributed in the hope that it will be useful,
3.13 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
3.14 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3.15 + * GNU General Public License for more details.
3.16 + *
3.17 + * You should have received a copy of the GNU General Public License
3.18 + * along with this program. Look for COPYING file in the top folder.
3.19 + * If not, see http://opensource.org/licenses/GPL-2.0.
3.20 + */
3.21 +package org.apidesign.bck2brwsr.htmlpage.api;
3.22 +
3.23 +import net.java.html.canvas.GraphicsContext;
3.24 +import org.apidesign.bck2brwsr.core.JavaScriptBody;
3.25 +
3.26 +/**
3.27 + *
3.28 + * @author Anton Epple <toni.epple@eppleton.de>
3.29 + */
3.30 +public class HTML5GraphicsContext implements GraphicsContext {
3.31 +
3.32 + Object context;
3.33 +
3.34 + HTML5GraphicsContext(Object contextImpl) {
3.35 + this.context = contextImpl;
3.36 + }
3.37 +
3.38 + @JavaScriptBody(args = {"centerx", "centery", "radius", "startangle", "endangle", "ccw"},
3.39 + body = "this._context().arc(centerx,centery, radius, startangle, endangle,ccw);")
3.40 + @Override
3.41 + public native void arc(double centerX,
3.42 + double centerY,
3.43 + double startAngle,
3.44 + double radius,
3.45 + double endAngle,
3.46 + boolean ccw);
3.47 +
3.48 + @JavaScriptBody(args = {"x1", "y1", "x2", "y2", "r"},
3.49 + body = "this._context().arcTo(x1,y1,x2,y2,r);")
3.50 + @Override
3.51 + public native void arcTo(double x1,
3.52 + double y1,
3.53 + double x2,
3.54 + double y2,
3.55 + double r);
3.56 +
3.57 + @JavaScriptBody(args = {"x", "y"},
3.58 + body = "return this._context().isPointInPath(x,y);")
3.59 + @Override
3.60 + public native boolean isPointInPath(double x, double y);
3.61 +
3.62 + @JavaScriptBody(args = {}, body = "this._context().fill();")
3.63 + @Override
3.64 + public native void fill();
3.65 +
3.66 + @JavaScriptBody(args = {}, body = "this._context().stroke();")
3.67 + @Override
3.68 + public native void stroke();
3.69 +
3.70 + @JavaScriptBody(args = {}, body = "this._context().beginPath();")
3.71 + @Override
3.72 + public native void beginPath();
3.73 +
3.74 + @JavaScriptBody(args = {}, body = "this._context().closePath();")
3.75 + @Override
3.76 + public native void closePath();
3.77 +
3.78 + @JavaScriptBody(args = {}, body = "this._context().clip();")
3.79 + @Override
3.80 + public native void clip();
3.81 +
3.82 + @JavaScriptBody(args = {"x", "y"}, body = "this._context().moveTo(x,y);")
3.83 + @Override
3.84 + public native void moveTo(double x, double y);
3.85 +
3.86 + @JavaScriptBody(args = {"x", "y"}, body = "this._context().lineTo(x,y);")
3.87 + @Override
3.88 + public native void lineTo(double x, double y);
3.89 +
3.90 + @JavaScriptBody(args = {"cpx", "cpy", "x", "y"}, body = "this._context().quadraticCurveTo(cpx,cpy,x,y);")
3.91 + @Override
3.92 + public native void quadraticCurveTo(double cpx, double cpy, double x, double y);
3.93 +
3.94 + @JavaScriptBody(args = {"cp1x", "cp1y", "cp2x", "cp2y", "x", "y"},
3.95 + body = "this._context().bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y);")
3.96 + @Override
3.97 + public native void bezierCurveTo(double cp1x, double cp1y, double cp2x, double cp2y, double x, double y);
3.98 +
3.99 + @JavaScriptBody(args = {"x", "y", "width", "height"}, body = "this._context().fillRect(x,y,width,height);")
3.100 + @Override
3.101 + public native void fillRect(double x, double y, double width, double height);
3.102 +
3.103 + @JavaScriptBody(args = {"x", "y", "width", "height"}, body = "this._context().strokeRect(x,y,width,height);")
3.104 + @Override
3.105 + public native void strokeRect(double x, double y, double width, double height);
3.106 +
3.107 + @JavaScriptBody(args = {"x", "y", "width", "height"}, body = "this._context().clearRect(x,y,width,height);")
3.108 + @Override
3.109 + public native void clearRect(double x, double y, double width, double height);
3.110 +
3.111 + @JavaScriptBody(args = {"x", "y", "width", "height"}, body = "this._context().rectect(x,y,width,height);")
3.112 + @Override
3.113 + public native void rect(double x, double y, double width, double height);
3.114 +
3.115 + @JavaScriptBody(args = {}, body = "this._context().save();")
3.116 + @Override
3.117 + public native void save();
3.118 +
3.119 + @JavaScriptBody(args = {}, body = "this._context().restore();")
3.120 + @Override
3.121 + public native void restore();
3.122 +
3.123 + @JavaScriptBody(args = {"angle"}, body = "this._context().rotate(angle);")
3.124 + @Override
3.125 + public native void rotate(double angle);
3.126 +
3.127 + @JavaScriptBody(args = {"a", "b", "c", "d", "e", "f"}, body = "this._context().transform(a,b,c,d,e,f);")
3.128 + @Override
3.129 + public native void transform(double a, double b, double c, double d, double e, double f);
3.130 +
3.131 + @JavaScriptBody(args = {"a", "b", "c", "d", "e", "f"}, body = "this._context().setTransform(a,b,c,d,e,f);")
3.132 + @Override
3.133 + public native void setTransform(double a, double b, double c, double d, double e, double f);
3.134 +
3.135 + @JavaScriptBody(args = {"x", "y"}, body = "this._context().translate(x,y);")
3.136 + @Override
3.137 + public native void translate(double x, double y);
3.138 +
3.139 + @JavaScriptBody(args = {"x", "y"}, body = "this._context().scale(x,y);")
3.140 + @Override
3.141 + public native void scale(double x, double y);
3.142 +
3.143 + public void drawImage(Image image, double x, double y) {
3.144 + drawImageImpl(context, Element.getElementById(image), x, y);
3.145 + }
3.146 +
3.147 + public void drawImage(Image image, double x, double y, double width, double height) {
3.148 + drawImageImpl(context, Element.getElementById(image), x, y, width, height);
3.149 + }
3.150 +
3.151 + public void drawImage(Image image, double sx, double sy, double sWidth, double sHeight, double x, double y, double width, double height) {
3.152 + drawImageImpl(context, Element.getElementById(image), sx, sy, sWidth, sHeight, x, y, width, height);
3.153 + }
3.154 +
3.155 + @JavaScriptBody(args = {"ctx", "img", "x", "y", "width", "height"}, body = "ctx.drawImage(img,x,y,width,height);")
3.156 + private native static void drawImageImpl(Object ctx, Object img, double x, double y, double width, double height);
3.157 +
3.158 + @JavaScriptBody(args = {"ctx", "img", "sx", "sy", "swidth", "sheight", "x", "y", "width", "height"}, body = "ctx.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);")
3.159 + private native static void drawImageImpl(Object ctx, Object img, double sx, double sy, double sWidth, double sHeight, double x, double y, double width, double height);
3.160 +
3.161 + @JavaScriptBody(args = {"ctx", "img", "x", "y"}, body = "ctx.drawImage(img,x,y);")
3.162 + private native static void drawImageImpl(Object ctx, Object img, double x, double y);
3.163 +
3.164 + @JavaScriptBody(args = {"style"}, body = "this._context().fillStyle=style.valueOf();")
3.165 + @Override
3.166 + public native void setFillStyle(String style);
3.167 +
3.168 + @JavaScriptBody(args = {}, body = "return this._context().fillStyle;")
3.169 + @Override
3.170 + public native String getFillStyle();
3.171 +
3.172 + public void setFillStyle(LinearGradient style) {
3.173 + setFillStyleImpl(context, style.object());
3.174 + }
3.175 +
3.176 + public void setFillStyle(RadialGradient style) {
3.177 + setFillStyleImpl(context, style.object());
3.178 + }
3.179 +
3.180 + public void setFillStyle(Pattern style) {
3.181 + setFillStyleImpl(context, style.object());
3.182 + }
3.183 +
3.184 + @JavaScriptBody(args = {"context","obj"}, body = "context.fillStyle=obj;")
3.185 + private native void setFillStyleImpl(Object context, Object obj);
3.186 +
3.187 + @JavaScriptBody(args = {"style"}, body = "this._context().strokeStyle=style.valueOf();")
3.188 + @Override
3.189 + public native void setStrokeStyle(String style);
3.190 +
3.191 + public void setStrokeStyle(LinearGradient style) {
3.192 + setStrokeStyleImpl(context, style.object());
3.193 + }
3.194 +
3.195 + public void setStrokeStyle(RadialGradient style) {
3.196 + setStrokeStyleImpl(context, style.object());
3.197 + }
3.198 +
3.199 + @JavaScriptBody(args = {"style"}, body = "this._context().fillStyle=style;")
3.200 + public void setStrokeStyle(Pattern style) {
3.201 + setStrokeStyleImpl(context, style.object());
3.202 + }
3.203 +
3.204 + @JavaScriptBody(args = {"context","obj"}, body = "context.strokeStyle=obj;")
3.205 + private native void setStrokeStyleImpl(Object context, Object obj);
3.206 +
3.207 + @JavaScriptBody(args = {"color"}, body = "this._context().shadowColor=color.valueOf();")
3.208 + @Override
3.209 + public native void setShadowColor(String color);
3.210 +
3.211 + @JavaScriptBody(args = {"blur"}, body = "this._context().shadowBlur=blur;")
3.212 + @Override
3.213 + public native void setShadowBlur(double blur);
3.214 +
3.215 + @JavaScriptBody(args = {"x"}, body = "this._context().shadowOffsetX=x;")
3.216 + @Override
3.217 + public native void setShadowOffsetX(double x);
3.218 +
3.219 + @JavaScriptBody(args = {"y"}, body = "this._context().shadowOffsetY=y;")
3.220 + @Override
3.221 + public native void setShadowOffsetY(double y);
3.222 +
3.223 + @JavaScriptBody(args = {}, body = "return this._context().strokeStyle;")
3.224 + @Override
3.225 + public native String getStrokeStyle();
3.226 +
3.227 + @JavaScriptBody(args = {}, body = "return this._context().shadowColor;")
3.228 + @Override
3.229 + public native String getShadowColor();
3.230 +
3.231 + @JavaScriptBody(args = {}, body = "return this._context().shadowBlur;")
3.232 + @Override
3.233 + public native double getShadowBlur();
3.234 +
3.235 + @JavaScriptBody(args = {}, body = "return this._context().shadowOffsetX;")
3.236 + @Override
3.237 + public native double getShadowOffsetX();
3.238 +
3.239 + @JavaScriptBody(args = {}, body = "return this._context().shadowOffsetY;")
3.240 + @Override
3.241 + public native double getShadowOffsetY();
3.242 +
3.243 + @JavaScriptBody(args = {}, body = "return this._context().lineCap;")
3.244 + @Override
3.245 + public native String getLineCap();
3.246 +
3.247 + @JavaScriptBody(args = {"style"}, body = "this._context().lineCap=style.valueOf();")
3.248 + @Override
3.249 + public native void setLineCap(String style);
3.250 +
3.251 + @JavaScriptBody(args = {}, body = "return this._context().lineJoin;")
3.252 + @Override
3.253 + public native String getLineJoin();
3.254 +
3.255 + @JavaScriptBody(args = {"style"}, body = "this._context().lineJoin=style.valueOf();")
3.256 + @Override
3.257 + public native void setLineJoin(String style);
3.258 +
3.259 + @JavaScriptBody(args = {}, body = "return this._context().lineWidth;")
3.260 + @Override
3.261 + public native double getLineWidth();
3.262 +
3.263 + @JavaScriptBody(args = {"width"}, body = "this._context().lineWidth=width;")
3.264 + @Override
3.265 + public native void setLineWidth(double width);
3.266 +
3.267 + @JavaScriptBody(args = {}, body = "return this._context().miterLimit;")
3.268 + @Override
3.269 + public native double getMiterLimit();
3.270 +
3.271 + @JavaScriptBody(args = {"limit"}, body = "this._context().miterLimit=limit;")
3.272 + @Override
3.273 + public native void setMiterLimit(double limit);
3.274 +
3.275 + @JavaScriptBody(args = {}, body = "return this._context().font;")
3.276 + @Override
3.277 + public native String getFont();
3.278 +
3.279 + @JavaScriptBody(args = {"font"}, body = "this._context().font=font.valueOf();")
3.280 + @Override
3.281 + public native void setFont(String font);
3.282 +
3.283 + @JavaScriptBody(args = {}, body = "return this._context().textAlign;")
3.284 + @Override
3.285 + public native String getTextAlign();
3.286 +
3.287 + @JavaScriptBody(args = {"textalign"}, body = "this._context().textAlign=textalign.valueOf();")
3.288 + @Override
3.289 + public native void setTextAlign(String textAlign);
3.290 +
3.291 + @JavaScriptBody(args = {}, body = "return this._context().textBaseline;")
3.292 + @Override
3.293 + public native String getTextBaseline();
3.294 +
3.295 + @JavaScriptBody(args = {"textbaseline"}, body = "this._context().textBaseline=textbaseline.valueOf();")
3.296 + @Override
3.297 + public native void setTextBaseline(String textbaseline);
3.298 +
3.299 + @JavaScriptBody(args = {"text", "x", "y"}, body = "this._context().fillText(text,x,y);")
3.300 + @Override
3.301 + public native void fillText(String text, double x, double y);
3.302 +
3.303 + @JavaScriptBody(args = {"text", "x", "y", "maxwidth"}, body = "this._context().fillText(text,x,y,maxwidth);")
3.304 + @Override
3.305 + public void fillText(String text, double x, double y, double maxWidth) {
3.306 + }
3.307 +
3.308 + public TextMetrics measureText(String text) {
3.309 + return new TextMetrics(measureTextImpl(text));
3.310 + }
3.311 +
3.312 + @JavaScriptBody(args = {"text"},
3.313 + body = "return this._context().measureText(text);")
3.314 + private native Object measureTextImpl(String text);
3.315 +
3.316 + @JavaScriptBody(args = {"text", "x", "y"}, body = "this._context().strokeText(text,x,y);")
3.317 + @Override
3.318 + public native void strokeText(String text, double x, double y);
3.319 +
3.320 + @JavaScriptBody(args = {"text", "x", "y", "maxWidth"}, body = "this._context().strokeText(text,x,y,maxWidth);")
3.321 + @Override
3.322 + public native void strokeText(String text, double x, double y, double maxWidth);
3.323 +
3.324 + public ImageData createImageData(double x, double y) {
3.325 + return new ImageData(createImageDataImpl(x, y));
3.326 + }
3.327 +
3.328 + @JavaScriptBody(args = {"x", "y"},
3.329 + body = "return this._context().createImageData(x,y);")
3.330 + private native Object createImageDataImpl(double x, double y);
3.331 +
3.332 + public ImageData createImageData(ImageData imageData) {
3.333 + return new ImageData(createImageDataImpl(imageData.getWidth(), imageData.getHeight()));
3.334 + }
3.335 +
3.336 + public ImageData getImageData(double x, double y, double width, double height) {
3.337 + return new ImageData(getImageDataImpl(x, y, width, height));
3.338 + }
3.339 +
3.340 + @JavaScriptBody(args = {"x", "y", "width", "height"},
3.341 + body = "return this._context().getImageData(x,y,width,height);")
3.342 + private native Object getImageDataImpl(double x, double y, double width, double height);
3.343 +
3.344 + public void putImageData(ImageData imageData, double x, double y) {
3.345 + putImageDataImpl(imageData.object(), x, y);
3.346 + }
3.347 +
3.348 + @JavaScriptBody(args = {"imageData", "x", "y"},
3.349 + body = "this._context().putImageData(imageData,x,y);")
3.350 + private native void putImageDataImpl(Object imageData, double x, double y);
3.351 +
3.352 + public void putImageData(ImageData imageData, double x, double y, double dirtyx, double dirtyy, double dirtywidth, double dirtyheight) {
3.353 + putImageDataImpl(imageData.object(), x, y, dirtyx, dirtyy, dirtywidth, dirtyheight);
3.354 + }
3.355 +
3.356 + @JavaScriptBody(args = {"imageData", "x", "y", "dirtyx", "dirtyy", "dirtywidth", "dirtyheight"},
3.357 + body = "this._context().putImageData(imageData,x,y, dirtyx, dirtyy, dirtywidth,dirtyheight);")
3.358 + private native void putImageDataImpl(Object imageData, double x, double y, double dirtyx, double dirtyy, double dirtywidth, double dirtyheight);
3.359 +
3.360 + @JavaScriptBody(args = {"alpha"}, body = "this._context().globalAlpha=alpha;")
3.361 + @Override
3.362 + public native void setGlobalAlpha(double alpha);
3.363 +
3.364 + @JavaScriptBody(args = {}, body = "return this._context().globalAlpha;")
3.365 + @Override
3.366 + public native double getGlobalAlpha();
3.367 +
3.368 + @JavaScriptBody(args = {"operation"}, body = "this._context().globalCompositeOperation=operation.valueOf();")
3.369 + @Override
3.370 + public native void setGlobalCompositeOperation(String operation);
3.371 +
3.372 + @JavaScriptBody(args = {}, body = "return this._context().globalCompositeOperation;")
3.373 + @Override
3.374 + public native String getGlobalCompositeOperation();
3.375 +
3.376 + public LinearGradient createLinearGradient(double x0, double y0, double x1, double y1) {
3.377 + return new LinearGradient(createLinearGradientImpl(context, x0, y0, x1, y1));
3.378 + }
3.379 +
3.380 + @JavaScriptBody(args = {"context", "x0", "y0", "x1", "y1"}, body = "return context.createLinearGradient(x0,y0,x1,y1);")
3.381 + private native Object createLinearGradientImpl(Object context, double x0, double y0, double x1, double y1);
3.382 +
3.383 + public Pattern createPattern(Image image, String repeat) {
3.384 + return new Pattern(createPatternImpl(context, image, repeat));
3.385 + }
3.386 +
3.387 + @JavaScriptBody(args = {"context", "image", "repeat"}, body = "return context.createPattern(image, repeat);")
3.388 + private static native Object createPatternImpl(Object context, Image image, String repeat);
3.389 +
3.390 + public RadialGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1) {
3.391 + return new RadialGradient(createRadialGradientImpl(context, x0, y0, r0, x1, y1, r1));
3.392 + }
3.393 +
3.394 + @JavaScriptBody(args = {"context", "x0", "y0", "r0", "x1", "y1", "r1"}, body = "return context.createRadialGradient(x0,y0,r0,x1,y1,r1);")
3.395 + private static native Object createRadialGradientImpl(Object context, double x0, double y0, double r0, double x1, double y1, double r1);
3.396 +}