
/*
 * This file was generated by the SOM Compiler.
 * FileName: \odwin\h\CANVAS.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.3
 *     SOM Emitter emith.dll: 2.41
 */

/*
 * 
 *  Mac OS types used in this interface
 * 
 * 
 * #pragma somemittypes off
 */


#ifndef SOM_ODCanvas_h
#define SOM_ODCanvas_h


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))



/*
 * Define class data structures as resolution macros
 */
#define ODCanvasClassData (*resolve_ODCanvasClassData())
#define ODCanvasCClassData (*resolve_ODCanvasCClassData())

/*
 * Define the class name as an object type
 */
#ifndef ODCanvas
#define ODCanvas SOMObject
#endif
#include <CanvasB.h>

/*
 * Start of user-defined types:
 */
#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef ODObject
    #define ODObject SOMObject
#endif /* ODObject */
#ifndef ODExtension
    #define ODExtension SOMObject
#endif /* ODExtension */
#ifndef ODBaseCanvas
    #define ODBaseCanvas SOMObject
#endif /* ODBaseCanvas */
#ifndef ODPart
    #define ODPart SOMObject
#endif /* ODPart */
#ifndef ODFacet
    #define ODFacet SOMObject
#endif /* ODFacet */
#ifndef ODShape
    #define ODShape SOMObject
#endif /* ODShape */
#ifndef ODTransform
    #define ODTransform SOMObject
#endif /* ODTransform */
#ifndef ODCanvas
    #define ODCanvas SOMObject
#endif /* ODCanvas */

/*
 * End of user-defined types.
 */

#define ODCanvas_MajorVersion 1
#define ODCanvas_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODCanvasNewClass c
#define ODCanvasClassData d
#define ODCanvasCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODCanvas_classObj ODCanvasClassData.classObject
#define _ODCanvas ODCanvas_classObj

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOMClass * SOMLINK ODCanvasNewClass(integer4 somntmajorVersion,
		integer4 somntminorVersion);

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODCanvasClassDataStructure {
	SOMClass *classObject;
	somMToken InitCanvas;
	somMToken IsCacheDC;
}  _ODCanvasClassData;
SOMEXTERN struct ODCanvasClassDataStructure * SOMLINK resolve_ODCanvasClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODCanvasCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODCanvasCClassData;
SOMEXTERN struct ODCanvasCClassDataStructure * SOMLINK resolve_ODCanvasCClassData(void);

/*
 * New and Renew macros for ODCanvas
 */
#define ODCanvasNew() \
   (_somNew(_ODCanvas ? _ODCanvas : ODCanvasNewClass(ODCanvas_MajorVersion, ODCanvas_MinorVersion)))
#define ODCanvasRenew(buf) \
   (_somRenew(_ODCanvas ? _ODCanvas : ODCanvasNewClass(ODCanvas_MajorVersion, ODCanvas_MinorVersion), buf))

/*
 * Override method: HasPlatformCanvas
 */
#define ODCanvas_HasPlatformCanvas(somSelf,ev,g) \
	ODBaseCanvas_HasPlatformCanvas(somSelf,ev,g)

/*
 * Override method: GetPlatformCanvas
 */
#define ODCanvas_GetPlatformCanvas(somSelf,ev,g) \
	ODBaseCanvas_GetPlatformCanvas(somSelf,ev,g)

/*
 * Override method: ReleasePlatformCanvas
 */
#define ODCanvas_ReleasePlatformCanvas(somSelf,ev) \
	ODBaseCanvas_ReleasePlatformCanvas(somSelf,ev)

/*
 * New Method: InitCanvas
 */
typedef void   (SOMLINK * somTD_ODCanvas_InitCanvas)(ODCanvas *somSelf, Environment *ev,
		ODGraphicsSystem graphicsSystem,
		ODPlatformCanvas platformCanvas,
		ODBoolean isDynamic,
		ODBoolean isOffscreen);
#define somMD_ODCanvas_InitCanvas "::ODCanvas::InitCanvas"
#define ODCanvas_InitCanvas(somSelf,ev,graphicsSystem,platformCanvas,isDynamic,isOffscreen) \
    (SOM_Resolve(somSelf, ODCanvas, InitCanvas) \
	(somSelf,ev,graphicsSystem,platformCanvas,isDynamic,isOffscreen))
#ifndef SOMGD_InitCanvas
    #if (defined(_InitCanvas) || defined(__InitCanvas))
        #undef _InitCanvas
        #undef __InitCanvas
        #define SOMGD_InitCanvas 1
    #else
        #define _InitCanvas ODCanvas_InitCanvas
    #endif /* _InitCanvas */
#endif /* SOMGD_InitCanvas */

/*
 * New Method: IsCacheDC
 */
