home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / at-inc-bin.lha / os-include / workbench / workbench.i < prev   
Text File  |  1993-10-15  |  4KB  |  156 lines

  1.     IFND    WORKBENCH_WORKBENCH_I
  2. WORKBENCH_WORKBENCH_I    EQU    1
  3. **
  4. **    $VER: workbench.i 40.1 (26.8.93)
  5. **    Includes Release 40.15
  6. **
  7. **    workbench.library general definitions
  8. **
  9. **    (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  10. **    All Rights Reserved
  11. **
  12.  
  13.     IFND    EXEC_TYPES_I
  14.     INCLUDE    "exec/types.i"
  15.     ENDC
  16.  
  17.     IFND    EXEC_NODES_I
  18.     INCLUDE    "exec/nodes.i"
  19.     ENDC
  20.  
  21.     IFND    EXEC_LISTS_I
  22.     INCLUDE    "exec/lists.i"
  23.     ENDC
  24.  
  25.     IFND    EXEC_TASKS_I
  26.     INCLUDE    "exec/tasks.i"
  27.     ENDC
  28.  
  29.     IFND    INTUITION_INTUITION_I
  30.     INCLUDE    "intuition/intuition.i"
  31.     ENDC
  32.  
  33.  
  34. ; the Workbench object types
  35. WBDISK        EQU    1
  36. WBDRAWER    EQU    2
  37. WBTOOL        EQU    3
  38. WBPROJECT    EQU    4
  39. WBGARBAGE    EQU    5
  40. WBDEVICE    EQU    6
  41. WBKICK        EQU    7
  42. WBAPPICON    EQU    8
  43.  
  44. ; the main workbench object structure
  45.  STRUCTURE DrawerData,0
  46.     STRUCT    dd_NewWindow,nw_SIZE    ; args to open window
  47.     LONG    dd_CurrentX        ; current x coordinate of origin
  48.     LONG    dd_CurrentY        ; current y coordinate of origin
  49.     LABEL    OldDrawerData_SIZEOF    ; pre V36 size
  50. ; the amount of OldDrawerData actually written to disk
  51. OLDDRAWERDATAFILESIZE    EQU (OldDrawerData_SIZEOF)
  52.     ULONG    dd_Flags        ; flags for drawer
  53.     UWORD    dd_ViewModes        ; view mode for drawer
  54.     LABEL    DrawerData_SIZEOF
  55. ; the amount of DrawerData actually written to disk
  56. DRAWERDATAFILESIZE    EQU (DrawerData_SIZEOF)
  57.  
  58.  
  59.  STRUCTURE DiskObject,0
  60.     UWORD    do_Magic        ; a magic num at the start of the file
  61.     UWORD    do_Version        ; a version number, so we can change it
  62.     STRUCT    do_Gadget,gg_SIZEOF    ; a copy of in core gadget
  63.     UBYTE    do_Type
  64.     UBYTE    do_PAD_BYTE        ; Pad it out to the next word boundry
  65.     APTR    do_DefaultTool
  66.     APTR    do_ToolTypes
  67.     LONG    do_CurrentX
  68.     LONG    do_CurrentY
  69.     APTR    do_DrawerData
  70.     APTR    do_ToolWindow        ; only applies to tools
  71.     LONG    do_StackSize        ; only applies to tools
  72.     LABEL    do_SIZEOF
  73.  
  74. WB_DISKMAGIC    EQU    $e310    ; a magic number, not easily impersonated
  75. WB_DISKVERSION    EQU    1    ; our current version number
  76. WB_DISKREVISION    EQU    1    ; out current revision number
  77. ; I only use the lower 8 bits of Gadget.UserData for the revision #
  78. WB_DISKREVISIONMASK    EQU    $ff
  79.  
  80.  STRUCTURE FreeList,0
  81.     WORD    fl_NumFree
  82.     STRUCT    fl_MemList,LH_SIZE
  83.     ; weird name to avoid conflicts with FileLocks
  84.     LABEL    FreeList_SIZEOF
  85.  
  86.  
  87.  
  88. * workbench does different complement modes for its gadgets.
  89. * It supports separate images, complement mode, and backfill mode.
  90. * The first two are identical to intuitions GFLG_GADGIMAGE and GFLG_GADGHCOMP.
  91. * backfill is similar to GFLG_GADGHCOMP, but the region outside of the
  92. * image (which normally would be color three when complemented)
  93. * is flood-filled to color zero.
  94. *
  95. GFLG_GADGBACKFILL    EQU    $0001
  96. GADGBACKFILL        EQU    $0001    ; an old synonym
  97.  
  98. * if an icon does not really live anywhere, set its current position
  99. * to here
  100. *
  101. NO_ICON_POSITION    EQU    ($80000000)
  102.  
  103.  
  104. * workbench now is a library.  this is it's name
  105. WORKBENCH_NAME    MACRO
  106.         dc.b        'workbench.library',0
  107.         ds.w        0
  108.         ENDM
  109.  
  110. ; If you find am_Version >= AM_VERSION, you now this structure has
  111. ; at least the fields defined in this version of the include file
  112. AM_VERSION    EQU    1
  113.  
  114.  STRUCTURE AppMessage,0
  115.     STRUCT am_Message,MN_SIZE    ; standard message structure
  116.     UWORD am_Type            ; message type
  117.     ULONG am_UserData        ; application specific
  118.     ULONG am_ID            ; application definable ID
  119.     LONG am_NumArgs            ; # of elements in arglist
  120.     APTR am_ArgList            ; the arguements themselves
  121.     UWORD am_Version        ; will be AM_VERSION
  122.     UWORD am_Class            ; message class
  123.     WORD am_MouseX            ; mouse x position of event
  124.     WORD am_MouseY            ; mount y position of event
  125.     ULONG am_Seconds        ; current system clock time
  126.     ULONG am_Micros            ; current system clock time
  127.     STRUCT am_Reserved,8        ; avoid recompilation
  128.     LABEL AppMessage_SIZEOF
  129.  
  130.  
  131. * types of app messages
  132. AMTYPE_APPWINDOW   EQU    7    ; app window message
  133. AMTYPE_APPICON       EQU    8    ; app icon message
  134. AMTYPE_APPMENUITEM EQU    9    ; app menu item message
  135.  
  136.  
  137. *
  138. * The following structures are private.  These are just stub
  139. * structures for code compatibility...
  140. *
  141.  STRUCTURE AppWindow,0
  142.     STRUCT aw_PRIVATE,0
  143.     LABEL AppWindow_SIZEOF
  144.  
  145.  STRUCTURE AppIcon,0
  146.      STRUCT ai_PRIVATE,0
  147.     LABEL AppIcon_SIZEOF
  148.  
  149.  STRUCTURE AppMenuItem,0
  150.     STRUCT ami_PRIVATE,0
  151.     LABEL AppMenuItem_SIZEOF
  152.  
  153.  
  154.     ENDC    ; WORKBENCH_WORKBENCH_I
  155.  
  156.