1 package swingjs.api.js;
3 import java.awt.geom.AffineTransform;
4 import java.awt.geom.Point2D.Float;
6 public abstract class HTML5CanvasContext2D {
8 public class ImageData {
12 public ImageData imageData;
14 public Object[][] _aSaved;
16 public double lineWidth;
18 public String font, fillStyle, strokeStyle;
20 public float globalAlpha;
22 public abstract void drawImage(DOMNode img, double sx,
23 double sy, double swidth, double sheight, double dx, double dy, double width, double height);
25 public abstract ImageData getImageData(int x, int y, int width, int height);
27 public abstract void beginPath();
29 public abstract void moveTo(double x0, double y0);
31 public abstract void lineTo(double x1, double y1);
33 public abstract void stroke();
35 public abstract void save();
37 public abstract void scale(double f, double g);
39 public abstract void arc(double centerX, double centerY, double radius, double startAngle, double endAngle, boolean counterclockwise);
41 public abstract void closePath();
43 public abstract void restore();
45 public abstract void translate(double x, double y);
47 public abstract void rotate(double radians);
49 public abstract void fill();
52 public abstract void fill(String winding);
54 public abstract void rect(double x, double y, double width, double height);
56 public abstract void fillText(String s, double x, double y);
58 public abstract void fillRect(double x, double y, double width, double height);
60 public abstract void clearRect(double i, double j, double windowWidth, double windowHeight);
62 public abstract void setLineDash(int[] dash);
64 public abstract void clip();
66 public abstract void quadraticCurveTo(double d, double e, double f, double g);
68 public abstract void bezierCurveTo(double d, double e, double f, double g, double h, double i);
70 public abstract void drawImage(DOMNode img, double x, double y, double width, double height);
72 public abstract void putImageData(Object imageData, double x, double y);
74 public abstract void transform(double d, double shx, double e, double shy, double f, double g);
78 * pull one save structure onto the stack array ctx._aSaved
81 * @return the length of the stack array after the push
83 public static int push(HTML5CanvasContext2D ctx, Object[] map) {
87 * (ctx._aSaved || (ctx._aSaved = [])).push(map);
88 * return ctx._aSaved.length;
96 * pull one save structure off the stack array ctx._aSaved
101 public static Object[] pop(HTML5CanvasContext2D ctx) {
105 * return (ctx._aSaved && ctx._aSaved.length > 0 ? ctx._aSaved.pop() : null);
112 public static int getSavedLevel(HTML5CanvasContext2D ctx) {
116 * return (ctx._aSaved ? ctx._aSaved.length : 0);
123 public static Object[][] getSavedStack(HTML5CanvasContext2D ctx) {
127 * return (ctx._aSaved || []);
135 public static double[] setMatrix(HTML5CanvasContext2D ctx, AffineTransform transform) {
136 double[] m = /** @j2sNative ctx._m || */ null;
137 if (transform == null) {
138 /** @j2sNative ctx._m = null; */
144 * ctx._m = m = new Array(6);
146 transform.getMatrix(m);
151 public static void createLinearGradient(HTML5CanvasContext2D ctx, Float p1, Float p2, String css1, String css2) {
155 * var grd = ctx.createLinearGradient(p1.x, p1.y, p2.x, p2.y);
156 * grd.addColorStop(0,css1);
157 * grd.addColorStop(1,css2);
158 * ctx.fillStyle = grd;
162 abstract public void drawImage(DOMNode domNode, int x, int y);