/*
 * File Memory.r
 *
 * Copyright Apple Computer, Inc. 1985-1987
 * All rights reserved.
 *
 * Sample desk accessory resource file.
 * This incorporates the DRVR header information (defined here)
 * with the linked code (stored as a 'DRVW' resource in the link command)
 */

#include "Types.r"				/* To get system types */
#include "MPWTypes.r"			/* To get 'DRVW' type */

#define DriverID	12

#ifdef NOASM_BUILD
/*
 * This will produce a DRVR resource from the special DRVW type.
 *
 * Note that the ID 12 is irrelevant, since the Font/DA Mover
 * will renumber it to something else when installing it anyway.
 *
 * The leading NUL in the resource name is required to
 * conform to the desk accessory naming convention.
 *
 * The resource is declared purgeable.	If the code were to
 * do funky things like SetTrapAddress calls (requiring the code to
 * be around at all times), we would have to set it nonpurgeable.
 */

type 'DRVR' as 'DRVW';			/* Map 'DRVW' => 'DRVR' */

resource 'DRVR' (DriverID, "\0x00Memory", purgeable) {
	/*
	 * DRVR flags
	 */
	dontNeedLock,			/* OK to float around, not saving ProcPtrs */
	needTime,				/* Yes, give us periodic Control calls */
	dontNeedGoodbye,		/* No special requirements */
	noStatusEnable,
	ctlEnable,				/* Desk accessories only do Control calls */
	noWriteEnable,
	noReadEnable,
	5*60,					/* drvrDelay - Wake up every 5 seconds */
	updateMask, 			/* drvrEMask - This DA only handles update events */
	0,						/* drvrMenu - This DA has no menu */
	"Memory",				/* drvrName - This isn't used by the DA */
	/*
	 * This directive inserts the contents of the DRVW resource
	 * produced by linking DRVRRuntime.o with our DA code
	 */
	$$resource("Memory.DRVW", 'DRVW', 0)
};
#endif

/*
 * Since desk accessories cannot use global data (and the C compiler
 * considers string constants to be global data) and we really don't
 * want to hard-code strings in our source, the strings used by the 
 * DA are stored in the resource file. Note the expression used to
 * figure out the resource id.
 */

resource 'STR#' (0xC000 | (DriverID << 5), "Memory's Strings") {
	{
		"AppHeap: ";
		"  SysHeap: ";
		"  Disk: ";
		" free on "
	};
};


resource 'WIND' (0xC000 | (DriverID << 5), "Memory's Window") {
	{322, 10, 338, 500},
	noGrowDocProc,
	visible,
	goAway,
	0x0,
	"Free Memory (# Bytes)"
};
