diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /offapi/com/sun/star/datatransfer/clipboard | |
parent | Initial commit. (diff) | |
download | libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.tar.xz libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.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')
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: */ |