#ifdef __PRIVATE__
//#
//#	File:		Canvas.idl
//#
//#	Contains:	ODCanvas, a Macintosh drawing environment
//#
//#	Written by:	Jens Alfke
//#
//#	Copyright:	c 1994 by Apple Computer, Inc., all rights reserved.
//#
//#	Change History (most recent first):
//#
//#		 <3>	 8/17/94	jpa		Added "functionprefix" directive. [1181512]
//#		 <2>	  8/8/94	jpa		API changes for multiformat canvases & bias
//#									transforms [1179683, 1178688]
//#		<10>	  6/7/94	RR		Privatize change history
//#		 <9>	 5/26/94	jpa		Moved methods to CanvasB.idl.
//#		 <8>	  5/4/94	RR		Comment out union for now
//#
//#	To Do:
//#
#else
//#	Copyright:	c 1993-1994 by Apple Computer, Inc., all rights reserved.
#endif

#ifndef _CANVAS_
#define _CANVAS_

#ifndef _CANVASB_
#include "CanvasB.idl"      // base class
#endif

//==============================================================================
// Mac OS types used in this interface
//==============================================================================

/*
#pragma somemittypes off
*/

typedef unsigned long GrafPtr;		//# C definition is in <QuickDraw.h>

/*
#pragma somemittypes on
*/

//==============================================================================
// Classes defined in this interface
//==============================================================================

interface  ODCanvas;

//==============================================================================
// ODCanvas
//==============================================================================

interface ODCanvas :  ODBaseCanvas
{
	void InitCanvas(in ODGraphicsSystem graphicsSystem,
					in ODPlatformCanvas	platformCanvas,
					in ODBoolean isDynamic,
					in ODBoolean isOffscreen);
	
#ifdef PLATFORM_MACINTOSH
	GrafPtr				GetQDPort( );
	
	ODPlatformCanvas	GetGXViewport( );	//# Really a gxViewport; see <graphics types.h>
#endif
	ODBoolean			IsCacheDC( );



#ifdef __SOMIDL__
  implementation
  {
	majorversion = 1; minorversion = 0;
		
    releaseorder:
		InitCanvas,
#ifdef PLATFORM_MACINTOSH
		GetQDPort,
		GetGXViewport;
#endif
		IsCacheDC;

	
	override:
		HasPlatformCanvas,
		GetPlatformCanvas,
		ReleasePlatformCanvas;
#ifdef PLATFORM_MACINTOSH
		SetPlatformCanvas;
#endif

	functionprefix = ODCanvas;
		
	#ifdef __PRIVATE__
#ifdef PLATFORM_MACINTOSH
		ODPlatformCanvas	fQDCanvas;
		ODPlatformCanvas	fGXCanvas;
#endif
		ODPlatformCanvas	fPlatformCanvas;
		ODBoolean			fIsCacheDC;
	#endif
  };
#endif
};

#endif //# _CANVAS_
