-- Autogenerated by MSIL2Ada v. 2
-- By: Martin C. Carlisle
--     Department of Computer Science
--     US Air Force Academy
--     carlislem@acm.org
pragma Extensions_Allowed(On);
with MSSyst.Object;
with MSIL_Types;
use MSIL_Types;
with type MSSyst.IDisposable.Ref is access;
with type MSSyst.Drawing.Color.Valuetype is tagged;
with type MSSyst.Runtime.Remoting.ObjRef.Ref is access;
with type MSSyst.Type_k.Ref is access;
with type MSSyst.Drawing.Pen.Ref is access;
with type MSSyst.Drawing.Rectangle.Valuetype is tagged;
with type MSSyst.Drawing.Icon.Ref is access;
with type MSSyst.Drawing.Image.Ref is access;
with MSSyst.Drawing.GraphicsUnit;
with type MSSyst.Drawing.Imaging.ImageAttributes.Ref is access;
with MSSyst.Drawing.Point;
with type MSSyst.String.Ref is access;
with type MSSyst.Drawing.Font.Ref is access;
with type MSSyst.Drawing.Brush.Ref is access;
with type MSSyst.Drawing.RectangleF.Valuetype is tagged;
with type MSSyst.Object.Ref is access;
with type MSSyst.Drawing.Region.Ref is access;
with type MSSyst.IntPtr.Valuetype is tagged;
with type MSSyst.Drawing.SizeF.Valuetype is tagged;
with MSSyst.MarshalByRefObject;
package MSSyst.Drawing.Graphics is
   type Typ;
   type Ref is access all Typ'Class;
   type Ref_addrof is access all Ref;
   type Ref_Arr is array(Natural range <>) of Ref;
   type Ref_Array is access all Ref_Arr;
   type Ref_Array_addrof is access all Ref_Array;
   type Typ(
         I_IDisposable : MSSyst.IDisposable.Ref
      ) is new MSSyst.MarshalByRefObject.Typ with record
      null;
   end record;
   procedure Clear(
      This : access Typ;
      color : MSSyst.Drawing.Color.Valuetype);
   procedure Dispose(
      This : access Typ);
   procedure DrawEllipse(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      x : Integer;
      y : Integer;
      cx : Integer;
      cy : Integer);
   procedure DrawEllipse(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      rc : MSSyst.Drawing.Rectangle.Valuetype);
   procedure DrawIcon(
      This : access Typ;
      icon : MSSyst.Drawing.Icon.Ref;
      x : Integer;
      y : Integer);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      destRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcX : Integer;
      srcY : Integer;
      srcWidth : Integer;
      srcHeight : Integer;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype;
      imageAttr : MSSyst.Drawing.Imaging.ImageAttributes.Ref);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      x : Integer;
      y : Integer);
   procedure DrawImage(
      This : access Typ;
      image : MSSyst.Drawing.Image.Ref;
      x : Integer;
      y : Integer;
      srcRect : MSSyst.Drawing.Rectangle.Valuetype;
      srcUnit : MSSyst.Drawing.GraphicsUnit.Valuetype);
   procedure DrawLine(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      xStart : Integer;
      yStart : Integer;
      xEnd : Integer;
      yEnd : Integer);
   procedure DrawPolygon(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array);
   procedure DrawRectangle(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      x : Integer;
      y : Integer;
      cx : Integer;
      cy : Integer);
   procedure DrawRectangle(
      This : access Typ;
      pen : MSSyst.Drawing.Pen.Ref;
      rc : MSSyst.Drawing.Rectangle.Valuetype);
   procedure DrawString(
      This : access Typ;
      s : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      brush : MSSyst.Drawing.Brush.Ref;
      x : Float;
      y : Float);
   procedure DrawString(
      This : access Typ;
      s : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref;
      brush : MSSyst.Drawing.Brush.Ref;
      rcf : MSSyst.Drawing.RectangleF.Valuetype);
   procedure FillEllipse(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      x : Integer;
      y : Integer;
      cx : Integer;
      cy : Integer);
   procedure FillEllipse(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      rc : MSSyst.Drawing.Rectangle.Valuetype);
   procedure FillPolygon(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      points : MSSyst.Drawing.Point.Valuetype_array);
   procedure FillRectangle(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      x : Integer;
      y : Integer;
      cx : Integer;
      cy : Integer);
   procedure FillRectangle(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      rc : MSSyst.Drawing.Rectangle.Valuetype);
   procedure FillRegion(
      This : access Typ;
      brush : MSSyst.Drawing.Brush.Ref;
      region : MSSyst.Drawing.Region.Ref);
   function FromHow(
      how : MSSyst.IntPtr.Valuetype;
      fFree : Standard.Boolean) return MSSyst.Drawing.Graphics.Ref;
   function FromImage(
      img : MSSyst.Drawing.Image.Ref) return MSSyst.Drawing.Graphics.Ref;
   function get_Clip(
      This : access Typ) return MSSyst.Drawing.Region.Ref;
   function get_ClipBounds(
      This : access Typ) return MSSyst.Drawing.RectangleF.Valuetype;
   function MeasureString(
      This : access Typ;
      text : MSSyst.String.Ref;
      font : MSSyst.Drawing.Font.Ref) return MSSyst.Drawing.SizeF.Valuetype;
   procedure ResetClip(
      This : access Typ);
   procedure set_Clip(
      This : access Typ;
      value : MSSyst.Drawing.Region.Ref);
private
   pragma Convention(MSIL,Typ);
   pragma Import(MSIL,Clear,"Clear");
   pragma Import(MSIL,Dispose,"Dispose");
   pragma Import(MSIL,DrawEllipse,"DrawEllipse");
   pragma Import(MSIL,DrawIcon,"DrawIcon");
   pragma Import(MSIL,DrawImage,"DrawImage");
   pragma Import(MSIL,DrawLine,"DrawLine");
   pragma Import(MSIL,DrawPolygon,"DrawPolygon");
   pragma Import(MSIL,DrawRectangle,"DrawRectangle");
   pragma Import(MSIL,DrawString,"DrawString");
   pragma Import(MSIL,FillEllipse,"FillEllipse");
   pragma Import(MSIL,FillPolygon,"FillPolygon");
   pragma Import(MSIL,FillRectangle,"FillRectangle");
   pragma Import(MSIL,FillRegion,"FillRegion");
   pragma Import(MSIL,FromHow,"FromHow");
   pragma Import(MSIL,FromImage,"FromImage");
   pragma Import(MSIL,get_Clip,"get_Clip");
   pragma Import(MSIL,get_ClipBounds,"get_ClipBounds");
   pragma Import(MSIL,MeasureString,"MeasureString");
   pragma Import(MSIL,ResetClip,"ResetClip");
   pragma Import(MSIL,set_Clip,"set_Clip");
end MSSyst.Drawing.Graphics;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Drawing.Graphics,
   ".ver 1:0:5000:0 .publickeytoken=( 96 9d b8 05 3d 33 22 ac )",
   "[System.Drawing]System.Drawing.Graphics");
