home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 4 / AACD04.ISO / AACD / Programming / powerd / modules / workbench / workbench.m < prev   
Encoding:
Text File  |  1999-02-22  |  3.4 KB  |  111 lines

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