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/graphic | |
parent | Initial commit. (diff) | |
download | libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.tar.xz libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'offapi/com/sun/star/graphic')
30 files changed, 1916 insertions, 0 deletions
diff --git a/offapi/com/sun/star/graphic/EmfTools.idl b/offapi/com/sun/star/graphic/EmfTools.idl new file mode 100644 index 000000000..f4c2023e9 --- /dev/null +++ b/offapi/com/sun/star/graphic/EmfTools.idl @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef com_sun_star_graphic_EmfTools_idl +#define com_sun_star_graphic_EmfTools_idl + +#include <com/sun/star/graphic/XEmfParser.idl> + +module com { module sun { module star { module graphic +{ + +/** Service that describes the necessary interfaces and properties + to handle emf files. + Parses a WMF/EMF/EMF+ file to a sequence of B2DPrimitives for internal usage + + @since LibreOffice 6.0 + */ + +service EmfTools : XEmfParser; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/Graphic.idl b/offapi/com/sun/star/graphic/Graphic.idl new file mode 100644 index 000000000..a1ee565d2 --- /dev/null +++ b/offapi/com/sun/star/graphic/Graphic.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_graphic_Graphic_idl +#define com_sun_star_graphic_Graphic_idl + +#include <com/sun/star/graphic/XGraphic.idl> +#include <com/sun/star/graphic/GraphicDescriptor.idl> + +module com { module sun { module star { module graphic +{ + +/** This service acts as a container for graphics + + <p>The main interface that has to be implemented for this service + is the XGraphic interface, which itself exposes only + a few methods. Beside this, a Graphic service + incorporates the GraphicDescriptor to give + access to the attributes of the graphic. + + @see XGraphic + @see XGraphicTransformer + @see GraphicDescriptor +*/ +published service Graphic +{ + interface ::com::sun::star::graphic::XGraphic; + + /** + [optional] interface ::com::sun::star::graphic::XGraphicTransformer; + */ + + service ::com::sun::star::graphic::GraphicDescriptor; +}; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicColorMode.idl b/offapi/com/sun/star/graphic/GraphicColorMode.idl new file mode 100644 index 000000000..9c9201185 --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicColorMode.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_graphic_GraphicColorMode_idl__ +#define __com_sun_star_graphic_GraphicColorMode_idl__ + + +module com { module sun { module star { module graphic { + + +/** describes different color modes which can be specified when requesting a graphic. + */ +constants GraphicColorMode +{ + /** describes normal graphic colors, no particular color transformation is applied + to the graphics. + */ + const long NORMAL = 0; + + /** used when requesting graphics which are suitable for a high-contrast + environment. + */ + const long HIGH_CONTRAST = 1; +}; + + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicDescriptor.idl b/offapi/com/sun/star/graphic/GraphicDescriptor.idl new file mode 100644 index 000000000..daf3c88f9 --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicDescriptor.idl @@ -0,0 +1,157 @@ +/* -*- 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_graphic_GraphicDescriptor_idl +#define com_sun_star_graphic_GraphicDescriptor_idl + +#include <com/sun/star/graphic/GraphicType.idl> +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/awt/Size.idl> + +module com { module sun { module star { module graphic +{ + +/** This service describes all graphic properties that are available + via the com::sun::star::beans::XPropertySet interface + + @see XPropertySet +*/ +published service GraphicDescriptor +{ + /** The property interface by which the properties of all + supported services are exchanged + */ + interface ::com::sun::star::beans::XPropertySet; + + /** The type of the graphic + + @see GraphicType + */ + [property] byte GraphicType; + + /** The MimeType of the loaded graphic + + <p> The mime can be the original mime type of the graphic + source the graphic container was constructed from or it + can be the internal mime type image/x-vclgraphic, in which + case the original mime type is not available anymore</p> + + <p> Currently, the following mime types are supported for + loaded graphics:</p> + <ul> + <li>image/bmp</li> + <li>image/gif</li> + <li>image/jpeg</li> + <li>image/x-photo-cd</li> + <li>image/x-pcx</li> + <li>image/png</li> + <li>image/tiff</li> + <li>image/x-xbitmap</li> + <li>image/x-xpixmap</li> + <li>image/x-portable-bitmap</li> + <li>image/x-portable-graymap</li> + <li>image/x-portable-pixmap</li> + <li>image/x-cmu-raster</li> + <li>image/x-targa</li> + <li>image/x-photoshop</li> + <li>image/x-eps</li> + <li>image/x-dxf</li> + <li>image/x-met</li> + <li>image/x-pict</li> + <li>image/x-svm</li> + <li>image/x-wmf</li> + <li>image/x-emf</li> + <li>image/svg+xml</li> + <li>application/pdf</li> + <li>image/x-vclgraphic</li> + </ul> + + */ + [property] string MimeType; + + /** The Size of the graphic in pixel. + + <p> This property may not be available in case of + vector graphics or if the pixel size can not be + determined correctly for some formats without loading + the whole graphic</p> + */ + [optional, property] ::com::sun::star::awt::Size SizePixel; + + /** The Size of the graphic in 100th mm. + + <p> This property may not be available in case of + pixel graphics or if the logical size can not be + determined correctly for some formats without loading + the whole graphic</p> + */ + [optional, property] ::com::sun::star::awt::Size Size100thMM; + + /** The number of bits per pixel used for the pixel graphic + + <p> This property is not available for vector + graphics and may not be available for some kinds + of pixel graphics</p> + */ + [optional, property] byte BitsPerPixel; + + /** Indicates that it is a transparent graphic + + <p>This property is always `TRUE` for vector graphics. + The status of this flag is not always clear if the + graphic was not loaded at all, e.g. in case of just + querying for the GraphicDescriptor.</p> + */ + [optional, property] boolean Transparent; + + /** Indicates that it is a pixel graphic with an alpha channel + + <p>The status of this flag is not always clear if the + graphic was not loaded at all, e.g. in case of just + querying for the GraphicDescriptor</p> + */ + [optional, property] boolean Alpha; + + /** Indicates that it is a graphic that consists of several + frames that can be played as an animation + + <p>The status of this flag is not always clear if the + graphic was not loaded at all, e.g. in case of just + querying for the GraphicDescriptor</p> + */ + [optional, property] boolean Animated; + + /** Indicates that the graphic is an external linked graphic + + @since LibreOffice 6.1 + */ + [optional, property] boolean Linked; + + /** The URL of the location from where the graphic was loaded from + + @since LibreOffice 6.1 + */ + [optional, property] string OriginURL; +}; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicMapper.idl b/offapi/com/sun/star/graphic/GraphicMapper.idl new file mode 100644 index 000000000..f74abd45f --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicMapper.idl @@ -0,0 +1,30 @@ +/* -*- 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_graphic_GraphicMapper_idl +#define com_sun_star_graphic_GraphicMapper_idl + +#include <com/sun/star/graphic/XGraphicMapper.idl> + +module com { module sun { module star { module graphic +{ + +/** implementation of the XGraphicMapper interface + + @see XGraphicMapper + @since LibreOffice 7.1 +*/ +service GraphicMapper : XGraphicMapper; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicObject.idl b/offapi/com/sun/star/graphic/GraphicObject.idl new file mode 100644 index 000000000..9cb89a86c --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicObject.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_graphic_GraphicObject_idl +#define com_sun_star_graphic_GraphicObject_idl + +#include <com/sun/star/graphic/XGraphicObject.idl> + +module com { module sun { module star { module graphic +{ +/** The <code>GraphicObject</code> service can be used to create XGraphicObject instances. + + @see GraphicObject + @see GraphicProvider + @see MediaProperties +*/ + +service GraphicObject : XGraphicObject +{ + /** Creates a GraphicObject + */ + create(); + +}; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicProvider.idl b/offapi/com/sun/star/graphic/GraphicProvider.idl new file mode 100644 index 000000000..1c0664708 --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicProvider.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_graphic_GraphicProvider_idl +#define com_sun_star_graphic_GraphicProvider_idl + +#include <com/sun/star/graphic/XGraphicProvider.idl> + +module com { module sun { module star { module graphic +{ + +/** Central service of the Graphic API that gives access to graphics + of any kind + + <p>This service allows to load graphics from and to store graphics + to any location. The one and only interface that has to be implemented + is the XGraphicProvider interface, that exposes the necessary + methods for loading and storing the graphic contents and descriptors</p> + + @see XGraphicProvider +*/ +published service GraphicProvider : XGraphicProvider; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicRasterizer.idl b/offapi/com/sun/star/graphic/GraphicRasterizer.idl new file mode 100644 index 000000000..63ee501d0 --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicRasterizer.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_graphic_GraphicRasterizer_idl +#define com_sun_star_graphic_GraphicRasterizer_idl + +#include <com/sun/star/graphic/XGraphicRasterizer.idl> + +module com { module sun { module star { module graphic +{ + +/** Service that describes the necessary interfaces and properties + to convert arbitrary graphic data to a XGraphic + interface containing a pixel graphic, that can be rendered the usual + ways. + */ + +service GraphicRasterizer +{ + /** Interface to initiate the rasterizing process + */ + interface ::com::sun::star::graphic::XGraphicRasterizer; + +}; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicRendererVCL.idl b/offapi/com/sun/star/graphic/GraphicRendererVCL.idl new file mode 100644 index 000000000..7fffef432 --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicRendererVCL.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_graphic_GraphicRendererVCL_idl +#define com_sun_star_graphic_GraphicRendererVCL_idl + +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/graphic/XGraphicRenderer.idl> +#include <com/sun/star/awt/Rectangle.idl> + +module com { module sun { module star { module graphic +{ + +/** Service that describes the necessary interfaces and properties + to render a graphic container of XGraphic type + + <p>To render a XGraphic container, just create an + instance of this service, set the appropriate properties and use + the XGraphicRenderer interface to initiate the rendering + process itself</p> + */ +service GraphicRendererVCL +{ + /** Interface to initiate the rendering process + */ + interface ::com::sun::star::graphic::XGraphicRenderer; + + /** The property interface by which the properties of all + supported services are exchanged + */ + interface ::com::sun::star::beans::XPropertySet; + + /** Holds the device onto which the XGraphic + container should be rendered + + <p>In case of using VCL Devices, this property should + hold a com::sun::star::awt::XDevice + interface</p> + */ + [property] any Device; + + /** Specifies the destination rectangle, into which the graphic + content is to be rendered onto the device + */ + [property] ::com::sun::star::awt::Rectangle DestinationRect; + + + /** Additional properties for rendering, unspecified at the moment + */ + [optional, property] any RenderData; +}; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/GraphicType.idl b/offapi/com/sun/star/graphic/GraphicType.idl new file mode 100644 index 000000000..6f00c00ae --- /dev/null +++ b/offapi/com/sun/star/graphic/GraphicType.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_graphic_GraphicType_idl__ +#define __com_sun_star_graphic_GraphicType_idl__ + +module com { module sun { module star { module graphic { + +/** Constants that describe the type of graphic +*/ +published constants GraphicType +{ + /** Graphic is empty + */ + const byte EMPTY = 0; + + /** Graphic is represented through single pixels + */ + const byte PIXEL = 1; + + /** Graphic is represented through vectors + */ + const byte VECTOR = 2; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/MediaProperties.idl b/offapi/com/sun/star/graphic/MediaProperties.idl new file mode 100644 index 000000000..bc2df8d42 --- /dev/null +++ b/offapi/com/sun/star/graphic/MediaProperties.idl @@ -0,0 +1,117 @@ +/* -*- 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_graphic_MediaProperties_idl +#define com_sun_star_graphic_MediaProperties_idl + +#include <com/sun/star/beans/PropertyValues.idl> +#include <com/sun/star/io/XInputStream.idl> +#include <com/sun/star/io/XStream.idl> + +module com { module sun { module star { module graphic +{ + +/** This service describes the properties that are used + when using the XGraphicProvider interface methods +*/ +published service MediaProperties +{ + /** Property that describes the location of the source or target + of the graphic as URL. + + <p>A URL can be used instead of the + #InputStream or #OutputStream + property</p> + + <p>In addition to the normal protocols like file:// or http:// + you can use private URLs as follows to get access to graphics + lying inside the graphicrepository system within an Office context: + <ul> + <li><code>private:graphicrepository/<em><path_in_repository></em></code></li> + </ul> + </p> + + <p> + Note: As of LibreOffice 6.1 GraphicObject scheme URLs are not supported anymore. + For example: + <ul> + <li>vnd.sun.star.GraphicObject:10000000000001940000012FB99807BD</li> + </ul> + </p> + */ + [optional, property ] string URL; + + /** This property is only used for loading graphics or querying + graphic descriptors + + <p>A #InputStream can be used instead of the + #URL property</p> + + @see com::sun::star::io::XInputStream + */ + [optional, property ] ::com::sun::star::io::XInputStream InputStream; + + /** This property is only used for storing graphics + + <p>A #OutputStream can be used instead of the + #URL property</p> + + @see com::sun::star::io::XStream + */ + [optional, property ] ::com::sun::star::io::XStream OutputStream; + + /** This property is only used for storing graphics and describes the + format into which the graphic is to be converted + + <p>At the moment, the following mime types are supported for storing + graphics:</p> + + <ul> + <li>image/bmp</li> + <li>image/gif</li> + <li>image/jpeg</li> + <li>image/png</li> + <li>image/tiff</li> + <li>image/svg+xml</li> + <li>image/x-cmu-raster</li> + <li>image/x-emf</li> + <li>image/x-eps</li> + <li>image/x-met</li> + <li>image/x-pict</li> + <li>image/x-portable-bitmap</li> + <li>image/x-portable-pixmap</li> + <li>image/x-wmf</li> + <li>image/x-svm</li> + <li>image/x-xpixmap</li> + <li>image/x-vclgraphic</li> + </ul> + */ + [optional, property ] string MimeType; + + /** Additional properties that will be passed to the + appropriate filter module. + */ + [optional, property] ::com::sun::star::beans::PropertyValues FilterData; +}; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/PdfTools.idl b/offapi/com/sun/star/graphic/PdfTools.idl new file mode 100644 index 000000000..b2bd2c5cb --- /dev/null +++ b/offapi/com/sun/star/graphic/PdfTools.idl @@ -0,0 +1,29 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef com_sun_star_graphic_PdfTools_idl +#define com_sun_star_graphic_PdfTools_idl + +#include <com/sun/star/graphic/XPdfDecomposer.idl> + +module com { module sun { module star { module graphic +{ + +/** Service to convert a PDF stream into a 2D primitive. + + @since LibreOffice 7.0 + */ + +service PdfTools : XPdfDecomposer; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/Primitive2DTools.idl b/offapi/com/sun/star/graphic/Primitive2DTools.idl new file mode 100644 index 000000000..629165c49 --- /dev/null +++ b/offapi/com/sun/star/graphic/Primitive2DTools.idl @@ -0,0 +1,37 @@ +/* -*- 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_graphic_Primitive2DTools_idl +#define com_sun_star_graphic_Primitive2DTools_idl + +#include <com/sun/star/graphic/XPrimitive2DRenderer.idl> + +module com { module sun { module star { module graphic +{ + +/** Service that describes the necessary interfaces and properties + for tooling involved with XPrimitive2D interfaces + */ +service Primitive2DTools : XPrimitive2DRenderer; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/PrimitiveFactory2D.idl b/offapi/com/sun/star/graphic/PrimitiveFactory2D.idl new file mode 100644 index 000000000..82ce400f2 --- /dev/null +++ b/offapi/com/sun/star/graphic/PrimitiveFactory2D.idl @@ -0,0 +1,37 @@ +/* -*- 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_graphic_PrimitiveFactory2D_idl__ +#define __com_sun_star_graphic_PrimitiveFactory2D_idl__ + +#include <com/sun/star/graphic/XPrimitiveFactory2D.idl> + +module com { module sun { module star { module graphic { + +/** + @since LibreOffice 4.1 + */ +service PrimitiveFactory2D : XPrimitiveFactory2D; + +}; }; }; }; + + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/SvgTools.idl b/offapi/com/sun/star/graphic/SvgTools.idl new file mode 100644 index 000000000..15bdd6cde --- /dev/null +++ b/offapi/com/sun/star/graphic/SvgTools.idl @@ -0,0 +1,39 @@ +/* -*- 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_graphic_SvgTools_idl +#define com_sun_star_graphic_SvgTools_idl + +#include <com/sun/star/graphic/XSvgParser.idl> + +module com { module sun { module star { module graphic +{ + +/** Service that describes the necessary interfaces and properties + to handle svg files. + Parses a svg file to a sequence of B2DPrimitives for internal usage + */ + +service SvgTools : XSvgParser; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XEmfParser.idl b/offapi/com/sun/star/graphic/XEmfParser.idl new file mode 100644 index 000000000..a3f6492e2 --- /dev/null +++ b/offapi/com/sun/star/graphic/XEmfParser.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_graphic_XEmfParser_idl__ +#define __com_sun_star_graphic_XEmfParser_idl__ + +#include <com/sun/star/geometry/RealPoint2D.idl> +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/io/XInputStream.idl> + +module com { module sun { module star { module graphic { + +interface XPrimitive2D; + +/** XEmfParser interface + + This interface allows to parse a WMF/EMF/EMF+ stream in form of a sequence of bytes + to be parsed into a sequence of XPrimitive2Ds + + @since LibreOffice 6.0 + */ +interface XEmfParser : ::com::sun::star::uno::XInterface +{ + /** Retrieve decomposed list of simpler primitives + + @param xEmfStream + The file containing the WMF/EMF/EMF+ binary data + + @param aAbsolutePath + The path containing the WMF/EMF/EMF+ data + + @param Properties + Optional values to override MapMode and size +*/ + sequence< XPrimitive2D > getDecomposition( + [in] io::XInputStream xEmfStream, + [in] string aAbsolutePath, + [in] ::com::sun::star::beans::PropertyValues Properties); + + /** Sets a size hint on this object. + + @param Size + the size in 100/th mm + + @since LibreOffice 7.1 + */ + void setSizeHint([in] com::sun::star::geometry::RealPoint2D Size); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XGraphic.idl b/offapi/com/sun/star/graphic/XGraphic.idl new file mode 100644 index 000000000..3acabcf2f --- /dev/null +++ b/offapi/com/sun/star/graphic/XGraphic.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_graphic_XGraphic_idl +#define com_sun_star_graphic_XGraphic_idl + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/graphic/GraphicType.idl> + +module com { module sun { module star { module graphic +{ + +/** This interface acts as a container for the loaded graphic. + + <p>The interface itself can be retrieved by using the appropriate + methods of XGraphicProvider interface. + XGraphicProvider also offers a method to store + the graphic content at a specific location</p> + + <p>To render the graphic content onto a specific device, you + have to create a XGraphicRenderer interface and pass + this interface appropriately</p> + + @see XGraphicProvider + @see XGraphicRenderer + */ +published interface XGraphic : ::com::sun::star::uno::XInterface +{ + /** Get the type of the contained graphic + + @returns + The type of the contained graphic + + @see GraphicType + */ + byte getType(); +}; + +} ; } ; } ; } ; + +#endif + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XGraphicMapper.idl b/offapi/com/sun/star/graphic/XGraphicMapper.idl new file mode 100644 index 000000000..f1c933b12 --- /dev/null +++ b/offapi/com/sun/star/graphic/XGraphicMapper.idl @@ -0,0 +1,35 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef com_sun_star_graphic_XGraphicCache_idl +#define com_sun_star_graphic_XGraphicCache_idl + +#include <com/sun/star/graphic/XGraphic.idl> + +module com { module sun { module star { module graphic +{ + +/** This interface allows mapping of XGraphics for a certain string key + + @since LibreOffice 7.1 + */ +interface XGraphicMapper +{ + /** Find if we have the XGraphic for the certain key */ + com::sun::star::graphic::XGraphic findGraphic([in] string Id); + + /** Insert a new entry to map an id/key to the XGraphic */ + void putGraphic([in] string Id, [in] com::sun::star::graphic::XGraphic Graphic); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XGraphicObject.idl b/offapi/com/sun/star/graphic/XGraphicObject.idl new file mode 100644 index 000000000..895ef39db --- /dev/null +++ b/offapi/com/sun/star/graphic/XGraphicObject.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_graphic_XGraphicObject_idl +#define com_sun_star_graphic_XGraphicObject_idl + +#include <com/sun/star/uno/XInterface.idl> + +module com { module sun { module star { module graphic +{ +interface XGraphic; +/** <code>XGraphicObject</code> objects represent in-memory image and graphic + objects. + + @see XGraphicObject + @see GraphicProvider + @see MediaProperties +*/ + +interface XGraphicObject : ::com::sun::star::uno::XInterface +{ + /** is the associated image/graphic for this object. + */ + [attribute] XGraphic Graphic; +}; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XGraphicProvider.idl b/offapi/com/sun/star/graphic/XGraphicProvider.idl new file mode 100644 index 000000000..ae13e3d11 --- /dev/null +++ b/offapi/com/sun/star/graphic/XGraphicProvider.idl @@ -0,0 +1,113 @@ +/* -*- 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_graphic_XGraphicProvider_idl +#define com_sun_star_graphic_XGraphicProvider_idl + +#include <com/sun/star/io/XInputStream.idl> +#include <com/sun/star/io/XOutputStream.idl> +#include <com/sun/star/io/IOException.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/lang/WrappedTargetException.idl> +#include <com/sun/star/beans/PropertyValues.idl> +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/graphic/XGraphic.idl> + +module com { module sun { module star { module graphic +{ + +/** This interface acts as the main interface to handle graphic + content. It is used to load graphics, store graphics and + to get information about unloaded graphics + */ +published interface XGraphicProvider : ::com::sun::star::uno::XInterface +{ + /** Calling this method returns a + com::sun::star::beans::XPropertySet + interface that gives access to the properties of the + unloaded graphic + + <p>In most cases, this method will be used to query the + mime type of the graphic and, in the case of pixel graphics, + the resulting size after loading</p> + + @param MediaProperties + A sequence of property values to describe the location + of the graphic, for which the attributes should be returned + + @returns + A com::sun::star::beans::XPropertySet interface + to get access to the different graphic properties + + @see MediaProperties + @see GraphicDescriptor + @see com::sun::star::beans::PropertyValues + */ + ::com::sun::star::beans::XPropertySet queryGraphicDescriptor( [in] ::com::sun::star::beans::PropertyValues MediaProperties ) + raises( ::com::sun::star::io::IOException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException ); + + + + /** Calling this method returns a XGraphic interface + that holds the graphic content after loading the graphic + + @param MediaProperties + A sequence of property values to describe the location + of the graphic from which the graphic is to be loaded + + @returns + The XGraphic interface + + @see MediaProperties + @see XGraphic + @see com::sun::star::beans::PropertyValues + */ + XGraphic queryGraphic( [in] ::com::sun::star::beans::PropertyValues MediaProperties ) + raises( ::com::sun::star::io::IOException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException ); + + /** Store the graphic content, represented through the XGraphic + interface at the specified location + + @param Graphic + The graphic that should be stored + + @param MediaProperties + A sequence of property values to describe the destination + location of the graphic + + @see XGraphic + @see MediaProperties + @see com::sun::star::beans::PropertyValues + */ + void storeGraphic( [in] ::com::sun::star::graphic::XGraphic Graphic, + [in] ::com::sun::star::beans::PropertyValues MediaProperties ) + raises( ::com::sun::star::io::IOException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException ); +}; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XGraphicProvider2.idl b/offapi/com/sun/star/graphic/XGraphicProvider2.idl new file mode 100644 index 000000000..ae098fb26 --- /dev/null +++ b/offapi/com/sun/star/graphic/XGraphicProvider2.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/. + */ + +#ifndef com_sun_star_graphic_XGraphicProvider2_idl +#define com_sun_star_graphic_XGraphicProvider2_idl + +#include <com/sun/star/graphic/XGraphicProvider.idl> + +module com { module sun { module star { module graphic +{ + +/** This interface allows operations on multiple graphics with one method + call. + */ +interface XGraphicProvider2 : XGraphicProvider +{ + /** Calling this method returns XGraphic interfaces + that hold loaded graphics. + + @param MediaPropertiesSeq + A sequence of sequence of property values to describe the location + of the graphics. + + @returns + The XGraphic interfaces + + @see XGraphicProvider::queryGraphic + + @since LibreOffice 6.0 + */ + sequence< XGraphic > queryGraphics([in] sequence< com::sun::star::beans::PropertyValues> MediaPropertiesSeq) + raises( com::sun::star::io::IOException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::WrappedTargetException ); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XGraphicRasterizer.idl b/offapi/com/sun/star/graphic/XGraphicRasterizer.idl new file mode 100644 index 000000000..593976c63 --- /dev/null +++ b/offapi/com/sun/star/graphic/XGraphicRasterizer.idl @@ -0,0 +1,140 @@ +/* -*- 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_graphic_XGraphicRasterizer_idl +#define com_sun_star_graphic_XGraphicRasterizer_idl + +#include <com/sun/star/io/XInputStream.idl> +#include <com/sun/star/graphic/XGraphic.idl> +#include <com/sun/star/beans/PropertyValues.idl> +#include <com/sun/star/beans/XPropertySet.idl> +#include <com/sun/star/awt/Size.idl> + +module com { module sun { module star { module graphic +{ + +/** This interfaces exposes the initialize and a rasterize method to + rasterize a given data stream to a pixel graphic + */ +interface XGraphicRasterizer : ::com::sun::star::uno::XInterface +{ + /** Initializing the rasterizer + + <p>This method could also be used to determine, if + the provided data is able to be rasterized by the + implementation. The implementation should take care of + this feature as well as setting the default image size in + pixel within the given output parameter.</p> + + @param DataStream + The input stream of data that should be rasterized + + @param DPI_X + The horizontal resolution of the callers device in pixel per inch. This + value is needed to calculate the correct dimensions of the graphic to be + rasterized. If a value of <value>0</value> is given, a horizontal default + resolution of 72 DPI is used. + + @param DPI_Y + The vertical resolution of the callers device in pixel per inch. This + value is needed to calculate the correct dimensions of the graphic to be + rasterized. If a value of <value>0</value> is given, a vertical default + resolution of 72 DPI is used. + + @param DefaultSizePixel + The default rendering size in pixel of the underlying graphics + data may be available after the call via this output parameter. + + In case no default size can be determined during initialization, + a default pixel size of 0,0 is returned. In this case, the caller + needs to assume a default pixel size, appropriate for the calling + context. + + @returns + A boolean value indicating if rasterizing of the given data is + possible at all and if the initialization process happened + successfully. + + @see com::sun::star::io::XInputStream + @see com::sun::star::awt::Size + */ + boolean initializeData( [in] com::sun::star::io::XInputStream DataStream, + [in] unsigned long DPI_X, + [in] unsigned long DPI_Y, + [out] com::sun::star::awt::Size DefaultSizePixel ); + + /** Rasterizing the initialized data into a XGraphic container. + + <p>The XGraphic container will contain a pixel + type graphic after a successful rasterization process</p> + + <p>In case of any fault during the rasterization process, + the XGraphic container will be empty afterwards and + the method will return false</p> + + @param Width + The width in pixel of the graphic to be rasterized. + This parameter is used without taking other transformation + values into account. + + @param Height + The height in pixel of the graphic to be rasterized. + This parameter is used without taking other transformation + values into account. + + @param RotateAngle + The rotation angle of the graphic to be rasterized. + This parameter is used without taking other transformation + values into account. The rotation is applied after scaling + and shearing the original image. + + @param ShearAngle_X + The horizontal shear angle of the graphic to be rasterized. + This parameter is used without taking other transformation + values into account. The shearing is applied after scaling + and before rotation of the image. + + @param ShearAngle_Y + The vertical shear angle of the graphic to be rasterized. + This parameter is used without taking other transformation + values into account. The shearing is applied after scaling + and before rotation of the image. + + @param RasterizeProperties + Additional properties for special needs (undefined by now) + + @returns com::sun::star::graphic::XGraphic + An interface to a graphic container that holds the rasterized pixel data + + @see com::sun::star::beans::PropertyValues + @see com::sun::star::graphic::XGraphic + */ + com::sun::star::graphic::XGraphic rasterize( [in] unsigned long Width, + [in] unsigned long Height, + [in] double RotateAngle, + [in] double ShearAngle_X, + [in] double ShearAngle_Y, + [in] com::sun::star::beans::PropertyValues RasterizeProperties ); +}; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XGraphicRenderer.idl b/offapi/com/sun/star/graphic/XGraphicRenderer.idl new file mode 100644 index 000000000..08e337958 --- /dev/null +++ b/offapi/com/sun/star/graphic/XGraphicRenderer.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_graphic_XGraphicRenderer_idl +#define com_sun_star_graphic_XGraphicRenderer_idl + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/graphic/XGraphic.idl> + +module com { module sun { module star { module graphic +{ + +/** This interfaces exposes just one method to render + a XGraphic container + */ +interface XGraphicRenderer : ::com::sun::star::uno::XInterface +{ + /** Renders the XGraphic container + + @param Graphic + The graphic container to be rendered + + @see XGraphic + */ + void render( [in] ::com::sun::star::graphic::XGraphic Graphic ); +}; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XGraphicTransformer.idl b/offapi/com/sun/star/graphic/XGraphicTransformer.idl new file mode 100644 index 000000000..94369ad41 --- /dev/null +++ b/offapi/com/sun/star/graphic/XGraphicTransformer.idl @@ -0,0 +1,76 @@ +/* -*- 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_graphic_XGraphicTransformer_idl +#define com_sun_star_graphic_XGraphicTransformer_idl + +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/graphic/XGraphic.idl> + +module com { module sun { module star { module graphic +{ + +/** This interface is allowing to transform a XGraphic + + <p>To transform a XGraphic, just the corresponding + method has to be used, a new XGraphic instance will be returned + </p> +*/ +interface XGraphicTransformer : ::com::sun::star::uno::XInterface +{ + /** transforms a Graphic + + @returns + The transformed graphic + */ + com::sun::star::graphic::XGraphic colorChange( [ in ] com::sun::star::graphic::XGraphic In, + [ in ] long ColorFrom, [ in ] byte tolerance, [ in ] long ColorTo, [ in ] byte AlphaTo ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + /** applies Duotone effect + + @returns + The modified graphic + */ + com::sun::star::graphic::XGraphic applyDuotone( [ in ] com::sun::star::graphic::XGraphic In, + [ in ] long ColorOne, [ in ] long ColorTwo ) + raises( ::com::sun::star::lang::IllegalArgumentException ); + + /** changes brightness/contrast + + @param In + The input Graphic. + @param brightness + The brightness that shall be applied. + @param contrast + The contrast that shall be applied. + @param mso whether to use MSOffice brightness/contrast formula + @returns + The modified graphic + */ + com::sun::star::graphic::XGraphic applyBrightnessContrast( [ in ] com::sun::star::graphic::XGraphic In, + [ in ] long brightness, [ in ] long contrast, [ in ] boolean mso ) + raises( ::com::sun::star::lang::IllegalArgumentException ); +}; + +} ; } ; } ; } ; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XPdfDecomposer.idl b/offapi/com/sun/star/graphic/XPdfDecomposer.idl new file mode 100644 index 000000000..9976475d7 --- /dev/null +++ b/offapi/com/sun/star/graphic/XPdfDecomposer.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/. + */ + +#ifndef __com_sun_star_graphic_XPdfDecomposer_idl__ +#define __com_sun_star_graphic_XPdfDecomposer_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/uno/util/XBinaryDataContainer.idl> + +module com { module sun { module star { module graphic { + +interface XPrimitive2D; + +/** XPdfDecomposer interface + + This renders a PDF data into a bitmap and returns it as a primitive. + + @since LibreOffice 7.0 + */ +interface XPdfDecomposer : ::com::sun::star::uno::XInterface +{ + /** Retrieve decomposed list - in this case a bitmap with the rendered PDF. + + @param xDataContainer + The PDF data in a data container + + @param xDecompositionParameters + Parameters for decomposition. Parameters include: + + sal_Int32 PageIndex - which page to use + */ + sequence<XPrimitive2D> getDecomposition([in] com::sun::star::util::XBinaryDataContainer xDataContainer, + [in] sequence<com::sun::star::beans::PropertyValue> xDecompositionParameters); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XPrimitive2D.idl b/offapi/com/sun/star/graphic/XPrimitive2D.idl new file mode 100644 index 000000000..30bdeaf8c --- /dev/null +++ b/offapi/com/sun/star/graphic/XPrimitive2D.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_graphic_XPrimitive2D_idl__ +#define __com_sun_star_graphic_XPrimitive2D_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/beans/PropertyValue.idl> +#include <com/sun/star/geometry/RealRectangle2D.idl> + +module com { module sun { module star { module graphic { + +/** XPrimitive2D interface + + This is the basic interface for 2D graphic primitives. They need to be able + - to provide a decomposition consisting of simpler graphic primitives + - to provide a 2D bound rectangle as a 2D range + */ +interface XPrimitive2D : ::com::sun::star::uno::XInterface +{ + /** Retrieve decomposed list of simpler primitives + + @param aViewParameters + 2D View-specific parameter set. The defined but not mandatory + parameters include: + + ::com::sun::star::geometry::AffineMatrix2D Transformation + + A transformation matrix which maps between world coordinates (which + is equal to object's local coordinates) to view coordinates. If not + defined, an empty transformation is implied. + + ::com::sun::star::geometry::RealRectangle2D Viewport + + Defines the visible part of the view in world coordinates. May be used + to optimize decompositions, e.g. for 3D scenes only the visible part + needs to be created. If not given, an empty Viewport is implied which + means all is visible. + + double Time + + Defines the point in time for which the geometry is defined. This may + lead to varied results for animated objects. This value is defined in the + range [0.0 .. n[, negative values are not allowed. If not given, a value of + 0.0 is implied. + */ + sequence< XPrimitive2D > getDecomposition( [in] sequence< ::com::sun::star::beans::PropertyValue > aViewParameters ); + + /** Retrieve bound rect of primitive + + This method calculates the actual bound rect of the area in + <em>world coordinates</em>. Note that for view-dependent primitives, + the necessary pixel adjustments are taken into account. For that reason + the ViewParameters need to be given. + + @param aViewParameters + 2D View-specific parameter set, same as in getDecomposition. + */ + ::com::sun::star::geometry::RealRectangle2D getRange( [in] sequence< ::com::sun::star::beans::PropertyValue > aViewParameters ); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XPrimitive2DRenderer.idl b/offapi/com/sun/star/graphic/XPrimitive2DRenderer.idl new file mode 100644 index 000000000..ce7bad633 --- /dev/null +++ b/offapi/com/sun/star/graphic/XPrimitive2DRenderer.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_graphic_XPrimitive2DRenderer_idl__ +#define __com_sun_star_graphic_XPrimitive2DRenderer_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/rendering/XBitmap.idl> +#include <com/sun/star/beans/PropertyValue.idl> +#include <com/sun/star/geometry/RealRectangle2D.idl> + +module com { module sun { module star { module graphic { + +interface XPrimitive2D; + +/** XPrimitive2DRenderer interface + + This interface allows to convert from a sequence of XPrimitive2Ds + to a XBitmap + */ +interface XPrimitive2DRenderer : ::com::sun::star::uno::XInterface +{ + /** return rasterized version of given XPrimitive2D + + @param Primitive2DSequence + The graphic content description + + @param aViewInformationSequence + The ViewInformation2D + + @param DPI_X + The horizontal resolution of the callers device in pixel per inch. This + value is needed to calculate the correct dimensions of the graphic to be + rasterized. If a value of <value>0</value> is given, a horizontal default + resolution of 72 DPI is used. + + @param DPI_Y + The vertical resolution of the callers device in pixel per inch. This + value is needed to calculate the correct dimensions of the graphic to be + rasterized. If a value of <value>0</value> is given, a vertical default + resolution of 72 DPI is used. + + @param Range + The range in 1/100th mm of the graphic to be rasterized + + @param MaximumQuadraticPixels + The maximum allowed number of pixels to be used to allow limiting the + possible size of used pixels. The AspectRatio is preserved, the result + gets limited to given number. If a value of 0 is given, a default of + 500000 is used. + */ + com::sun::star::rendering::XBitmap rasterize( + [in] sequence< XPrimitive2D > Primitive2DSequence, + [in] sequence< ::com::sun::star::beans::PropertyValue > aViewInformationSequence, + [in] unsigned long DPI_X, + [in] unsigned long DPI_Y, + [in] ::com::sun::star::geometry::RealRectangle2D Range, + [in] unsigned long MaximumQuadraticPixels); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XPrimitive3D.idl b/offapi/com/sun/star/graphic/XPrimitive3D.idl new file mode 100644 index 000000000..f66a9ba75 --- /dev/null +++ b/offapi/com/sun/star/graphic/XPrimitive3D.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_graphic_XPrimitive3D_idl__ +#define __com_sun_star_graphic_XPrimitive3D_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/beans/PropertyValue.idl> +#include <com/sun/star/geometry/RealRectangle3D.idl> + +module com { module sun { module star { module graphic { + +/** XPrimitive3D interface + + This is the basic interface for graphic 3D primitives. They need to be able + - to provide a decomposition consisting of simpler graphic primitives + - to provide a 3D bound rectangle as a 3D range + */ +interface XPrimitive3D : ::com::sun::star::uno::XInterface +{ + /** Retrieve decomposed list of simpler primitives + + @param aViewParameters + 3D View-specific parameter set. The defined but not mandatory + parameters include: + + double Time + + Defines the point in time for which the geometry is defined. This may + lead to varied results for animated objects. This value is defined in the + range [0.0 .. n[, negative values are not allowed. If not given, a value of + 0.0 is implied. + */ + sequence< XPrimitive3D > getDecomposition( [in] sequence< ::com::sun::star::beans::PropertyValue > aViewParameters ); + + /** Retrieve bound rect of primitive + + This method calculates the actual bound rect of the area in + <em>world coordinates</em>. Note that for view-dependent primitives, + the necessary pixel adjustments are taken into account. For that reason + the ViewParameters need to be given. + + @param aViewParameters + 3D View-specific parameter set, same as in getDecomposition. + */ + ::com::sun::star::geometry::RealRectangle3D getRange( [in] sequence< ::com::sun::star::beans::PropertyValue > aViewParameters ); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XPrimitiveFactory2D.idl b/offapi/com/sun/star/graphic/XPrimitiveFactory2D.idl new file mode 100644 index 000000000..b5859f76e --- /dev/null +++ b/offapi/com/sun/star/graphic/XPrimitiveFactory2D.idl @@ -0,0 +1,89 @@ +/* -*- 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_graphic_XPrimitiveFactory2D_idl__ +#define __com_sun_star_graphic_XPrimitiveFactory2D_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/beans/PropertyValue.idl> + + +// predefines + +module com { module sun { module star { module drawing { + interface XShape; + interface XDrawPage; +}; }; }; }; + + + +module com { module sun { module star { module graphic { + +interface XPrimitive2D; + +/** XPrimitiveFactory2D interface + + Use this interface to generate XPrimitive2D instances + */ +interface XPrimitiveFactory2D : ::com::sun::star::uno::XInterface +{ + /** Create primitives from ::com::sun::star::drawing::XShape + + @param xShape + The XShape, for which the primitives are to be + generated. Specifying an invalid or empty shape here will + result in an empty return value. + + @param aParms + Sequence of factory parameters, whose semantics depend on the + shape to be generated. + + @return a sequence of primitives, that consists of the + geometrical representation from the given XShape. + */ + sequence< XPrimitive2D > createPrimitivesFromXShape( + [in] ::com::sun::star::drawing::XShape xShape, + [in] sequence< ::com::sun::star::beans::PropertyValue > aParms ); + + /** Create primitives from ::com::sun::star::drawing::XDrawPage + + @param xDrawPage + The XDrawPage, for which the primitives are to be + generated. Specifying an invalid or empty page here will + result in an empty return value. + + @param aParms + Sequence of factory parameters, whose semantics depend on the + page to be generated. + + @return a sequence of primitives, that consists of the + geometrical representation for the given XDrawPage. + */ + sequence< XPrimitive2D > createPrimitivesFromXDrawPage( + [in] ::com::sun::star::drawing::XDrawPage xDrawPage, + [in] sequence< ::com::sun::star::beans::PropertyValue > aParms ); + +}; + +}; }; }; }; + + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/graphic/XSvgParser.idl b/offapi/com/sun/star/graphic/XSvgParser.idl new file mode 100644 index 000000000..7410a9d79 --- /dev/null +++ b/offapi/com/sun/star/graphic/XSvgParser.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_graphic_XSvgParser_idl__ +#define __com_sun_star_graphic_XSvgParser_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/io/XInputStream.idl> + +module com { module sun { module star { module graphic { + +interface XPrimitive2D; + +/** XSvgParser interface + + This interface allows to parse a SVG stream in form of a sequence of bytes + to be parsed into a sequence of XPrimitive2Ds + */ +interface XSvgParser : ::com::sun::star::uno::XInterface +{ + /** Retrieve decomposed list of simpler primitives + + @param xSvgStream + The file containing the SVG XML data + + @param aAbsolutePath + The path containing the SVG XML data + */ + sequence< XPrimitive2D > getDecomposition( + [in] io::XInputStream xSvgStream, + [in] string aAbsolutePath); + + /** Get the "draw command" graph that is created from the SVG content + + @param xSvgStream + The file containing the SVG XML data + + @param aAbsolutePath + The path containing the SVG XML data + + @since LibreOffice 6.3 + */ + any getDrawCommands( + [in] io::XInputStream xSvgStream, + [in] string aAbsolutePath); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |