IFND WORKBENCH_WORKBENCH_I WORKBENCH_WORKBENCH_I EQU 1 ** ** $Filename: workbench/workbench.i $ ** $Release: 2.04 Includes, V37.4 $ ** $Revision: 37.2 $ ** $Date: 91/02/01 $ ** ** workbench.library general definitions ** ** (C) Copyright 1985-1999 Amiga, Inc. ** All Rights Reserved ** IFND EXEC_TYPES_I INCLUDE "exec/types.i" ENDC IFND EXEC_NODES_I INCLUDE "exec/nodes.i" ENDC IFND EXEC_LISTS_I INCLUDE "exec/lists.i" ENDC IFND EXEC_TASKS_I INCLUDE "exec/tasks.i" ENDC IFND INTUITION_INTUITION_I INCLUDE "intuition/intuition.i" ENDC ; the Workbench object types WBDISK EQU 1 WBDRAWER EQU 2 WBTOOL EQU 3 WBPROJECT EQU 4 WBGARBAGE EQU 5 WBDEVICE EQU 6 WBKICK EQU 7 WBAPPICON EQU 8 ; the main workbench object structure STRUCTURE DrawerData,0 STRUCT dd_NewWindow,nw_SIZE ; args to open window LONG dd_CurrentX ; current x coordinate of origin LONG dd_CurrentY ; current y coordinate of origin LABEL OldDrawerData_SIZEOF ; pre V36 size ; the amount of OldDrawerData actually written to disk OLDDRAWERDATAFILESIZE EQU (OldDrawerData_SIZEOF) ULONG dd_Flags ; flags for drawer UWORD dd_ViewModes ; view mode for drawer LABEL DrawerData_SIZEOF ; the amount of DrawerData actually written to disk DRAWERDATAFILESIZE EQU (DrawerData_SIZEOF) STRUCTURE DiskObject,0 UWORD do_Magic ; a magic num at the start of the file UWORD do_Version ; a version number, so we can change it STRUCT do_Gadget,gg_SIZEOF ; a copy of in core gadget UBYTE do_Type UBYTE do_PAD_BYTE ; Pad it out to the next word boundry APTR do_DefaultTool APTR do_ToolTypes LONG do_CurrentX LONG do_CurrentY APTR do_DrawerData APTR do_ToolWindow ; only applies to tools LONG do_StackSize ; only applies to tools LABEL do_SIZEOF WB_DISKMAGIC EQU $e310 ; a magic number, not easily impersonated WB_DISKVERSION EQU 1 ; our current version number WB_DISKREVISION EQU 1 ; out current revision number ; I only use the lower 8 bits of Gadget.UserData for the revision # WB_DISKREVISIONMASK EQU $ff STRUCTURE FreeList,0 WORD fl_NumFree STRUCT fl_MemList,LH_SIZE ; weird name to avoid conflicts with FileLocks LABEL FreeList_SIZEOF * each message that comes into the WorkBenchPort must have a type field * in the preceeding short. These are the defines for this type * MTYPE_PSTD EQU 1 ; a "standard Potion" message MTYPE_TOOLEXIT EQU 2 ; exit message from our tools MTYPE_DISKCHANGE EQU 3 ; dos telling us of a disk change MTYPE_TIMER EQU 4 ; we got a timer tick MTYPE_CLOSEDOWN EQU 5 ; <unimplemented> MTYPE_IOPROC EQU 6 ; <unimplemented> MTYPE_APPWINDOW EQU 7 ; msg from an app window MTYPE_APPICON EQU 8 ; msg from an app icon MTYPE_APPMENUITEM EQU 9 ; msg from an app menuitem MTYPE_COPYEXIT EQU 10 ; exit message from copy process MTYPE_ICONPUT EQU 11 ; msg from PutDiskObject in icon.library * workbench does different complement modes for its gadgets. * It supports separate images, complement mode, and backfill mode. * The first two are identical to intuitions GADGIMAGE and GADGHCOMP. * backfill is similar to GADGHCOMP, but the region outside of the * image (which normally would be color three when complemented) * is flood-filled to color zero. * GADGBACKFILL EQU $0001 * if an icon does not really live anywhere, set its current position * to here * NO_ICON_POSITION EQU ($80000000) * workbench now is a library. this is it's name WORKBENCH_NAME MACRO dc.b 'workbench.library',0 ds.w 0 ENDM ; If you find am_Version >= AM_VERSION, you now this structure has ; at least the fields defined in this version of the include file AM_VERSION EQU 1 STRUCTURE AppMessage,0 STRUCT am_Message,MN_SIZE ; standard message structure UWORD am_Type ; message type ULONG am_UserData ; application specific ULONG am_ID ; application definable ID LONG am_NumArgs ; # of elements in arglist APTR am_ArgList ; the arguements themselves UWORD am_Version ; will be AM_VERSION UWORD am_Class ; message class WORD am_MouseX ; mouse x position of event WORD am_MouseY ; mount y position of event ULONG am_Seconds ; current system clock time ULONG am_Micros ; current system clock time STRUCT am_Reserved,8 ; avoid recompilation LABEL AppMessage_SIZEOF * * The following structures are private. These are just stub * structures for code compatibility... * STRUCTURE AppWindow,0 STRUCT aw_PRIVATE,0 LABEL AppWindow_SIZEOF STRUCTURE AppIcon,0 STRUCT ai_PRIVATE,0 LABEL AppIcon_SIZEOF STRUCTURE AppMenuItem,0 STRUCT ami_PRIVATE,0 LABEL AppMenuItem_SIZEOF ENDC ; WORKBENCH_WORKBENCH_I