/*********************************************************/
/* This source code copyright (c) 1991-2001, Aaron Giles */
/* See the Read Me file for licensing information.       */
/* Contact email: mac@aarongiles.com                     */
/*********************************************************/

//=====================================================================================
// Generic includes for standard resource types
//=====================================================================================

#include "AEUserTermTypes.r"
#include "AppleEvents.r"
#include "AEObjects.r"
#include "AERegistry.r"

//=====================================================================================
// Includes specific to JPEGView
//=====================================================================================

#include "JPEGView.r.h"
#ifndef reserved
#define reserved false
#endif

//=====================================================================================
// The AppleEvent terminology extension (aete) resource
//=====================================================================================

resource 'aete' (0, purgeable) 
{
	0x01, 0x00, english, roman,
	{

//=====================================================================================
// Supported events from the Required Suite
//=====================================================================================

		"Required Suite", "Terms that every application should support",
		kAERequiredSuite, 1, 1,
		{
			"open", "Open the specified object(s)",
			kCoreEventClass, kAEOpenDocuments,
			noReply, "",
			replyOptional, singleItem, notEnumerated, res13,
			typeAlias, "list of objects to open",
			directParamRequired, listOfItems, notEnumerated, changesState, res12,
			{	// parameter extensions
				"on", keyOpenScreen,
				enumOpenScreen, "Monitor on which to open the documents",
				optional, singleItem, enumerated, res13,
				"using full screen", keyOpenFull,
				enumOpenFull, "Qualifications for using full screen windows",
				optional, singleItem, enumerated, res13,
				"expansion", keyAutoExpand,
				typeBoolean, "Expand small images to maximum size?",
				optional, singleItem, notEnumerated, res13,
				"visible", keyVisible,
				typeBoolean, "Make windows visible immediately?",
				optional, singleItem, notEnumerated, res13,
				"with colors", keyOpenPalette,
				enumOpenPalette, "Suggested palette use for new images",
				optional, singleItem, enumerated, res13,
				"with quality", keyOpenQuality,
				enumDrawQuality, "Scaling and dithering quality to use",
				optional, singleItem, enumerated, res13,
				"bitmaps", keyOpenBitmaps,
				typeBoolean, "Require an offscreen bitmap?",
				optional, singleItem, notEnumerated, res13,
				"comments", keyAutoComments,
				typeBoolean, "Show image comments if available?",
				optional, singleItem, notEnumerated, res13,
				"type fixing", keyFixTypes,
				typeBoolean, "Fix any incorrect file types?",
				optional, singleItem, notEnumerated, res13,
				"changing creators", keyChangeCreator,
				typeBoolean, "Change creator when fixing file types?",
				optional, singleItem, notEnumerated, res13,
				"no errors", keyNoErrors,
				typeBoolean, "Don't report errors directly to the user?",
				optional, singleItem, notEnumerated, res13
			},
		},
		{	// class extensions
		},
		{	// comparator extensions
		},
		{	// enumerator extensions
		},
	
//=====================================================================================
// Supported events from the Core Suite
//=====================================================================================

		"Standard Suite", "Common terms for most applications",
		'CoRe', 1, 1,
		{
			"close", "Close an object",
			kAECoreSuite, kAEClose,
			noReply, "", 
			replyOptional, singleItem, notEnumerated, res13,
			typeObjectSpecifier, "the object to close",
			directParamRequired, singleItem, notEnumerated, changesState, res12,
			{
				"saving", keyAESaveOptions,
				enumSaveOptions, "specifies whether changes should be saved before closing",
				optional, singleItem, enumerated, res13,
				"saving in", keyAEFile,
				typeAlias, "the file in which to save the object",
				optional, singleItem, notEnumerated, res13,
				"restore colors", keyRestoreColors,
				typeBoolean, "specifies whether to restore system colors if closing last document",
				optional, singleItem, notEnumerated, res13
			},

			"count", "Return the number of elements of a particular class within an object",
			kAECoreSuite, kAECountElements,
			typeLongInteger, "the number of elements",
			replyRequired, singleItem, notEnumerated, res13,
			typeObjectSpecifier, "the object whose elements are to be counted",
			directParamRequired, singleItem, notEnumerated, doesntChangeState, res12,
			{
				"each", keyAEObjectClass,
				typeType, "the class of the elements to be counted.",
				required, singleItem, notEnumerated, res13
			},

			"data size", "Return the size in bytes of an object",
			kAECoreSuite, kAEGetDataSize,
			typeLongInteger, "the size of the object in bytes",
			replyRequired, singleItem, notEnumerated, res13,
			typeObjectSpecifier, "the object whose data size is to be returned",
			directParamRequired, singleItem, notEnumerated, doesntChangeState, res12,
			{
				"as", keyAERequestedType,
				typeType, "the data type for which the size is calculated",
				optional, singleItem, notEnumerated, res13
			},

			"delete", "Delete an element from an object",
			kAECoreSuite, kAEDelete,
			noReply, "",
			replyOptional, singleItem, notEnumerated, res13,
			typeObjectSpecifier, "the element to delete",
			directParamRequired, singleItem, notEnumerated, changesState, res12,
			{
			},

			"duplicate", "Duplicate object(s)",
			kAECoreSuite, kAEClone,
			typeObjectSpecifier, "to the duplicated object(s)",
			replyRequired, singleItem, notEnumerated, res13,
			typeObjectSpecifier, "the object(s) to duplicate",
			directParamRequired, singleItem, notEnumerated, changesState, res12,
			{
				"to", keyAEInsertHere,
				typeInsertionLoc, "the new location for the object(s)",
				optional, singleItem, notEnumerated, res13,
				"visible", keyVisible,
				typeBoolean, "specifies whether the duplicated object(s) should be made visible",
				optional, singleItem, notEnumerated, res13
			},

			"exists", "Verify if an object exists",
			kAECoreSuite, kAEDoObjectsExist,
			typeBoolean, "true if it exists, false if not",
			replyRequired, singleItem, notEnumerated, res13,
			typeObjectSpecifier, "the object in question",
			directParamRequired, singleItem, notEnumerated, doesntChangeState, res12,
			{
			},

			"get", "Get the data for an object",
			kAECoreSuite, kAEGetData,
			typeWildCard, "The data from the object",
			replyRequired, singleItem, notEnumerated, res13,
			typeObjectSpecifier, "the object whose data is to be returned",
			directParamRequired, singleItem, notEnumerated, doesntChangeState, res12,
			{
				"as", keyAERequestedType,
				typeType, "the desired types for the data, in order of preference",
				optional, listOfItems, notEnumerated, res13
			},

			"make", "Make a new element",
			kAECoreSuite, kAECreateElement,
			typeObjectSpecifier, "to the new object(s)",
			replyRequired, singleItem, notEnumerated, res13,
			noParams, "", 
			directParamOptional, singleItem, notEnumerated, changesState, res12,
			{
				"new", keyAEObjectClass,
				typeType, "the class of the new element.",
				required, singleItem, notEnumerated, res13,
				"at", keyAEInsertHere,
				typeInsertionLoc, "the location at which to insert the element",
				required, singleItem, notEnumerated, res13,
				"with data", keyAEData,
				typeWildCard, "the initial data for the element",
				optional, singleItem, notEnumerated, res13,
				"with properties", keyAEPropData,
				typeAERecord, "the initial values for the properties of the element",
				optional, singleItem, notEnumerated, res13
			},

			"move", "Move object(s) to a new location",
			kAECoreSuite, kAEMove,
			typeObjectSpecifier, "to the object(s) after they have been moved",
			replyRequired, singleItem, notEnumerated, res13,
			typeObjectSpecifier, "the object(s) to move",
			directParamRequired, singleItem, notEnumerated, changesState, res12,
			{
				"to", keyAEInsertHere,
				typeInsertionLoc, "the new location for the object(s)",
				required, singleItem, notEnumerated, res13
			},

			"save", "Save an object",
			kAECoreSuite, kAESave,
			noReply, "",
			replyOptional, singleItem, notEnumerated, res13,
			typeObjectSpecifier, "the object to save",
			directParamRequired, singleItem, notEnumerated, changesState, res12,
			{
				"in", keyAEFile,
				typeAlias, "the file in which to save the object",
				optional, singleItem, notEnumerated, res13,
				"as", keyAEFileType,
				typeType, "the file type of the document in which to save the data",
				optional, singleItem, notEnumerated, res13,
				"preview", keyCreatePreview,
				typeBoolean, "specifies whether to save a preview of the document",
				optional, singleItem, notEnumerated, res13,
				"reduced colors", keySaveQuant,
				typeBoolean, "specifies whether to save a reduced color set with the document",
				optional, singleItem, notEnumerated, res13,
				"icons", keyMakeIcons,
				typeBoolean, "specifies whether to create custom icons for the document",
				optional, singleItem, notEnumerated, res13
			},

			"set", "Set an objectÕs data",
			kAECoreSuite, kAESetData,
			noReply, "",
			replyOptional, singleItem, notEnumerated, res13,
			typeObjectSpecifier, "the object to change",
			directParamRequired, singleItem, notEnumerated, changesState, res12,
			{
				"to", keyAEData,
				typeWildCard, "the new value",
				required, singleItem, notEnumerated, res13
			}
		},

//=====================================================================================
// Supported classes from the Core Suite
//=====================================================================================

		{
			"application", cApplication, "An application program",
			{
				"clipboard", pClipboard,
				typeWildCard, "the clipboard",
				reserved, listOfItems, notEnumerated, readOnly, res12,
				"frontmost", pIsFrontProcess,
				typeBoolean, "Is this the frontmost application?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"name", pName,
				typeIntlText, "the name",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"selection", pSelection,
				cSelection, "the selection visible to the user",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"version", pVersion,
				typeLongInteger, "the version of the application",
				reserved, singleItem, notEnumerated, readOnly, res12
			},
			{
				cWindow, { formAbsolutePosition, formName },
				cDocument, { formAbsolutePosition, formName }
			},
			"applications", cApplication, "Every application",
			{
				"class attributes", kAESpecialClassProperties,
				typeType, "special class attributes",
				reserved, singleItem, notEnumerated, readOnly, res9,
				notFeminine, notMasculine, plural
			},
			{ },

			"document", cDocument, "A document",
			{
				"modified", pIsModified,
				typeBoolean, "Has the document been modified since the last save?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"name", pName,
				cIntlText, "the name",
				reserved, singleItem, notEnumerated, readWrite, res12,
				"selection", pSelection,
				cSelection, "the selection visible to the user",
				reserved, singleItem, notEnumerated, readOnly, res12
			},
			{
				cImage, { formAbsolutePosition },
				cFile, { formAbsolutePosition }
			},
			"documents", cDocument, "Every document",
			{
				"class attributes", kAESpecialClassProperties,
				typeType, "special class attributes",
				reserved, singleItem, notEnumerated, readOnly, res9,
				notFeminine, notMasculine, plural
			},
			{ },
			
			"file", cFile, "A file",
			{
				"stationery", pIsStationeryPad,
				cBoolean, "Is the file a stationery file?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"name", pName,
				cIntlText, "the name",
				reserved, singleItem, notEnumerated, readWrite, res12
			},
			{
				cImage, { formAbsolutePosition }
			},
			"files", cFile, "Every file",
			{
				"class attributes", kAESpecialClassProperties,
				typeType, "special class attributes",
				reserved, singleItem, notEnumerated, readOnly, res9,
				notFeminine, notMasculine, plural
			},
			{ },
			
			"selection-object", cSelection, "the selection visible to the user",
			{
				"bounds", pBounds, cQDRectangle, "the bounding rectangle of the selection",
				reserved, singleItem, notEnumerated, readWrite, res12
			},
			{ },
			
			"window", cWindow, "A window",
			{
				"bounds", pBounds,
				cQDRectangle, "the boundary rectangle for the window",
				reserved, singleItem, notEnumerated, readWrite, res12,
				"closeable", pHasCloseBox,
				typeBoolean, "Does the window have a close box?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"titled", pHasTitleBar,
				typeBoolean, "Does the window have a title bar?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"index", pIndex,
				typeLongInteger, "the number of the window",
				reserved, singleItem, notEnumerated, readWrite, res12,
				"floating", pIsFloating,
				typeBoolean, "Does the window float?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"modal", pIsModal,
				typeBoolean, "Is the window modal?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"resizable", pIsResizable,
				typeBoolean, "Is the window resizable?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"zoomable", pIsZoomable,
				typeBoolean, "Is the window zoomable?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"zoomed", pIsZoomed,
				typeBoolean, "Is the window zoomed?",
				reserved, singleItem, notEnumerated, readWrite, res12,
				"name", pName,
				cIntlText, "the title of the window",
				reserved, singleItem, notEnumerated, readWrite, res12,
				"selection", pSelection,
				cSelection, "the selection visible to the user",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"visible", pVisible,
				typeBoolean, "Is the window visible?",
				reserved, singleItem, notEnumerated, readWrite, res12,
				"full screen", pFullScreen,
				cBoolean, "Is the window full-screen?",
				reserved, singleItem, notEnumerated, readWrite, res12,
				"contents", pWindowType, 
				enumWindowType, "the contents of the window",
				reserved, singleItem, enumerated, readOnly, res12
			},
			{
				cDocument, { formAbsolutePosition },
				cDrawingArea, { formAbsolutePosition }
			},
			"windows", cWindow, "Every window",
			{
				"class attributes", kAESpecialClassProperties,
				typeType, "special class attributes",
				reserved, singleItem, notEnumerated, readOnly, res9,
				notFeminine, notMasculine, plural
			},
			{ },
			
			"insertion point", cInsertionLoc, "An insertion location",
			{ },
			{ },
			"insertion points", cInsertionLoc, "Every insertion location",
			{
				"class attributes", kAESpecialClassProperties,
				typeType, "special class attributes",
				reserved, singleItem, notEnumerated, readOnly, res9,
				notFeminine, notMasculine, plural,
			},
			{ }
		},
		{ },

//=====================================================================================
// Supported enumerators from the Core Suite
//=====================================================================================

		{
			enumSaveOptions,
			{
				"yes", kAEYes, "Save objects now",
				"no", kAENo, "Do not save objects",
				"ask", kAEAsk, "Ask the user whether to save"
			},

			enumKeyForm,
			{
				"index", formAbsolutePosition, "keyform designating indexed access",
				"named", formName, "keyform designating named access"
			},

			enumWindowType,
			{
				"image", kAEWTImage, "an image window",
				"full screen image", kAEWTFullImage, "a full screen image window",
				"statistics", kAEWTStatistics, "the statistics floating window",
				"image comments", kAEWTComments, "the comments floating window",
				"image colors", kAEWTColors, "the colors floating window",
				"help text", kAEWTHelp, "the help window",
				"slide show options", kAEWTSlideShow, "the slide show options dialog",
				"preferences", kAEWTPreferences, "the preferences dialog",
				"about box", kAEWTAbout, "the about box",
				"slide show controls", kAEWTSlideControls, "the slide show controls floating window",
				"about help", kAEWTAboutHelp, "the about JPEGView help window"
			},
			
			enumOpenScreen,
			{
				"deepest color", kAEOSDeepestColor, "deepest color monitor",
				"deepest grayscale", kAEOSDeepestGray, "deepest grayscale monitor",
				"largest color", kAEOSLargestColor, "largest color monitor",
				"largest grayscale", kAEOSLargestGray, "largest grayscale monitor",
				"main", kAEOSMain, "main (menubar) monitor"
			},
			
			enumOpenFull,
			{
				"always", kAEOFAlways, "Always use full screen windows",
				"always if large", kAEOFAlwaysIfLarge, 
					"Use full screen windows for large images",
				"on request if large", kAEOFAskIfLarge, 
					"Ask to use full screen windows for large images",
				"never", kAEOFNever, "Never use full screen windows"
			},
			
			enumOpenPalette,
			{
				"image or reduced or system", kAEOPImageQuantScrn,
					"Try image colors, then reduced colors, then current colors",
				"reduced or image or system", kAEOPQuantImageScrn,
					"Try reduced colors, then image colors, then current colors",
				"image or system", kAEOPImageScrn,
					"Try image colors, then current colors",
				"reduced or system", kAEOPQuantScrn,
					"Try reduced colors, then current colors",
				"system", kAEOPScrn, "Use only current colors"
			}
		},
		
//=====================================================================================
// Supported classes from the QuickDraw Graphics Suite
//=====================================================================================

		"QuickDraw Graphics Suite", "A set of basic classes for graphics",
		'QdRw', 1, 1,
		{ }, // events
		{	// classes
			"drawing area", cDrawingArea, "A drawing area",
			{
				"bounds", pBounds,
				cQDRectangle, "the rectangle that contains the drawing area",
				reserved, singleItem, notEnumerated, readWrite, res12,
				"colors", pPalette,
				enumPalette, "the current color set",
				reserved, singleItem, enumerated, readWrite, res12,
				"color table", pColorTable,
				cColorTable, "the color table",
				reserved, singleItem, notEnumerated, readWrite, res12,
				"scale", pScale,
				typeShortInteger, "the default scaling for objects in the drawing area (in percent)",
				reserved, singleItem, notEnumerated, readWrite, res12,
				"quality", pDrawQuality,
				enumDrawQuality, "the scaling and dithering quality",
				reserved, singleItem, enumerated, readWrite, res12,
				"transfer mode", pTransferMode,
				enumTransferMode, "the transfer mode",
				reserved, singleItem, notEnumerated, readWrite, res12
			},
			{
				cImage, { formAbsolutePosition }
			},
			"drawing areas", cDrawingArea, "Every drawing area",
			{
				"", kAESpecialClassProperties,
				typeType, "",
				reserved, singleItem, notEnumerated, readOnly, res9,
				notFeminine, notMasculine, plural
			},
			{ },

			"pixel map", cPixelMap, "A pixel map",
			{
				"bounds", pBounds,
				cQDRectangle, "the smallest rectangle that contains the pixel map",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"pixel depth", pPixelDepth,
				cShortInteger, "bits per pixel",
				reserved, singleItem, notEnumerated, readOnly, res12
			},
			{ },
			"pixel maps", cPixelMap, "Every pixel map",
			{
				"", kAESpecialClassProperties,
				typeType, "",
				reserved, singleItem, notEnumerated, readOnly, res9,
				notFeminine, notMasculine, plural
			},
			{ }
		},
		{ }, // comparators

//=====================================================================================
// Supported enumerators from the QuickDraw Graphics Suite
//=====================================================================================

		{	// enumerators
			enumTransferMode,
			{
				"no dithering", kAEQDCopy, "",
				"dithering", kAEQDDitherCopy, ""
			},
			
			enumPalette,
			{
				"system colors", kAEPSystem, "The usual system colors",
				"grayscales", kAEPGrayscale, "Evenly-spaced levels of gray",
				"image colors", kAEPImage, "The imageÕs internally-defined colors",
				"two pass color reduction", kAEPQuantized, "Two-pass color reduction"
			},
			
			enumDrawQuality,
			{
				"very high", kAEDQVeryHigh, "High-quality scaling and dithering",
				"high", kAEDQHigh, "High-quality dithering with fast scaling",
				"normal", kAEDQNormal, "AppleÕs built-in dithering and scaling"
			}
		},
			
//=====================================================================================
// Supported events from the Miscellaneous Standards Suite
//=====================================================================================

		"Miscellaneous Standards Suite", "Miscellaneous standard events and classes",
		'MiSc', 1, 1,
		{ // events
			"copy", "Copy the current selection to the clipboard",
			kAEMiscStandards, kAECopy,
			noReply, "",
			replyOptional, singleItem, notEnumerated, res13,
			noParams, "",
			directParamOptional, singleItem, notEnumerated, doesntChangeState, res12,
			{
			}
		},
		{ }, // classes
		{ }, // comparators
		{ }, // enumerators

//=====================================================================================
// Supported events from the JPEGView Suite
//=====================================================================================

		"JPEGView Suite", "Terms specific to JPEGView",
		kJPEGViewSuite, 1, 1,
		{ // events
			"reduce", "Reduce an image to a given number of colors",
			kJPEGViewSuite, kAEQuantizeImage,
			typeColorTable, "The reduced color table",
			replyRequired, singleItem, notEnumerated, res13,
			typeObjectSpecifier, "The image to be reduced",
			directParamRequired, singleItem, notEnumerated, changesState, res12,
			{
				"to", keyColorCount,
				typeLongInteger, "The number of colors to reduce to",
				required, singleItem, notEnumerated, res13
			},

			"slide show", "Set up and begin a JPEGView slide show",
			kJPEGViewSuite, kAESlideShow,
			noReply, "",
			replyOptional, singleItem, notEnumerated, res13,
			typeAlias, "List of documents to be used or searched",
			directParamRequired, listOfItems, notEnumerated, changesState, res12,
			{
				"with delay", keyDelay,
				typeLongInteger, "the delay between successive images",
				optional, singleItem, notEnumerated, res13,
				"filenames", keyFilenames,
				typeBoolean, "Display the filename of each image?",
				optional, singleItem, notEnumerated, res13,
				"images from disk", keyFromDisk,
				typeBoolean, "Create slide show from images on disk?",
				optional, singleItem, notEnumerated, res13,
				"no errors", keyIgnoreErrors,
				typeBoolean, "Ignore minor errors?",
				optional, singleItem, notEnumerated, res13,
				"importing", keyImportFiles,
				typeBoolean, "Import unrecognized files?",
				optional, singleItem, notEnumerated, res13,
				"shuffling", keyRandom,
				typeBoolean, "Display in random order?",
				optional, singleItem, notEnumerated, res13,
				"looping", keyRepeat,
				typeBoolean, "Repeat the show indefinitely?",
				optional, singleItem, notEnumerated, res13,
				"recursive scan", keyScanRecursive,
				typeBoolean, "Scan subfolders recursively?",
				optional, singleItem, notEnumerated, res13,
				"user control", keyUserControl,
				typeBoolean, "Operate under user control?",
				optional, singleItem, notEnumerated, res13,
				"offscreen drawing", keyOffscreen,
				typeBoolean, "Render offscreen before display?",
				optional, singleItem, notEnumerated, res13,
				"auto comments", keyAutoComments,
				typeBoolean, "Show image comments if available?",
				optional, singleItem, notEnumerated, res13,
				"hidden windoids", keyHideWindoids,
				typeBoolean, "Hide the windoids?",
				optional, singleItem, notEnumerated, res13,
				"screen saver", keyScreenSaver,
				typeBoolean, "Abort like a screen saver?",
				optional, singleItem, notEnumerated, res13,
				"hidden controls", keyHideControls,
				typeBoolean, "Keep slide show controls hidden?",
				optional, singleItem, notEnumerated, res13
			}
		},

//=====================================================================================
// Supported classes from the JPEGView Suite
//=====================================================================================

		{	// classes
			"image", cImage, "An image graphic",
			{	// properties
				"", kAESpecialClassProperties,
				typeType, "",
				reserved, singleItem, notEnumerated, readOnly, res9,
				notFeminine, notMasculine, plural,
				"bounds", pBounds,
				cQDRectangle, "the boundary rectangle for the image",
				reserved, singleItem, notEnumerated, readWrite, res12,
				"comments", pComments,
				cIntlText, "the comments specified with the image",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"display time", pDisplayTime,
				cLongInteger, "the time to decompress and display the image, in milliseconds",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"format", pImageFormat,
				cType, "the file format of the image",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"compression", pCompression,
				cType, "the type of compression used on the image",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"has image colors", pHasImageColorTable,
				cBoolean, "Does the image have a color table?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"has reduced colors", pHasQuantColorTable,
				cBoolean, "Does the image have a reduced color table?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"image colors", pImageColorTable,
				cColorTable, "the imageÕs internal color table",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"compressed", pIsCompressed,
				cBoolean, "Was the image compressed?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"aborted", pIsAborted,
				cBoolean, "Was the drawing of the image aborted?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"banded", pIsBanded,
				cBoolean, "Is the image banded?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"corrupt", pIsCorrupt,
				cBoolean, "Is the image corrupt?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"cropped", pIsCropped,
				cBoolean, "Is the image cropped?",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"original bounds",
				pOriginalBounds, cQDRectangle, "the original bounds of the full image",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"pixel depth", pPixelDepth,
				cShortInteger, "bits per pixel",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"reduced colors", pQuantColorTable,
				cColorTable, "the imageÕs reduced color table",
				reserved, singleItem, notEnumerated, readOnly, res12,
				"length", pLength,
				cLongInteger, "the length of the image data, in bytes",
				reserved, singleItem, notEnumerated, readOnly, res12
			},
			{	// elements
				cPixelMap,
				{ formAbsolutePosition }
			},
			"images", cImage, "Every image graphic",
			{	// properties
				"", kAESpecialClassProperties,
				typeType, "",
				reserved, singleItem, notEnumerated, readOnly, res9,
				notFeminine, notMasculine, plural
			},
			{ },

			"picture", 'PICT', "An image in PICT format",
			{ }, // properties
			{ }, // elements

			"JFIF", 'JPEG', "An image in JFIF format",
			{ }, // properties
			{ }, // elements

			"GIF", 'GIFf', "An image in GIF format",
			{ }, // properties
			{ }, // elements

			"startup screen", 'SCRN', "An image in startup screen format",
			{ }, // properties
			{ }, // elements
			
			"TIFF", 'TIFF', "An image in TIFF format",
			{ }, // properties
			{ }, // elements
			
			"BMP", 'BMPp', "An image in BMP format",
			{ }, // properties
			{ }, // elements
			
			"MacPaint", 'PNTG', "An image in MacPaint format",
			{ }, // properties
			{ }, // elements
			
		},
		{ }, // comparators
		{ } // enumerators
	}
};
