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

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


#ifndef SOM_ODMenuBar_h
#define SOM_ODMenuBar_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 ODMenuBarClassData (*resolve_ODMenuBarClassData())
#define ODMenuBarCClassData (*resolve_ODMenuBarCClassData())

/*
 * Define the class name as an object type
 */
#ifndef ODMenuBar
#define ODMenuBar SOMObject
#endif
#include <MenuBarB.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 ODRefCntObject
    #define ODRefCntObject SOMObject
#endif /* ODRefCntObject */
#ifndef ODBaseMenuBar
    #define ODBaseMenuBar SOMObject
#endif /* ODBaseMenuBar */
#ifndef ODMenuBar
    #define ODMenuBar SOMObject
#endif /* ODMenuBar */
#ifndef ODSession
    #define ODSession SOMObject
#endif /* ODSession */
#ifndef ODPart
    #define ODPart SOMObject
#endif /* ODPart */

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

#define ODMenuBar_MajorVersion 1
#define ODMenuBar_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODMenuBarNewClass c
#define ODMenuBarClassData d
#define ODMenuBarCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODMenuBar_classObj ODMenuBarClassData.classObject
#define _ODMenuBar ODMenuBar_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODMenuBarClassDataStructure {
	SOMClass *classObject;
	somMToken InitMenuBar;
	somMToken AddSubMenu;
	somMToken RegisterCommand;
	somMToken UnregisterCommand;
	somMToken UnregisterAll;
	somMToken IsCommandRegistered;
	somMToken IsCommandSynthetic;
	somMToken GetCommand;
	somMToken GetMenuAndItem;
	somMToken EnableCommand;
	somMToken CheckCommand;
	somMToken EnableAndCheckCommand;
	somMToken SetItemString;
	somMToken GetItemString;
	somMToken CopyWinMenu;
	somMToken SetAccelTable;
	somMToken GetAccelTable;
	somMToken SetDocumentWindow;
	somMToken GetDocumentWindow;
	somMToken GetSystemMenus;
}  _ODMenuBarClassData;
SOMEXTERN struct ODMenuBarClassDataStructure * SOMLINK resolve_ODMenuBarClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODMenuBarCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODMenuBarCClassData;
SOMEXTERN struct ODMenuBarCClassDataStructure * SOMLINK resolve_ODMenuBarCClassData(void);

/*
 * New and Renew macros for ODMenuBar
 */
#define ODMenuBarNew() \
   (_somNew(_ODMenuBar ? _ODMenuBar : ODMenuBarNewClass(ODMenuBar_MajorVersion, ODMenuBar_MinorVersion)))
#define ODMenuBarRenew(buf) \
   (_somRenew(_ODMenuBar ? _ODMenuBar : ODMenuBarNewClass(ODMenuBar_MajorVersion, ODMenuBar_MinorVersion), buf))

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

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

/*
 * Override method: Purge
 */
#define ODMenuBar_Purge(somSelf,ev,size) \
	ODObject_Purge(somSelf,ev,size)

/*
 * Override method: Release
 */
#define ODMenuBar_Release(somSelf,ev) \
	ODRefCntObject_Release(somSelf,ev)

/*
 * Override method: Display
 */
#define ODMenuBar_Display(somSelf,ev) \
	ODBaseMenuBar_Display(somSelf,ev)

/*
 * Override method: AddMenuLast
 */
#define ODMenuBar_AddMenuLast(somSelf,ev,menuID,menu,part) \
	ODBaseMenuBar_AddMenuLast(somSelf,ev,menuID,menu,part)

/*
 * Override method: AddMenuBefore
 */
#define ODMenuBar_AddMenuBefore(somSelf,ev,menuID,menu,part,beforeID) \
	ODBaseMenuBar_AddMenuBefore(somSelf,ev,menuID,menu,part,beforeID)

/*
 * Override method: RemoveMenu
 */
#define ODMenuBar_RemoveMenu(somSelf,ev,menu) \
	ODBaseMenuBar_RemoveMenu(somSelf,ev,menu)

/*
 * Override method: GetMenu
 */
#define ODMenuBar_GetMenu(somSelf,ev,menu) \
	ODBaseMenuBar_GetMenu(somSelf,ev,menu)

/*
 * Override method: IsValid
 */
#define ODMenuBar_IsValid(somSelf,ev) \
	ODBaseMenuBar_IsValid(somSelf,ev)

/*
 * Override method: SetGeneration
 */
#define ODMenuBar_SetGeneration(somSelf,ev,generation) \
	ODBaseMenuBar_SetGeneration(somSelf,ev,generation)

/*
 * Override method: GetGeneration
 */
#define ODMenuBar_GetGeneration(somSelf,ev) \
	ODBaseMenuBar_GetGeneration(somSelf,ev)

