summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/graphic
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
commited5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch)
tree7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /offapi/com/sun/star/graphic
parentInitial commit. (diff)
downloadlibreoffice-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')
-rw-r--r--offapi/com/sun/star/graphic/EmfTools.idl41
-rw-r--r--offapi/com/sun/star/graphic/Graphic.idl56
-rw-r--r--offapi/com/sun/star/graphic/GraphicColorMode.idl48
-rw-r--r--offapi/com/sun/star/graphic/GraphicDescriptor.idl157
-rw-r--r--offapi/com/sun/star/graphic/GraphicMapper.idl30
-rw-r--r--offapi/com/sun/star/graphic/GraphicObject.idl46
-rw-r--r--offapi/com/sun/star/graphic/GraphicProvider.idl44
-rw-r--r--offapi/com/sun/star/graphic/GraphicRasterizer.idl46
-rw-r--r--offapi/com/sun/star/graphic/GraphicRendererVCL.idl73
-rw-r--r--offapi/com/sun/star/graphic/GraphicType.idl47
-rw-r--r--offapi/com/sun/star/graphic/MediaProperties.idl117
-rw-r--r--offapi/com/sun/star/graphic/PdfTools.idl29
-rw-r--r--offapi/com/sun/star/graphic/Primitive2DTools.idl37
-rw-r--r--offapi/com/sun/star/graphic/PrimitiveFactory2D.idl37
-rw-r--r--offapi/com/sun/star/graphic/SvgTools.idl39
-rw-r--r--offapi/com/sun/star/graphic/XEmfParser.idl70
-rw-r--r--offapi/com/sun/star/graphic/XGraphic.idl60
-rw-r--r--offapi/com/sun/star/graphic/XGraphicMapper.idl35
-rw-r--r--offapi/com/sun/star/graphic/XGraphicObject.idl47
-rw-r--r--offapi/com/sun/star/graphic/XGraphicProvider.idl113
-rw-r--r--offapi/com/sun/star/graphic/XGraphicProvider2.idl47
-rw-r--r--offapi/com/sun/star/graphic/XGraphicRasterizer.idl140
-rw-r--r--offapi/com/sun/star/graphic/XGraphicRenderer.idl48
-rw-r--r--offapi/com/sun/star/graphic/XGraphicTransformer.idl76
-rw-r--r--offapi/com/sun/star/graphic/XPdfDecomposer.idl46
-rw-r--r--offapi/com/sun/star/graphic/XPrimitive2D.idl81
-rw-r--r--offapi/com/sun/star/graphic/XPrimitive2DRenderer.idl81
-rw-r--r--offapi/com/sun/star/graphic/XPrimitive3D.idl68
-rw-r--r--offapi/com/sun/star/graphic/XPrimitiveFactory2D.idl89
-rw-r--r--offapi/com/sun/star/graphic/XSvgParser.idl68
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>&lt;path_in_repository&gt;</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: */