home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 22 / AACD 22.iso / AACD / Programming / powerd / modules.lha / modules / workbench / workbench.m < prev   
Encoding:
Text File  |  2000-06-04  |  3.2 KB  |  105 lines

  1. /*
  2. **    $VER: workbench.h 40.1 (26.8.93)
  3. */
  4.  
  5. MODULE    'exec/nodes','exec/lists','exec/tasks','intuition/intuition','workbench/startup'
  6.  
  7. ENUM    WBDISK=1,
  8.         WBDRAWER,
  9.         WBTOOL,
  10.         WBPROJECT,
  11.         WBGARBAGE,
  12.         WBDEVICE,
  13.         WBKICK,
  14.         WBAPPICON
  15.  
  16. OBJECT OldDrawerData                // pre V36 definition
  17.     NewWindow:NW,                    // args to open window
  18.     CurrentX:LONG,                    // current x coordinate of origin
  19.     CurrentY:LONG                    // current y coordinate of origin
  20.  
  21. OBJECT DrawerData
  22.     NewWindow:NW,                    // args to open window
  23.     CurrentX:LONG,                    // current x coordinate of origin
  24.     CurrentY:LONG,                    // current y coordinate of origin
  25.     Flags:ULONG,                    // flags for drawer
  26.     ViewModes:UWORD                // view mode for drawer
  27.  
  28. OBJECT DiskObject
  29.     Magic:UWORD,                    /* a magic number at the start of the file */
  30.     Version:UWORD,                    /* a version number, so we can change it */
  31.     Gadget:Gadget,                    /* a copy of in core gadget */
  32.     Type:UBYTE,
  33.     DefaultTool:PTR TO CHAR,
  34.     ToolTypes:PTR TO PTR TO CHAR,
  35.     CurrentX:LONG,
  36.     CurrentY:LONG,
  37.     DrawerData:PTR TO DrawerData,
  38.     ToolWindow:PTR TO CHAR,        /* only applies to tools */
  39.     StackSize:LONG                    /* only applies to tools */
  40.  
  41. CONST    WB_DISKMAGIC=$e310,        /* a magic number, not easily impersonated */
  42.         WB_DISKVERSION=1,            /* our current version number */
  43.         WB_DISKREVISION=1,        /* our current revision number */
  44. /* I only use the lower 8 bits of Gadget.UserData for the revision # */
  45.         WB_DISKREVISIONMASK=255
  46.  
  47. OBJECT FreeList
  48.     NumFree:WORD,
  49.     MemList:LH
  50.  
  51. /* workbench does different complement modes for its gadgets.
  52. ** It supports separate images, complement mode, and backfill mode.
  53. ** The first two are identical to intuitions GFLG_GADGIMAGE and GFLG_GADGHCOMP.
  54. ** backfill is similar to GFLG_GADGHCOMP, but the region outside of the
  55. ** image (which normally would be color three when complemented)
  56. ** is flood-filled to color zero.
  57. */
  58. CONST    GFLG_GADGBACKFILL=$0001,
  59.         GADGBACKFILL=$0001,        /* an old synonym */
  60.  
  61. /* if an icon does not really live anywhere, set its current position
  62. ** to here
  63. */
  64.         NO_ICON_POSITION=$80000000
  65.  
  66. /* workbench now is a library.    this is it's name */
  67. #define WORKBENCH_NAME 'workbench.library'
  68.  
  69. /* If you find am_Version >= AM_VERSION, you know this structure has
  70.  * at least the fields defined in this version of the include file
  71.  */
  72. CONST    AM_VERSION=1
  73.  
  74. OBJECT AppMessage
  75.     Message:MN,                        /* standard message structure */
  76.     Type:UWORD,                        /* message type */
  77.     UserData:ULONG,                /* application specific */
  78.     ID:ULONG,                        /* application definable ID */
  79.     NumArgs:LONG,                    /* # of elements in arglist */
  80.     ArgList:PTR TO WBArg,        /* the arguements themselves */
  81.     Version:UWORD,                    /* will be AM_VERSION */
  82.     Class:UWORD,                    /* message class */
  83.     MouseX:WORD,                    /* mouse x position of event */
  84.     MouseY:WORD,                    /* mouse y position of event */
  85.     Seconds:ULONG,                    /* current system clock time */
  86.     Micros:ULONG,                    /* current system clock time */
  87.     Reserved[8]:ULONG                /* avoid recompilation */
  88.  
  89. /* types of app messages */
  90. ENUM    AMTYPE_APPWINDOW=7,        /* app window message     */
  91.         AMTYPE_APPICON,            /* app icon message     */
  92.         AMTYPE_APPMENUITEM        /* app menu item message */
  93.  
  94.  
  95. /*
  96.  * The following structures are private.  These are just stub
  97.  * structures for code compatibility...
  98.  */
  99. OBJECT AppWindow
  100.     private:PTR
  101. OBJECT AppIcon
  102.     private:PTR
  103. OBJECT AppMenuItem
  104.     private:PTR
  105.