with GNATCOM.Dispinterface;

package MSHTML.DispCanvasRenderingContext2D_Object is

   type DispCanvasRenderingContext2D_Type is
     new GNATCOM.Dispinterface.Dispinterface_Type with null record;

   function Get_canvas
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure restore
     (This : DispCanvasRenderingContext2D_Type);

   procedure save
     (This : DispCanvasRenderingContext2D_Type);

   procedure rotate
     (This  : DispCanvasRenderingContext2D_Type;
      angle : GNATCOM.Types.VARIANT;
      Free  : Boolean := True);

   procedure scale
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   procedure setTransform
     (This : DispCanvasRenderingContext2D_Type;
      m11  : GNATCOM.Types.VARIANT;
      m12  : GNATCOM.Types.VARIANT;
      m21  : GNATCOM.Types.VARIANT;
      m22  : GNATCOM.Types.VARIANT;
      dx   : GNATCOM.Types.VARIANT;
      dy   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   procedure transform
     (This : DispCanvasRenderingContext2D_Type;
      m11  : GNATCOM.Types.VARIANT;
      m12  : GNATCOM.Types.VARIANT;
      m21  : GNATCOM.Types.VARIANT;
      m22  : GNATCOM.Types.VARIANT;
      dx   : GNATCOM.Types.VARIANT;
      dy   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   procedure translate
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   procedure Put_globalAlpha
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_globalAlpha
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_globalCompositeOperation
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_globalCompositeOperation
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_fillStyle
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_fillStyle
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_strokeStyle
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_strokeStyle
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   function createLinearGradient
     (This : DispCanvasRenderingContext2D_Type;
      x0   : GNATCOM.Types.VARIANT;
      y0   : GNATCOM.Types.VARIANT;
      x1   : GNATCOM.Types.VARIANT;
      y1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function createRadialGradient
     (This : DispCanvasRenderingContext2D_Type;
      x0   : GNATCOM.Types.VARIANT;
      y0   : GNATCOM.Types.VARIANT;
      r0   : GNATCOM.Types.VARIANT;
      x1   : GNATCOM.Types.VARIANT;
      y1   : GNATCOM.Types.VARIANT;
      r1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function createPattern
     (This       : DispCanvasRenderingContext2D_Type;
      Image      : GNATCOM.Types.VARIANT;
      repetition : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
     return GNATCOM.Types.VARIANT;

   procedure Put_lineCap
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_lineCap
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_lineJoin
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_lineJoin
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_lineWidth
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_lineWidth
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_miterLimit
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_miterLimit
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_shadowBlur
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_shadowBlur
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_shadowColor
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_shadowColor
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_shadowOffsetX
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_shadowOffsetX
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_shadowOffsetY
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_shadowOffsetY
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure clearRect
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      w    : GNATCOM.Types.VARIANT;
      h    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   procedure fillRect
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      w    : GNATCOM.Types.VARIANT;
      h    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   procedure strokeRect
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      w    : GNATCOM.Types.VARIANT;
      h    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   procedure arc
     (This          : DispCanvasRenderingContext2D_Type;
      x             : GNATCOM.Types.VARIANT;
      y             : GNATCOM.Types.VARIANT;
      radius        : GNATCOM.Types.VARIANT;
      startAngle    : GNATCOM.Types.VARIANT;
      endAngle      : GNATCOM.Types.VARIANT;
      anticlockwise : GNATCOM.Types.VARIANT;
      Free          : Boolean := True);

   procedure arcTo
     (This   : DispCanvasRenderingContext2D_Type;
      x1     : GNATCOM.Types.VARIANT;
      y1     : GNATCOM.Types.VARIANT;
      x2     : GNATCOM.Types.VARIANT;
      y2     : GNATCOM.Types.VARIANT;
      radius : GNATCOM.Types.VARIANT;
      Free   : Boolean := True);

   procedure beginPath
     (This : DispCanvasRenderingContext2D_Type);

   procedure bezierCurveTo
     (This : DispCanvasRenderingContext2D_Type;
      cp1x : GNATCOM.Types.VARIANT;
      cp1y : GNATCOM.Types.VARIANT;
      cp2x : GNATCOM.Types.VARIANT;
      cp2y : GNATCOM.Types.VARIANT;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   procedure clip
     (This : DispCanvasRenderingContext2D_Type);

   procedure closePath
     (This : DispCanvasRenderingContext2D_Type);

   procedure fill
     (This : DispCanvasRenderingContext2D_Type);

   procedure lineTo
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   procedure moveTo
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   procedure quadraticCurveTo
     (This : DispCanvasRenderingContext2D_Type;
      cpx  : GNATCOM.Types.VARIANT;
      cpy  : GNATCOM.Types.VARIANT;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   procedure rect
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      w    : GNATCOM.Types.VARIANT;
      h    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   procedure stroke
     (This : DispCanvasRenderingContext2D_Type);

   function isPointInPath
     (This : DispCanvasRenderingContext2D_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT;

   procedure Put_font
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_font
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_textAlign
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_textAlign
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_textBaseline
     (This : DispCanvasRenderingContext2D_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_textBaseline
     (This : DispCanvasRenderingContext2D_Type)
     return GNATCOM.Types.VARIANT;

   procedure fillText
     (This     : DispCanvasRenderingContext2D_Type;
      text     : GNATCOM.Types.VARIANT;
      x        : GNATCOM.Types.VARIANT;
      y        : GNATCOM.Types.VARIANT;
      maxWidth : GNATCOM.Types.VARIANT;
      Free     : Boolean := True);

   function measureText
     (This : DispCanvasRenderingContext2D_Type;
      text : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT;

   procedure strokeText
     (This     : DispCanvasRenderingContext2D_Type;
      text     : GNATCOM.Types.VARIANT;
      x        : GNATCOM.Types.VARIANT;
      y        : GNATCOM.Types.VARIANT;
      maxWidth : GNATCOM.Types.VARIANT;
      Free     : Boolean := True);

   procedure drawImage
     (This : DispCanvasRenderingContext2D_Type;
      pSrc : GNATCOM.Types.VARIANT;
      a1   : GNATCOM.Types.VARIANT;
      a2   : GNATCOM.Types.VARIANT;
      a3   : GNATCOM.Types.VARIANT;
      a4   : GNATCOM.Types.VARIANT;
      a5   : GNATCOM.Types.VARIANT;
      a6   : GNATCOM.Types.VARIANT;
      a7   : GNATCOM.Types.VARIANT;
      a8   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function createImageData
     (This : DispCanvasRenderingContext2D_Type;
      a1   : GNATCOM.Types.VARIANT;
      a2   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function getImageData
     (This : DispCanvasRenderingContext2D_Type;
      sx   : GNATCOM.Types.VARIANT;
      sy   : GNATCOM.Types.VARIANT;
      sw   : GNATCOM.Types.VARIANT;
      sh   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT;

   procedure putImageData
     (This        : DispCanvasRenderingContext2D_Type;
      imagedata   : GNATCOM.Types.VARIANT;
      dx          : GNATCOM.Types.VARIANT;
      dy          : GNATCOM.Types.VARIANT;
      dirtyX      : GNATCOM.Types.VARIANT;
      dirtyY      : GNATCOM.Types.VARIANT;
      dirtyWidth  : GNATCOM.Types.VARIANT;
      dirtyHeight : GNATCOM.Types.VARIANT;
      Free        : Boolean := True);

end MSHTML.DispCanvasRenderingContext2D_Object;

