blob: 67ef13181e581b3cf92b63c9539a1abd3b8f1773 [file] [log] [blame]
/**************************************************************
*
* 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_XDragSourceContext_idl__
#define __com_sun_star_datatransfer_dnd_XDragSourceContext_idl__
#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
#include <com/sun/star/lang/IllegalArgumentException.idl>
#endif
//=============================================================================
module com { module sun { module star { module datatransfer { module dnd {
published interface XDragSourceListener;
//=============================================================================
/** The drag source context class is responsible for managing the initiator side
of the Drag and Drop protocol.
<p>In particular, it is responsible for managing event notifications to the
DragSourceListener and providing the Transferable state to enable the data
transfer. </p>
<p>An instance of this class is created as a result of the method <member>XDragSource::startDrag()</member>
being successfully invoked. This instance is responsible
for tracking the state of the operation on behalf of the drag source and
dispatching state changes to the drag source listener. </p>
@see com::sun::star::datatransfer::dnd::XDragSourceContext
@see com::sun::star::datatransfer::dnd::XDragSourceListener
*/
published interface XDragSourceContext: com::sun::star::uno::XInterface
{
//-------------------------------------------------------------------------
/** Get the identifier of the currently used cursor.
@returns
The currently selected drag cursor.
*/
long getCurrentCursor();
//-------------------------------------------------------------------------
/** This method sets the current drag cursor.
<p>This method should only be called to set another cursor than the
default one for drag action currently selected by the user.</p>
<p>Invalid cursor identifiers will be ignored.</p>
@param cursorId
The identifier the drag source returned when registering the cursor.
*/
[oneway] void setCursor( [in] long cursorId );
//-------------------------------------------------------------------------
/** This method sets the current drag image.
@param dragImage
The identifier the drag source returned when registering the image (0 = none).
Invalid identifier will be ignored.
*/
[oneway] void setImage( [in] long imageId );
//-------------------------------------------------------------------------
/** This method notifies the context that the
<type scope="com::sun::star::datatransfer">DataFlavor</type> types
of the transferable object have changed.
@see com::sun::star::datatransfer::XTransferable
*/
[oneway] void transferablesFlavorsChanged();
};
//=============================================================================
}; }; }; }; };
#endif