home *** CD-ROM | disk | FTP | other *** search
/ AMIGA PD 1 / AMIGA-PD-1.iso / Programme_zum_Heft / Programmieren / Kurztests / PascalPCQ / Include / Workbench / Workbench.i < prev   
Text File  |  1990-08-28  |  2KB  |  93 lines

  1. {
  2.     Workbench.i for PCQ Pascal
  3. }
  4.  
  5. {$I "Include:Exec/Nodes.i"}
  6. {$I "Include:Exec/Lists.i"}
  7. {$I "Include:Exec/Tasks.i"}
  8. {$I "Include:Intuition/Intuition.i"}
  9.  
  10. Const
  11.  
  12.     WBDISK        = 1;
  13.     WBDRAWER        = 2;
  14.     WBTOOL        = 3;
  15.     WBPROJECT        = 4;
  16.     WBGARBAGE        = 5;
  17.     WBDEVICE        = 6;
  18.     WBKICK        = 7;
  19.  
  20. Type
  21.  
  22.     DrawerData = record
  23.     dd_NewWindow    : NewWindow;    { args to open window }
  24.     dd_CurrentX    : Integer;    { current x coordinate of origin }
  25.     dd_CurrentY    : Integer;    { current y coordinate of origin }
  26.     end;
  27.     DrawerDataPtr = ^DrawerData;
  28.  
  29. Const
  30.  
  31. { the amount of DrawerData actually written to disk }
  32.  
  33.     DRAWERDATAFILESIZE    = 56;  { sizeof(DrawerData) }
  34.  
  35. Type
  36.  
  37.     DiskObject = record
  38.     do_Magic    : Short;    { a magic number at the start of the file }
  39.     do_Version    : Short;    { a version number, so we can change it }
  40.     do_Gadget    : Gadget;    { a copy of in core gadget }
  41.     do_Type        : Byte;
  42.     do_DefaultTool    : String;
  43.     do_ToolTypes    : Address;
  44.     do_CurrentX    : Integer;
  45.     do_CurrentY    : Integer;
  46.     do_DrawerData    : DrawerDataPtr;
  47.     do_ToolWindow    : String;    { only applies to tools }
  48.     do_StackSize    : Integer;    { only applies to tools }
  49.     end;
  50.     DiskObjectPtr = ^DiskObject;
  51.  
  52. Const
  53.  
  54.     WB_DISKMAGIC    = $e310;    { a magic number, not easily impersonated }
  55.     WB_DISKVERSION    = 1;        { our current version number }
  56.  
  57. Type
  58.  
  59.     FreeList = record
  60.     fl_NumFree    : Short;
  61.     fl_MemList    : List;
  62.     end;
  63.     FreeListPtr = FreeList;
  64.  
  65. Const
  66.  
  67. { each message that comes into the WorkBenchPort must have a type field
  68.  * in the preceeding short.  These are the defines for this type
  69.  }
  70.  
  71.     MTYPE_PSTD        = 1;    { a "standard Potion" message }
  72.     MTYPE_TOOLEXIT    = 2;    { exit message from our tools }
  73.     MTYPE_DISKCHANGE    = 3;    { dos telling us of a disk change }
  74.     MTYPE_TIMER        = 4;    { we got a timer tick }
  75.     MTYPE_CLOSEDOWN    = 5;    { <unimplemented> }
  76.     MTYPE_IOPROC    = 6;    { <unimplemented> }
  77.  
  78. { workbench does different complement modes for its gadgets.
  79.  * It supports separate images, complement mode, and backfill mode.
  80.  * The first two are identical to intuitions GADGIMAGE and GADGHCOMP.
  81.  * backfill is similar to GADGHCOMP, but the region outside of the
  82.  * image (which normally would be color three when complemented)
  83.  * is flood-filled to color zero.
  84.  }
  85.  
  86.     GADGBACKFILL    = $0001;
  87.  
  88. { if an icon does not really live anywhere, set its current position
  89.  * to here
  90.  }
  91.  
  92.     NO_ICON_POSITION    = $80000000;
  93.