#ifdef __PRIVATE__
//#
//#	File:		MenuBarB.idl
//#
//#	Contains:	Class definition for ODBaseMenuBar
//#
//#	Owned by:	Richard Rodseth
//#
//#	Copyright:	c 1994 by Apple Computer, Inc., all rights reserved.
//#
//#	Change History (most recent first):
//#
//#		 <3>	 8/25/94	RR		Added IsValid and private Get/SetGeneration
//#		 <2>	 6/14/94	RR		Added functionprefix
//#		 <1>	  6/8/94	RR		first checked in
//#		 <2>	  6/7/94	RR		Privatise change log
//#
//#	To Do:
//#
#else
//#	Copyright:	c 1993-1994 by Apple Computer, Inc., all rights reserved.
#endif

#ifndef _MENUBARB_
#define _MENUBARB_

#ifndef _REFCTOBJ_
#include "RefCtObj.idl"
#endif

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

interface  ODBaseMenuBar;

//=====================================================================================
// Classes used by this interface
//=====================================================================================

interface  ODMenuBar;
interface  ODSession;
interface  ODPart;

//=====================================================================================
// Class ODBaseMenuBar
//=====================================================================================

interface ODBaseMenuBar :  ODRefCntObject
{
	void Display();

	ODMenuBar Copy();  

	void AddMenuLast(in ODMenuID menuID,
					 in ODPlatformMenu *menu,
					 in ODPart part);

	void AddMenuBefore(in ODMenuID menuID,
					   in ODPlatformMenu *menu,
					   in ODPart part,
					   in ODMenuID beforeID);
    
	void RemoveMenu(in ODMenuID menu);  

	ODPlatformMenuBar GetMenu(in ODMenuID menu);  

	ODBoolean IsValid();  
   
#ifdef __PRIVATE__
	
	void InitBaseMenuBar(in ODSession session,
					 in ODPlatformMenuBar menuBar);
					 
	void SetGeneration(in ODULong generation);
	
	ODULong GetGeneration();
	
#endif

#ifdef __SOMIDL__

	implementation
  	{
		functionprefix = ODBaseMenuBar;
		
		override:
			somInit,
			somUninit,
			Release;
			
		releaseorder:
			Display,
			Copy,
			AddMenuLast,
			AddMenuBefore,
			RemoveMenu,
			GetMenu,
			IsValid,
			#ifdef __PRIVATE__
				InitBaseMenuBar,
				SetGeneration,
				GetGeneration;
			#else
				reserved1,
				reserved2,
				reserved3;
			#endif

		majorversion = 1; minorversion = 0;
		
 	};
#endif //# __SOMIDL__

};

#endif //# _MENUBARB_
