{
	File:		PictUtil.p

	Contains:	The pascal interface file for the picture utilities package.

	Copyright:	© 1990 by Apple Computer, Inc., all rights reserved.

}


{$IFC UNDEFINED UsingIncludes}
{$SETC UsingIncludes := 0}
{$ENDC}

{$IFC NOT UsingIncludes}
	UNIT PictUtil;
	INTERFACE
{$ENDC}

{$IFC UNDEFINED UsingPictUtil}
{$SETC UsingPictUtil := 1}

{$I+}
{$SETC PictUtilIncludes := UsingIncludes}
{$SETC UsingIncludes := 1}
{$IFC UNDEFINED UsingTypes}
{$I $$Shell(PInterfaces)Types.p}
{$ENDC}
{$IFC UNDEFINED UsingQuickdraw}
{$I $$Shell(PInterfaces)Quickdraw.p}
{$ENDC}
{$IFC UNDEFINED UsingPalettes}
{$I $$Shell(PInterfaces)Palettes.p}
{$ENDC}
{$SETC UsingIncludes := PictUtilIncludes}


{----------------------------------------------------------------------------------------------------------}

CONST

{verbs for the GetPictInfo, GetPixMapInfo, and NewPictInfo calls}

returnColorTable		=  1;
returnPalette			=  2;
recordComments			=  4;
recordFontInfo			=  8;
suppressBlackAndWhite	= 16;


{color pick methods}

systemMethod			= 0;	{system color pick method}
popularMethod			= 1;	{method that chooses the most popular set of colors}
medianMethod			= 2;	{method that chooses a good average mix of colors}


{color bank types}

ColorBankIsCustom		= -1;
ColorBankIsExactAnd555	=  0;
ColorBankIs555			=  1;


{----------------------------------------------------------------------------------------------------------}

TYPE


PictInfoID = LONGINT;


CommentSpecHandle = ^CommentSpecPtr;
CommentSpecPtr = ^CommentSpec;
CommentSpec = RECORD
	count:				INTEGER;					{number of occurrances of this comment ID}
	ID:					INTEGER; 					{ID for the comment in the picture}
END;


FontSpecHandle = ^FontSpecPtr;
FontSpecPtr = ^FontSpec;
FontSpec = RECORD
	pictFontID:			INTEGER;					{ID of the font in the picture}
	sysFontID:			INTEGER; 					{ID of the same font in the current system file}
	size:				ARRAY [0..3] OF LONGINT;	{bit array of all the sizes found (1..127) (bit 0 means > 127)}
	style:				INTEGER; 					{combined style of all occurrances of the font}
	nameOffset:			LONGINT; 					{offset into the fontNamesHdl handle for the font’s name}
END;


PictInfoHandle = ^PictInfoPtr;
PictInfoPtr = ^PictInfo;
PictInfo = RECORD
	version:			INTEGER;					{this is always zero, for now}
	uniqueColors:		LONGINT;					{the number of actual colors in the picture(s)/pixmap(s)}
	thePalette:			PaletteHandle;				{handle to the palette information}
	theColorTable:		CTabHandle;					{handle to the color table}
	hRes:				Fixed;						{maximum horizontal resolution for all the pixmaps}
	vRes:				Fixed;						{maximum vertical resolution for all the pixmaps}
	depth:				INTEGER;					{maximum depth for all the pixmaps (in the picture)}
	sourceRect:			Rect;						{the picture frame rectangle (this contains the entire picture)}
	textCount:			LONGINT;					{total number of text strings in the picture}
	lineCount:			LONGINT;					{total number of lines in the picture}
	rectCount:			LONGINT;					{total number of rectangles in the picture}
	rRectCount:			LONGINT;					{total number of round rectangles in the picture}
	ovalCount:			LONGINT;					{total number of ovals in the picture}
	arcCount:			LONGINT;					{total number of arcs in the picture}
	polyCount:			LONGINT;					{total number of polygons in the picture}
	regionCount:		LONGINT;					{total number of regions in the picture}
	bitMapCount:		LONGINT;					{total number of bitmaps in the picture}
	pixMapCount:		LONGINT;					{total number of pixmaps in the picture}
	commentCount:		LONGINT;					{total number of comments in the picture}
	uniqueComments:		LONGINT;					{the number of unique comments in the picture}
	commentHandle:		CommentSpecHandle;			{handle to all the comment information}
	uniqueFonts:		LONGINT;					{the number of unique fonts in the picture}
	fontHandle:			FontSpecHandle;				{handle to the FontSpec information}
	fontNamesHandle:	Handle;						{handle to the font names}
	reserved1:			LONGINT;
	reserved2:			LONGINT;
END;


{----------------------------------------------------------------------------------------------------------}


FUNCTION GetPictInfo		(	thePictHandle:		PicHandle;
							VAR thePictInfo:		PictInfo;
								verb: 				INTEGER;
								colorsRequested:	INTEGER;
								colorPickMethod:	INTEGER;
								version: 			INTEGER
							): OSErr;	INLINE $303C,$0800,$A831;


FUNCTION GetPixMapInfo		(	thePixMapHandle:	PixMapHandle;
							VAR	thePictInfo:		PictInfo;
								verb:				INTEGER;
								colorsRequested:	INTEGER;
								colorPickMethod:	INTEGER;
								version:			INTEGER
							): OSErr;	INLINE $303C,$0801,$A831;


FUNCTION NewPictInfo		(VAR thePictInfoID:		PictInfoID;
								verb:				INTEGER;
								colorsRequested:	INTEGER;
								colorPickMethod:	INTEGER;
								version:			INTEGER
							): OSErr;	INLINE $303C,$0602,$A831;


FUNCTION RecordPictInfo		(	thePictInfoID:		PictInfoID;
								thePictHandle:		PicHandle
							): OSErr;	INLINE $303C,$0403,$A831;


FUNCTION RecordPixMapInfo	(	thePictInfoID:		PictInfoID;
								thePixMapHandle:	PixMapHandle
							): OSErr;	INLINE $303C,$0404,$A831;


FUNCTION RetrievePictInfo	(	thePictInfoID:		PictInfoID;
							VAR	thePictInfo:		PictInfo;
								colorsRequested:	INTEGER
							): OSErr;	INLINE $303C,$0505,$A831;


FUNCTION DisposPictInfo		(	thePictInfoID:		PictInfoID
							): OSErr;	INLINE $303C,$0206,$A831;


{----------------------------------------------------------------------------------------------------------}

{$ENDC}    { UsingPictUtil }

{$IFC NOT UsingIncludes}
	END.
{$ENDC}
