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 | |
parent | Initial commit. (diff) | |
download | libreoffice-upstream/4%7.4.7.tar.xz libreoffice-upstream/4%7.4.7.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')
53 files changed, 3447 insertions, 0 deletions
diff --git a/offapi/com/sun/star/datatransfer/DataFlavor.idl b/offapi/com/sun/star/datatransfer/DataFlavor.idl new file mode 100644 index 000000000..da4a7d77a --- /dev/null +++ b/offapi/com/sun/star/datatransfer/DataFlavor.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_DataFlavor_idl__ +#define __com_sun_star_datatransfer_DataFlavor_idl__ + + +module com { module sun { module star { module datatransfer { + +/** Each instance represents the concept of a data format as it would + appear on a clipboard, or during drag and drop. +*/ + +published struct DataFlavor +{ + /** The MIME content-type (type/subtype) string describing the data format + of the object to transfer. MimeType must conform to <a href="ftp://ftp.isi.edu/in-notes/rfc2045.txt">Rfc2045</a> and + <a href="ftp://ftp.isi.edu/in-notes/rfc2046.txt">Rfc2046</a>) + */ + string MimeType; + + /** A human presentable name for the data format. + */ + string HumanPresentableName; + + /** The type of the object to transfer, for example, XOutputStream. + */ + type DataType; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/DataFormatTranslator.idl b/offapi/com/sun/star/datatransfer/DataFormatTranslator.idl new file mode 100644 index 000000000..33230edef --- /dev/null +++ b/offapi/com/sun/star/datatransfer/DataFormatTranslator.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_DataFormatTranslator_idl__ +#define __com_sun_star_datatransfer_DataFormatTranslator_idl__ + + +module com { module sun { module star { module datatransfer { + + + published interface XDataFormatTranslator; + +/** Different platforms use different types to describe data formats available + during data exchange operations like clipboard or drag&drop. + Implementations of this service do convert system dependent data types to a + DataFlavor and vice versa. + + @see com::sun::star::datatransfer::XDataFormatTranslator + @see com::sun::star::datatransfer::DataFlavor + + Converts a DataFlavor to system data types and vice versa. +*/ +published service DataFormatTranslator : XDataFormatTranslator; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/MimeContentTypeFactory.idl b/offapi/com/sun/star/datatransfer/MimeContentTypeFactory.idl new file mode 100644 index 000000000..8bc8a6cac --- /dev/null +++ b/offapi/com/sun/star/datatransfer/MimeContentTypeFactory.idl @@ -0,0 +1,44 @@ +/* -*- 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_MimeContentTypeFactory_idl__ +#define __com_sun_star_datatransfer_MimeContentTypeFactory_idl__ + + +module com { module sun { module star { module datatransfer { + + + published interface XMimeContentTypeFactory; + +/** Used to create an instance that implement the interface + XMimeContentType from a string + representation of such a MIME content-type that conforms to + <a href="ftp://ftp.isi.edu/in-notes/rfc2045.txt">Rfc2045</a> and + <a href="ftp://ftp.isi.edu/in-notes/rfc2046.txt">Rfc2046</a>. + + @see com::sun::star::datatransfer::XMimeContentTypeFactory +*/ +published service MimeContentTypeFactory : XMimeContentTypeFactory; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/UnsupportedFlavorException.idl b/offapi/com/sun/star/datatransfer/UnsupportedFlavorException.idl new file mode 100644 index 000000000..4e36b4789 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/UnsupportedFlavorException.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 . + */ + +#ifndef __com_sun_star_datatransfer_UnsupportedFlavorException_idl__ +#define __com_sun_star_datatransfer_UnsupportedFlavorException_idl__ + +#include <com/sun/star/uno/Exception.idl> + + +module com { module sun { module star { module datatransfer { + +/** Exception will be thrown if there is a request for data in a + DataFlavor that is not supported by a data source. + + @see com::sun::star::datatransfer::DataFlavor + @see com::sun::star::datatransfer::XTransferable +*/ +published exception UnsupportedFlavorException: com::sun::star::uno::Exception +{ +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XDataFormatTranslator.idl b/offapi/com/sun/star/datatransfer/XDataFormatTranslator.idl new file mode 100644 index 000000000..6e0cbc1d6 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XDataFormatTranslator.idl @@ -0,0 +1,69 @@ +/* -*- 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_XDataFormatTranslator_idl__ +#define __com_sun_star_datatransfer_XDataFormatTranslator_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/datatransfer/DataFlavor.idl> + +module com { module sun { module star { module datatransfer { + +/** Interface to be implemented by objects used to translate a DataFlavor to + a system dependent data transfer type and vice versa. + + <p>Different platforms use different types to describe data formats available + during data exchange operations like clipboard or drag&drop. Windows for instance + uses integer values to describe an available clipboard or drag&drop format, Unix + X11 uses so called Atoms etc.</p> +*/ + +published interface XDataFormatTranslator : com::sun::star::uno::XInterface +{ + /** Converts a DataFlavor to system dependent data type. + + @param aDataFlavor + Describes the format for which a system dependent data types is requested. + + @returns + A system dependent data transfer type for the given DataFlavor + if there is one available. + <p>If the is no system dependent data type for a given DataFlavor + the returned any is empty.</p> + */ + any getSystemDataTypeFromDataFlavor( [in] DataFlavor aDataFlavor ); + + /** Converts a system dependent data type to a DataFlavor. + + @param aSysDataType + A system dependent data type. If aSysDataType is empty so is the returned DataFlavor. + + @returns + A DataFlavor for the given system dependent data transfer type. + <p>If there is no appropriate mapping for a system dependent data type, the returned DataFlavor will be empty.</p> + */ + DataFlavor getDataFlavorFromSystemDataType( [in] any aSysDataType ); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XMimeContentType.idl b/offapi/com/sun/star/datatransfer/XMimeContentType.idl new file mode 100644 index 000000000..f7123876d --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XMimeContentType.idl @@ -0,0 +1,96 @@ +/* -*- 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_XMimeContentType_idl__ +#define __com_sun_star_datatransfer_XMimeContentType_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/container/NoSuchElementException.idl> + +module com { module sun { module star { module datatransfer { + +/** An implementation of this interface represents a MIME content-type that + conforms to <a href="ftp://ftp.isi.edu/in-notes/rfc2045.txt">Rfc2045</a> and + <a href="ftp://ftp.isi.edu/in-notes/rfc2046.txt">Rfc2046</a>. + Instances that implement this interface could be created using the + interface XMimeContentTypeFactory. +*/ + +published interface XMimeContentType : com::sun::star::uno::XInterface +{ + /** To get the media type of the MIME content-type. + + @returns + The media type of the MIME content-type. + */ + string getMediaType( ); + + /** To get the media subtype of the MIME content-type. + + @returns + The media subtype of the MIME content-type. + */ + string getMediaSubtype( ); + + /** To get the full media/submedia type of the MIME content-type. + + @returns + The full media/submedia type of the MIME content-type. + */ + string getFullMediaType( ); + + /** To get a list of parameters that the MIME content-type contains. + + @returns + A list of the names of all parameters of the MIME content-type. + */ + sequence< string > getParameters( ); + + /** To query if a specific parameter is supported. + + @param aName + The name of the parameter to query for. + + @returns + A value of `TRUE` if the MIME content-type has the specified parameter. + <p>A value of `FALSE` if the MIME content-type has not the specified parameter.</p> + */ + boolean hasParameter( [in] string aName ); + + /** To get the value of a specified parameter. + + @param aName + The name of the parameter for which the value is requested. + + @returns + The value of the specified parameter. + + @throws com::sun::star::container::NoSuchElementException + if the specified parameter doesn't exist. + */ + string getParameterValue( [in] string aName ) + raises ( com::sun::star::container::NoSuchElementException ); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XMimeContentTypeFactory.idl b/offapi/com/sun/star/datatransfer/XMimeContentTypeFactory.idl new file mode 100644 index 000000000..f77d9d407 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XMimeContentTypeFactory.idl @@ -0,0 +1,65 @@ +/* -*- 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_XMimeContentTypeFactory_idl__ +#define __com_sun_star_datatransfer_XMimeContentTypeFactory_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/datatransfer/XMimeContentType.idl> + +module com { module sun { module star { module datatransfer { + +/** Implementations of this interface do create a + com::sun::star::datatransfer::XMimeContentType from + a given string that represents a MIME content-type + (see <a href="ftp://ftp.isi.edu/in-notes/rfc2045.txt">Rfc2045</a> and + <a href="ftp://ftp.isi.edu/in-notes/rfc2046.txt">Rfc2046</a>). + +*/ +published interface XMimeContentTypeFactory : com::sun::star::uno::XInterface +{ + /** Creates an object that implements XMimeContentType. + + @param aContentType + A string that represents a MIME content-type as specified in + <a href="ftp://ftp.isi.edu/in-notes/rfc2045.txt">Rfc2045</a> and + <a href="ftp://ftp.isi.edu/in-notes/rfc2046.txt">Rfc2046</a>. + + @returns + An object that implements XMimeContentType. + + @throws com::sun::star::lang::IllegalArgumentException + if the string does not conform to + <a href="ftp://ftp.isi.edu/in-notes/rfc2045.txt">Rfc2045</a> and + <a href="ftp://ftp.isi.edu/in-notes/rfc2046.txt">Rfc2046</a>; + <p><strong>Exception:</strong> Quoted parameter values may contain spaces.</p> + + @see com::sun::star::datatransfer::XMimeContentType + */ + com::sun::star::datatransfer::XMimeContentType createMimeContentType( [in] string aContentType ) + raises ( com::sun::star::lang::IllegalArgumentException ); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XSystemTransferable.idl b/offapi/com/sun/star/datatransfer/XSystemTransferable.idl new file mode 100644 index 000000000..1c976e7f8 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XSystemTransferable.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_XSystemTransferable_idl__ +#define __com_sun_star_datatransfer_XSystemTransferable_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { + +/** Interface to be implemented by objects used to provide system dependent data + for a transfer operation. Those objects usually also implement XTransferable. +*/ + +published interface XSystemTransferable: com::sun::star::uno::XInterface +{ + /** Called by a data consumer to obtain a system specific data object from the + source. + The data object is returned in an any. The contained type may differ on + different platforms. + + @param aProcessId + The argument aProcessId is a process identifier of the caller's process. + The interface implementation must ensure that the system data object can be + used in that process. If the data object is not valid in the caller process + then the returned any must be empty. + + @returns + The system dependent data object. + + <br/><br/><p><strong>Notes:</strong>Under Windows the returned any contains an unsigned long which represents a pointer to + an IDataObject interface. The caller of getData has to release the data + object (IDataObject::Release) if it is no longer needed. + The caller must also make sure that the current thread has been initialized for + OLE (use OleInitialize).</p> + */ + any getData( [in] sequence < byte > aProcessId); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XTransferDataAccess.idl b/offapi/com/sun/star/datatransfer/XTransferDataAccess.idl new file mode 100644 index 000000000..b2a84bb65 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XTransferDataAccess.idl @@ -0,0 +1,68 @@ +/* -*- 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_XTransferDataAccess_idl__ +#define __com_sun_star_datatransfer_XTransferDataAccess_idl__ + +#include <com/sun/star/datatransfer/DataFlavor.idl> +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { + +/** This interface provides direct access to the data in all data flavors. It can + be used by the clipboard implementation to optimize data transport on + flush operations. + + @see com::sun::star::datatransfer::XTransferable +*/ + +published interface XTransferDataAccess: com::sun::star::uno::XInterface +{ + /** To query for the summarized data size in bytes of a sequence of DataFlavor. + + @param aFlavorList + A sequence of requested DataFlavor. + <p>An unsupported DataFlavor will be ignored.</p> + + @returns + The number of bytes of the transfer data in the specified sequence of DataFlavor. + */ + hyper queryDataSize( [in] sequence < DataFlavor > aFlavorList ); + + /** To get all the data of a sequence of DataFlavor. + + @param aFlavorList + The sequence of requested DataFlavor. + <p>An unsupported DataFlavor will be ignored.</p> + + @returns + The data in the requested DataFlavor. + <p>For unsupported DataFlavor an + empty any will be returned.</p> + */ + sequence < any > getData( [in] sequence < DataFlavor > aFlavorList ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XTransferable.idl b/offapi/com/sun/star/datatransfer/XTransferable.idl new file mode 100644 index 000000000..c59a3752a --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XTransferable.idl @@ -0,0 +1,87 @@ +/* -*- 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_XTransferable_idl__ +#define __com_sun_star_datatransfer_XTransferable_idl__ + +#include <com/sun/star/datatransfer/UnsupportedFlavorException.idl> +#include <com/sun/star/datatransfer/DataFlavor.idl> +#include <com/sun/star/io/IOException.idl> +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { + +/** Interface to be implemented by objects used to provide data for a data + transfer operation. + + @see com::sun::star::datatransfer::DataFlavor +*/ + +published interface XTransferable: com::sun::star::uno::XInterface +{ + /** Called by a data consumer to obtain data from the source in a specified + format. + + @param aFlavor + Describes the requested data format + + @returns + The data in the specified DataFlavor. + + @throws com::sun::star::io::IOException + if the data is no longer available in the requested flavor. + + @throws com::sun::star::datatransfer::UnsupportedFlavorException + if the requested DataFlavor is not supported. + */ + any getTransferData( [in] DataFlavor aFlavor ) + raises ( UnsupportedFlavorException, com::sun::star::io::IOException ); + + /** Returns a sequence of supported DataFlavor. + + @returns + The sequence of supported DataFlavor. + + @see com::sun::star::datatransfer::DataFlavor + */ + sequence < DataFlavor > getTransferDataFlavors(); + + /** Checks if the data object supports the specified data flavor. + + @param aFlavor + Describes the format that should be checked + + @returns + A value of `TRUE` if the DataFlavor is supported by the transfer source. + <p>A value of `FALSE` if the DataFlavor is unsupported by the transfer source.</p> + + <br/><br/><p><strong>Note: </strong>This method is only for analogy with the JAVA Clipboard interface. To + avoid many calls, the caller should instead use + com::sun::star::datatransfer::XTransferable::getTransferDataFlavors(). + */ + boolean isDataFlavorSupported( [in] DataFlavor aFlavor ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XTransferable2.idl b/offapi/com/sun/star/datatransfer/XTransferable2.idl new file mode 100644 index 000000000..9fb99e600 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XTransferable2.idl @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/. + */ + +#ifndef __com_sun_star_datatransfer_XTransferable2_idl__ +#define __com_sun_star_datatransfer_XTransferable2_idl__ + +#include <com/sun/star/datatransfer/XTransferable.idl> + +module com { module sun { module star { module datatransfer { + +interface XTransferable2 : com::sun::star::datatransfer::XTransferable +{ + /** This is equivalent of getTransferData of XTransferable, but takes an + additional parameter that specifies the destination document type. + + @param aFlavor requested data format + @param aDestShellID destination document shell ID. The ID of each + individual shell must be unique. + + @returns data in specified data format. + + @throws com::sun::star::io::IOException + if the data is no longer available in the requested flavor. + + @throws com::sun::star::datatransfer::UnsupportedFlavorException + if the requested DataFlavor is not supported. + */ + any getTransferData2( [in] DataFlavor aFlavor, [in] string aDestShellID ) + raises ( UnsupportedFlavorException, com::sun::star::io::IOException ); + + /** + * Returns true if the selection contains embedded objects or is a large text blob. + * + * @since LibreOffice 6.4 + */ + boolean isComplex(); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ + diff --git a/offapi/com/sun/star/datatransfer/XTransferableEx.idl b/offapi/com/sun/star/datatransfer/XTransferableEx.idl new file mode 100644 index 000000000..ac13fca04 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XTransferableEx.idl @@ -0,0 +1,56 @@ +/* -*- 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_XTransferableEx_idl__ +#define __com_sun_star_datatransfer_XTransferableEx_idl__ + +#include <com/sun/star/datatransfer/DataFlavor.idl> +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { + +/** Interface to be implemented by objects used to provide data for a transfer + operation. + + @see com::sun::star::datatransfer::DataFlavor + @see com::sun::star::datatransfer::XTransferable +*/ + + +published interface XTransferableEx: com::sun::star::uno::XInterface +{ + /** @param requestedFlavors + Sequence of DataFlavor of interest. Specify an empty sequence for interest + in all data flavors with top-level MIME content-types. To get all MIME + content-types, call com::sun::star::datatransfer::XTransferable::getTransferDataFlavors(). + + @returns + The list of the matching supported DataFlavor that were requested. For + each requested top-level MIME content-type, all supported subtypes are returned. + */ + sequence < DataFlavor > queryTransferDataFlavors( [in] sequence< DataFlavor > requestedFlavors ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XTransferableSource.idl b/offapi/com/sun/star/datatransfer/XTransferableSource.idl new file mode 100644 index 000000000..f485f0db0 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XTransferableSource.idl @@ -0,0 +1,47 @@ +/* -*- 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_XTransferableSource_idl__ +#define __com_sun_star_datatransfer_XTransferableSource_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { + +/** The transferable source interface. + + @see com::sun::star::datatransfer::XTransferable +*/ + +published interface XTransferableSource: com::sun::star::uno::XInterface +{ + /** @returns + A human presentable description of the source that created the + transferable object. + */ + string getDataSourceDescription(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XTransferableSupplier.idl b/offapi/com/sun/star/datatransfer/XTransferableSupplier.idl new file mode 100644 index 000000000..36cd156a8 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XTransferableSupplier.idl @@ -0,0 +1,62 @@ +/* -*- 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_XTransferableSupplier_idl__ +#define __com_sun_star_datatransfer_XTransferableSupplier_idl__ + +#include <com/sun/star/datatransfer/XTransferable.idl> +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { + +interface XTransferableSupplier +{ + /** To get access to a transferable representation of a selected part of an object. + + @returns + The transferable object representing the selection inside the supplying object + + @see com::sun::star::datatransfer::XTransferable + */ + XTransferable getTransferable(); + + /** Hands over a transferable object that shall be inserted. + + @param xTrans + The transferable object to be inserted + <p>A NULL value is not allowed.</p> + + @throws com::sun::star::datatransfer::UnsupportedFlavorException + if the given com::sun::star::datatransfer::XTransferable + has no com::sun::star::datatransfer::DataFlavor or the called + object can't handle any of the available ones. + + @see com::sun::star::datatransfer::XTransferable + */ + void insertTransferable( [in] XTransferable xTrans ) + raises ( UnsupportedFlavorException ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/XTransferableTextSupplier.idl b/offapi/com/sun/star/datatransfer/XTransferableTextSupplier.idl new file mode 100644 index 000000000..7d91ec9f0 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/XTransferableTextSupplier.idl @@ -0,0 +1,44 @@ +/* -*- 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/. + * + */ + +#ifndef __com_sun_star_datatransfer_XTransferableTextSupplier_idl__ +#define __com_sun_star_datatransfer_XTransferableTextSupplier_idl__ + +#include <com/sun/star/datatransfer/XTransferable.idl> +#include <com/sun/star/text/XTextRange.idl> + + +module com { module sun { module star { module datatransfer { + +/** @since LO 7.2 + */ +interface XTransferableTextSupplier +{ + /** Provide access to a transferable representation of a given text + range. + + @param xRange a text range known to the supplier. + + @returns + a transferable object representing the given text range. + + @see com::sun::star::datatransfer::XTransferable + */ + XTransferable getTransferableForTextRange( + [in] com::sun::star::text::XTextRange xRange); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 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: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DNDConstants.idl b/offapi/com/sun/star/datatransfer/dnd/DNDConstants.idl new file mode 100644 index 000000000..49bee5387 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DNDConstants.idl @@ -0,0 +1,73 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DNDConstants_idl__ +#define __com_sun_star_datatransfer_dnd_DNDConstants_idl__ + + +module com { module sun { module star { module datatransfer { module dnd { + +/** These values represent the type of action or actions to be performed by a + Drag and Drop operation. +*/ + +published constants DNDConstants +{ + /** No action. + */ + + const byte ACTION_NONE = 0x00; + + /** Action copy. + */ + + const byte ACTION_COPY = 0x01; + + /** Action move. + */ + + const byte ACTION_MOVE = 0x02; + + /** Action copy or move. + */ + + const byte ACTION_COPY_OR_MOVE = 0x03; + + /** Action link. + */ + + const byte ACTION_LINK = 0x04; + + /** Action reference. + */ + + const byte ACTION_REFERENCE = 0x04; + + /** Action default. + */ + + const byte ACTION_DEFAULT = -0x80; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DragGestureEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DragGestureEvent.idl new file mode 100644 index 000000000..4055de129 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DragGestureEvent.idl @@ -0,0 +1,80 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DragGestureEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DragGestureEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDragSource; + +/** A DragGestureEvent is passed to the method XDragGestureListener::dragGestureRecognized() + when a particular XDragGestureRecognizer detects that a platform + dependent drag initiating gesture has occurred on the component that it is + tracking. +*/ + +published struct DragGestureEvent: com::sun::star::lang::EventObject +{ + /** The action selected by the user. + <p>Different constants may be combined using a logical OR.</p> + It's further possible to combine the ACTION_DEFAULT with one of the other + actions defined in com::sun::star::datatransfer::dnd::DNDConstants. + This means the user did not press any key during the Drag and Drop operation + and the action that was combined with ACTION_DEFAULT is the system default action.</p> + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte DragAction; + + /** The x coordinate where the drag originated in component coordinates. + */ + + long DragOriginX; + + /** The y coordinate where the drag originated in component coordinates. + */ + + long DragOriginY; + + /** The DragSource associated with this drag action. + */ + + XDragSource DragSource; + + /** The last event comprising the gesture. + + <p>The initial trigger event will presumably be a com::sun::star::awt::MouseEvent event. + If it is not, the implementation should either react accordingly or + presume that the left mouse button was clicked. </p> + */ + + any Event; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DragSourceDragEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DragSourceDragEvent.idl new file mode 100644 index 000000000..ea1bb42eb --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DragSourceDragEvent.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DragSourceDragEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DragSourceDragEvent_idl__ + +#include <com/sun/star/datatransfer/dnd/DragSourceEvent.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** The DragSourceDragEvent is delivered from an object that + implements the XDragSourceContext to the + currently registered drag source listener. + + <p>It contains state regarding the current state of the operation to enable + the operations initiator to provide the end user with the appropriate drag + over feedback.</p> + + @see com::sun::star::datatransfer::dnd::XDragSourceListener +*/ + +published struct DragSourceDragEvent: com::sun::star::datatransfer::dnd::DragSourceEvent +{ + /** The drag action selected by the current drop target. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + byte DropAction; + + /** The user's currently selected drop action. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + byte UserAction; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DragSourceDropEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DragSourceDropEvent.idl new file mode 100644 index 000000000..3ed36c4ed --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DragSourceDropEvent.idl @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DragSourceDropEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DragSourceDropEvent_idl__ + +#include <com/sun/star/datatransfer/dnd/DragSourceEvent.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** The DragSourceDropEvent is delivered from an object that implements + XDragSourceContext to its currently registered drag source listener's. + + <p>It contains sufficient information for the originator of the operation to + provide appropriate feedback to the end user when the operation completes.</p> + + @see com::sun::star::datatransfer::dnd::XDragSourceListener +*/ + +published struct DragSourceDropEvent: com::sun::star::datatransfer::dnd::DragSourceEvent +{ + /** The action performed by the target on the subject of the drop. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte DropAction; + + /** Indicates if the drop was successful. + */ + + boolean DropSuccess; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DragSourceEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DragSourceEvent.idl new file mode 100644 index 000000000..fc30deb8f --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DragSourceEvent.idl @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DragSourceEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DragSourceEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDragSource; + published interface XDragSourceContext; + +/** This class is the base class for DragSourceDragEvent and DragSourceDropEvent. + + <p>To access the XDragSource that originated this event, use the + com::sun::star::lang::EventObject::Source member of + this object.</p> +*/ + +published struct DragSourceEvent: com::sun::star::lang::EventObject +{ + /** The drag source context of the current drag operation. + + @see com::sun::star::datatransfer::dnd::XDragSourceContext + */ + + XDragSourceContext DragSourceContext; + + /** The drag source on which the Drag and Drop operation was initiated. + + @see com::sun::star::datatransfer::dnd::XDragSource + */ + + XDragSource DragSource; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEnterEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEnterEvent.idl new file mode 100644 index 000000000..9b2b38366 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEnterEvent.idl @@ -0,0 +1,54 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DropTargetDragEnterEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DropTargetDragEnterEvent_idl__ + +#include <com/sun/star/datatransfer/dnd/DropTargetDragEvent.idl> +#include <com/sun/star/datatransfer/DataFlavor.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** The DropTargetDragEnterEvent is delivered from the drop target to the + currently registered drop target listeners whenever the logical cursor + associated with a Drag and Drop operation enters the visible geometry + of a window associated with a drop target. + + <p>It contains the com::sun::star::datatransfer::DataFlavor + types supported by the transferable object of the current Drag and Drop operation. </p> + + @see com::sun::star::datatransfer::XTransferable +*/ + +published struct DropTargetDragEnterEvent: DropTargetDragEvent +{ + /** A sequence of supported com::sun::star::datatransfer::DataFlavor types. + + */ + + sequence< com::sun::star::datatransfer::DataFlavor > SupportedDataFlavors; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEvent.idl new file mode 100644 index 000000000..547144175 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DropTargetDragEvent.idl @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DropTargetDragEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DropTargetDragEvent_idl__ + +#include <com/sun/star/datatransfer/dnd/DropTargetEvent.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDropTargetDragContext; + +/** The DropTargetDragEvent is delivered from the drop target + to the currently registered drop target listener. + + <p>It contains information regarding the current state of the operation to enable + the operations initiator to provide the end user with the appropriate drag + over feedback.</p> + + @see com::sun::star::datatransfer::dnd::XDropTargetListener +*/ + +published struct DropTargetDragEvent: com::sun::star::datatransfer::dnd::DropTargetEvent +{ + /** The drop target context of the current drag operation. + + @see com::sun::star::datatransfer::dnd::XDropTargetDragContext + */ + + XDropTargetDragContext Context; + + /** This value represents the currently selected drop action. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte DropAction; + + /** The cursor's current x location within the window's coordinates. + */ + + long LocationX; + + /** The cursor's current y location within the window's coordinates. + */ + + long LocationY; + + /** This value represents the action or actions supported by the source. + This may be a combination of arbitrary source actions except ACTION_DEFAULT. + <p>To combine different actions use a logical OR.</p> + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte SourceActions; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DropTargetDropEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DropTargetDropEvent.idl new file mode 100644 index 000000000..d51a92693 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DropTargetDropEvent.idl @@ -0,0 +1,86 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DropTargetDropEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DropTargetDropEvent_idl__ + +#include <com/sun/star/datatransfer/dnd/DropTargetEvent.idl> +#include <com/sun/star/datatransfer/XTransferable.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDropTargetDropContext; + +/** The DropTargetDropEvent is delivered from the drop target to + its currently registered drop target listener. + + <p>It contains sufficient information for the originator of the operation to + provide appropriate feedback to the end user when the operation completes.</p> +*/ + +published struct DropTargetDropEvent: com::sun::star::datatransfer::dnd::DropTargetEvent +{ + /** The drop target context of the current drag operation. + + @see com::sun::star::datatransfer::dnd::XDropTargetDropContext + */ + + XDropTargetDropContext Context; + + /** This value represents the action or actions selected by the user at + the time of the drop. + + <p>If more than one action is specified, the XDropTargetListener + should raise a dialog to ask the user which action to use.</p> + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte DropAction; + + /** The cursor's current x location within the window's coordinates. + */ + + long LocationX; + + /** The cursor's current y location within the window's coordinates. + */ + + long LocationY; + + /** This value represents the action or actions supported by the source. + */ + + byte SourceActions; + + /** The transferable object associated with the drop. + + @see com::sun::star::datatransfer::XTransferable + */ + + com::sun::star::datatransfer::XTransferable Transferable; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/DropTargetEvent.idl b/offapi/com/sun/star/datatransfer/dnd/DropTargetEvent.idl new file mode 100644 index 000000000..db5379ac8 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/DropTargetEvent.idl @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_DropTargetEvent_idl__ +#define __com_sun_star_datatransfer_dnd_DropTargetEvent_idl__ + +#include <com/sun/star/lang/EventObject.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This class is the base class for DropTargetDragEvent and + DropTargetDropEvent. + + <p>To access the XDropTarget that originated this event, use the + com::sun::star::lang::EventObject::Source member of + this object.</p> +*/ + +published struct DropTargetEvent: com::sun::star::lang::EventObject +{ + /** UNO specification does not allow empty struct definitions. + */ + + byte Dummy; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl b/offapi/com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl new file mode 100644 index 000000000..1a26594bb --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_InvalidDNDOperationException_idl__ +#define __com_sun_star_datatransfer_dnd_InvalidDNDOperationException_idl__ + +#include <com/sun/star/uno/RuntimeException.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This exception is thrown by various methods in the datatransfer.dnd + package. + + <p>It is usually thrown to indicate that the target in question is unable + to undertake the requested operation at the present time, since the + underlying Drag and Drop system is not in the appropriate state.</p> +*/ + +published exception InvalidDNDOperationException: com::sun::star::uno::RuntimeException +{ +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/OleDragSource.idl b/offapi/com/sun/star/datatransfer/dnd/OleDragSource.idl new file mode 100644 index 000000000..c72c2521b --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/OleDragSource.idl @@ -0,0 +1,66 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_OleDragSource_idl__ +#define __com_sun_star_datatransfer_dnd_OleDragSource_idl__ + +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + + published interface XDragSource; + +/** This service connects the Java-like UNO drag and drop protocol to the protocol + used on window platforms. It realized the drag source. + + @see XDragSource +*/ + +published service OleDragSource +{ + /** Used to provide data to other applications via the Ole Drag & Drop protocol. + */ + interface XDragSource; + + /** The service expects a byte sequence uniquely identifying the machine as + the first, and only, parameter. This identifier should be checked to + ensure that the window ids used for creating DropTargets are valid for + the service, that is, come from the same machine. + + <p>TODO: specify how such a machine id should look like.</p> + + The second parameter is a window handle of the native windows window. + It is passed as an unsigned long. + */ + interface com::sun::star::lang::XInitialization; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/OleDropTarget.idl b/offapi/com/sun/star/datatransfer/dnd/OleDropTarget.idl new file mode 100644 index 000000000..7b326e7ef --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/OleDropTarget.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_OleDropTarget_idl__ +#define __com_sun_star_datatransfer_dnd_OleDropTarget_idl__ + +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + +published interface XDropTarget; + +/** This service connects the Java-like UNO Drag & Drop protocol to the protocol + used on window platforms. It realizes the drop target. + + @see XDropTarget +*/ + +published service OleDropTarget +{ + /** Used to provide data to other applications via Ole Drag & Drop protocol. + */ + interface XDropTarget; + + /** The service expects a windows window handle. It is passed as unsigned long. + */ + interface com::sun::star::lang::XInitialization; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/X11DragSource.idl b/offapi/com/sun/star/datatransfer/dnd/X11DragSource.idl new file mode 100644 index 000000000..8561bdbfd --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/X11DragSource.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_X11DragSource_idl__ +#define __com_sun_star_datatransfer_dnd_X11DragSource_idl__ + +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + + published interface XDragSource; + +/** This service connects the Java-like UNO Drag and Drop protocol to the + X Drag and Drop protocol used on X-Servers to transfer data between + applications via Drag and Drop operations. + + @see XDragSource +*/ + +published service X11DragSource +{ + /** Used to provide data to other applications via X Drag and Drop protocol. + */ + interface XDragSource; + + /** The service expects an instance of + com::sun::star::awt::XDisplayConnection + as the first parameter. + */ + interface com::sun::star::lang::XInitialization; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/X11DropTarget.idl b/offapi/com/sun/star/datatransfer/dnd/X11DropTarget.idl new file mode 100644 index 000000000..90d75e9fe --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/X11DropTarget.idl @@ -0,0 +1,64 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_X11DropTarget_idl__ +#define __com_sun_star_datatransfer_dnd_X11DropTarget_idl__ + +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + + published interface XDropTarget; + +/** This service connects the Java-like UNO Drag and Drop protocol to the + X Drag and Drop protocol used on X-Servers to transfer data between + application via Drag and Drop operations. + + @see XDragSource + @see XDropTarget +*/ + +published service X11DropTarget +{ + /** Used to get data from other applications via X Drag and Drop protocol. + */ + interface XDropTarget; + + /** The service expects an instance of + com::sun::star::awt::XDisplayConnection + as the first parameter. The second parameter must be a long + that contains an XWindow window which shall be registered + as drop target. + */ + interface com::sun::star::lang::XInitialization; + + /** For shutdown and listener support. + */ + interface com::sun::star::lang::XComponent; +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XAutoscroll.idl b/offapi/com/sun/star/datatransfer/dnd/XAutoscroll.idl new file mode 100644 index 000000000..22f57420b --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XAutoscroll.idl @@ -0,0 +1,77 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XAutoscroll_idl__ +#define __com_sun_star_datatransfer_dnd_XAutoscroll_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** Interface for autoscroll support. + + <p>During Drag and Drop operations it is possible that a user may wish to drop the + subject of the operation on a region of a scrollable GUI control that is + not currently visible to the user.</p> + + <p>In such situations it is desirable that the GUI control detect this and + institute a scroll operation in order to make obscured region(s) visible to + the user. This feature is known as autoscrolling.</p> + + <p>If a GUI control is both an active DropTarget and is also scrollable, + it can receive notifications of autoscrolling gestures by the user from + the Drag and Drop system by implementing this interface.</p> + + <p>An autoscrolling gesture is initiated by the user by keeping the drag + cursor motionless with a border region of the Component, referred to as + the "autoscrolling region", for a predefined period of time, this will + result in repeated scroll requests to the Component until the drag Cursor + resumes its motion. </p> +*/ + +published interface XAutoscroll: com::sun::star::uno::XInterface +{ + /** Notify the component to autoscroll. + + @param cursorLocationX + X location of the cursor in pixel. + + @param cursorLocationY + Y location of the cursor in pixel. + */ + + void autoscroll( [in] long cursorLocationX, [in] long cursorLocationY ); + + /** Returns the regions describing the autoscrolling region. + + @returns + The regions describing the autoscrolling region or border + relative to the geometry of the implementing component. + */ + + any getAutoscrollRegion(); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragGestureListener.idl b/offapi/com/sun/star/datatransfer/dnd/XDragGestureListener.idl new file mode 100644 index 000000000..23b2adb56 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragGestureListener.idl @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDragGestureListener_idl__ +#define __com_sun_star_datatransfer_dnd_XDragGestureListener_idl__ + +#include <com/sun/star/datatransfer/dnd/DragGestureEvent.idl> +#include <com/sun/star/lang/XEventListener.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This interface will be used by a XDragGestureRecognizer + when it detects a drag initiating gesture. + + <p>The implementor of this interface is responsible for starting the drag + as a result of receiving such notification.</p> + +*/ + +published interface XDragGestureListener: com::sun::star::lang::XEventListener +{ + /** A XDragGestureRecognizer has detected a platform-dependent + drag initiating gesture and is notifying this listener in order + for it to initiate the action for the user. + + @param dge + The DragGestureEvent describing the gesture that has just occurred. + + */ + void dragGestureRecognized( [in] DragGestureEvent dge ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragGestureRecognizer.idl b/offapi/com/sun/star/datatransfer/dnd/XDragGestureRecognizer.idl new file mode 100644 index 000000000..abc99c61f --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragGestureRecognizer.idl @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDragGestureRecognizer_idl__ +#define __com_sun_star_datatransfer_dnd_XDragGestureRecognizer_idl__ + +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDragGestureListener; + +/** This interface is implemented by a view or window that supports drag + operations. + + <p>Different to Java, the association between view and interface is fixed + and cannot be changed. Otherwise, the AWT messaging would have to be + implemented for any window supporting Drag and Drop operations, which would + be a performance issue.</p> +*/ + +published interface XDragGestureRecognizer: com::sun::star::uno::XInterface +{ + /** Registers a new XDragGestureListener. + + @param dgl + The XDragGestureListener to register with this + XDragGestureRecognizer. + */ + + void addDragGestureListener( [in] XDragGestureListener dgl ); + + /** Unregisters the specified XDragGestureListener. + + @param dgl + The XDragGestureListener to register with this + XDragGestureRecognizer. + */ + + void removeDragGestureListener( [in] XDragGestureListener dgl ); + + /** Reset the recognizer. If it is currently recognizing a gesture, ignore it. + */ + + void resetRecognizer(); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragSource.idl b/offapi/com/sun/star/datatransfer/dnd/XDragSource.idl new file mode 100644 index 000000000..dba6cb36c --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragSource.idl @@ -0,0 +1,116 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDragSource_idl__ +#define __com_sun_star_datatransfer_dnd_XDragSource_idl__ + +#include <com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl> +#include <com/sun/star/datatransfer/dnd/DragGestureEvent.idl> +#include <com/sun/star/datatransfer/XTransferable.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDragSourceListener; + +/** This interface is implemented by a view or window that supports drag + operations and will be received as part of a DragGestureEvent + through a com::sun::star::datatransfer::dnd::XDragGestureListener::dragGestureRecognized() + callback. + + <p>Differently to Java, the association between view and interface is fixed + and can not be changed. Otherwise, the AWT messaging would have to be + implemented for any window supporting Drag and Drop operations, which would + be a real performance issue.</p> +*/ + +published interface XDragSource: com::sun::star::uno::XInterface +{ + + /** In order to query if drag image support is available. + + @returns + A boolean indicating whether or not drag image support is + available on the underlying platform. + */ + + boolean isDragImageSupported(); + + /** To get the default cursor for a specified drag action. + + @param dragAction + A drag action as specified in DNDConstants. + + @returns + The default drag cursor for the specified drag action. + <p>The returned value may be used as parameter for the method + com::sun::star::datatransfer::dnd::XDragSourceContext::setCursor().</p> + */ + + long getDefaultCursor( [in] byte dragAction ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** Starts the drag operation. + + <p>Note: this call does <em>not</em> block until the drag and drop + operation ends. If the Drag and Drop system is unable to initiate + a drag operation or if the user attempts to start a drag while an + existing drag operation is still executing, the action fails immediately. + This is indicated by calling + com::sun::star::datatransfer::dnd::XDragSourceListener::dragDropEnd() + on the parameter listener with a DragSourceDragEvent showing a failure.</p> + + @param trigger + The DragGestureEvent that initiated the drag. + + @param sourceActions + The action or actions supported for this transferable as defined + in DNDConstants. + + @param cursor + The initial drag cursor id or 0 as default. + + @param image + The initial drag image id or 0 as default. + + @param trans + The transferable object dragged. + + @param listener + The XDragSourceListener. + + @see com::sun::star::datatransfer::XTransferable + */ + + void startDrag( + [in] DragGestureEvent trigger, + [in] byte sourceActions, + [in] long cursor, + [in] long image, + [in] com::sun::star::datatransfer::XTransferable trans, + [in] XDragSourceListener listener ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragSourceContext.idl b/offapi/com/sun/star/datatransfer/dnd/XDragSourceContext.idl new file mode 100644 index 000000000..dd9f15b78 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragSourceContext.idl @@ -0,0 +1,92 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDragSourceContext_idl__ +#define __com_sun_star_datatransfer_dnd_XDragSourceContext_idl__ + +#include <com/sun/star/lang/IllegalArgumentException.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDragSourceListener; + +/** The drag source context class is responsible for managing the initiator side + of the Drag and Drop protocol. + + <p>In particular, it is responsible for managing event notifications to the + DragSourceListener and providing the Transferable state to enable the data + transfer. </p> + + <p>An instance of this class is created as a result of the method XDragSource::startDrag() + being successfully invoked. This instance is responsible + for tracking the state of the operation on behalf of the drag source and + dispatching state changes to the drag source listener. </p> + + @see com::sun::star::datatransfer::dnd::XDragSourceContext + @see com::sun::star::datatransfer::dnd::XDragSourceListener +*/ + +published interface XDragSourceContext: com::sun::star::uno::XInterface +{ + /** Get the identifier of the currently used cursor. + + @returns + The currently selected drag cursor. + */ + + long getCurrentCursor(); + + /** This method sets the current drag cursor. + + <p>This method should only be called to set another cursor than the + default one for drag action currently selected by the user.</p> + <p>Invalid cursor identifiers will be ignored.</p> + + @param cursorId + The identifier the drag source returned when registering the cursor. + */ + + void setCursor( [in] long cursorId ); + + /** This method sets the current drag image. + + @param imageId + The identifier the drag source returned when registering the image (0 = none). + Invalid identifier will be ignored. + */ + + void setImage( [in] long imageId ); + + /** This method notifies the context that the + com::sun::star::datatransfer::DataFlavor types + of the transferable object have changed. + + @see com::sun::star::datatransfer::XTransferable + */ + + void transferablesFlavorsChanged(); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDragSourceListener.idl b/offapi/com/sun/star/datatransfer/dnd/XDragSourceListener.idl new file mode 100644 index 000000000..342490232 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDragSourceListener.idl @@ -0,0 +1,92 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDragSourceListener_idl__ +#define __com_sun_star_datatransfer_dnd_XDragSourceListener_idl__ + +#include <com/sun/star/datatransfer/dnd/DragSourceDragEvent.idl> +#include <com/sun/star/datatransfer/dnd/DragSourceDropEvent.idl> +#include <com/sun/star/lang/XEventListener.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This interface must be implemented by any drag gesture recognizer + implementation that a drag source supports. + + @see com::sun::star::datatransfer::dnd::XDragGestureRecognizer + @see com::sun::star::datatransfer::dnd::XDragSource +*/ + +published interface XDragSourceListener: com::sun::star::lang::XEventListener +{ + /** This method is invoked to signify that the Drag and Drop operation is + complete. + + @param dsde + The DragSourceDropEvent + */ + + void dragDropEnd( [in] DragSourceDropEvent dsde ); + + /** Called as the hotspot enters a platform dependent drop site. + + <p><strong>NOTE:</strong> currently this notification can not be ensured by all + implementations. Do not rely on it ! </p> + + @param dsde + The DragSourceDragEvent. + */ + + void dragEnter( [in] DragSourceDragEvent dsde ); + + /** Called as the hotspot exits a platform dependent drop site. + + <p><strong>NOTE:</strong> Currently this notification can not be ensured by all + implementations. Do not rely on it ! </p> + + @param dse + The DragSourceEvent. + */ + + void dragExit( [in] DragSourceEvent dse ); + + /** Called as the hotspot moves over a platform dependent drop site. + + @param dsde + The DragSourceEvent + */ + + void dragOver( [in] DragSourceDragEvent dsde ); + + /** Called when the user has modified the drop gesture. + + @param dsde + The DragSourceEvent. + */ + + void dropActionChanged( [in] DragSourceDragEvent dsde ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDropTarget.idl b/offapi/com/sun/star/datatransfer/dnd/XDropTarget.idl new file mode 100644 index 000000000..2f27b90e1 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDropTarget.idl @@ -0,0 +1,110 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDropTarget_idl__ +#define __com_sun_star_datatransfer_dnd_XDropTarget_idl__ + +#include <com/sun/star/datatransfer/XTransferable.idl> +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + + published interface XDropTargetListener; + +/** This interface is implemented by a view or window that supports drop + operations. + + <p>Differently to Java, the association between view and interface is fixed + and cannot be changed. Otherwise, the AWT messaging would have to be + implemented for any window supporting Drag and Drop operations, which would + be a performance issue.</p> +*/ + +published interface XDropTarget: com::sun::star::uno::XInterface +{ + /** Add a DropTargetListener. + + <p>The listener will be queried for the XAutoscroll interface + to see if it supports autoscrolling.</p> + + @param dtl + The listener to add to the notification list. + */ + + void addDropTargetListener( [in] XDropTargetListener dtl ); + + /** Remove a drop target listener. + + @param dtl + The listener to remove from notification list. + */ + + void removeDropTargetListener( [in] XDropTargetListener dtl ); + + /** Indicates either a drop target object is active or not. + + @returns + A boolean indicating whether or not this drop target object is + currently active, that is ready to accept drops. + */ + + boolean isActive(); + + /** Sets the drop target object active or inactive. + + @param active + A value of `TRUE` sets the drop target object active. + <p>A value of `FALSE` sets the drop target object inactive. + */ + + void setActive( [in] boolean active ); + + /** Determine the actions supported by a drop target. + + @returns + The current action or actions supported by this drop target. + + <p>By default this will include all drag and drop actions.</p> + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + + byte getDefaultActions(); + + /** Sets the default acceptable actions for this drop target. + + <p>This method is a way to reduce the number of Drag and Drop events + by blocking events for actions not supported by this target.</p> + <p>By default the listener will receive notifications for all actions.</p> + + @param actions + The actions. + + @see com::sun::star::datatransfer::dnd::DNDConstants + */ + void setDefaultActions( [in] byte actions ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDropTargetDragContext.idl b/offapi/com/sun/star/datatransfer/dnd/XDropTargetDragContext.idl new file mode 100644 index 000000000..3fb006f9a --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDropTargetDragContext.idl @@ -0,0 +1,75 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDropTargetDragContext_idl__ +#define __com_sun_star_datatransfer_dnd_XDropTargetDragContext_idl__ + +#include <com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl> +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This interface is implemented by any drop target context object. + + <p>A drop target context is created whenever the logical cursor associated + with a Drag and Drop operation moves within the visible geometry of a + window associated with a drop target. </p> + + <p>The drop target context provides the mechanism for a potential receiver + of a drop operation to both provide the end user with the appropriate drag + under feedback and effect the subsequent data transfer, if appropriate. </p> +*/ + +published interface XDropTargetDragContext: com::sun::star::uno::XInterface +{ + /** Accept the Drag. + + <p>This method should be called from the methods of XDropTargetListener + <ul> + <li>XDropTargetListener::dragEnter()</li> + <li>XDropTargetListener::dragOver()</li> + <li>XDropTargetListener::dragActionChanged()</li> + </ul> + if the implementation wishes to accept the drag operation with the specified + action.</p> + + @param dragOperation + The operation accepted by the target. + + @see DNDConstants + @see DropTargetDragEvent + */ + + void acceptDrag( [in] byte dragOperation ); + + /** Reject the drag as a result of examining the available + com::sun::star::datatransfer::DataFlavor types + received in the com::sun::star::datatransfer::dnd::XDropTargetListener::dragEnter() method. + */ + + void rejectDrag(); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDropTargetDropContext.idl b/offapi/com/sun/star/datatransfer/dnd/XDropTargetDropContext.idl new file mode 100644 index 000000000..1f1f2dcdc --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDropTargetDropContext.idl @@ -0,0 +1,79 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDropTargetDropContext_idl__ +#define __com_sun_star_datatransfer_dnd_XDropTargetDropContext_idl__ + +#include <com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl> +#include <com/sun/star/uno/XInterface.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This interface is implemented by any drop target context object. + + <p>A DropTargetContext is created whenever the logical cursor associated + with a Drag and Drop operation moves within the visible geometry of a + window associated with a DropTarget. </p> + + <p>The drop target context provides the mechanism for a potential receiver + of a drop operation to provide the end user with the appropriate drag + under feedback and to effect the subsequent data transfer, if appropriate. </p> +*/ + +published interface XDropTargetDropContext : com::sun::star::uno::XInterface +{ + /** Accept the Drop. + + <p>This method should be called from the + com::sun::star::datatransfer::dnd::XDropTargetListener::drop() + method if the implementation wishes to accept the drop operation with the specified action.</p> + + @param dragOperation + The operation accepted by the target. + + @see DNDConstants + @see DropTargetDragEvent + */ + + void acceptDrop( [in] byte dragOperation ); + + /** Reject the drop as a result of examining the available + com::sun::star::datatransfer::DataFlavor types + received in the XDropTargetListener::dragEnter() method. + */ + + void rejectDrop(); + + /** Signals that the drop is completed and if it was successful or not. + + @param success + A value of `TRUE` means the drop completed successfully + <p>A value of `FALSE` means the drop completed unsuccessfully.</p> + */ + + void dropComplete( [in] boolean success ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/datatransfer/dnd/XDropTargetListener.idl b/offapi/com/sun/star/datatransfer/dnd/XDropTargetListener.idl new file mode 100644 index 000000000..5229d18e7 --- /dev/null +++ b/offapi/com/sun/star/datatransfer/dnd/XDropTargetListener.idl @@ -0,0 +1,94 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_datatransfer_dnd_XDropTargetListener_idl__ +#define __com_sun_star_datatransfer_dnd_XDropTargetListener_idl__ + +#include <com/sun/star/datatransfer/dnd/DropTargetDragEnterEvent.idl> +#include <com/sun/star/datatransfer/dnd/DropTargetDropEvent.idl> +#include <com/sun/star/lang/XEventListener.idl> + + +module com { module sun { module star { module datatransfer { module dnd { + +/** This interface is the callback interface used by the drop target object to + provide notification of Drag and Drop operations that involve the subject + drop target. + + <p>Methods of this interface may be implemented to provide "drag under" + visual feedback to the user throughout the Drag and Drop operation.</p> +*/ + +published interface XDropTargetListener: com::sun::star::lang::XEventListener +{ + /** The drag operation has terminated with a drop on this drop target. + + <p><strong>NOTE:</strong> The implementation + has to wait until the method XDropTargetDropContext::dropComplete() + is called before releasing the data for the drop operation. This + should occur before returning from drop in a normal flow of operation. + Also, the implementor of XDropTargetListener should not assume + the DropTargetDropEvent to be meaningful after returning + from the XDropTargetListener::drop() method.</p> + + @param dtde + The DropTargetDropEvent. + */ + + void drop( [in] DropTargetDropEvent dtde ); + + /** Called when a drag operation has encountered the drop target. + + @param dtdee + The DropTargetDragEvent. + */ + + void dragEnter( [in] DropTargetDragEnterEvent dtdee ); + + /** The drag operation has departed the drop target without dropping. + + @param dte + The DropTargetEvent. + */ + + void dragExit( [in] DropTargetEvent dte ); + + /** Called when a drag operation is ongoing on the drop target. + + @param dtde + The DropTargetEvent. + */ + + void dragOver( [in] DropTargetDragEvent dtde ); + + /** Called when the user has modified the drop gesture. + + @param dtde + The DropTargetEvent. + */ + + void dropActionChanged( [in] DropTargetDragEvent dtde ); +}; + + +}; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |