See <workbench/workbench.h>:
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 */
};
/* definitions for dd_Flags */
#define DDFLAGS_SHOWMASK 0x00000003 /* show mode for drawers */
#define DDFLAGS_SHOWDEFAULT 0x00000000 /* default (inherit parent's show mode) */
#define DDFLAGS_SHOWICONS 0x00000001 /* show only icons */
#define DDFLAGS_SHOWALL 0x00000002 /* show all files */
struct DiskObject
{
UWORD do_Magic; /* 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;
STRPTR do_DefaultTool;
STRPTR * do_ToolTypes;
LONG do_CurrentX;
LONG do_CurrentY;
struct DrawerData * do_DrawerData;
STRPTR do_ToolWindow; /* only applies to tools */
LONG do_StackSize; /* only applies to tools */
};