From 267c6f2ac71f92999e969232431ba04678e7437e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 07:54:39 +0200 Subject: Adding upstream version 4:24.2.0. Signed-off-by: Daniel Baumann --- .../star/datatransfer/clipboard/ClipboardEvent.idl | 38 ++++++++++ .../datatransfer/clipboard/ClipboardManager.idl | 45 ++++++++++++ .../datatransfer/clipboard/GenericClipboard.idl | 51 ++++++++++++++ .../star/datatransfer/clipboard/LokClipboard.idl | 35 ++++++++++ .../clipboard/RenderingCapabilities.idl | 49 +++++++++++++ .../datatransfer/clipboard/SystemClipboard.idl | 29 ++++++++ .../sun/star/datatransfer/clipboard/XClipboard.idl | 75 ++++++++++++++++++++ .../star/datatransfer/clipboard/XClipboardEx.idl | 43 ++++++++++++ .../datatransfer/clipboard/XClipboardFactory.idl | 52 ++++++++++++++ .../datatransfer/clipboard/XClipboardListener.idl | 42 ++++++++++++ .../datatransfer/clipboard/XClipboardManager.idl | 80 ++++++++++++++++++++++ .../datatransfer/clipboard/XClipboardNotifier.idl | 50 ++++++++++++++ .../datatransfer/clipboard/XClipboardOwner.idl | 51 ++++++++++++++ .../datatransfer/clipboard/XFlushableClipboard.idl | 41 +++++++++++ .../datatransfer/clipboard/XSystemClipboard.idl | 53 ++++++++++++++ 15 files changed, 734 insertions(+) create mode 100644 offapi/com/sun/star/datatransfer/clipboard/ClipboardEvent.idl create mode 100644 offapi/com/sun/star/datatransfer/clipboard/ClipboardManager.idl create mode 100644 offapi/com/sun/star/datatransfer/clipboard/GenericClipboard.idl create mode 100644 offapi/com/sun/star/datatransfer/clipboard/LokClipboard.idl create mode 100644 offapi/com/sun/star/datatransfer/clipboard/RenderingCapabilities.idl create mode 100644 offapi/com/sun/star/datatransfer/clipboard/SystemClipboard.idl create mode 100644 offapi/com/sun/star/datatransfer/clipboard/XClipboard.idl create mode 100644 offapi/com/sun/star/datatransfer/clipboard/XClipboardEx.idl create mode 100644 offapi/com/sun/star/datatransfer/clipboard/XClipboardFactory.idl create mode 100644 offapi/com/sun/star/datatransfer/clipboard/XClipboardListener.idl create mode 100644 offapi/com/sun/star/datatransfer/clipboard/XClipboardManager.idl create mode 100644 offapi/com/sun/star/datatransfer/clipboard/XClipboardNotifier.idl create mode 100644 offapi/com/sun/star/datatransfer/clipboard/XClipboardOwner.idl create mode 100644 offapi/com/sun/star/datatransfer/clipboard/XFlushableClipboard.idl create mode 100644 offapi/com/sun/star/datatransfer/clipboard/XSystemClipboard.idl (limited to 'offapi/com/sun/star/datatransfer/clipboard') 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 0000000000..9c651cb0f0 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/ClipboardEvent.idl @@ -0,0 +1,38 @@ +/* -*- 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 . + */ + + +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; +}; + + +}; }; }; }; }; + +/* 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 0000000000..88880823f5 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/ClipboardManager.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 . + */ + + +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; +}; + + +}; }; }; }; }; + +/* 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 0000000000..046f2abe41 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/GenericClipboard.idl @@ -0,0 +1,51 @@ +/* -*- 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 . + */ + + +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; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/clipboard/LokClipboard.idl b/offapi/com/sun/star/datatransfer/clipboard/LokClipboard.idl new file mode 100644 index 0000000000..4d9d3dea06 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/LokClipboard.idl @@ -0,0 +1,35 @@ +/* -*- 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_LokClipboard_idl__ +#define __com_sun_star_datatransfer_clipboard_LokClipboard_idl__ + +#include + +module com { module sun { module star { module datatransfer { module clipboard { + +/** This service provides access to the clipboard dedicated for current view +*/ +service LokClipboard : XSystemClipboard; + +}; }; }; }; }; + +#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 0000000000..18661f49aa --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/RenderingCapabilities.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 . + */ + + +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; +}; + + +}; }; }; }; }; + +/* 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 0000000000..431cdc45aa --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/SystemClipboard.idl @@ -0,0 +1,29 @@ +/* -*- 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 . + */ + +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; + +}; }; }; }; }; + +/* 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 0000000000..2b548fdb32 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboard.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 . + */ + + +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. +

If the given com::sun::star::datatransfer::XTransferable + has no com::sun::star::datatransfer::DataFlavor the clipboard + will be deleted. +

A NULL value is not allowed.

+ + @param xClipboardOwner + The new owner of the clipboard. +

NULL is an acceptable value and means that the + caller is not interested in lost ownership notifications.

+ + @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. +

If the returned string is empty the + clipboard instance is the system clipboard.

+ */ + string getName(); +}; + + +}; }; }; }; }; + +/* 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 0000000000..dc73526a8a --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardEx.idl @@ -0,0 +1,43 @@ +/* -*- 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 . + */ + + +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(); +}; + + +}; }; }; }; }; + +/* 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 0000000000..92549ae0cd --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardFactory.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 . + */ + + +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 ); +}; + + +}; }; }; }; }; + +/* 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 0000000000..fc9daf09f1 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardListener.idl @@ -0,0 +1,42 @@ +/* -*- 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 . + */ + + +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 ); +}; + + +}; }; }; }; }; + +/* 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 0000000000..02eaefc6eb --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardManager.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 . + */ + + +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(); +}; + + +}; }; }; }; }; + +/* 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 0000000000..e337a617cb --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardNotifier.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 . + */ + + +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 ); +}; + + +}; }; }; }; }; + +/* 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 0000000000..90890cc021 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XClipboardOwner.idl @@ -0,0 +1,51 @@ +/* -*- 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 . + */ + + +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 ); +}; + + +}; }; }; }; }; + +/* 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 0000000000..12f8934840 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XFlushableClipboard.idl @@ -0,0 +1,41 @@ +/* -*- 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 . + */ + + +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(); +}; + + +}; }; }; }; }; + +/* 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 0000000000..9b8483d487 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/clipboard/XSystemClipboard.idl @@ -0,0 +1,53 @@ +/* -*- 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 . + */ + +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; +}; + + +}; }; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3