summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/graphic
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 05:54:39 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 05:54:39 +0000
commit267c6f2ac71f92999e969232431ba04678e7437e (patch)
tree358c9467650e1d0a1d7227a21dac2e3d08b622b2 /offapi/com/sun/star/graphic
parentInitial commit. (diff)
downloadlibreoffice-267c6f2ac71f92999e969232431ba04678e7437e.tar.xz
libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.zip
Adding upstream version 4:24.2.0.upstream/4%24.2.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--offapi/com/sun/star/graphic/EmfTools.idl34
-rw-r--r--offapi/com/sun/star/graphic/Graphic.idl48
-rw-r--r--offapi/com/sun/star/graphic/GraphicColorMode.idl43
-rw-r--r--offapi/com/sun/star/graphic/GraphicDescriptor.idl148
-rw-r--r--offapi/com/sun/star/graphic/GraphicMapper.idl23
-rw-r--r--offapi/com/sun/star/graphic/GraphicObject.idl39
-rw-r--r--offapi/com/sun/star/graphic/GraphicProvider.idl37
-rw-r--r--offapi/com/sun/star/graphic/GraphicRasterizer.idl39
-rw-r--r--offapi/com/sun/star/graphic/GraphicRendererVCL.idl64
-rw-r--r--offapi/com/sun/star/graphic/GraphicType.idl42
-rw-r--r--offapi/com/sun/star/graphic/MediaProperties.idl108
-rw-r--r--offapi/com/sun/star/graphic/PdfTools.idl22
-rw-r--r--offapi/com/sun/star/graphic/Primitive2DTools.idl30
-rw-r--r--offapi/com/sun/star/graphic/PrimitiveFactory2D.idl31
-rw-r--r--offapi/com/sun/star/graphic/SvgTools.idl32
-rw-r--r--offapi/com/sun/star/graphic/XEmfParser.idl61
-rw-r--r--offapi/com/sun/star/graphic/XGraphic.idl52
-rw-r--r--offapi/com/sun/star/graphic/XGraphicMapper.idl28
-rw-r--r--offapi/com/sun/star/graphic/XGraphicObject.idl40
-rw-r--r--offapi/com/sun/star/graphic/XGraphicProvider.idl99
-rw-r--r--offapi/com/sun/star/graphic/XGraphicProvider2.idl40
-rw-r--r--offapi/com/sun/star/graphic/XGraphicRasterizer.idl129
-rw-r--r--offapi/com/sun/star/graphic/XGraphicRenderer.idl40
-rw-r--r--offapi/com/sun/star/graphic/XGraphicTransformer.idl68
-rw-r--r--offapi/com/sun/star/graphic/XPdfDecomposer.idl38
-rw-r--r--offapi/com/sun/star/graphic/XPrimitive2D.idl73
-rw-r--r--offapi/com/sun/star/graphic/XPrimitive2DRenderer.idl71
-rw-r--r--offapi/com/sun/star/graphic/XPrimitive3D.idl60
-rw-r--r--offapi/com/sun/star/graphic/XPrimitiveFactory2D.idl82
-rw-r--r--offapi/com/sun/star/graphic/XSvgParser.idl60
30 files changed, 1681 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 0000000000..41891c8d80
--- /dev/null
+++ b/offapi/com/sun/star/graphic/EmfTools.idl
@@ -0,0 +1,34 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+module com { module sun { module star { module 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;
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..ce1555779f
--- /dev/null
+++ b/offapi/com/sun/star/graphic/Graphic.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 .
+ */
+
+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;
+};
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..b4a6cabac0
--- /dev/null
+++ b/offapi/com/sun/star/graphic/GraphicColorMode.idl
@@ -0,0 +1,43 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+
+module com { module sun { module star { module 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;
+};
+
+
+}; }; }; };
+
+
+/* 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 0000000000..a3cfdbe3b4
--- /dev/null
+++ b/offapi/com/sun/star/graphic/GraphicDescriptor.idl
@@ -0,0 +1,148 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+module com { module sun { module star { module 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;
+};
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..05075298f0
--- /dev/null
+++ b/offapi/com/sun/star/graphic/GraphicMapper.idl
@@ -0,0 +1,23 @@
+/* -*- 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/.
+ *
+ */
+
+module com { module sun { module star { module graphic
+{
+
+/** implementation of the XGraphicMapper interface
+
+ @see XGraphicMapper
+ @since LibreOffice 7.1
+*/
+service GraphicMapper : XGraphicMapper;
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..c1f3b61442
--- /dev/null
+++ b/offapi/com/sun/star/graphic/GraphicObject.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 .
+ */
+
+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();
+
+};
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..01961f89bd
--- /dev/null
+++ b/offapi/com/sun/star/graphic/GraphicProvider.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 .
+ */
+
+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;
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..a9146d06a0
--- /dev/null
+++ b/offapi/com/sun/star/graphic/GraphicRasterizer.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 .
+ */
+
+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;
+
+};
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..e9a45c965e
--- /dev/null
+++ b/offapi/com/sun/star/graphic/GraphicRendererVCL.idl
@@ -0,0 +1,64 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+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;
+};
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..b2d0c05f0d
--- /dev/null
+++ b/offapi/com/sun/star/graphic/GraphicType.idl
@@ -0,0 +1,42 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+module com { module sun { module star { module 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;
+};
+
+
+}; }; }; };
+
+/* 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 0000000000..ac1d64b96f
--- /dev/null
+++ b/offapi/com/sun/star/graphic/MediaProperties.idl
@@ -0,0 +1,108 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+module com { module sun { module star { module 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;
+};
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..5547c958f5
--- /dev/null
+++ b/offapi/com/sun/star/graphic/PdfTools.idl
@@ -0,0 +1,22 @@
+/* -*- 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/.
+ */
+
+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;
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..7ca6de7066
--- /dev/null
+++ b/offapi/com/sun/star/graphic/Primitive2DTools.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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+module com { module sun { module star { module graphic
+{
+
+/** Service that describes the necessary interfaces and properties
+ for tooling involved with XPrimitive2D interfaces
+ */
+service Primitive2DTools : XPrimitive2DRenderer;
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..46fa466bfd
--- /dev/null
+++ b/offapi/com/sun/star/graphic/PrimitiveFactory2D.idl
@@ -0,0 +1,31 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+module com { module sun { module star { module graphic {
+
+/**
+ @since LibreOffice 4.1
+ */
+service PrimitiveFactory2D : XPrimitiveFactory2D;
+
+}; }; }; };
+
+
+
+/* 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 0000000000..f361702889
--- /dev/null
+++ b/offapi/com/sun/star/graphic/SvgTools.idl
@@ -0,0 +1,32 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+module com { module sun { module star { module 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;
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..fe05b29c9b
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XEmfParser.idl
@@ -0,0 +1,61 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+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);
+};
+
+}; }; }; };
+
+/* 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 0000000000..7492eeb1bd
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XGraphic.idl
@@ -0,0 +1,52 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+module com { module sun { module star { module 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();
+};
+
+} ; } ; } ; } ;
+
+
+/* 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 0000000000..3de68e5bcf
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XGraphicMapper.idl
@@ -0,0 +1,28 @@
+/* -*- 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/.
+ */
+
+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);
+};
+
+}; }; }; };
+
+/* 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 0000000000..15bbe748f3
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XGraphicObject.idl
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+module com { module sun { module star { module 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;
+};
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..b9777996c5
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XGraphicProvider.idl
@@ -0,0 +1,99 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+module com { module sun { module star { module 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 );
+};
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..a71ba306d5
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XGraphicProvider2.idl
@@ -0,0 +1,40 @@
+/* -*- 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/.
+ */
+
+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 );
+};
+
+}; }; }; };
+
+/* 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 0000000000..2436c9a4c4
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XGraphicRasterizer.idl
@@ -0,0 +1,129 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+module com { module sun { module star { module 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 );
+};
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..c63ef4b4f9
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XGraphicRenderer.idl
@@ -0,0 +1,40 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+module com { module sun { module star { module 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 );
+};
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..e54664e618
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XGraphicTransformer.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 .
+ */
+
+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 );
+};
+
+} ; } ; } ; } ;
+
+/* 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 0000000000..e907b96fd6
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XPdfDecomposer.idl
@@ -0,0 +1,38 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+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);
+};
+
+}; }; }; };
+
+/* 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 0000000000..7e48016c9d
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XPrimitive2D.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 .
+ */
+
+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 );
+};
+
+}; }; }; };
+
+/* 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 0000000000..229b5abac6
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XPrimitive2DRenderer.idl
@@ -0,0 +1,71 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+module com { module sun { module star { module 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);
+};
+
+}; }; }; };
+
+/* 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 0000000000..1ef27a3b60
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XPrimitive3D.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 .
+ */
+
+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 );
+};
+
+}; }; }; };
+
+/* 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 0000000000..90ce684391
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XPrimitiveFactory2D.idl
@@ -0,0 +1,82 @@
+/* -*- 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 .
+ */
+
+
+// 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 );
+
+};
+
+}; }; }; };
+
+
+
+/* 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 0000000000..4e1cf166b9
--- /dev/null
+++ b/offapi/com/sun/star/graphic/XSvgParser.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 .
+ */
+
+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);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */