summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/datatransfer/dnd
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
commited5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch)
tree7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /offapi/com/sun/star/datatransfer/dnd
parentInitial commit. (diff)
downloadlibreoffice-upstream.tar.xz
libreoffice-upstream.zip
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'offapi/com/sun/star/datatransfer/dnd')
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DNDConstants.idl73
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DragGestureEvent.idl80
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DragSourceDragEvent.idl59
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DragSourceDropEvent.idl57
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DragSourceEvent.idl60
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DropTargetDragEnterEvent.idl54
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DropTargetDragEvent.idl81
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DropTargetDropEvent.idl86
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DropTargetEvent.idl49
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl45
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/OleDragSource.idl66
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/OleDropTarget.idl58
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/X11DragSource.idl61
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/X11DropTarget.idl64
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XAutoscroll.idl77
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDragGestureListener.idl55
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDragGestureRecognizer.idl70
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDragSource.idl116
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDragSourceContext.idl92
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDragSourceListener.idl92
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDropTarget.idl110
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDropTargetDragContext.idl75
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDropTargetDropContext.idl79
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDropTargetListener.idl94
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: */