(****************************************************************************

$RCSfile: GEClass.mod $

$Revision: 1.2 $
    $Date: 1994/11/24 14:00:35 $

    Oberon-2 interface module for the GUIEnvironment Class Library

    Oberon-A Oberon-2 Compiler V4.17 (Release 1.4 Update 2)

  Copyright © 1994, Carsten Ziegeler
                    Augustin-Wibbelt-Str.7, 33106 Paderborn, Germany

****************************************************************************)
MODULE GEClass;

(* $P- Allow non-portable code *)


IMPORT K := Kernel,
       E := Exec,
       U := Utility;

CONST

  Name* = "geclass.library";  (* Library name *)
  Version* = 37;              (* min version / Revision 5 ! *)

(* ======================================================================= *)
(*                       The Get File Image Class                          *)
(* ======================================================================= *)

CONST getFileIClass *= "getfileiclass";

(* Default dimension: *)

  gfiWidth  *= 20;
  gfiHeight *= 14;


(* --- Library Base variable -------------------------------------------- *)

TYPE GEClassBase * = E.Library;
     GEClassBasePtr * = CPOINTER TO GEClassBase;

VAR

  base *  : GEClassBasePtr;


(* --- Library Functions ------------------------------------------------ *)

  LIBCALL (base : GEClassBasePtr) GetObjectA *
          (class[8]   : E.APTR;
           classID[9] : ARRAY OF CHAR;
           tagList[10]: ARRAY OF U.TagItem) : E.APTR;       -30;

  LIBCALL (base : GEClassBasePtr) GetObject *
          (class[8]   : E.APTR;
           classID[9] : ARRAY OF CHAR;
           tagList[10].. : U.Tag) : E.APTR;       -30;

  LIBCALL (base : GEClassBasePtr) FreeObject *
          (object[8] : E.APTR);                 -36;


(* $L- Address globals through A4 *)

PROCEDURE* CloseLib (VAR rc : LONGINT);
BEGIN
  IF base # NIL THEN E.base.CloseLibrary (base) END;
END CloseLib;

PROCEDURE OpenLib * (mustOpen : BOOLEAN);
BEGIN
  IF base = NIL THEN
    base := E.base.OpenLibrary (Name, Version);
    IF base # NIL THEN K.SetCleanup(CloseLib)
    ELSIF mustOpen THEN HALT (100)
    END
  END
END OpenLib;


BEGIN (* GEClass *)
  base := NIL;
END GEClass.