/*
 * Override method: Copy
 */
#define ODMenuBar_Copy(somSelf,ev) \
	ODBaseMenuBar_Copy(somSelf,ev)

/*
 * New Method: InitMenuBar
 */
typedef void   (SOMLINK * somTD_ODMenuBar_InitMenuBar)(ODMenuBar *somSelf, Environment *ev,
		ODSession* session,
		ODPlatformMenuBar menuBar);
#define somMD_ODMenuBar_InitMenuBar "::ODMenuBar::InitMenuBar"
#define ODMenuBar_InitMenuBar(somSelf,ev,session,menuBar) \
    (SOM_Resolve(somSelf, ODMenuBar, InitMenuBar) \
	(somSelf,ev,session,menuBar))
#ifndef SOMGD_InitMenuBar
    #if (defined(_InitMenuBar) || defined(__InitMenuBar))
        #undef _InitMenuBar
        #undef __InitMenuBar
        #define SOMGD_InitMenuBar 1
    #else
        #define _InitMenuBar ODMenuBar_InitMenuBar
    #endif /* _InitMenuBar */
#endif /* SOMGD_InitMenuBar */

/*
 * New Method: EnableCommand
 */
typedef void   (SOMLINK * somTD_ODMenuBar_EnableCommand)(ODMenuBar *somSelf, Environment *ev,
		ODCommandID cmdNumber,
		ODBoolean enable);
#define somMD_ODMenuBar_EnableCommand "::ODMenuBar::EnableCommand"
#define ODMenuBar_EnableCommand(somSelf,ev,cmdNumber,enable) \
    (SOM_Resolve(somSelf, ODMenuBar, EnableCommand) \
	(somSelf,ev,cmdNumber,enable))
#ifndef SOMGD_EnableCommand
    #if (defined(_EnableCommand) || defined(__EnableCommand))
        #undef _EnableCommand
        #undef __EnableCommand
        #define SOMGD_EnableCommand 1
    #else
        #define _EnableCommand ODMenuBar_EnableCommand
    #endif /* _EnableCommand */
#endif /* SOMGD_EnableCommand */

/*
 * New Method: CheckCommand
 */
typedef void   (SOMLINK * somTD_ODMenuBar_CheckCommand)(ODMenuBar *somSelf, Environment *ev,
		ODCommandID cmdNumber,
		ODBoolean check);
#define somMD_ODMenuBar_CheckCommand "::ODMenuBar::CheckCommand"
#define ODMenuBar_CheckCommand(somSelf,ev,cmdNumber,check) \
    (SOM_Resolve(somSelf, ODMenuBar, CheckCommand) \
	(somSelf,ev,cmdNumber,check))
#ifndef SOMGD_CheckCommand
    #if (defined(_CheckCommand) || defined(__CheckCommand))
        #undef _CheckCommand
        #undef __CheckCommand
        #define SOMGD_CheckCommand 1
    #else
        #define _CheckCommand ODMenuBar_CheckCommand
    #endif /* _CheckCommand */
#endif /* SOMGD_CheckCommand */

/*
 * New Method: EnableAndCheckCommand
 */
typedef void   (SOMLINK * somTD_ODMenuBar_EnableAndCheckCommand)(ODMenuBar *somSelf, Environment *ev,
		ODCommandID cmdNumber,
		ODBoolean enable,
		ODBoolean check);
#define somMD_ODMenuBar_EnableAndCheckCommand "::ODMenuBar::EnableAndCheckCommand"
#define ODMenuBar_EnableAndCheckCommand(somSelf,ev,cmdNumber,enable,check) \
    (SOM_Resolve(somSelf, ODMenuBar, EnableAndCheckCommand) \
	(somSelf,ev,cmdNumber,enable,check))
#ifndef SOMGD_EnableAndCheckCommand
    #if (defined(_EnableAndCheckCommand) || defined(__EnableAndCheckCommand))
        #undef _EnableAndCheckCommand
        #undef __EnableAndCheckCommand
        #define SOMGD_EnableAndCheckCommand 1
    #else
        #define _EnableAndCheckCommand ODMenuBar_EnableAndCheckCommand
    #endif /* _EnableAndCheckCommand */
#endif /* SOMGD_EnableAndCheckCommand */

/*
 * New Method: SetItemString
 */
typedef void   (SOMLINK * somTD_ODMenuBar_SetItemString)(ODMenuBar *somSelf, Environment *ev,
		ODCommandID cmdNumber,
		ODIText* itemString);
#define somMD_ODMenuBar_SetItemString "::ODMenuBar::SetItemString"
#define ODMenuBar_SetItemString(somSelf,ev,cmdNumber,itemString) \
    (SOM_Resolve(somSelf, ODMenuBar, SetItemString) \
	(somSelf,ev,cmdNumber,itemString))
