home *** CD-ROM | disk | FTP | other *** search
- #ifndef WORKBENCH_WORKBENCH_H
- #define WORKBENCH_WORKBENCH_H
- /*
- ** $VER: workbench.h 40.1 (26.8.93)
- ** Includes Release 40.15
- **
- ** workbench.library general definitions
- **
- ** (C) Copyright 1985-1993 Commodore-Amiga, Inc.
- ** All Rights Reserved
- */
-
- #ifndef EXEC_TYPES_H
- #include "exec/types.h"
- #endif
-
- #ifndef EXEC_NODES_H
- #include "exec/nodes.h"
- #endif
-
- #ifndef EXEC_LISTS_H
- #include "exec/lists.h"
- #endif
-
- #ifndef EXEC_TASKS_H
- #include "exec/tasks.h"
- #endif
-
- #ifndef INTUITION_INTUITION_H
- #include "intuition/intuition.h"
- #endif
-
- #define WBDISK 1
- #define WBDRAWER 2
- #define WBTOOL 3
- #define WBPROJECT 4
- #define WBGARBAGE 5
- #define WBDEVICE 6
- #define WBKICK 7
- #define WBAPPICON 8
-
- struct OldDrawerData { /* pre V36 definition */
- struct NewWindow dd_NewWindow; /* args to open window */
- LONG dd_CurrentX; /* current x coordinate of origin */
- LONG dd_CurrentY; /* current y coordinate of origin */
- };
- /* the amount of DrawerData actually written to disk */
- #define OLDDRAWERDATAFILESIZE (sizeof(struct OldDrawerData))
-
- struct DrawerData {
- struct NewWindow dd_NewWindow; /* args to open window */
- LONG dd_CurrentX; /* current x coordinate of origin */
- LONG dd_CurrentY; /* current y coordinate of origin */
- ULONG dd_Flags; /* flags for drawer */
- UWORD dd_ViewModes; /* view mode for drawer */
- };
- /* the amount of DrawerData actually written to disk */
- #define DRAWERDATAFILESIZE (sizeof(struct DrawerData))
-
- struct DiskObject {
- UWORD do_Magic; /* a magic number at the start of the file */
- UWORD do_Version; /* a version number, so we can change it */
- struct Gadget do_Gadget; /* a copy of in core gadget */
- UBYTE do_Type;
- char * do_DefaultTool;
- char ** do_ToolTypes;
- LONG do_CurrentX;
- LONG do_CurrentY;
- struct DrawerData * do_DrawerData;
- char * do_ToolWindow; /* only applies to tools */
- LONG do_StackSize; /* only applies to tools */
-
- };
-
- #define WB_DISKMAGIC 0xe310 /* a magic number, not easily impersonated */
- #define WB_DISKVERSION 1 /* our current version number */
- #define WB_DISKREVISION 1 /* our current revision number */
- /* I only use the lower 8 bits of Gadget.UserData for the revision # */
- #define WB_DISKREVISIONMASK 255
-
- struct FreeList {
- WORD fl_NumFree;
- struct List fl_MemList;
- };
-
- /* workbench does different complement modes for its gadgets.
- ** It supports separate images, complement mode, and backfill mode.
- ** The first two are identical to intuitions GFLG_GADGIMAGE and GFLG_GADGHCOMP.
- ** backfill is similar to GFLG_GADGHCOMP, but the region outside of the
- ** image (which normally would be color three when complemented)
- ** is flood-filled to color zero.
- */
- #define GFLG_GADGBACKFILL 0x0001
- #define GADGBACKFILL 0x0001 /* an old synonym */
-
- /* if an icon does not really live anywhere, set its current position
- ** to here
- */
- #define NO_ICON_POSITION (0x80000000)
-
- /* workbench now is a library. this is it's name */
- #define WORKBENCH_NAME "workbench.library"
-
- /* If you find am_Version >= AM_VERSION, you know this structure has
- * at least the fields defined in this version of the include file
- */
- #define AM_VERSION 1
-
- struct AppMessage {
- struct Message am_Message; /* 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 */
- struct WBArg *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; /* mouse y position of event */
- ULONG am_Seconds; /* current system clock time */
- ULONG am_Micros; /* current system clock time */
- ULONG am_Reserved[8]; /* avoid recompilation */
- };
-
- /* types of app messages */
- #define AMTYPE_APPWINDOW 7 /* app window message */
- #define AMTYPE_APPICON 8 /* app icon message */
- #define AMTYPE_APPMENUITEM 9 /* app menu item message */
-
-
- /*
- * The following structures are private. These are just stub
- * structures for code compatibility...
- */
- struct AppWindow { void *aw_PRIVATE; };
- struct AppIcon { void *ai_PRIVATE; };
- struct AppMenuItem { void *ami_PRIVATE; };
-
- #endif /* !WORKBENCH_WORKBENCH_H */
-