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

/*
 * 
 *  Classes defined in this interface
 * 
 */


#ifndef SOM_ODFocusModule_h
#define SOM_ODFocusModule_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 ODFocusModuleClassData (*resolve_ODFocusModuleClassData())
#define ODFocusModuleCClassData (*resolve_ODFocusModuleCClassData())

/*
 * Define the class name as an object type
 */
#ifndef ODFocusModule
#define ODFocusModule SOMObject
#endif
#include <ODObject.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 ODFocusModule
    #define ODFocusModule SOMObject
#endif /* ODFocusModule */
#ifndef ODSession
    #define ODSession SOMObject
#endif /* ODSession */
#ifndef ODFrame
    #define ODFrame SOMObject
#endif /* ODFrame */
#ifndef ODFocusOwnerIterator
    #define ODFocusOwnerIterator SOMObject
#endif /* ODFocusOwnerIterator */

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

#define ODFocusModule_MajorVersion 0
#define ODFocusModule_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODFocusModuleNewClass c
#define ODFocusModuleClassData d
#define ODFocusModuleCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODFocusModule_classObj ODFocusModuleClassData.classObject
#define _ODFocusModule ODFocusModule_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODFocusModuleClassDataStructure {
	SOMClass *classObject;
	somMToken InitFocusModule;
	somMToken IsFocusExclusive;
	somMToken SetFocusOwnership;
	somMToken UnsetFocusOwnership;
	somMToken TransferFocusOwnership;
	somMToken GetFocusOwner;
	somMToken CreateOwnerIterator;
	somMToken BeginRelinquishFocus;
	somMToken CommitRelinquishFocus;
	somMToken AbortRelinquishFocus;
}  _ODFocusModuleClassData;
SOMEXTERN struct ODFocusModuleClassDataStructure * SOMLINK resolve_ODFocusModuleClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODFocusModuleCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODFocusModuleCClassData;
SOMEXTERN struct ODFocusModuleCClassDataStructure * SOMLINK resolve_ODFocusModuleCClassData(void);

/*
 * New and Renew macros for ODFocusModule
 */
#define ODFocusModuleNew() \
   (_somNew(_ODFocusModule ? _ODFocusModule : ODFocusModuleNewClass(ODFocusModule_MajorVersion, ODFocusModule_MinorVersion)))
#define ODFocusModuleRenew(buf) \
   (_somRenew(_ODFocusModule ? _ODFocusModule : ODFocusModuleNewClass(ODFocusModule_MajorVersion, ODFocusModule_MinorVersion), buf))

/*
 * Override method: somInit
 */
#define ODFocusModule_somInit(somSelf) \
	SOMObject_somInit(somSelf)

/*
 * Override method: somUninit
 */
#define ODFocusModule_somUninit(somSelf) \
	SOMObject_somUninit(somSelf)

/*
 * New Method: InitFocusModule
 */
typedef void   (SOMLINK * somTD_ODFocusModule_InitFocusModule)(ODFocusModule *somSelf, Environment *ev,
		ODSession* session);
#define somMD_ODFocusModule_InitFocusModule "::ODFocusModule::InitFocusModule"
#define ODFocusModule_InitFocusModule(somSelf,ev,session) \
    (SOM_Resolve(somSelf, ODFocusModule, InitFocusModule) \
	(somSelf,ev,session))
#ifndef SOMGD_InitFocusModule
    #if (defined(_InitFocusModule) || defined(__InitFocusModule))
        #undef _InitFocusModule
        #undef __InitFocusModule
        #define SOMGD_InitFocusModule 1
    #else
        #define _InitFocusModule ODFocusModule_InitFocusModule
    #endif /* _InitFocusModule */
#endif /* SOMGD_InitFocusModule */

/*
 * New Method: IsFocusExclusive
 */
typedef ODBoolean   (SOMLINK * somTD_ODFocusModule_IsFocusExclusive)(ODFocusModule *somSelf, Environment *ev,
		ODTypeToken focus);
