diff options
Diffstat (limited to 'offapi/com/sun/star/datatransfer/dnd')
24 files changed, 1753 insertions, 0 deletions
diff --git a/offapi/com/sun/star/datatransfer/dnd/DNDConstants.idl b/offapi/com/sun/star/datatransfer/dnd/DNDConstants.idl new file mode 100644 index 000000000..49bee5387 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DNDConstants.idl @@ -0,0 +1,73 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DNDConstants_idl__ +#define __com_sun_star_datatransfer_dnd_DNDConstants_idl__ + + +module com { module sun { module star { module datatransfer { module dnd { + +/** These values represent the type of action or actions to be performed by a + Drag and Drop operation. +*/ + +published constants DNDConstants +{ + /** No action. + */ + + const byte ACTION_NONE = 0x00; + + /** Action copy. + */ + + const byte ACTION_COPY = 0x01; + + /** Action move. + */ + + const byte ACTION_MOVE = 0x02; + + /** Action copy or move. + */ + + const byte ACTION_COPY_OR_MOVE = 0x03; + + /** Action link. + */ + + const byte ACTION_LINK = 0x04; + + /** Action reference. + */ + + const byte ACTION_REFERENCE = 0x04; + + /** Action default. + */ + + const byte ACTION_DEFAULT = -0x80; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DragGestureEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DragGestureEvent.idl new file mode 100644 index 000000000..4055de129 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DragGestureEvent.idl @@ -0,0 +1,80 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DragGestureEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DragGestureEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDragSource; + +/** A DragGestureEvent is passed to the method XDragGestureListener::dragGestureRecognized() + when a particular XDragGestureRecognizer 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 com::sun::star::datatransfer::dnd::DNDConstants. + 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 com::sun::star::awt::MouseEvent event. + If it is not, the implementation should either react accordingly or + presume that the left mouse button was clicked. </p> + */ + + any Event; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DragSourceDragEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DragSourceDragEvent.idl new file mode 100644 index 000000000..ea1bb42eb --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DragSourceDragEvent.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DragSourceDragEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DragSourceDragEvent_idl__ + +#include <com/sun/star/datatransfer/dnd/DragSourceEvent.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** The DragSourceDragEvent is delivered from an object that + implements the XDragSourceContext to the + currently registered drag source listener. + + <p>It contains state regarding the current state of the operation to enable + the operations initiator to provide the end user with the appropriate drag + over feedback.</p> + + @see com::sun::star::datatransfer::dnd::XDragSourceListener +*/ + +published struct DragSourceDragEvent: com::sun::star::datatransfer::dnd::DragSourceEvent +{ + /** The drag action selected by the current drop target. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + byte DropAction; + + /** The user's currently selected drop action. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + byte UserAction; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DragSourceDropEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DragSourceDropEvent.idl new file mode 100644 index 000000000..3ed36c4ed --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DragSourceDropEvent.idl @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DragSourceDropEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DragSourceDropEvent_idl__ + +#include <com/sun/star/datatransfer/dnd/DragSourceEvent.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** The DragSourceDropEvent is delivered from an object that implements + XDragSourceContext to its currently registered drag source listener's. + + <p>It contains sufficient information for the originator of the operation to + provide appropriate feedback to the end user when the operation completes.</p> + + @see com::sun::star::datatransfer::dnd::XDragSourceListener +*/ + +published struct DragSourceDropEvent: com::sun::star::datatransfer::dnd::DragSourceEvent +{ + /** The action performed by the target on the subject of the drop. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte DropAction; + + /** Indicates if the drop was successful. + */ + + boolean DropSuccess; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DragSourceEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DragSourceEvent.idl new file mode 100644 index 000000000..fc30deb8f --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DragSourceEvent.idl @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DragSourceEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DragSourceEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDragSource; + published interface XDragSourceContext; + +/** This class is the base class for DragSourceDragEvent and DragSourceDropEvent. + + <p>To access the XDragSource that originated this event, use the + com::sun::star::lang::EventObject::Source member of + this object.</p> +*/ + +published struct DragSourceEvent: com::sun::star::lang::EventObject +{ + /** The drag source context of the current drag operation. + + @see com::sun::star::datatransfer::dnd::XDragSourceContext + */ + + XDragSourceContext DragSourceContext; + + /** The drag source on which the Drag and Drop operation was initiated. + + @see com::sun::star::datatransfer::dnd::XDragSource + */ + + XDragSource DragSource; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEnterEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEnterEvent.idl new file mode 100644 index 000000000..9b2b38366 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEnterEvent.idl @@ -0,0 +1,54 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DropTargetDragEnterEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DropTargetDragEnterEvent_idl__ + +#include <com/sun/star/datatransfer/dnd/DropTargetDragEvent.idl> +#include <com/sun/star/datatransfer/DataFlavor.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** The DropTargetDragEnterEvent is delivered from the drop target to the + currently registered drop target listeners whenever the logical cursor + associated with a Drag and Drop operation enters the visible geometry + of a window associated with a drop target. + + <p>It contains the com::sun::star::datatransfer::DataFlavor + types supported by the transferable object of the current Drag and Drop operation. </p> + + @see com::sun::star::datatransfer::XTransferable +*/ + +published struct DropTargetDragEnterEvent: DropTargetDragEvent +{ + /** A sequence of supported com::sun::star::datatransfer::DataFlavor types. + + */ + + sequence< com::sun::star::datatransfer::DataFlavor > SupportedDataFlavors; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEvent.idl new file mode 100644 index 000000000..547144175 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEvent.idl @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DropTargetDragEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DropTargetDragEvent_idl__ + +#include <com/sun/star/datatransfer/dnd/DropTargetEvent.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDropTargetDragContext; + +/** The DropTargetDragEvent is delivered from the drop target + to the currently registered drop target listener. + + <p>It contains information regarding the current state of the operation to enable + the operations initiator to provide the end user with the appropriate drag + over feedback.</p> + + @see com::sun::star::datatransfer::dnd::XDropTargetListener +*/ + +published struct DropTargetDragEvent: com::sun::star::datatransfer::dnd::DropTargetEvent +{ + /** The drop target context of the current drag operation. + + @see com::sun::star::datatransfer::dnd::XDropTargetDragContext + */ + + XDropTargetDragContext Context; + + /** This value represents the currently selected drop action. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte DropAction; + + /** The cursor's current x location within the window's coordinates. + */ + + long LocationX; + + /** The cursor's current y location within the window's coordinates. + */ + + long LocationY; + + /** This value represents the action or actions supported by the source. + This may be a combination of arbitrary source actions except ACTION_DEFAULT. + <p>To combine different actions use a logical OR.</p> + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte SourceActions; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DropTargetDropEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DropTargetDropEvent.idl new file mode 100644 index 000000000..d51a92693 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DropTargetDropEvent.idl @@ -0,0 +1,86 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DropTargetDropEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DropTargetDropEvent_idl__ + +#include <com/sun/star/datatransfer/dnd/DropTargetEvent.idl> +#include <com/sun/star/datatransfer/XTransferable.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDropTargetDropContext; + +/** The DropTargetDropEvent is delivered from the drop target to + its currently registered drop target listener. + + <p>It contains sufficient information for the originator of the operation to + provide appropriate feedback to the end user when the operation completes.</p> +*/ + +published struct DropTargetDropEvent: com::sun::star::datatransfer::dnd::DropTargetEvent +{ + /** The drop target context of the current drag operation. + + @see com::sun::star::datatransfer::dnd::XDropTargetDropContext + */ + + XDropTargetDropContext Context; + + /** This value represents the action or actions selected by the user at + the time of the drop. + + <p>If more than one action is specified, the XDropTargetListener + should raise a dialog to ask the user which action to use.</p> + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte DropAction; + + /** The cursor's current x location within the window's coordinates. + */ + + long LocationX; + + /** The cursor's current y location within the window's coordinates. + */ + + long LocationY; + + /** This value represents the action or actions supported by the source. + */ + + byte SourceActions; + + /** The transferable object associated with the drop. + + @see com::sun::star::datatransfer::XTransferable + */ + + com::sun::star::datatransfer::XTransferable Transferable; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DropTargetEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DropTargetEvent.idl new file mode 100644 index 000000000..db5379ac8 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DropTargetEvent.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DropTargetEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DropTargetEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This class is the base class for DropTargetDragEvent and + DropTargetDropEvent. + + <p>To access the XDropTarget that originated this event, use the + com::sun::star::lang::EventObject::Source member of + this object.</p> +*/ + +published struct DropTargetEvent: com::sun::star::lang::EventObject +{ + /** UNO specification does not allow empty struct definitions. + */ + + byte Dummy; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl b/offapi/com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl new file mode 100644 index 000000000..1a26594bb --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_InvalidDNDOperationException_idl__ +#define __com_sun_star_datatransfer_dnd_InvalidDNDOperationException_idl__ + +#include <com/sun/star/uno/RuntimeException.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This exception is thrown by various methods in the datatransfer.dnd + package. + + <p>It is usually thrown to indicate that the target in question is unable + to undertake the requested operation at the present time, since the + underlying Drag and Drop system is not in the appropriate state.</p> +*/ + +published exception InvalidDNDOperationException: com::sun::star::uno::RuntimeException +{ +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/OleDragSource.idl b/offapi/com/sun/star/datatransfer/dnd/OleDragSource.idl new file mode 100644 index 000000000..c72c2521b --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/OleDragSource.idl @@ -0,0 +1,66 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_OleDragSource_idl__ +#define __com_sun_star_datatransfer_dnd_OleDragSource_idl__ + +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + + published interface XDragSource; + +/** This service connects the Java-like UNO drag and drop protocol to the protocol + used on window platforms. It realized the drag source. + + @see XDragSource +*/ + +published service OleDragSource +{ + /** Used to provide data to other applications via the Ole Drag & Drop protocol. + */ + interface XDragSource; + + /** The service expects a byte sequence uniquely identifying the machine as + the first, and only, parameter. This identifier should be checked to + ensure that the window ids used for creating DropTargets are valid for + the service, that is, come from the same machine. + + <p>TODO: specify how such a machine id should look like.</p> + + The second parameter is a window handle of the native windows window. + It is passed as an unsigned long. + */ + interface com::sun::star::lang::XInitialization; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/OleDropTarget.idl b/offapi/com/sun/star/datatransfer/dnd/OleDropTarget.idl new file mode 100644 index 000000000..7b326e7ef --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/OleDropTarget.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_OleDropTarget_idl__ +#define __com_sun_star_datatransfer_dnd_OleDropTarget_idl__ + +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + +published interface XDropTarget; + +/** This service connects the Java-like UNO Drag & Drop protocol to the protocol + used on window platforms. It realizes the drop target. + + @see XDropTarget +*/ + +published service OleDropTarget +{ + /** Used to provide data to other applications via Ole Drag & Drop protocol. + */ + interface XDropTarget; + + /** The service expects a windows window handle. It is passed as unsigned long. + */ + interface com::sun::star::lang::XInitialization; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/X11DragSource.idl b/offapi/com/sun/star/datatransfer/dnd/X11DragSource.idl new file mode 100644 index 000000000..8561bdbfd --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/X11DragSource.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_X11DragSource_idl__ +#define __com_sun_star_datatransfer_dnd_X11DragSource_idl__ + +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + + published interface XDragSource; + +/** This service connects the Java-like UNO Drag and Drop protocol to the + X Drag and Drop protocol used on X-Servers to transfer data between + applications via Drag and Drop operations. + + @see XDragSource +*/ + +published service X11DragSource +{ + /** Used to provide data to other applications via X Drag and Drop protocol. + */ + interface XDragSource; + + /** The service expects an instance of + com::sun::star::awt::XDisplayConnection + as the first parameter. + */ + interface com::sun::star::lang::XInitialization; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/X11DropTarget.idl b/offapi/com/sun/star/datatransfer/dnd/X11DropTarget.idl new file mode 100644 index 000000000..90d75e9fe --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/X11DropTarget.idl @@ -0,0 +1,64 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_X11DropTarget_idl__ +#define __com_sun_star_datatransfer_dnd_X11DropTarget_idl__ + +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + + published interface XDropTarget; + +/** This service connects the Java-like UNO Drag and Drop protocol to the + X Drag and Drop protocol used on X-Servers to transfer data between + application via Drag and Drop operations. + + @see XDragSource + @see XDropTarget +*/ + +published service X11DropTarget +{ + /** Used to get data from other applications via X Drag and Drop protocol. + */ + interface XDropTarget; + + /** The service expects an instance of + com::sun::star::awt::XDisplayConnection + as the first parameter. The second parameter must be a long + that contains an XWindow window which shall be registered + as drop target. + */ + interface com::sun::star::lang::XInitialization; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XAutoscroll.idl b/offapi/com/sun/star/datatransfer/dnd/XAutoscroll.idl new file mode 100644 index 000000000..22f57420b --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XAutoscroll.idl @@ -0,0 +1,77 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XAutoscroll_idl__ +#define __com_sun_star_datatransfer_dnd_XAutoscroll_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** Interface for autoscroll support. + + <p>During Drag and Drop operations it is possible that a user may wish to drop the + subject of the operation on a region of a scrollable GUI control that is + not currently visible to the user.</p> + + <p>In such situations it is desirable that the GUI control detect this and + institute a scroll operation in order to make obscured region(s) visible to + the user. This feature is known as autoscrolling.</p> + + <p>If a GUI control is both an active DropTarget and is also scrollable, + it can receive notifications of autoscrolling gestures by the user from + the Drag and Drop system by implementing this interface.</p> + + <p>An autoscrolling gesture is initiated by the user by keeping the drag + cursor motionless with a border region of the Component, referred to as + the "autoscrolling region", for a predefined period of time, this will + result in repeated scroll requests to the Component until the drag Cursor + resumes its motion. </p> +*/ + +published interface XAutoscroll: com::sun::star::uno::XInterface +{ + /** Notify the component to autoscroll. + + @param cursorLocationX + X location of the cursor in pixel. + + @param cursorLocationY + Y location of the cursor in pixel. + */ + + void autoscroll( [in] long cursorLocationX, [in] long cursorLocationY ); + + /** Returns the regions describing the autoscrolling region. + + @returns + The regions describing the autoscrolling region or border + relative to the geometry of the implementing component. + */ + + any getAutoscrollRegion(); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragGestureListener.idl b/offapi/com/sun/star/datatransfer/dnd/XDragGestureListener.idl new file mode 100644 index 000000000..23b2adb56 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragGestureListener.idl @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDragGestureListener_idl__ +#define __com_sun_star_datatransfer_dnd_XDragGestureListener_idl__ + +#include <com/sun/star/datatransfer/dnd/DragGestureEvent.idl> +#include <com/sun/star/lang/XEventListener.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This interface will be used by a XDragGestureRecognizer + when it detects a drag initiating gesture. + + <p>The implementor of this interface is responsible for starting the drag + as a result of receiving such notification.</p> + +*/ + +published interface XDragGestureListener: com::sun::star::lang::XEventListener +{ + /** A XDragGestureRecognizer has detected a platform-dependent + drag initiating gesture and is notifying this listener in order + for it to initiate the action for the user. + + @param dge + The DragGestureEvent describing the gesture that has just occurred. + + */ + void dragGestureRecognized( [in] DragGestureEvent dge ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragGestureRecognizer.idl b/offapi/com/sun/star/datatransfer/dnd/XDragGestureRecognizer.idl new file mode 100644 index 000000000..abc99c61f --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragGestureRecognizer.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDragGestureRecognizer_idl__ +#define __com_sun_star_datatransfer_dnd_XDragGestureRecognizer_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDragGestureListener; + +/** This interface is implemented by a view or window that supports drag + operations. + + <p>Different to Java, the association between view and interface is fixed + and cannot be changed. Otherwise, the AWT messaging would have to be + implemented for any window supporting Drag and Drop operations, which would + be a performance issue.</p> +*/ + +published interface XDragGestureRecognizer: com::sun::star::uno::XInterface +{ + /** Registers a new XDragGestureListener. + + @param dgl + The XDragGestureListener to register with this + XDragGestureRecognizer. + */ + + void addDragGestureListener( [in] XDragGestureListener dgl ); + + /** Unregisters the specified XDragGestureListener. + + @param dgl + The XDragGestureListener to register with this + XDragGestureRecognizer. + */ + + void removeDragGestureListener( [in] XDragGestureListener dgl ); + + /** Reset the recognizer. If it is currently recognizing a gesture, ignore it. + */ + + void resetRecognizer(); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragSource.idl b/offapi/com/sun/star/datatransfer/dnd/XDragSource.idl new file mode 100644 index 000000000..dba6cb36c --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragSource.idl @@ -0,0 +1,116 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDragSource_idl__ +#define __com_sun_star_datatransfer_dnd_XDragSource_idl__ + +#include <com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl> +#include <com/sun/star/datatransfer/dnd/DragGestureEvent.idl> +#include <com/sun/star/datatransfer/XTransferable.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDragSourceListener; + +/** This interface is implemented by a view or window that supports drag + operations and will be received as part of a DragGestureEvent + through a com::sun::star::datatransfer::dnd::XDragGestureListener::dragGestureRecognized() + callback. + + <p>Differently to Java, the association between view and interface is fixed + and can not be changed. Otherwise, the AWT messaging would have to be + implemented for any window supporting Drag and Drop operations, which would + be a real performance issue.</p> +*/ + +published interface XDragSource: com::sun::star::uno::XInterface +{ + + /** In order to query if drag image support is available. + + @returns + A boolean indicating whether or not drag image support is + available on the underlying platform. + */ + + boolean isDragImageSupported(); + + /** To get the default cursor for a specified drag action. + + @param dragAction + A drag action as specified in DNDConstants. + + @returns + The default drag cursor for the specified drag action. + <p>The returned value may be used as parameter for the method + com::sun::star::datatransfer::dnd::XDragSourceContext::setCursor().</p> + */ + + long getDefaultCursor( [in] byte dragAction ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** Starts the drag operation. + + <p>Note: this call does <em>not</em> block until the drag and drop + operation ends. If the Drag and Drop system is unable to initiate + a drag operation or if the user attempts to start a drag while an + existing drag operation is still executing, the action fails immediately. + This is indicated by calling + com::sun::star::datatransfer::dnd::XDragSourceListener::dragDropEnd() + on the parameter listener with a DragSourceDragEvent showing a failure.</p> + + @param trigger + The DragGestureEvent that initiated the drag. + + @param sourceActions + The action or actions supported for this transferable as defined + in DNDConstants. + + @param cursor + The initial drag cursor id or 0 as default. + + @param image + The initial drag image id or 0 as default. + + @param trans + The transferable object dragged. + + @param listener + The XDragSourceListener. + + @see com::sun::star::datatransfer::XTransferable + */ + + void startDrag( + [in] DragGestureEvent trigger, + [in] byte sourceActions, + [in] long cursor, + [in] long image, + [in] com::sun::star::datatransfer::XTransferable trans, + [in] XDragSourceListener listener ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragSourceContext.idl b/offapi/com/sun/star/datatransfer/dnd/XDragSourceContext.idl new file mode 100644 index 000000000..dd9f15b78 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragSourceContext.idl @@ -0,0 +1,92 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDragSourceContext_idl__ +#define __com_sun_star_datatransfer_dnd_XDragSourceContext_idl__ + +#include <com/sun/star/lang/IllegalArgumentException.idl> + + +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 XDragSource::startDrag() + 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. + */ + + void setCursor( [in] long cursorId ); + + /** This method sets the current drag image. + + @param imageId + The identifier the drag source returned when registering the image (0 = none). + Invalid identifier will be ignored. + */ + + void setImage( [in] long imageId ); + + /** This method notifies the context that the + com::sun::star::datatransfer::DataFlavor types + of the transferable object have changed. + + @see com::sun::star::datatransfer::XTransferable + */ + + void transferablesFlavorsChanged(); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragSourceListener.idl b/offapi/com/sun/star/datatransfer/dnd/XDragSourceListener.idl new file mode 100644 index 000000000..342490232 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragSourceListener.idl @@ -0,0 +1,92 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDragSourceListener_idl__ +#define __com_sun_star_datatransfer_dnd_XDragSourceListener_idl__ + +#include <com/sun/star/datatransfer/dnd/DragSourceDragEvent.idl> +#include <com/sun/star/datatransfer/dnd/DragSourceDropEvent.idl> +#include <com/sun/star/lang/XEventListener.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This interface must be implemented by any drag gesture recognizer + implementation that a drag source supports. + + @see com::sun::star::datatransfer::dnd::XDragGestureRecognizer + @see com::sun::star::datatransfer::dnd::XDragSource +*/ + +published interface XDragSourceListener: com::sun::star::lang::XEventListener +{ + /** This method is invoked to signify that the Drag and Drop operation is + complete. + + @param dsde + The DragSourceDropEvent + */ + + void dragDropEnd( [in] DragSourceDropEvent dsde ); + + /** Called as the hotspot enters a platform dependent drop site. + + <p><strong>NOTE:</strong> currently this notification can not be ensured by all + implementations. Do not rely on it ! </p> + + @param dsde + The DragSourceDragEvent. + */ + + void dragEnter( [in] DragSourceDragEvent dsde ); + + /** Called as the hotspot exits a platform dependent drop site. + + <p><strong>NOTE:</strong> Currently this notification can not be ensured by all + implementations. Do not rely on it ! </p> + + @param dse + The DragSourceEvent. + */ + + void dragExit( [in] DragSourceEvent dse ); + + /** Called as the hotspot moves over a platform dependent drop site. + + @param dsde + The DragSourceEvent + */ + + void dragOver( [in] DragSourceDragEvent dsde ); + + /** Called when the user has modified the drop gesture. + + @param dsde + The DragSourceEvent. + */ + + void dropActionChanged( [in] DragSourceDragEvent dsde ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDropTarget.idl b/offapi/com/sun/star/datatransfer/dnd/XDropTarget.idl new file mode 100644 index 000000000..2f27b90e1 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDropTarget.idl @@ -0,0 +1,110 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDropTarget_idl__ +#define __com_sun_star_datatransfer_dnd_XDropTarget_idl__ + +#include <com/sun/star/datatransfer/XTransferable.idl> +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDropTargetListener; + +/** This interface is implemented by a view or window that supports drop + operations. + + <p>Differently to Java, the association between view and interface is fixed + and cannot be changed. Otherwise, the AWT messaging would have to be + implemented for any window supporting Drag and Drop operations, which would + be a performance issue.</p> +*/ + +published interface XDropTarget: com::sun::star::uno::XInterface +{ + /** Add a DropTargetListener. + + <p>The listener will be queried for the XAutoscroll interface + to see if it supports autoscrolling.</p> + + @param dtl + The listener to add to the notification list. + */ + + void addDropTargetListener( [in] XDropTargetListener dtl ); + + /** Remove a drop target listener. + + @param dtl + The listener to remove from notification list. + */ + + void removeDropTargetListener( [in] XDropTargetListener dtl ); + + /** Indicates either a drop target object is active or not. + + @returns + A boolean indicating whether or not this drop target object is + currently active, that is ready to accept drops. + */ + + boolean isActive(); + + /** Sets the drop target object active or inactive. + + @param active + A value of `TRUE` sets the drop target object active. + <p>A value of `FALSE` sets the drop target object inactive. + */ + + void setActive( [in] boolean active ); + + /** Determine the actions supported by a drop target. + + @returns + The current action or actions supported by this drop target. + + <p>By default this will include all drag and drop actions.</p> + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte getDefaultActions(); + + /** Sets the default acceptable actions for this drop target. + + <p>This method is a way to reduce the number of Drag and Drop events + by blocking events for actions not supported by this target.</p> + <p>By default the listener will receive notifications for all actions.</p> + + @param actions + The actions. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + void setDefaultActions( [in] byte actions ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDropTargetDragContext.idl b/offapi/com/sun/star/datatransfer/dnd/XDropTargetDragContext.idl new file mode 100644 index 000000000..3fb006f9a --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDropTargetDragContext.idl @@ -0,0 +1,75 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDropTargetDragContext_idl__ +#define __com_sun_star_datatransfer_dnd_XDropTargetDragContext_idl__ + +#include <com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl> +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This interface is implemented by any drop target context object. + + <p>A drop target context is created whenever the logical cursor associated + with a Drag and Drop operation moves within the visible geometry of a + window associated with a drop target. </p> + + <p>The drop target context provides the mechanism for a potential receiver + of a drop operation to both provide the end user with the appropriate drag + under feedback and effect the subsequent data transfer, if appropriate. </p> +*/ + +published interface XDropTargetDragContext: com::sun::star::uno::XInterface +{ + /** Accept the Drag. + + <p>This method should be called from the methods of XDropTargetListener + <ul> + <li>XDropTargetListener::dragEnter()</li> + <li>XDropTargetListener::dragOver()</li> + <li>XDropTargetListener::dragActionChanged()</li> + </ul> + if the implementation wishes to accept the drag operation with the specified + action.</p> + + @param dragOperation + The operation accepted by the target. + + @see DNDConstants + @see DropTargetDragEvent + */ + + void acceptDrag( [in] byte dragOperation ); + + /** Reject the drag as a result of examining the available + com::sun::star::datatransfer::DataFlavor types + received in the com::sun::star::datatransfer::dnd::XDropTargetListener::dragEnter() method. + */ + + void rejectDrag(); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDropTargetDropContext.idl b/offapi/com/sun/star/datatransfer/dnd/XDropTargetDropContext.idl new file mode 100644 index 000000000..1f1f2dcdc --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDropTargetDropContext.idl @@ -0,0 +1,79 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDropTargetDropContext_idl__ +#define __com_sun_star_datatransfer_dnd_XDropTargetDropContext_idl__ + +#include <com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl> +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This interface is implemented by any drop target context object. + + <p>A DropTargetContext is created whenever the logical cursor associated + with a Drag and Drop operation moves within the visible geometry of a + window associated with a DropTarget. </p> + + <p>The drop target context provides the mechanism for a potential receiver + of a drop operation to provide the end user with the appropriate drag + under feedback and to effect the subsequent data transfer, if appropriate. </p> +*/ + +published interface XDropTargetDropContext : com::sun::star::uno::XInterface +{ + /** Accept the Drop. + + <p>This method should be called from the + com::sun::star::datatransfer::dnd::XDropTargetListener::drop() + method if the implementation wishes to accept the drop operation with the specified action.</p> + + @param dragOperation + The operation accepted by the target. + + @see DNDConstants + @see DropTargetDragEvent + */ + + void acceptDrop( [in] byte dragOperation ); + + /** Reject the drop as a result of examining the available + com::sun::star::datatransfer::DataFlavor types + received in the XDropTargetListener::dragEnter() method. + */ + + void rejectDrop(); + + /** Signals that the drop is completed and if it was successful or not. + + @param success + A value of `TRUE` means the drop completed successfully + <p>A value of `FALSE` means the drop completed unsuccessfully.</p> + */ + + void dropComplete( [in] boolean success ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDropTargetListener.idl b/offapi/com/sun/star/datatransfer/dnd/XDropTargetListener.idl new file mode 100644 index 000000000..5229d18e7 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDropTargetListener.idl @@ -0,0 +1,94 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDropTargetListener_idl__ +#define __com_sun_star_datatransfer_dnd_XDropTargetListener_idl__ + +#include <com/sun/star/datatransfer/dnd/DropTargetDragEnterEvent.idl> +#include <com/sun/star/datatransfer/dnd/DropTargetDropEvent.idl> +#include <com/sun/star/lang/XEventListener.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This interface is the callback interface used by the drop target object to + provide notification of Drag and Drop operations that involve the subject + drop target. + + <p>Methods of this interface may be implemented to provide "drag under" + visual feedback to the user throughout the Drag and Drop operation.</p> +*/ + +published interface XDropTargetListener: com::sun::star::lang::XEventListener +{ + /** The drag operation has terminated with a drop on this drop target. + + <p><strong>NOTE:</strong> The implementation + has to wait until the method XDropTargetDropContext::dropComplete() + is called before releasing the data for the drop operation. This + should occur before returning from drop in a normal flow of operation. + Also, the implementor of XDropTargetListener should not assume + the DropTargetDropEvent to be meaningful after returning + from the XDropTargetListener::drop() method.</p> + + @param dtde + The DropTargetDropEvent. + */ + + void drop( [in] DropTargetDropEvent dtde ); + + /** Called when a drag operation has encountered the drop target. + + @param dtdee + The DropTargetDragEvent. + */ + + void dragEnter( [in] DropTargetDragEnterEvent dtdee ); + + /** The drag operation has departed the drop target without dropping. + + @param dte + The DropTargetEvent. + */ + + void dragExit( [in] DropTargetEvent dte ); + + /** Called when a drag operation is ongoing on the drop target. + + @param dtde + The DropTargetEvent. + */ + + void dragOver( [in] DropTargetDragEvent dtde ); + + /** Called when the user has modified the drop gesture. + + @param dtde + The DropTargetEvent. + */ + + void dropActionChanged( [in] DropTargetDragEvent dtde ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |