/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/


#ifndef __com_sun_star_awt_XMenu_idl__ 
#define __com_sun_star_awt_XMenu_idl__ 
 
#ifndef __com_sun_star_uno_XInterface_idl__ 
#include <com/sun/star/uno/XInterface.idl> 
#endif 


//============================================================================= 
 
 module com {  module sun {  module star {  module awt {  
 
 published interface XPopupMenu; 
 published interface XMenuListener; 
 
//============================================================================= 
 
/** specifies a simple menu.
 */
published interface XMenu: com::sun::star::uno::XInterface
{ 
	//------------------------------------------------------------------------- 
	 
	/** adds the specified menu listener to receive events from this menu.
	 */
	[oneway] void addMenuListener( [in] XMenuListener xListener ); 
 
	//------------------------------------------------------------------------- 
	 
	/** removes the specified menu listener so that it no longer
		receives events from this menu.
	 */
	[oneway] void removeMenuListener( [in] XMenuListener xListener ); 
 
	//------------------------------------------------------------------------- 
	 
	/** inserts an item into the menu.
        
		<p>The item is appended if the position is greater than or equal to
		<code>getItemCount()</code> or if it is negative.</p>
	 */
	[oneway] void insertItem( [in] short nItemId, 
			 [in] string aText, 
			 [in] short nItemStyle, 
			 [in] short nPos ); 
 
	//------------------------------------------------------------------------- 
	 
	/** removes one or more items from the menu.
	 */
	[oneway] void removeItem( [in] short nPos, 
			 [in] short nCount ); 
 
	//------------------------------------------------------------------------- 
	 
	/** returns the number of items in the menu.
	 */
	short getItemCount(); 
 
	//------------------------------------------------------------------------- 
	 
	/** returns the id of the item at the specified position.
	 */
	short getItemId( [in] short nPos ); 
 
	//------------------------------------------------------------------------- 
	 
	/** returns the position of the item with the specified id.
	 */
	short getItemPos( [in] short nId ); 
 
	//------------------------------------------------------------------------- 
	 
	/** enables or disables the menu item.
	 */
	[oneway] void enableItem( [in] short nItemId, 
			 [in] boolean bEnable ); 
 
	//------------------------------------------------------------------------- 
	 
	/** returns the state of the menu item.
	 */
	boolean isItemEnabled( [in] short nItemId ); 
 
	//------------------------------------------------------------------------- 
	 
	/** sets the text for the menu item.
	 */
	[oneway] void setItemText( [in] short nItemId, 
			 [in] string aText ); 
 
	//------------------------------------------------------------------------- 
	 
	/** returns the string for the given item id.
	 */
	string getItemText( [in] short nItemId ); 
 
	//------------------------------------------------------------------------- 
	 
	/** sets the popup menu for a specified menu item.
	 */
	[oneway] void setPopupMenu( [in] short nItemId, 
			 [in] XPopupMenu aPopupMenu ); 
 
	//------------------------------------------------------------------------- 
	 
	/** returns the popup menu from the menu item.
	 */
	XPopupMenu getPopupMenu( [in] short nItemId ); 
 
}; 
 
 
}; }; }; };  
 
#endif 
