summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/datatransfer/clipboard
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/clipboard
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/clipboard')
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/ClipboardEvent.idl46
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/ClipboardManager.idl52
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/GenericClipboard.idl59
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/RenderingCapabilities.idl54
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/SystemClipboard.idl36
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XClipboard.idl83
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XClipboardEx.idl50
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XClipboardFactory.idl60
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XClipboardListener.idl50
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XClipboardManager.idl90
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XClipboardNotifier.idl57
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XClipboardOwner.idl58
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XFlushableClipboard.idl48
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XSystemClipboard.idl63
14 files changed, 806 insertions, 0 deletions
diff --git a/offapi/com/sun/star/datatransfer/clipboard/ClipboardEvent.idl b/offapi/com/sun/star/datatransfer/clipboard/ClipboardEvent.idl
new file mode 100644
index 000000000..536c447af
--- /dev/null
+++ b/offapi/com/sun/star/datatransfer/clipboard/ClipboardEvent.idl
@@ -0,0 +1,46 @@
+/* -*- 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_clipboard_ClipboardEvent_idl__
+#define __com_sun_star_datatransfer_clipboard_ClipboardEvent_idl__
+
+#include <com/sun/star/datatransfer/XTransferable.idl>
+#include <com/sun/star/lang/EventObject.idl>
+
+
+module com { module sun { module star { module datatransfer { module clipboard {
+
+/** A clipboard uses this object to notify its listeners of content changes.
+
+ @see com::sun::star::datatransfer::clipboard::XClipboardListener
+*/
+
+published struct ClipboardEvent: com::sun::star::lang::EventObject
+{
+ /** The current content of the clipboard.
+ */
+ com::sun::star::datatransfer::XTransferable Contents;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/datatransfer/clipboard/ClipboardManager.idl b/offapi/com/sun/star/datatransfer/clipboard/ClipboardManager.idl
new file mode 100644
index 000000000..de4b4f77b
--- /dev/null
+++ b/offapi/com/sun/star/datatransfer/clipboard/ClipboardManager.idl
@@ -0,0 +1,52 @@
+/* -*- 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_clipboard_ClipboardManager_idl__
+#define __com_sun_star_datatransfer_clipboard_ClipboardManager_idl__
+
+#include <com/sun/star/lang/XComponent.idl>
+
+
+module com { module sun { module star { module datatransfer { module clipboard {
+
+
+ published interface XClipboardManager;
+
+/** The clipboard manager is a one-instance service that holds a list of all
+ known clipboard instances.
+
+ @see XClipboardManager
+*/
+published service ClipboardManager
+{
+ /** Manages internal and external clipboard implementations.
+ */
+ interface XClipboardManager;
+
+ /** 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/clipboard/GenericClipboard.idl b/offapi/com/sun/star/datatransfer/clipboard/GenericClipboard.idl
new file mode 100644
index 000000000..880b30a03
--- /dev/null
+++ b/offapi/com/sun/star/datatransfer/clipboard/GenericClipboard.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_clipboard_GenericClipboard_idl__
+#define __com_sun_star_datatransfer_clipboard_GenericClipboard_idl__
+
+#include <com/sun/star/lang/XComponent.idl>
+#include <com/sun/star/lang/XInitialization.idl>
+
+
+module com { module sun { module star { module datatransfer { module clipboard {
+
+
+ published interface XClipboardEx;
+ published interface XClipboardNotifier;
+
+/** A generic clipboard service is a simple container for transferable objects.
+*/
+published service GenericClipboard
+{
+ /** Provides access to the clipboard content.
+ */
+ interface XClipboardEx;
+
+ /** Provides the ability to request notifications on content changes.
+ */
+ interface XClipboardNotifier;
+
+ /** Provides the ability to initially set the name of the clipboard.
+ */
+ 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/clipboard/RenderingCapabilities.idl b/offapi/com/sun/star/datatransfer/clipboard/RenderingCapabilities.idl
new file mode 100644
index 000000000..b254cbf5f
--- /dev/null
+++ b/offapi/com/sun/star/datatransfer/clipboard/RenderingCapabilities.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_clipboard_RenderingCapabilities_idl__
+#define __com_sun_star_datatransfer_clipboard_RenderingCapabilities_idl__
+
+
+module com { module sun { module star { module datatransfer { module clipboard {
+
+/** These flags describe the capabilities a system clipboard has to transfer
+ data to other applications via the OS.
+
+ @see com::sun::star::datatransfer::clipboard::SystemClipboard
+*/
+published constants RenderingCapabilities
+{
+ /** The implementation supports delayed rendering.
+ */
+ const byte Delayed = 1;
+
+ /** The implementation is able to store the data persistent in the system
+ so that it does not get lost when the source application no longer exist.
+ @deprecated since 7.1, rather use "Persistent" const
+ */
+ const byte Persistant = 2;
+
+ /** The implementation is able to store the data persistent in the system
+ so that it does not get lost when the source application no longer exist.
+ */
+ const byte Persistent = 2;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/datatransfer/clipboard/SystemClipboard.idl b/offapi/com/sun/star/datatransfer/clipboard/SystemClipboard.idl
new file mode 100644
index 000000000..9c5c780c4
--- /dev/null
+++ b/offapi/com/sun/star/datatransfer/clipboard/SystemClipboard.idl
@@ -0,0 +1,36 @@
+/* -*- 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_clipboard_SystemClipboard_idl__
+#define __com_sun_star_datatransfer_clipboard_SystemClipboard_idl__
+
+#include <com/sun/star/datatransfer/clipboard/XSystemClipboard.idl>
+
+module com { module sun { module star { module datatransfer { module clipboard {
+
+/** The system clipboard service builds a bridge to the OS specific clipboard
+ interfaces.
+*/
+published service SystemClipboard : XSystemClipboard;
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/datatransfer/clipboard/XClipboard.idl b/offapi/com/sun/star/datatransfer/clipboard/XClipboard.idl
new file mode 100644
index 000000000..32ad8940c
--- /dev/null
+++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboard.idl
@@ -0,0 +1,83 @@
+/* -*- 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_clipboard_XClipboard_idl__
+#define __com_sun_star_datatransfer_clipboard_XClipboard_idl__
+
+#include <com/sun/star/datatransfer/XTransferable.idl>
+#include <com/sun/star/uno/XInterface.idl>
+
+
+module com { module sun { module star { module datatransfer { module clipboard {
+
+/** The default interface to access clipboard instances.
+*/
+
+ published interface XClipboardListener;
+ published interface XClipboardOwner;
+
+published interface XClipboard: com::sun::star::uno::XInterface
+{
+ /** To get the current content of the clipboard.
+
+ @returns
+ The transferable object representing the current content of
+ this clipboard.
+
+ @see com::sun::star::datatransfer::XTransferable
+ */
+ com::sun::star::datatransfer::XTransferable getContents();
+
+ /** Sets the current contents of the clipboard to the specified
+ transferable object and registers the specified clipboard owner
+ as the owner of the new contents.
+
+ @param xTrans
+ The transferable object to set as new content.
+ <p>If the given com::sun::star::datatransfer::XTransferable
+ has no com::sun::star::datatransfer::DataFlavor the clipboard
+ will be deleted.
+ <p>A NULL value is not allowed.</p>
+
+ @param xClipboardOwner
+ The new owner of the clipboard.
+ <p>NULL is an acceptable value and means that the
+ caller is not interested in lost ownership notifications.</p>
+
+ @see com::sun::star::datatransfer::XTransferable
+ @see com::sun::star::datatransfer::clipboard::XClipboardOwner
+ */
+ void setContents( [in] com::sun::star::datatransfer::XTransferable xTrans, [in] XClipboardOwner xClipboardOwner );
+
+ /** To get the name of the clipboard instance.
+
+ @returns
+ The name of this clipboard object.
+ <p>If the returned string is empty the
+ clipboard instance is the system clipboard.</p>
+ */
+ string getName();
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/datatransfer/clipboard/XClipboardEx.idl b/offapi/com/sun/star/datatransfer/clipboard/XClipboardEx.idl
new file mode 100644
index 000000000..83fe95f2a
--- /dev/null
+++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardEx.idl
@@ -0,0 +1,50 @@
+/* -*- 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_clipboard_XClipboardEx_idl__
+#define __com_sun_star_datatransfer_clipboard_XClipboardEx_idl__
+
+#include <com/sun/star/datatransfer/clipboard/XClipboard.idl>
+
+
+module com { module sun { module star { module datatransfer { module clipboard {
+
+/** The extended clipboard interface.
+
+ @see com::sun::star::datatransfer::clipboard::XClipboard
+*/
+
+published interface XClipboardEx: com::sun::star::datatransfer::clipboard::XClipboard
+{
+ /** To determine the supported rendering capabilities of the clipboard instance.
+
+ @returns
+ A set of flags describing the rendering capabilities of the clipboard instance.
+
+ @see RenderingCapabilities
+ */
+ byte getRenderingCapabilities();
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/datatransfer/clipboard/XClipboardFactory.idl b/offapi/com/sun/star/datatransfer/clipboard/XClipboardFactory.idl
new file mode 100644
index 000000000..7fb9fa24c
--- /dev/null
+++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardFactory.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_clipboard_XClipboardFactory_idl__
+#define __com_sun_star_datatransfer_clipboard_XClipboardFactory_idl__
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/uno/XInterface.idl>
+
+
+module com { module sun { module star { module datatransfer { module clipboard {
+
+ published interface XClipboard;
+
+/** Should be implemented by a clipboard factory that simplifies the creation of
+ multiple clipboard instances.
+
+ @see com::sun::star::datatransfer::clipboard::XClipboard
+*/
+
+published interface XClipboardFactory: com::sun::star::uno::XInterface
+{
+ /** Creates a new named clipboard instance.
+
+ @returns
+ A newly created instance of a GenericClipboard
+ implementation.
+
+ @param aName
+ The name the clipboard should have.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ If an empty string is passed as clipboard name.
+ */
+ XClipboard createClipboard( [in] string aName )
+ raises ( com::sun::star::lang::IllegalArgumentException );
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/datatransfer/clipboard/XClipboardListener.idl b/offapi/com/sun/star/datatransfer/clipboard/XClipboardListener.idl
new file mode 100644
index 000000000..2977b6778
--- /dev/null
+++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardListener.idl
@@ -0,0 +1,50 @@
+/* -*- 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_clipboard_XClipboardListener_idl__
+#define __com_sun_star_datatransfer_clipboard_XClipboardListener_idl__
+
+#include <com/sun/star/datatransfer/clipboard/ClipboardEvent.idl>
+#include <com/sun/star/lang/XEventListener.idl>
+
+
+module com { module sun { module star { module datatransfer { module clipboard {
+
+/** Interface to be implemented to receive notifications on clipboard content
+ changes.
+*/
+
+published interface XClipboardListener: com::sun::star::lang::XEventListener
+{
+ /** The content of the clipboard has changed.
+
+ @param event
+ The event object containing the new clipboard content.
+
+ @see com::sun::star::datatransfer::clipboard::ClipboardEvent
+ */
+ void changedContents( [in] ClipboardEvent event );
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/datatransfer/clipboard/XClipboardManager.idl b/offapi/com/sun/star/datatransfer/clipboard/XClipboardManager.idl
new file mode 100644
index 000000000..855e7ac83
--- /dev/null
+++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardManager.idl
@@ -0,0 +1,90 @@
+/* -*- 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_clipboard_XClipboardManager_idl__
+#define __com_sun_star_datatransfer_clipboard_XClipboardManager_idl__
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/container/ElementExistException.idl>
+#include <com/sun/star/container/NoSuchElementException.idl>
+#include <com/sun/star/uno/XInterface.idl>
+
+
+module com { module sun { module star { module datatransfer { module clipboard {
+
+ published interface XClipboard;
+
+/** This interface is used to retrieve, add, or remove clipboard instances.
+
+ @see com::sun::star::datatransfer::clipboard::XClipboard
+*/
+
+published interface XClipboardManager: com::sun::star::uno::XInterface
+{
+ /** Get a clipboard instance by name.
+
+ @returns
+ The clipboard object with the specified name.
+
+ @param aName
+ The name of clipboard to return. To retrieve the default (system)
+ clipboard, pass an empty string.
+
+ @throws com::sun::star::container::NoSuchElementException
+ if no clipboard with the specified name exists.
+ */
+ XClipboard getClipboard( [in] string aName )
+ raises ( com::sun::star::container::NoSuchElementException );
+
+ /** Add a clipboard instance to the manager's list.
+
+ @param xClipboard
+ The clipboard to add.
+
+ @throws com::sun::star::IllegalArgumentException
+ if xClipboard is not a valid clipboard.
+
+ @throws com::sun::star::container::ElementExistsException
+ if a clipboard with the name of xClipboard already exists.
+ */
+ void addClipboard( [in] XClipboard xClipboard )
+ raises ( com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::ElementExistException );
+
+ /** Removes the clipboard with the specified name from the list.
+
+ @param aName
+ The name of the clipboard to remove.
+ */
+ void removeClipboard( [in] string aName );
+
+ /** Get a list of a managed clipboards.
+
+ @returns
+ A sequence of the names of all available clipboards.
+ */
+ sequence < string > listClipboardNames();
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/datatransfer/clipboard/XClipboardNotifier.idl b/offapi/com/sun/star/datatransfer/clipboard/XClipboardNotifier.idl
new file mode 100644
index 000000000..f12ac9a61
--- /dev/null
+++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardNotifier.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_clipboard_XClipboardNotifier_idl__
+#define __com_sun_star_datatransfer_clipboard_XClipboardNotifier_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+
+module com { module sun { module star { module datatransfer { module clipboard {
+
+/** Provides the ability to request notifications on clipboard content changes.
+
+ @see com::sun::star::datatransfer::clipboard::XClipboardListener
+*/
+
+ published interface XClipboardListener;
+
+published interface XClipboardNotifier: com::sun::star::uno::XInterface
+{
+ /** Requests notifications on clipboard content changes.
+
+ @param listener
+ The object receiving the notifications.
+ */
+ void addClipboardListener( [in] XClipboardListener listener );
+
+ /** Removes listener from notification list.
+
+ @param listener
+ The object to remove from notification list.
+ */
+ void removeClipboardListener( [in] XClipboardListener listener );
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/datatransfer/clipboard/XClipboardOwner.idl b/offapi/com/sun/star/datatransfer/clipboard/XClipboardOwner.idl
new file mode 100644
index 000000000..9ece43c82
--- /dev/null
+++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardOwner.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_clipboard_XClipboardOwner_idl__
+#define __com_sun_star_datatransfer_clipboard_XClipboardOwner_idl__
+
+#include <com/sun/star/datatransfer/XTransferable.idl>
+#include <com/sun/star/uno/XInterface.idl>
+
+
+module com { module sun { module star { module datatransfer { module clipboard {
+
+ published interface XClipboard;
+
+/** The owner of a transferable object may pass this interface to the
+ clipboard instance.
+
+ @see com::sun::star::datatransfer::clipboard::XClipboard
+*/
+
+published interface XClipboardOwner: com::sun::star::uno::XInterface
+{
+ /** Notifies the transferable object source that it is no longer the owner of
+ the clipboard.
+
+ @param xClipboard
+ The clipboard for which the ownership was lost.
+
+ @param xTrans
+ The transferable object that has been the contents of the clipboard.
+
+ @see com::sun::star::datatransfer::clipboard::XClipboard
+ @see com::sun::star::datatransfer::XTransferable
+ */
+ void lostOwnership( [in] XClipboard xClipboard, [in] com::sun::star::datatransfer::XTransferable xTrans );
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/datatransfer/clipboard/XFlushableClipboard.idl b/offapi/com/sun/star/datatransfer/clipboard/XFlushableClipboard.idl
new file mode 100644
index 000000000..653690eca
--- /dev/null
+++ b/offapi/com/sun/star/datatransfer/clipboard/XFlushableClipboard.idl
@@ -0,0 +1,48 @@
+/* -*- 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_clipboard_XFlushableClipboard_idl__
+#define __com_sun_star_datatransfer_clipboard_XFlushableClipboard_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+
+module com { module sun { module star { module datatransfer { module clipboard {
+
+/** An interface for flushable clipboards may optionally be implemented by a
+ system clipboard service.
+
+ @see com::sun::star::datatransfer::clipboard::SystemClipboard
+*/
+
+
+published interface XFlushableClipboard: com::sun::star::uno::XInterface
+{
+ /** Renders the current content of the clipboard to the system so that it
+ is available even if the source application no longer exist.
+ */
+ void flushClipboard();
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/datatransfer/clipboard/XSystemClipboard.idl b/offapi/com/sun/star/datatransfer/clipboard/XSystemClipboard.idl
new file mode 100644
index 000000000..32f8bf39d
--- /dev/null
+++ b/offapi/com/sun/star/datatransfer/clipboard/XSystemClipboard.idl
@@ -0,0 +1,63 @@
+/* -*- 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_clipboard_XSystemClipboard_idl__
+#define __com_sun_star_datatransfer_clipboard_XSystemClipboard_idl__
+
+#include <com/sun/star/lang/XComponent.idl>
+#include <com/sun/star/datatransfer/clipboard/XClipboardEx.idl>
+#include <com/sun/star/datatransfer/clipboard/XClipboardNotifier.idl>
+#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.idl>
+
+module com { module sun { module star { module datatransfer { module clipboard {
+
+
+/**
+ Provides a unified interface for new-style service SystemClipboard.
+
+ @since LibreOffice 4.2
+*/
+published interface XSystemClipboard
+{
+ /** Provides access to the clipboard content.
+ */
+ interface XClipboardEx;
+
+ /** Provides the ability to request notifications on content changes.
+ */
+ interface XClipboardNotifier;
+
+ /** Provides the ability to render the complete clipboard content. This
+ interface is only available if the method
+ com::sun::star::datatransfer::clipboard::XClipboardEx::getRenderingCapabilities()
+ returns Persistent
+ */
+ [optional] interface XFlushableClipboard;
+
+ /** For shutdown and listener support.
+ */
+ interface com::sun::star::lang::XComponent;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */