/**************************************************************
 * 
 * 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_datatransfer_dnd_DragGestureEvent_idl__
#define __com_sun_star_datatransfer_dnd_DragGestureEvent_idl__

#ifndef __com_sun_star_lang_EventObject_idl__
#include <com/sun/star/lang/EventObject.idl>
#endif

//=============================================================================

module com { module sun { module star { module datatransfer { module dnd {

 published interface XDragSource;

//=============================================================================
/** A DragGestureEvent is passed to the method <member>XDragGestureListener::dragGestureRecognized()</member>
 	when a particular <type>XDragGestureRecognizer</type> detects that a platform 
 	dependent drag initiating gesture has occurred on the component that it is
 	tracking. 	
*/

published struct DragGestureEvent: com::sun::star::lang::EventObject
{
	//-------------------------------------------------------------------------
	/** The action selected by the user. 
		<p>Different constants may be combined using a logical OR.</p>
		It's further possible to combine the ACTION_DEFAULT with one of the other 
		actions defined in <type scope="com::sun::star::datatransfer::dnd">DNDConstants</type>.
		This means the user did not press any key during the Drag and Drop operation
		and the action that was combined with ACTION_DEFAULT is the system default action.</p>

		@see com::sun::star::datatransfer::dnd::DNDConstants
	 */

	byte DragAction;

	//-------------------------------------------------------------------------
	/** The x coordinate where the drag originated in component coordinates.
	 */

	long DragOriginX;

	//-------------------------------------------------------------------------
	/** The y coordinate where the drag originated in component coordinates.
	 */

	long DragOriginY;

	//-------------------------------------------------------------------------
	/** The DragSource associated with this drag action.
	 */

	XDragSource DragSource;

	//-------------------------------------------------------------------------
	/** The last event comprising the gesture.

	<p>The initial trigger event will presumably be a <type scope="com::sun::star::awt">MouseEvent</type> event.
	If it is not, the implementation should either react accordingly or
	presume that the left mouse button was clicked.	</p>
	*/

	any Event;
};

//=============================================================================

}; }; }; }; };

#endif