#define somMD_ODFocusModule_IsFocusExclusive "::ODFocusModule::IsFocusExclusive"
#define ODFocusModule_IsFocusExclusive(somSelf,ev,focus) \
    (SOM_Resolve(somSelf, ODFocusModule, IsFocusExclusive) \
	(somSelf,ev,focus))
#ifndef SOMGD_IsFocusExclusive
    #if (defined(_IsFocusExclusive) || defined(__IsFocusExclusive))
        #undef _IsFocusExclusive
        #undef __IsFocusExclusive
        #define SOMGD_IsFocusExclusive 1
    #else
        #define _IsFocusExclusive ODFocusModule_IsFocusExclusive
    #endif /* _IsFocusExclusive */
#endif /* SOMGD_IsFocusExclusive */

/*
 * New Method: SetFocusOwnership
 */
typedef void   (SOMLINK * somTD_ODFocusModule_SetFocusOwnership)(ODFocusModule *somSelf, Environment *ev,
		ODTypeToken focus,
		ODFrame* frame);
#define somMD_ODFocusModule_SetFocusOwnership "::ODFocusModule::SetFocusOwnership"
#define ODFocusModule_SetFocusOwnership(somSelf,ev,focus,frame) \
    (SOM_Resolve(somSelf, ODFocusModule, SetFocusOwnership) \
	(somSelf,ev,focus,frame))
#ifndef SOMGD_SetFocusOwnership
    #if (defined(_SetFocusOwnership) || defined(__SetFocusOwnership))
        #undef _SetFocusOwnership
        #undef __SetFocusOwnership
        #define SOMGD_SetFocusOwnership 1
    #else
        #define _SetFocusOwnership ODFocusModule_SetFocusOwnership
    #endif /* _SetFocusOwnership */
#endif /* SOMGD_SetFocusOwnership */

/*
 * New Method: UnsetFocusOwnership
 */
typedef void   (SOMLINK * somTD_ODFocusModule_UnsetFocusOwnership)(ODFocusModule *somSelf, Environment *ev,
		ODTypeToken focus,
		ODFrame* frame);
#define somMD_ODFocusModule_UnsetFocusOwnership "::ODFocusModule::UnsetFocusOwnership"
#define ODFocusModule_UnsetFocusOwnership(somSelf,ev,focus,frame) \
    (SOM_Resolve(somSelf, ODFocusModule, UnsetFocusOwnership) \
	(somSelf,ev,focus,frame))
#ifndef SOMGD_UnsetFocusOwnership
    #if (defined(_UnsetFocusOwnership) || defined(__UnsetFocusOwnership))
        #undef _UnsetFocusOwnership
        #undef __UnsetFocusOwnership
        #define SOMGD_UnsetFocusOwnership 1
    #else
        #define _UnsetFocusOwnership ODFocusModule_UnsetFocusOwnership
    #endif /* _UnsetFocusOwnership */
#endif /* SOMGD_UnsetFocusOwnership */

/*
 * New Method: TransferFocusOwnership
 */
typedef void   (SOMLINK * somTD_ODFocusModule_TransferFocusOwnership)(ODFocusModule *somSelf, Environment *ev,
		ODTypeToken focus,
		ODFrame* transferringFrame,
		ODFrame* newOwner);
#define somMD_ODFocusModule_TransferFocusOwnership "::ODFocusModule::TransferFocusOwnership"
#define ODFocusModule_TransferFocusOwnership(somSelf,ev,focus,transferringFrame,newOwner) \
    (SOM_Resolve(somSelf, ODFocusModule, TransferFocusOwnership) \
	(somSelf,ev,focus,transferringFrame,newOwner))
#ifndef SOMGD_TransferFocusOwnership
    #if (defined(_TransferFocusOwnership) || defined(__TransferFocusOwnership))
        #undef _TransferFocusOwnership
        #undef __TransferFocusOwnership
        #define SOMGD_TransferFocusOwnership 1
    #else
        #define _TransferFocusOwnership ODFocusModule_TransferFocusOwnership
    #endif /* _TransferFocusOwnership */
