-- 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.ICloneable.Ref is access;
with type MSSyst.IDisposable.Ref is access;
with type MSSyst.Object.Ref is access;
with type MSSyst.Runtime.Remoting.ObjRef.Ref is access;
with type MSSyst.Type_k.Ref is access;
with MSSyst.Drawing.Drawing2D.PenAlignment;
with type MSSyst.Drawing.Brush.Ref is access;
with type MSSyst.Drawing.Color.Valuetype is tagged;
with type MSSyst.Drawing.Drawing2D.CustomLineCap.Ref is access;
with MSSyst.Drawing.Drawing2D.DashCap;
with MSSyst.Drawing.Drawing2D.DashStyle;
with MSSyst.Drawing.Drawing2D.LineCap;
with MSSyst.Drawing.Drawing2D.LineJoin;
with MSSyst.Drawing.Drawing2D.PenType;
with type MSSyst.Drawing.Drawing2D.Matrix.Ref is access;
with MSSyst.Drawing.Drawing2D.MatrixOrder;
with type MSSyst.String.Ref is access;
with MSSyst.MarshalByRefObject;
package MSSyst.Drawing.Pen 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_ICloneable : MSSyst.ICloneable.Ref;
         I_IDisposable : MSSyst.IDisposable.Ref
      ) is new MSSyst.MarshalByRefObject.Typ with record
      null;
   end record;
   function new_Pen(
      This : Ref := null;
      color : MSSyst.Drawing.Color.Valuetype) return Ref;
   function new_Pen(
      This : Ref := null;
      color : MSSyst.Drawing.Color.Valuetype;
      width : Float) return Ref;
   function new_Pen(
      This : Ref := null;
      brush : MSSyst.Drawing.Brush.Ref) return Ref;
   function new_Pen(
      This : Ref := null;
      brush : MSSyst.Drawing.Brush.Ref;
      width : Float) return Ref;
   function Clone(
      This : access Typ) return MSSyst.Object.Ref;
   procedure Dispose(
      This : access Typ);
   function get_Alignment(
      This : access Typ) return MSSyst.Drawing.Drawing2D.PenAlignment.Valuetype;
   function get_Brush(
      This : access Typ) return MSSyst.Drawing.Brush.Ref;
   function get_Color(
      This : access Typ) return MSSyst.Drawing.Color.Valuetype;
   function get_CompoundArray(
      This : access Typ) return MSIL_Types.Float32_Array;
   function get_CustomEndCap(
      This : access Typ) return MSSyst.Drawing.Drawing2D.CustomLineCap.Ref;
   function get_CustomStartCap(
      This : access Typ) return MSSyst.Drawing.Drawing2D.CustomLineCap.Ref;
   function get_DashCap(
      This : access Typ) return MSSyst.Drawing.Drawing2D.DashCap.Valuetype;
   function get_DashOffset(
      This : access Typ) return Float;
   function get_DashPattern(
      This : access Typ) return MSIL_Types.Float32_Array;
   function get_DashStyle(
      This : access Typ) return MSSyst.Drawing.Drawing2D.DashStyle.Valuetype;
   function get_EndCap(
      This : access Typ) return MSSyst.Drawing.Drawing2D.LineCap.Valuetype;
   function get_LineJoin(
      This : access Typ) return MSSyst.Drawing.Drawing2D.LineJoin.Valuetype;
   function get_MiterLimit(
      This : access Typ) return Float;
   function get_PenType(
      This : access Typ) return MSSyst.Drawing.Drawing2D.PenType.Valuetype;
   function get_StartCap(
      This : access Typ) return MSSyst.Drawing.Drawing2D.LineCap.Valuetype;
   function get_Transform(
      This : access Typ) return MSSyst.Drawing.Drawing2D.Matrix.Ref;
   function get_Width(
      This : access Typ) return Float;
   procedure MultiplyTransform(
      This : access Typ;
      matrix : MSSyst.Drawing.Drawing2D.Matrix.Ref;
      order : MSSyst.Drawing.Drawing2D.MatrixOrder.Valuetype);
   procedure MultiplyTransform(
      This : access Typ;
      matrix : MSSyst.Drawing.Drawing2D.Matrix.Ref);
   procedure ResetTransform(
      This : access Typ);
   procedure RotateTransform(
      This : access Typ;
      angle : Float;
      order : MSSyst.Drawing.Drawing2D.MatrixOrder.Valuetype);
   procedure RotateTransform(
      This : access Typ;
      angle : Float);
   procedure ScaleTransform(
      This : access Typ;
      sx : Float;
      sy : Float;
      order : MSSyst.Drawing.Drawing2D.MatrixOrder.Valuetype);
   procedure ScaleTransform(
      This : access Typ;
      sx : Float;
      sy : Float);
   procedure set_Alignment(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.PenAlignment.Valuetype);
   procedure set_Brush(
      This : access Typ;
      value : MSSyst.Drawing.Brush.Ref);
   procedure set_Color(
      This : access Typ;
      value : MSSyst.Drawing.Color.Valuetype);
   procedure set_CompoundArray(
      This : access Typ;
      value : MSIL_Types.Float32_Arr);
   procedure set_CustomEndCap(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.CustomLineCap.Ref);
   procedure set_CustomStartCap(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.CustomLineCap.Ref);
   procedure set_DashCap(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.DashCap.Valuetype);
   procedure set_DashOffset(
      This : access Typ;
      value : Float);
   procedure set_DashPattern(
      This : access Typ;
      value : MSIL_Types.Float32_Arr);
   procedure set_DashStyle(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.DashStyle.Valuetype);
   procedure set_EndCap(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.LineCap.Valuetype);
   procedure set_LineJoin(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.LineJoin.Valuetype);
   procedure set_MiterLimit(
      This : access Typ;
      value : Float);
   procedure set_StartCap(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.LineCap.Valuetype);
   procedure set_Transform(
      This : access Typ;
      value : MSSyst.Drawing.Drawing2D.Matrix.Ref);
   procedure set_Width(
      This : access Typ;
      value : Float);
   procedure SetLineCap(
      This : access Typ;
      startCap : MSSyst.Drawing.Drawing2D.LineCap.Valuetype;
      endCap : MSSyst.Drawing.Drawing2D.LineCap.Valuetype;
      dashCap : MSSyst.Drawing.Drawing2D.DashCap.Valuetype);
   procedure TranslateTransform(
      This : access Typ;
      dx : Float;
      dy : Float);
   procedure TranslateTransform(
      This : access Typ;
      dx : Float;
      dy : Float;
      order : MSSyst.Drawing.Drawing2D.MatrixOrder.Valuetype);
