home *** CD-ROM | disk | FTP | other *** search
/ Global Amiga Experience / globalamigaexperience.iso / compressed / development / clusterdemo.dms / clusterdemo.adf / Modules.lha / modules / txt / Workbench.def < prev   
Text File  |  1994-05-25  |  5KB  |  161 lines

  1. |##########|
  2. |#MAGIC   #|CLABLKJB
  3. |#PROJECT #|""
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|xx---x--x---xxx--x--------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|x-xx-x----------
  9. |##########|
  10. DEFINITION MODULE Workbench;
  11. (* $A- *)
  12. FROM Dos       IMPORT FileLockPtr;
  13. FROM Intuition IMPORT Gadget,GadgetFlags,GadgetFlagSet,NewWindow,WindowPtr;
  14. FROM Exec      IMPORT Message,MsgPortPtr,List,LibraryPtr;
  15. FROM System    IMPORT BPTR,SysStringPtr,Regs;
  16.  
  17. CONST
  18.   diskMagic       = $E310;
  19.   diskVersion     = 1;
  20.   gadgetBackFill  = GadgetFlagSet:{gadgHBox};
  21.   noIconPosition  = -1;
  22.  
  23. TYPE
  24.   WBObjectType        = (wb0,disk,drawer,tool,project,garbage,device,kick);
  25.  
  26.   DiskObjectPtr       = POINTER TO DiskObject;
  27.   DrawerDataPtr       = POINTER TO DrawerData;
  28.   FreeListPtr         = POINTER TO FreeList;
  29.   WBArgPtr            = POINTER TO WBArg;
  30.   WBStartupPtr        = POINTER TO WBStartup;
  31.   ToolTypeArrayPtr    = POINTER TO ARRAY OF SysStringPtr;
  32.  
  33.   WBArg          = RECORD
  34.                      lock : FileLockPtr;
  35.                      name : SysStringPtr;
  36.                    END;
  37.  
  38.   WBArgumentsPtr = POINTER TO ARRAY OF WBArg;
  39.  
  40.   WBStartup      = RECORD OF Message
  41.                      process   : MsgPortPtr;
  42.                      segment   : BPTR;
  43.                      numArgs   : LONGINT;
  44.                      toolWindow: ANYPTR;
  45.                      argList   : WBArgumentsPtr;
  46.                    END;
  47.  
  48.   FreeList       = RECORD
  49.                      numFree : INTEGER;
  50.                      memList : List;
  51.                    END;
  52.  
  53.   DiskObject     = RECORD
  54.                      magic      : CARDINAL;
  55.                      version    : CARDINAL;
  56.                      gadget     : Gadget;
  57.                      type       : WBObjectType;
  58.                      defaultTool: SysStringPtr;
  59.                      toolTypes  : ToolTypeArrayPtr;
  60.                      currentX   : LONGINT;
  61.                      currentY   : LONGINT;
  62.                      drawerData : DrawerDataPtr;
  63.                      toolWindow : ANYPTR;
  64.                      stackSize  : LONGINT;
  65.                    END;
  66.  
  67.   DrawerData     = RECORD
  68.                      newWindow : NewWindow;
  69.                      currentX  : LONGINT;
  70.                      currentY  : LONGINT;
  71.                      flags     : LONGINT;
  72.                      modes     : CARDINAL;
  73.                    END;
  74.  
  75. CONST
  76.   drawerDataFileSize = DrawerData'SIZE;
  77.  
  78. TYPE
  79.   AppMsgTypes    = (pstd,toolexit,diskchange,timer,closedown,ioproc,
  80.                     appwindow,appicon,appmenuitem,copyexit,iconput,
  81.                     makeword=$1000);
  82.  
  83.   | pstd        : standard message
  84.   | toolexit    : exit message from tools
  85.   | diskchange  : dos telling of a disk change
  86.   | timer       : we got a time tick
  87.   | appwindow   : msg from an app window
  88.   | appicon     : msg from an app icon
  89.   | appmenuitem : msg from an app menuitem
  90.   | copyexit    : exit msg from copy process
  91.   | iconput     : msg from PutDiskObject in icon.library
  92.  
  93. TYPE
  94.   AppMessagePtr  = POINTER TO AppMessage;
  95.   AppMessage     = RECORD OF Message;
  96.                      type     : AppMsgTypes;
  97.                      userData : ANYPTR;
  98.                      id       : LONGINT;
  99.                      numArgs  : LONGINT;
  100.                      wbArgs   : WBArgumentsPtr;
  101.                      version  : CARDINAL;
  102.                      class    : CARDINAL;
  103.                      mouseX,
  104.                      mouseY   : INTEGER;
  105.                      seconds,
  106.                      micros   : LONGINT;
  107.                      reserved : ARRAY [8] OF LONGINT;
  108.                    END;
  109.  
  110. TYPE
  111.   AppWindowPtr   = HIDDEN;
  112.   AppIconPtr     = HIDDEN;
  113.   AppMenuItemPtr = HIDDEN;
  114.  
  115. VAR
  116.   StartupMsg     : WBStartupPtr;
  117.   WorkbenchBase  : LibraryPtr;
  118.  
  119. LIBRARY WorkbenchBase BY -48
  120.   PROCEDURE AddAppWindow(    id       IN D0 : LONGINT;
  121.                              userData IN D1 : ANYPTR;
  122.                              window   IN A0 : WindowPtr;
  123.                              msgPort  IN A1 : MsgPortPtr;
  124.                              taglist  IN A2 : ANYPTR):AppWindowPtr;
  125.  
  126. LIBRARY WorkbenchBase BY -54
  127.   PROCEDURE RemoveAppWindow(window IN A0 : AppWindowPtr);
  128.  
  129. |LIBRARY WorkbenchBase BY -60  | geht so nicht wegen A4
  130.  
  131.   PROCEDURE AddAppIcon(    id       IN D0 : LONGINT;
  132.                            userData IN D1 : ANYPTR;
  133.                        REF text     IN A0 : STRING;
  134.                            msgport  IN A1 : MsgPortPtr;
  135.                            lock     IN A2 : FileLockPtr;
  136.                            diskobj  IN A3 : DiskObjectPtr):AppIconPtr;
  137.  
  138. LIBRARY WorkbenchBase BY -66
  139.   PROCEDURE RemoveAppIcon(appIcon IN A0 : AppIconPtr);
  140.  
  141. LIBRARY WorkbenchBase BY -72
  142.   PROCEDURE AddAppMenuItem(    id       IN D0 : LONGINT;
  143.                                userData IN D1 : ANYPTR;
  144.                            REF text     IN A0 : STRING;
  145.                                msgport  IN A1 : MsgPortPtr;
  146.                                tags     IN A2 : ANYPTR):AppMenuItemPtr;
  147.                                | ^= NIL for now
  148.  
  149.  
  150. LIBRARY WorkbenchBase BY -78
  151.   PROCEDURE RemoveAppMenuItem(appMenu IN A0 : AppMenuItemPtr);
  152.  
  153. GROUP
  154.   All   = diskMagic,diskVersion,gadgetBackFill,noIconPosition,
  155.           WBObjectType,DiskObjectPtr,DrawerDataPtr,
  156.           FreeListPtr,WBArgPtr,WBStartupPtr,WBArg,WBArgumentsPtr,
  157.           FreeList,DiskObject,DrawerData,WBStartup,drawerDataFileSize,
  158.           StartupMsg;
  159.  
  160. END Workbench.
  161.