#ifndef SOMGD_SetItemString
    #if (defined(_SetItemString) || defined(__SetItemString))
        #undef _SetItemString
        #undef __SetItemString
        #define SOMGD_SetItemString 1
    #else
        #define _SetItemString ODMenuBar_SetItemString
    #endif /* _SetItemString */
#endif /* SOMGD_SetItemString */

/*
 * New Method: GetItemString
 */
typedef void   (SOMLINK * somTD_ODMenuBar_GetItemString)(ODMenuBar *somSelf, Environment *ev,
		ODCommandID cmdNumber,
		ODIText* itemString);
#define somMD_ODMenuBar_GetItemString "::ODMenuBar::GetItemString"
#define ODMenuBar_GetItemString(somSelf,ev,cmdNumber,itemString) \
    (SOM_Resolve(somSelf, ODMenuBar, GetItemString) \
	(somSelf,ev,cmdNumber,itemString))
#ifndef SOMGD_GetItemString
    #if (defined(_GetItemString) || defined(__GetItemString))
        #undef _GetItemString
        #undef __GetItemString
        #define SOMGD_GetItemString 1
    #else
        #define _GetItemString ODMenuBar_GetItemString
    #endif /* _GetItemString */
#endif /* SOMGD_GetItemString */

/*
 * New Method: CopyWinMenu
 */
typedef void   (SOMLINK * somTD_ODMenuBar_CopyWinMenu)(ODMenuBar *somSelf, Environment *ev,
		ODPlatformMenuBar src,
		ODPlatformMenuBar dest);
#define somMD_ODMenuBar_CopyWinMenu "::ODMenuBar::CopyWinMenu"
#define ODMenuBar_CopyWinMenu(somSelf,ev,src,dest) \
    (SOM_Resolve(somSelf, ODMenuBar, CopyWinMenu) \
	(somSelf,ev,src,dest))
#ifndef SOMGD_CopyWinMenu
    #if (defined(_CopyWinMenu) || defined(__CopyWinMenu))
        #undef _CopyWinMenu
        #undef __CopyWinMenu
        #define SOMGD_CopyWinMenu 1
    #else
        #define _CopyWinMenu ODMenuBar_CopyWinMenu
    #endif /* _CopyWinMenu */
#endif /* SOMGD_CopyWinMenu */

/*
 * New Method: SetAccelTable
 */
typedef void   (SOMLINK * somTD_ODMenuBar_SetAccelTable)(ODMenuBar *somSelf, Environment *ev,
		HACCEL table);
#define somMD_ODMenuBar_SetAccelTable "::ODMenuBar::SetAccelTable"
#define ODMenuBar_SetAccelTable(somSelf,ev,table) \
    (SOM_Resolve(somSelf, ODMenuBar, SetAccelTable) \
	(somSelf,ev,table))
#ifndef SOMGD_SetAccelTable
    #if (defined(_SetAccelTable) || defined(__SetAccelTable))
        #undef _SetAccelTable
        #undef __SetAccelTable
        #define SOMGD_SetAccelTable 1
    #else
        #define _SetAccelTable ODMenuBar_SetAccelTable
    #endif /* _SetAccelTable */
#endif /* SOMGD_SetAccelTable */

/*
 * New Method: GetAccelTable
 */
typedef HACCEL   (SOMLINK * somTD_ODMenuBar_GetAccelTable)(ODMenuBar *somSelf, Environment *ev);
#define somMD_ODMenuBar_GetAccelTable "::ODMenuBar::GetAccelTable"
#define ODMenuBar_GetAccelTable(somSelf,ev) \
    (SOM_Resolve(somSelf, ODMenuBar, GetAccelTable) \
	(somSelf,ev))
#ifndef SOMGD_GetAccelTable
    #if (defined(_GetAccelTable) || defined(__GetAccelTable))
        #undef _GetAccelTable
        #undef __GetAccelTable
        #define SOMGD_GetAccelTable 1
    #else
        #define _GetAccelTable ODMenuBar_GetAccelTable
    #endif /* _GetAccelTable */
#endif /* SOMGD_GetAccelTable */

/*
 * New Method: SetDocumentWindow
 */
typedef void   (SOMLINK * somTD_ODMenuBar_SetDocumentWindow)(ODMenuBar *somSelf, Environment *ev,
		ODPlatformWindow docWindow);
#define somMD_ODMenuBar_SetDocumentWindow "::ODMenuBar::SetDocumentWindow"
#define ODMenuBar_SetDocumentWindow(somSelf,ev,docWindow) \
    (SOM_Resolve(somSelf, ODMenuBar, SetDocumentWindow) \
	(somSelf,ev,docWindow))
