FOREIGN MODULE android_graphics_drawable_shapes;

IMPORT
    android_graphics := "android.graphics",
    java_lang := "java.lang";

TYPE

  ArcShape* = POINTER TO EXTENSIBLE RECORD (RectShape)    (* Typebound Procedures *)
              STATIC
                PROCEDURE Init*(p0 : SHORTREAL;
                                p1 : SHORTREAL) : ArcShape,CONSTRUCTOR;
              END;

  OvalShape* = POINTER TO EXTENSIBLE RECORD (RectShape)    (* Typebound Procedures *)
               STATIC
                 PROCEDURE Init*() : OvalShape,CONSTRUCTOR;
               END;

  PathShape* = POINTER TO EXTENSIBLE RECORD (Shape)    (* Typebound Procedures *)
               STATIC
                 PROCEDURE Init*(p0 : android_graphics.Path;
                                 p1 : SHORTREAL;
                                 p2 : SHORTREAL) : PathShape,CONSTRUCTOR;
               END;

  RectShape* = POINTER TO EXTENSIBLE RECORD (Shape)    (* Typebound Procedures *)
               STATIC
                 PROCEDURE Init*() : RectShape,CONSTRUCTOR;
               END;

  RoundRectShape* = POINTER TO EXTENSIBLE RECORD (RectShape)    (* Typebound Procedures *)
                    STATIC
                      PROCEDURE Init*(IN  p0 : ARRAY OF SHORTREAL;
                                          p1 : android_graphics.RectF;
                                      IN  p2 : ARRAY OF SHORTREAL) : RoundRectShape,CONSTRUCTOR;
                    END;

  Shape* = POINTER TO ABSTRACT RECORD (java_lang.Object + java_lang.Cloneable)    (* Typebound Procedures *)
           STATIC
             PROCEDURE Init*() : Shape,CONSTRUCTOR;
           END;




PROCEDURE (self:ArcShape) draw*(p0 : android_graphics.Canvas;
                                p1 : android_graphics.Paint),EXTENSIBLE;

PROCEDURE (self:OvalShape) draw*(p0 : android_graphics.Canvas;
                                 p1 : android_graphics.Paint),EXTENSIBLE;

PROCEDURE (self:PathShape) clone*() : Shape,EXTENSIBLE;

PROCEDURE (self:PathShape) clone*() : java_lang.Object,EXTENSIBLE;

PROCEDURE (self:PathShape) clone*() : PathShape,EXTENSIBLE;

PROCEDURE (self:PathShape) draw*(p0 : android_graphics.Canvas;
                                 p1 : android_graphics.Paint),EXTENSIBLE;

PROCEDURE (self:PathShape) onResize!(p0 : SHORTREAL;
                                     p1 : SHORTREAL),EXTENSIBLE;

PROCEDURE (self:RectShape) clone*() : RectShape,EXTENSIBLE;

PROCEDURE (self:RectShape) clone*() : Shape,EXTENSIBLE;

PROCEDURE (self:RectShape) clone*() : java_lang.Object,EXTENSIBLE;

PROCEDURE (self:RectShape) draw*(p0 : android_graphics.Canvas;
                                 p1 : android_graphics.Paint),EXTENSIBLE;

PROCEDURE (self:RectShape) onResize!(p0 : SHORTREAL;
                                     p1 : SHORTREAL),EXTENSIBLE;

PROCEDURE (self:RectShape) rect!() : android_graphics.RectF,NEW;

PROCEDURE (self:RoundRectShape) clone*() : RectShape,EXTENSIBLE;

PROCEDURE (self:RoundRectShape) clone*() : Shape,EXTENSIBLE;

PROCEDURE (self:RoundRectShape) clone*() : java_lang.Object,EXTENSIBLE;

PROCEDURE (self:RoundRectShape) clone*() : RoundRectShape,EXTENSIBLE;

PROCEDURE (self:RoundRectShape) draw*(p0 : android_graphics.Canvas;
                                      p1 : android_graphics.Paint),EXTENSIBLE;

PROCEDURE (self:RoundRectShape) onResize!(p0 : SHORTREAL;
                                          p1 : SHORTREAL),EXTENSIBLE;

PROCEDURE (self:Shape) clone*() : java_lang.Object,EXTENSIBLE;

PROCEDURE (self:Shape) clone*() : Shape,EXTENSIBLE;

PROCEDURE (self:Shape) draw*(p0 : android_graphics.Canvas;
                             p1 : android_graphics.Paint),NEW,ABSTRACT;

PROCEDURE (self:Shape) getHeight*() : SHORTREAL,NEW;

PROCEDURE (self:Shape) getWidth*() : SHORTREAL,NEW;

PROCEDURE (self:Shape) hasAlpha*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:Shape) onResize!(p0 : SHORTREAL;
                                 p1 : SHORTREAL),NEW,EXTENSIBLE;

PROCEDURE (self:Shape) resize*(p0 : SHORTREAL;
                               p1 : SHORTREAL),NEW;

END android_graphics_drawable_shapes.