|##########|
|#MAGIC   #|CLABLMGJ
|#PROJECT #|"IMPORTALL"
|#PATHS   #|"StdProject"
|#FLAGS   #|-x---x--x----xx-----------------
|#USERSW  #|--------------------------------
|#USERMASK#|--------------------------------
|#SWITCHES#|x----x----------
|##########|
DEFINITION MODULE BasicGfx;

IMPORT Graphics;
IMPORT Intuition;
IMPORT GfxInput;

TYPE
  FontPtr   = POINTER TO Font;
  Font      = RECORD
                font  : Graphics.TextFontPtr;
                prev,
                next  : FontPtr;
              END;

  ShapePtr  = POINTER TO Shape;
  Shape     = RECORD
                map   : Graphics.BitMap;
                width : INTEGER;
                prev,
                next  : ShapePtr;
              END;

  ScreenPtr = POINTER TO Screen;
  Screen    = RECORD
                rastPort : Graphics.RastPortPtr;
                window   : Intuition.WindowPtr;
                screen   : Intuition.ScreenPtr;
                areaInfo : Graphics.AreaInfo;
                tmpRas   : Graphics.TmpRas;
                buffer   : ARRAY [0..99] OF INTEGER;
                font     : FontPtr;
                lastKey  : GfxInput.KeyTypes;
                lastCode : CHAR;
                lastX,
                lastY    : INTEGER;
                lastClick: BOOLEAN;
                lastTime : ARRAY [0..1] OF LONGCARD;
                mouseDown: BOOLEAN;
                prev,
                next     : ScreenPtr;
              END;

PROCEDURE OpenScreen(depth  : INTEGER;hires,lace   : BOOLEAN):ScreenPtr;

PROCEDURE CloseScreen(screen : ScreenPtr);


PROCEDURE OpenFont(REF name : STRING;height : INTEGER):FontPtr;

PROCEDURE CloseFont(font : FontPtr);


PROCEDURE AllocShape(width,height,depth : INTEGER):ShapePtr;

PROCEDURE DisposeShape(shape : ShapePtr);

END BasicGfx.