#ifndef SOMGD_SetDocumentWindow
    #if (defined(_SetDocumentWindow) || defined(__SetDocumentWindow))
        #undef _SetDocumentWindow
        #undef __SetDocumentWindow
        #define SOMGD_SetDocumentWindow 1
    #else
        #define _SetDocumentWindow ODMenuBar_SetDocumentWindow
    #endif /* _SetDocumentWindow */
#endif /* SOMGD_SetDocumentWindow */

/*
 * New Method: GetDocumentWindow
 */
typedef ODPlatformWindow   (SOMLINK * somTD_ODMenuBar_GetDocumentWindow)(ODMenuBar *somSelf, Environment *ev);
#define somMD_ODMenuBar_GetDocumentWindow "::ODMenuBar::GetDocumentWindow"
#define ODMenuBar_GetDocumentWindow(somSelf,ev) \
    (SOM_Resolve(somSelf, ODMenuBar, GetDocumentWindow) \
	(somSelf,ev))
#ifndef SOMGD_GetDocumentWindow
    #if (defined(_GetDocumentWindow) || defined(__GetDocumentWindow))
        #undef _GetDocumentWindow
        #undef __GetDocumentWindow
        #define SOMGD_GetDocumentWindow 1
    #else
        #define _GetDocumentWindow ODMenuBar_GetDocumentWindow
    #endif /* _GetDocumentWindow */
#endif /* SOMGD_GetDocumentWindow */

/*
 * New Method: GetSystemMenus
 */
typedef ODPlatformMenuBar   (SOMLINK * somTD_ODMenuBar_GetSystemMenus)(ODMenuBar *somSelf, Environment *ev);
#define somMD_ODMenuBar_GetSystemMenus "::ODMenuBar::GetSystemMenus"
#define ODMenuBar_GetSystemMenus(somSelf,ev) \
    (SOM_Resolve(somSelf, ODMenuBar, GetSystemMenus) \
	(somSelf,ev))
#ifndef SOMGD_GetSystemMenus
    #if (defined(_GetSystemMenus) || defined(__GetSystemMenus))
        #undef _GetSystemMenus
        #undef __GetSystemMenus
        #define SOMGD_GetSystemMenus 1
    #else
        #define _GetSystemMenus ODMenuBar_GetSystemMenus
    #endif /* _GetSystemMenus */
#endif /* SOMGD_GetSystemMenus */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODMenuBar_InitBaseMenuBar ODBaseMenuBar_InitBaseMenuBar
#define ODMenuBar_InitRefCntObject ODRefCntObject_InitRefCntObject
#define ODMenuBar_IncrementRefCount ODRefCntObject_IncrementRefCount
#define ODMenuBar_GetRefCount ODRefCntObject_GetRefCount
#define ODMenuBar_InitObject ODObject_InitObject
#define ODMenuBar_IsInitialized ODObject_IsInitialized
#define ODMenuBar_HasExtension ODObject_HasExtension
#define ODMenuBar_GetExtension ODObject_GetExtension
#define ODMenuBar_ReleaseExtension ODObject_ReleaseExtension
#define ODMenuBar_IsEqualTo ODObject_IsEqualTo
#define ODMenuBar_SubClassResponsibility ODObject_SubClassResponsibility
#define ODMenuBar_somDefaultInit SOMObject_somDefaultInit
#define ODMenuBar_somDestruct SOMObject_somDestruct
#define ODMenuBar_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODMenuBar_somDefaultAssign SOMObject_somDefaultAssign
#define ODMenuBar_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODMenuBar_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODMenuBar_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODMenuBar_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODMenuBar_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODMenuBar_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODMenuBar_somFree SOMObject_somFree
#define ODMenuBar_somGetClass SOMObject_somGetClass
#define ODMenuBar_somGetClassName SOMObject_somGetClassName
#define ODMenuBar_somGetSize SOMObject_somGetSize
#define ODMenuBar_somIsA SOMObject_somIsA
#define ODMenuBar_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODMenuBar_somRespondsTo SOMObject_somRespondsTo
#define ODMenuBar_somDispatch SOMObject_somDispatch
#define ODMenuBar_somClassDispatch SOMObject_somClassDispatch
#define ODMenuBar_somCastObj SOMObject_somCastObj
#define ODMenuBar_somResetObj SOMObject_somResetObj
#define ODMenuBar_somDispatchV SOMObject_somDispatchV
#define ODMenuBar_somDispatchL SOMObject_somDispatchL
#define ODMenuBar_somDispatchA SOMObject_somDispatchA
#define ODMenuBar_somDispatchD SOMObject_somDispatchD
#define ODMenuBar_somPrintSelf SOMObject_somPrintSelf
#define ODMenuBar_somDumpSelf SOMObject_somDumpSelf
#define ODMenuBar_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODMenuBar_h */
