LibreOffice Module vcl (master) 1
UnoGraphicDescriptor.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#ifndef INCLUDED_VCL_SOURCE_GRAPHIC_DESCRIPTOR_HXX
21#define INCLUDED_VCL_SOURCE_GRAPHIC_DESCRIPTOR_HXX
22
24#include <com/sun/star/lang/XServiceInfo.hpp>
25
28#include <vcl/graph.hxx>
29
30#define MIMETYPE_BMP "image/x-MS-bmp"
31#define MIMETYPE_GIF "image/gif"
32#define MIMETYPE_JPG "image/jpeg"
33#define MIMETYPE_PCD "image/x-photo-cd"
34#define MIMETYPE_PCX "image/x-pcx"
35#define MIMETYPE_PNG "image/png"
36#define MIMETYPE_TIF "image/tiff"
37#define MIMETYPE_XBM "image/x-xbitmap"
38#define MIMETYPE_XPM "image/x-xpixmap"
39#define MIMETYPE_PBM "image/x-portable-bitmap"
40#define MIMETYPE_PGM "image/x-portable-graymap"
41#define MIMETYPE_PPM "image/x-portable-pixmap"
42#define MIMETYPE_RAS "image/x-cmu-raster"
43#define MIMETYPE_TGA "image/x-targa"
44#define MIMETYPE_PSD "image/vnd.adobe.photoshop"
45#define MIMETYPE_EPS "image/x-eps"
46#define MIMETYPE_DXF "image/vnd.dxf"
47#define MIMETYPE_MET "image/x-met"
48#define MIMETYPE_PCT "image/x-pict"
49#define MIMETYPE_SVM "image/x-svm"
50#define MIMETYPE_WMF "image/x-wmf"
51#define MIMETYPE_EMF "image/x-emf"
52#define MIMETYPE_SVG "image/svg+xml"
53#define MIMETYPE_PDF "application/pdf"
54#define MIMETYPE_WEBP "image/webp"
55inline constexpr OUStringLiteral MIMETYPE_VCLGRAPHIC = u"image/x-vclgraphic";
56
57namespace comphelper { class PropertySetInfo; }
58namespace com::sun::star::io { class XInputStream; }
59
60class Graphic;
61
62namespace unographic {
63
65 public css::lang::XServiceInfo,
66 public css::lang::XTypeProvider,
68{
69public:
70
72 virtual ~GraphicDescriptor() noexcept override;
73
74 void init( const ::Graphic& rGraphic );
75 void init( const OUString& rURL );
76 void init( const css::uno::Reference< css::io::XInputStream >& rxIStm, const OUString& rURL );
77
79
80 // XInterface
81 virtual css::uno::Any SAL_CALL queryAggregation( const css::uno::Type & rType ) override;
82 virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
83 virtual void SAL_CALL acquire() noexcept override;
84 virtual void SAL_CALL release() noexcept override;
85
86protected:
87 // XServiceInfo
88 virtual OUString SAL_CALL getImplementationName() override;
89 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
90 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
91
92 // XTypeProvider
93 virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override;
94 virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) override;
95
96 // PropertySetHelper
97 virtual void _setPropertyValues( const comphelper::PropertyMapEntry** ppEntries, const css::uno::Any* pValues ) override;
98 virtual void _getPropertyValues( const comphelper::PropertyMapEntry** ppEntries, css::uno::Any* pValue ) override;
99
100private:
101
104 OUString maMimeType;
107 sal_uInt16 mnBitsPerPixel;
109
110 GraphicDescriptor( const GraphicDescriptor& rDescriptor ) = delete;
111
112 GraphicDescriptor& operator=( const GraphicDescriptor& ) = delete;
113
114 void implCreate( SvStream& rIStm, const OUString* pPath );
115};
116
117}
118
119#endif
120
121/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
constexpr OUStringLiteral MIMETYPE_VCLGRAPHIC
virtual void _setPropertyValues(const comphelper::PropertyMapEntry **ppEntries, const css::uno::Any *pValues) override
static rtl::Reference<::comphelper::PropertySetInfo > createPropertySetInfo()
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
void init(const css::uno::Reference< css::io::XInputStream > &rxIStm, const OUString &rURL)
virtual void SAL_CALL release() noexcept override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual css::uno::Any SAL_CALL queryAggregation(const css::uno::Type &rType) override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
virtual ~GraphicDescriptor() noexcept override
void init(const ::Graphic &rGraphic)
virtual void _getPropertyValues(const comphelper::PropertyMapEntry **ppEntries, css::uno::Any *pValue) override
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
virtual void SAL_CALL acquire() noexcept override
void implCreate(SvStream &rIStm, const OUString *pPath)
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
float u
GraphicType
Definition: graph.hxx:35
Type
std::pair< OUString const, DataAccessDescriptorProperty > PropertyMapEntry
unsigned char sal_Bool
signed char sal_Int8