|##########|
|#MAGIC   #|CLABLMDO
|#PROJECT #|""
|#PATHS   #|"StdProject"
|#FLAGS   #|xx-x-x--x---x-x-----------------
|#USERSW  #|--------------------------------
|#USERMASK#|--------------------------------
|#SWITCHES#|xx---xxxxx------
|##########|
DEFINITION MODULE Icon;
(* $A- *)
FROM Exec      IMPORT LibraryPtr;
FROM Workbench IMPORT FreeListPtr,DiskObjectPtr,ToolTypeArrayPtr,
                      WBObjectType;
FROM System    IMPORT SysStringPtr,Regs;

VAR
  IconBase : LibraryPtr;

|---------------- Funktions for Icons ------------------------------------

LIBRARY IconBase BY -42
  PROCEDURE GetIcon(REF Name  IN A0  : STRING;
                        icon  IN A1  : DiskObjectPtr;
                        f     IN A2  : FreeListPtr):LONGINT;

LIBRARY IconBase BY -48
  PROCEDURE PutIcon(REF Name  IN A0  : STRING;
                        Obj   IN A1  : DiskObjectPtr):BOOLEAN;

GROUP
  IconGrp  = GetIcon,DiskObjectPtr,FreeListPtr,PutIcon;

|---------------- Funktions for Disks-Objects ----------------------------

LIBRARY IconBase BY -78
  PROCEDURE GetDiskObject(REF Name IN A0 : STRING):DiskObjectPtr;

LIBRARY IconBase BY -84
  PROCEDURE PutDiskObject(REF Name IN A0 : STRING;
                              Obj  IN A1 : DiskObjectPtr):BOOLEAN;

LIBRARY IconBase BY -90
  PROCEDURE FreeDiskObject(Obj IN A0 : DiskObjectPtr);

LIBRARY IconBase BY -120
  PROCEDURE GetDefDiskObject(type IN D0 : WBObjectType):DiskObjectPtr;

LIBRARY IconBase BY -126
  PROCEDURE PutDefDiskObject(obj IN A0 : DiskObjectPtr);

LIBRARY IconBase BY -132
  PROCEDURE GetDiskObjectNew(REF name IN A0 : STRING):DiskObjectPtr;

LIBRARY IconBase BY -138
  PROCEDURE DeleteDiskObject(REF name IN A0 : STRING):BOOLEAN;


GROUP
  DiskObjectGrp  = GetDiskObject,DiskObjectPtr,PutDiskObject,
                   FreeDiskObject,GetDefDiskObject,PutDefDiskObject,
                   GetDiskObjectNew,DeleteDiskObject;

|---------------- Funktions for FreeLists --------------------------------

LIBRARY IconBase BY -72
  PROCEDURE AddFreeList(Free IN A0  : FreeListPtr;
                        mem  IN A1  : ANYPTR;
                        len  IN A2 : LONGINT):BOOLEAN;

LIBRARY IconBase BY -54
  PROCEDURE FreeFreeList(Free IN A0 : FreeListPtr);


GROUP
  FreeListGrp  = AddFreeList,FreeFreeList,FreeListPtr;

|---------------- Help-Funktions -----------------------------------------

LIBRARY IconBase BY -108
  PROCEDURE BumpRevision(New IN A0 : ANYPTR;
                         Old IN A1 : ANYPTR);

LIBRARY IconBase BY -96
  PROCEDURE FindToolType(ToolTypes  IN A0 : ToolTypeArrayPtr;
                         TypeName   IN A1 : SysStringPtr):SysStringPtr;

LIBRARY IconBase BY -102
  PROCEDURE MatchToolValue(TypeString IN A0 : SysStringPtr;
                           Val        IN A1 : SysStringPtr):BOOLEAN;


GROUP
  ToolTypeGrp  = BumpRevision,FindToolType,MatchToolValue,SysStringPtr;

  All          = IconGrp,DiskObjectGrp,FreeListGrp,ToolTypeGrp,IconBase;

END Icon.
