--- /dev/null
+package swingjs.api.js;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Point2D.Float;
+
+public abstract class HTML5CanvasContext2D {
+
+ public class ImageData {
+ public int[] data;
+ }
+
+ public ImageData imageData;
+
+ public Object[][] _aSaved;
+
+ public double lineWidth;
+
+ public String font, fillStyle, strokeStyle;
+
+ public float globalAlpha;
+
+ public abstract void drawImage(DOMNode img, double sx,
+ double sy, double swidth, double sheight, double dx, double dy, double width, double height);
+
+ public abstract ImageData getImageData(int x, int y, int width, int height);
+
+ public abstract void beginPath();
+
+ public abstract void moveTo(double x0, double y0);
+
+ public abstract void lineTo(double x1, double y1);
+
+ public abstract void stroke();
+
+ public abstract void save();
+
+ public abstract void scale(double f, double g);
+
+ public abstract void arc(double centerX, double centerY, double radius, double startAngle, double endAngle, boolean counterclockwise);
+
+ public abstract void closePath();
+
+ public abstract void restore();
+
+ public abstract void translate(double x, double y);
+
+ public abstract void rotate(double radians);
+
+ public abstract void fill();
+
+
+ public abstract void fill(String winding);
+
+ public abstract void rect(double x, double y, double width, double height);
+
+ public abstract void fillText(String s, double x, double y);
+
+ public abstract void fillRect(double x, double y, double width, double height);
+
+ public abstract void clearRect(double i, double j, double windowWidth, double windowHeight);
+
+ public abstract void setLineDash(int[] dash);
+
+ public abstract void clip();
+
+ public abstract void quadraticCurveTo(double d, double e, double f, double g);
+
+ public abstract void bezierCurveTo(double d, double e, double f, double g, double h, double i);
+
+ public abstract void drawImage(DOMNode img, double x, double y, double width, double height);
+
+ public abstract void putImageData(Object imageData, double x, double y);
+
+ public abstract void transform(double d, double shx, double e, double shy, double f, double g);
+
+
+ /**
+ * pull one save structure onto the stack array ctx._aSaved
+ *
+ * @param ctx
+ * @return the length of the stack array after the push
+ */
+ public static int push(HTML5CanvasContext2D ctx, Object[] map) {
+ /**
+ * @j2sNative
+ *
+ * (ctx._aSaved || (ctx._aSaved = [])).push(map);
+ * return ctx._aSaved.length;
+ */
+ {
+ return 0;
+ }
+ }
+
+ /**
+ * pull one save structure off the stack array ctx._aSaved
+ *
+ * @param ctx
+ * @return
+ */
+ public static Object[] pop(HTML5CanvasContext2D ctx) {
+ /**
+ * @j2sNative
+ *
+ * return (ctx._aSaved && ctx._aSaved.length > 0 ? ctx._aSaved.pop() : null);
+ */
+ {
+ return null;
+ }
+ }
+
+ public static int getSavedLevel(HTML5CanvasContext2D ctx) {
+ /**
+ * @j2sNative
+ *
+ * return (ctx._aSaved ? ctx._aSaved.length : 0);
+ */
+ {
+ return 0;
+ }
+ }
+
+ public static Object[][] getSavedStack(HTML5CanvasContext2D ctx) {
+ /**
+ * @j2sNative
+ *
+ * return (ctx._aSaved || []);
+ */
+ {
+ return null;
+ }
+
+ }
+
+ public static double[] setMatrix(HTML5CanvasContext2D ctx, AffineTransform transform) {
+ double[] m = /** @j2sNative ctx._m || */ null;
+ if (transform == null) {
+ /** @j2sNative ctx._m = null; */
+ return null;
+ }
+ if (m == null) {
+ /**
+ * @j2sNative
+ * ctx._m = m = new Array(6);
+ */
+ transform.getMatrix(m);
+ }
+ return m;
+ }
+
+ public static void createLinearGradient(HTML5CanvasContext2D ctx, Float p1, Float p2, String css1, String css2) {
+ /**
+ * @j2sNative
+ *
+ * var grd = ctx.createLinearGradient(p1.x, p1.y, p2.x, p2.y);
+ * grd.addColorStop(0,css1);
+ * grd.addColorStop(1,css2);
+ * ctx.fillStyle = grd;
+ */
+ }
+
+ abstract public void drawImage(DOMNode domNode, int x, int y);
+
+}