/****************************************************************************************


		MCMenuInfo.h


		Copyright: (c) 2001 Eovia Corp. All rights reserved.


		Author:	Pierre
		Date:	12/11/97

		Revision History

		when		who			what & why
		==========	==========	======================================================
		2/19/99		Joshua		Moved from MCMenu.h

*****************************************************************************************/

#if CP_PRAGMA_ONCE
#pragma once
#endif

#ifndef __MCMenuInfo__
#define __MCMenuInfo__

#include "MCBasicTypes.h"
#include "MCString.h"


enum
{
	kNoActionNumber			= -1,
	kNoMenuID				= -1,
	kIsSeparator			= true,
	kIsNotSeparator			= false,
	kNoAccelerator			= 0,
	kNoIcon					= -1
};


/// TMCMenuInfo represents a menu entry. Generally, using CMNU resources should be enough
/// 
class TMCMenuInfo
{
public:
	TMCMenuInfo (	const TMCString&	inCommandName, 
					ActionNumber		inActionNumber, 
					int16				inMenuID, 
					boolean				inIsSeparator);
				 
	TMCMenuInfo	(void);

	TMCString255	fCommandName;
	ActionNumber	fActionNumber;
	boolean			fIsSeparator;
	int16			fMenuID;
};



inline TMCMenuInfo::TMCMenuInfo(
		const TMCString&	inCommandName,
		ActionNumber		inActionNumber,
		int16				inMenuID,
		boolean				inIsSeparator)
{
	fCommandName		= inCommandName;
	fActionNumber		= inActionNumber;
	fIsSeparator		= inIsSeparator;
	fMenuID				= inMenuID;
}

inline TMCMenuInfo::TMCMenuInfo(void)
{
	fActionNumber		= kNoActionNumber;
	fIsSeparator		= kIsNotSeparator;
	fMenuID				= kNoMenuID;
}



#endif