typedef ODBoolean   (SOMLINK * somTD_ODCanvas_IsCacheDC)(ODCanvas *somSelf, Environment *ev);
#define somMD_ODCanvas_IsCacheDC "::ODCanvas::IsCacheDC"
#define ODCanvas_IsCacheDC(somSelf,ev) \
    (SOM_Resolve(somSelf, ODCanvas, IsCacheDC) \
	(somSelf,ev))
#ifndef SOMGD_IsCacheDC
    #if (defined(_IsCacheDC) || defined(__IsCacheDC))
        #undef _IsCacheDC
        #undef __IsCacheDC
        #define SOMGD_IsCacheDC 1
    #else
        #define _IsCacheDC ODCanvas_IsCacheDC
    #endif /* _IsCacheDC */
#endif /* SOMGD_IsCacheDC */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODCanvas_HasPlatformPrintJob ODBaseCanvas_HasPlatformPrintJob
#define ODCanvas_GetPlatformPrintJob ODBaseCanvas_GetPlatformPrintJob
#define ODCanvas_SetPlatformPrintJob ODBaseCanvas_SetPlatformPrintJob
#define ODCanvas_GetOwner ODBaseCanvas_GetOwner
#define ODCanvas_SetOwner ODBaseCanvas_SetOwner
#define ODCanvas_GetFacet ODBaseCanvas_GetFacet
#define ODCanvas_SetFacet ODBaseCanvas_SetFacet
#define ODCanvas_GetBiasTransform ODBaseCanvas_GetBiasTransform
#define ODCanvas_SetBiasTransform ODBaseCanvas_SetBiasTransform
#define ODCanvas_IsDynamic ODBaseCanvas_IsDynamic
#define ODCanvas_IsOffscreen ODBaseCanvas_IsOffscreen
#define ODCanvas_IncrementCanvasRef ODBaseCanvas_IncrementCanvasRef
#define ODCanvas_DecrementCanvasRef ODBaseCanvas_DecrementCanvasRef
#define ODCanvas_GetCanvasRef ODBaseCanvas_GetCanvasRef
#define ODCanvas_GetUpdateShape ODBaseCanvas_GetUpdateShape
#define ODCanvas_ResetUpdateShape ODBaseCanvas_ResetUpdateShape
#define ODCanvas_CheckUpdateShape ODBaseCanvas_CheckUpdateShape
#define ODCanvas_Invalidate ODBaseCanvas_Invalidate
#define ODCanvas_Validate ODBaseCanvas_Validate
#define ODCanvas_InitBaseCanvas ODBaseCanvas_InitBaseCanvas
#define ODCanvas_InitObject ODObject_InitObject
#define ODCanvas_IsInitialized ODObject_IsInitialized
#define ODCanvas_HasExtension ODObject_HasExtension
#define ODCanvas_GetExtension ODObject_GetExtension
#define ODCanvas_ReleaseExtension ODObject_ReleaseExtension
#define ODCanvas_Purge ODObject_Purge
#define ODCanvas_IsEqualTo ODObject_IsEqualTo
#define ODCanvas_SubClassResponsibility ODObject_SubClassResponsibility
#define ODCanvas_somDefaultInit SOMObject_somDefaultInit
#define ODCanvas_somDestruct SOMObject_somDestruct
#define ODCanvas_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODCanvas_somDefaultAssign SOMObject_somDefaultAssign
#define ODCanvas_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODCanvas_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODCanvas_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODCanvas_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODCanvas_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODCanvas_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODCanvas_somInit SOMObject_somInit
#define ODCanvas_somFree SOMObject_somFree
#define ODCanvas_somUninit SOMObject_somUninit
#define ODCanvas_somGetClass SOMObject_somGetClass
#define ODCanvas_somGetClassName SOMObject_somGetClassName
#define ODCanvas_somGetSize SOMObject_somGetSize
#define ODCanvas_somIsA SOMObject_somIsA
#define ODCanvas_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODCanvas_somRespondsTo SOMObject_somRespondsTo
#define ODCanvas_somDispatch SOMObject_somDispatch
#define ODCanvas_somClassDispatch SOMObject_somClassDispatch
#define ODCanvas_somCastObj SOMObject_somCastObj
#define ODCanvas_somResetObj SOMObject_somResetObj
#define ODCanvas_somDispatchV SOMObject_somDispatchV
#define ODCanvas_somDispatchL SOMObject_somDispatchL
#define ODCanvas_somDispatchA SOMObject_somDispatchA
#define ODCanvas_somDispatchD SOMObject_somDispatchD
#define ODCanvas_somPrintSelf SOMObject_somPrintSelf
#define ODCanvas_somDumpSelf SOMObject_somDumpSelf
#define ODCanvas_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODCanvas_h */
