/**************************************************************
 * 
 * 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_form_control_ImageButton_idl__ 
#define __com_sun_star_form_control_ImageButton_idl__ 

#ifndef __com_sun_star_awt_UnoControlImageControl_idl__ 
#include <com/sun/star/awt/UnoControlImageControl.idl> 
#endif 

#ifndef __com_sun_star_form_XApproveActionBroadcaster_idl__ 
#include <com/sun/star/form/XApproveActionBroadcaster.idl> 
#endif

//============================================================================= 
 
 module com {  module sun {  module star {  module form {  module control { 
 
//============================================================================= 
 
/** describes a control which can be used for displaying images on a control acting like a button.

	<p>The model of the control has to support the <type scope="com::sun::star::form::component">ImageButton</type>
	service.</p>

	<p>The control is clickable, the action taken upon clicking depends on the settings
	of the model the control belongs to.</p>

	@see com::sun::star::awt::UnoControl
	@see com::sun::star::awt::UnoControlModel
	@see com::sun::star::form::component::ImageButton::ButtonType
*/
published service ImageButton
{
	service com::sun::star::awt::UnoControlImageControl;

	/** allows external instances to register as veto listener for the button's actions.

		<p>An <type scope="com::sun::star::form">XApproveActionListener</type> returning false on
		it's approve-method will prevent any action which would usually be triggered - this includes
		not only submitting or resetting forms, but also calling the
		<type scope="com::sun::star::awt">XActionListener</type>s of the super service<br/>
		This may be interesting for e.g. forms which want to provide input validation before submitting
		data.<br/>

		@see com::sun::star::form::component::HTMLForm
		@see com::sun::star::form::XSubmit
		@see com::sun::star::form::XReset
		@see com::sun::star::awt::XButton
	*/
	interface com::sun::star::form::XApproveActionBroadcaster;
};

//============================================================================= 
 
}; }; }; }; }; 
 
/*============================================================================= 
 
=============================================================================*/ 

#endif