private
   pragma Convention(MSIL,Typ);
   pragma MSIL_Constructor(new_Pen);
   pragma Import(MSIL,Clone,"Clone");
   pragma Import(MSIL,Dispose,"Dispose");
   pragma Import(MSIL,get_Alignment,"get_Alignment");
   pragma Import(MSIL,get_Brush,"get_Brush");
   pragma Import(MSIL,get_Color,"get_Color");
   pragma Import(MSIL,get_CompoundArray,"get_CompoundArray");
   pragma Import(MSIL,get_CustomEndCap,"get_CustomEndCap");
   pragma Import(MSIL,get_CustomStartCap,"get_CustomStartCap");
   pragma Import(MSIL,get_DashCap,"get_DashCap");
   pragma Import(MSIL,get_DashOffset,"get_DashOffset");
   pragma Import(MSIL,get_DashPattern,"get_DashPattern");
   pragma Import(MSIL,get_DashStyle,"get_DashStyle");
   pragma Import(MSIL,get_EndCap,"get_EndCap");
   pragma Import(MSIL,get_LineJoin,"get_LineJoin");
   pragma Import(MSIL,get_MiterLimit,"get_MiterLimit");
   pragma Import(MSIL,get_PenType,"get_PenType");
   pragma Import(MSIL,get_StartCap,"get_StartCap");
   pragma Import(MSIL,get_Transform,"get_Transform");
   pragma Import(MSIL,get_Width,"get_Width");
   pragma Import(MSIL,MultiplyTransform,"MultiplyTransform");
   pragma Import(MSIL,ResetTransform,"ResetTransform");
   pragma Import(MSIL,RotateTransform,"RotateTransform");
   pragma Import(MSIL,ScaleTransform,"ScaleTransform");
   pragma Import(MSIL,set_Alignment,"set_Alignment");
   pragma Import(MSIL,set_Brush,"set_Brush");
   pragma Import(MSIL,set_Color,"set_Color");
   pragma Import(MSIL,set_CompoundArray,"set_CompoundArray");
   pragma Import(MSIL,set_CustomEndCap,"set_CustomEndCap");
   pragma Import(MSIL,set_CustomStartCap,"set_CustomStartCap");
   pragma Import(MSIL,set_DashCap,"set_DashCap");
   pragma Import(MSIL,set_DashOffset,"set_DashOffset");
   pragma Import(MSIL,set_DashPattern,"set_DashPattern");
   pragma Import(MSIL,set_DashStyle,"set_DashStyle");
   pragma Import(MSIL,set_EndCap,"set_EndCap");
   pragma Import(MSIL,set_LineJoin,"set_LineJoin");
   pragma Import(MSIL,set_MiterLimit,"set_MiterLimit");
   pragma Import(MSIL,set_StartCap,"set_StartCap");
   pragma Import(MSIL,set_Transform,"set_Transform");
   pragma Import(MSIL,set_Width,"set_Width");
   pragma Import(MSIL,SetLineCap,"SetLineCap");
   pragma Import(MSIL,TranslateTransform,"TranslateTransform");
end MSSyst.Drawing.Pen;
pragma Extensions_Allowed(Off);
pragma Import(MSIL,MSSyst.Drawing.Pen,
   ".ver 1:0:3300:0 .publickeytoken=( b0 3f 5f 7f 11 d5 0a 3a )",
   "[System.Drawing]System.Drawing.Pen");
