Home | History | Annotate | Download | only in canvas
      1 /*
      2  * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved.
      3  *
      4  * Redistribution and use in source and binary forms, with or without
      5  * modification, are permitted provided that the following conditions
      6  * are met:
      7  * 1. Redistributions of source code must retain the above copyright
      8  *    notice, this list of conditions and the following disclaimer.
      9  * 2. Redistributions in binary form must reproduce the above copyright
     10  *    notice, this list of conditions and the following disclaimer in the
     11  *    documentation and/or other materials provided with the distribution.
     12  *
     13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
     14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
     17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
     21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     24  */
     25 
     26 module html {
     27 
     28     interface [
     29         InterfaceUUID=98fb48ae-7216-489c-862b-8e1217fc4443,
     30         ImplementationUUID=ab4f0781-152f-450e-9546-5b3987491a54
     31     ] CanvasRenderingContext2D : CanvasRenderingContext {
     32 
     33         // Web Applications 1.0 draft
     34 
     35         void save();
     36         void restore();
     37 
     38         void scale(in float sx, in float sy);
     39         void rotate(in float angle);
     40         void translate(in float tx, in float ty);
     41         void transform(in float m11, in float m12, in float m21, in float m22, in float dx, in float dy);
     42         void setTransform(in float m11, in float m12, in float m21, in float m22, in float dx, in float dy);
     43 
     44         attribute float globalAlpha;
     45         attribute [ConvertNullToNullString] DOMString globalCompositeOperation;
     46 
     47         CanvasGradient createLinearGradient(in float x0, in float y0, in float x1, in float y1)
     48             raises (DOMException);
     49         CanvasGradient createRadialGradient(in float x0, in float y0, in float r0, in float x1, in float y1, in float r1)
     50             raises (DOMException);
     51 
     52         attribute float lineWidth;
     53         attribute [ConvertNullToNullString] DOMString lineCap;
     54         attribute [ConvertNullToNullString] DOMString lineJoin;
     55         attribute float miterLimit;
     56 
     57         attribute float shadowOffsetX;
     58         attribute float shadowOffsetY;
     59         attribute float shadowBlur;
     60         attribute [ConvertNullToNullString] DOMString shadowColor;
     61 
     62         void clearRect(in float x, in float y, in float width, in float height);
     63         void fillRect(in float x, in float y, in float width, in float height);
     64 
     65         void beginPath();
     66         void closePath();
     67         void moveTo(in float x, in float y);
     68         void lineTo(in float x, in float y);
     69         void quadraticCurveTo(in float cpx, in float cpy, in float x, in float y);
     70         void bezierCurveTo(in float cp1x, in float cp1y, in float cp2x, in float cp2y, in float x, in float y);
     71         void arcTo(in float x1, in float y1, in float x2, in float y2, in float radius)
     72             raises (DOMException);
     73         void rect(in float x, in float y, in float width, in float height);
     74         void arc(in float x, in float y, in float radius, in float startAngle, in float endAngle, in boolean anticlockwise)
     75             raises (DOMException);
     76         void fill();
     77         void stroke();
     78         void clip();
     79         boolean isPointInPath(in float x, in float y);
     80 
     81         // text
     82         attribute DOMString font;
     83         attribute DOMString textAlign;
     84         attribute DOMString textBaseline;
     85         [Custom] void fillText(/* 4 */);
     86         [Custom] void strokeText(/* 4 */);
     87         TextMetrics measureText(in DOMString text);
     88 
     89         // other
     90 
     91         void setAlpha(in float alpha);
     92         void setCompositeOperation(in DOMString compositeOperation);
     93 
     94         void setLineWidth(in float width);
     95         void setLineCap(in DOMString cap);
     96         void setLineJoin(in DOMString join);
     97         void setMiterLimit(in float limit);
     98 
     99         void clearShadow();
    100 
    101         [Custom] void setStrokeColor(/* 1  */);
    102         [Custom] void setFillColor(/* 1 */);
    103         [Custom] void strokeRect(/* 4 */);
    104         [Custom] void drawImage(/* 3 */);
    105         [Custom] void drawImageFromRect(/* 10 */);
    106         [Custom] void setShadow(/* 3 */);
    107         [Custom] void createPattern(/* 2 */);
    108 
    109         attribute [Custom] custom strokeStyle;
    110         attribute [Custom] custom fillStyle;
    111 
    112         // pixel manipulation
    113         ImageData createImageData(in float sw, in float sh)
    114             raises (DOMException);
    115         ImageData getImageData(in float sx, in float sy, in float sw, in float sh)
    116             raises(DOMException);
    117         [Custom] void putImageData(/* in ImageData imagedata, in float dx, in float dy [, in float dirtyX, in float dirtyY, in float dirtyWidth, in float dirtyHeight] */);
    118     };
    119 
    120 }
    121 
    122