#endif /* SOMGD_TransferFocusOwnership */

/*
 * New Method: GetFocusOwner
 */
typedef ODFrame*   (SOMLINK * somTD_ODFocusModule_GetFocusOwner)(ODFocusModule *somSelf, Environment *ev,
		ODTypeToken focus);
#define somMD_ODFocusModule_GetFocusOwner "::ODFocusModule::GetFocusOwner"
#define ODFocusModule_GetFocusOwner(somSelf,ev,focus) \
    (SOM_Resolve(somSelf, ODFocusModule, GetFocusOwner) \
	(somSelf,ev,focus))
#ifndef SOMGD_GetFocusOwner
    #if (defined(_GetFocusOwner) || defined(__GetFocusOwner))
        #undef _GetFocusOwner
        #undef __GetFocusOwner
        #define SOMGD_GetFocusOwner 1
    #else
        #define _GetFocusOwner ODFocusModule_GetFocusOwner
    #endif /* _GetFocusOwner */
#endif /* SOMGD_GetFocusOwner */

/*
 * New Method: CreateOwnerIterator
 */
typedef ODFocusOwnerIterator*   (SOMLINK * somTD_ODFocusModule_CreateOwnerIterator)(ODFocusModule *somSelf, Environment *ev,
		ODTypeToken focus);
#define somMD_ODFocusModule_CreateOwnerIterator "::ODFocusModule::CreateOwnerIterator"
#define ODFocusModule_CreateOwnerIterator(somSelf,ev,focus) \
    (SOM_Resolve(somSelf, ODFocusModule, CreateOwnerIterator) \
	(somSelf,ev,focus))
#ifndef SOMGD_CreateOwnerIterator
    #if (defined(_CreateOwnerIterator) || defined(__CreateOwnerIterator))
        #undef _CreateOwnerIterator
        #undef __CreateOwnerIterator
        #define SOMGD_CreateOwnerIterator 1
    #else
        #define _CreateOwnerIterator ODFocusModule_CreateOwnerIterator
    #endif /* _CreateOwnerIterator */
#endif /* SOMGD_CreateOwnerIterator */

/*
 * New Method: BeginRelinquishFocus
 */
typedef ODBoolean   (SOMLINK * somTD_ODFocusModule_BeginRelinquishFocus)(ODFocusModule *somSelf, Environment *ev,
		ODTypeToken focus,
		ODFrame* requestingFrame);
#define somMD_ODFocusModule_BeginRelinquishFocus "::ODFocusModule::BeginRelinquishFocus"
#define ODFocusModule_BeginRelinquishFocus(somSelf,ev,focus,requestingFrame) \
    (SOM_Resolve(somSelf, ODFocusModule, BeginRelinquishFocus) \
	(somSelf,ev,focus,requestingFrame))
#ifndef SOMGD_BeginRelinquishFocus
    #if (defined(_BeginRelinquishFocus) || defined(__BeginRelinquishFocus))
        #undef _BeginRelinquishFocus
        #undef __BeginRelinquishFocus
        #define SOMGD_BeginRelinquishFocus 1
    #else
        #define _BeginRelinquishFocus ODFocusModule_BeginRelinquishFocus
    #endif /* _BeginRelinquishFocus */
#endif /* SOMGD_BeginRelinquishFocus */

/*
 * New Method: CommitRelinquishFocus
 */
typedef void   (SOMLINK * somTD_ODFocusModule_CommitRelinquishFocus)(ODFocusModule *somSelf, Environment *ev,
		ODTypeToken focus,
		ODFrame* requestingFrame);
#define somMD_ODFocusModule_CommitRelinquishFocus "::ODFocusModule::CommitRelinquishFocus"
#define ODFocusModule_CommitRelinquishFocus(somSelf,ev,focus,requestingFrame) \
    (SOM_Resolve(somSelf, ODFocusModule, CommitRelinquishFocus) \
	(somSelf,ev,focus,requestingFrame))
#ifndef SOMGD_CommitRelinquishFocus
    #if (defined(_CommitRelinquishFocus) || defined(__CommitRelinquishFocus))
        #undef _CommitRelinquishFocus
        #undef __CommitRelinquishFocus
        #define SOMGD_CommitRelinquishFocus 1
    #else
        #define _CommitRelinquishFocus ODFocusModule_CommitRelinquishFocus
    #endif /* _CommitRelinquishFocus */
#endif /* SOMGD_CommitRelinquishFocus */

/*
 * New Method: AbortRelinquishFocus
 */
typedef void   (SOMLINK * somTD_ODFocusModule_AbortRelinquishFocus)(ODFocusModule *somSelf, Environment *ev,
		ODTypeToken focus,
		ODFrame* requestingFrame);
#define somMD_ODFocusModule_AbortRelinquishFocus "::ODFocusModule::AbortRelinquishFocus"
#define ODFocusModule_AbortRelinquishFocus(somSelf,ev,focus,requestingFrame) \
    (SOM_Resolve(somSelf, ODFocusModule, AbortRelinquishFocus) \
	(somSelf,ev,focus,requestingFrame))
#ifndef SOMGD_AbortRelinquishFocus
    #if (defined(_AbortRelinquishFocus) || defined(__AbortRelinquishFocus))
        #undef _AbortRelinquishFocus
        #undef __AbortRelinquishFocus
        #define SOMGD_AbortRelinquishFocus 1
    #else
        #define _AbortRelinquishFocus ODFocusModule_AbortRelinquishFocus
    #endif /* _AbortRelinquishFocus */
#endif /* SOMGD_AbortRelinquishFocus */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODFocusModule_InitObject ODObject_InitObject
#define ODFocusModule_IsInitialized ODObject_IsInitialized
#define ODFocusModule_HasExtension ODObject_HasExtension
#define ODFocusModule_GetExtension ODObject_GetExtension
#define ODFocusModule_ReleaseExtension ODObject_ReleaseExtension
#define ODFocusModule_Purge ODObject_Purge
#define ODFocusModule_IsEqualTo ODObject_IsEqualTo
#define ODFocusModule_SubClassResponsibility ODObject_SubClassResponsibility
#define ODFocusModule_somDefaultInit SOMObject_somDefaultInit
#define ODFocusModule_somDestruct SOMObject_somDestruct
#define ODFocusModule_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODFocusModule_somDefaultAssign SOMObject_somDefaultAssign
#define ODFocusModule_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODFocusModule_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODFocusModule_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODFocusModule_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODFocusModule_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODFocusModule_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODFocusModule_somFree SOMObject_somFree
#define ODFocusModule_somGetClass SOMObject_somGetClass
#define ODFocusModule_somGetClassName SOMObject_somGetClassName
#define ODFocusModule_somGetSize SOMObject_somGetSize
#define ODFocusModule_somIsA SOMObject_somIsA
#define ODFocusModule_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODFocusModule_somRespondsTo SOMObject_somRespondsTo
#define ODFocusModule_somDispatch SOMObject_somDispatch
#define ODFocusModule_somClassDispatch SOMObject_somClassDispatch
#define ODFocusModule_somCastObj SOMObject_somCastObj
#define ODFocusModule_somResetObj SOMObject_somResetObj
#define ODFocusModule_somDispatchV SOMObject_somDispatchV
#define ODFocusModule_somDispatchL SOMObject_somDispatchL
#define ODFocusModule_somDispatchA SOMObject_somDispatchA
#define ODFocusModule_somDispatchD SOMObject_somDispatchD
#define ODFocusModule_somPrintSelf SOMObject_somPrintSelf
#define ODFocusModule_somDumpSelf SOMObject_somDumpSelf
#define ODFocusModule_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODFocusModule_h */
