1*01aa44aaSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*01aa44aaSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*01aa44aaSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*01aa44aaSAndrew Rist * distributed with this work for additional information 6*01aa44aaSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*01aa44aaSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*01aa44aaSAndrew Rist * "License"); you may not use this file except in compliance 9*01aa44aaSAndrew Rist * with the License. You may obtain a copy of the License at 10*01aa44aaSAndrew Rist * 11*01aa44aaSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*01aa44aaSAndrew Rist * 13*01aa44aaSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*01aa44aaSAndrew Rist * software distributed under the License is distributed on an 15*01aa44aaSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*01aa44aaSAndrew Rist * KIND, either express or implied. See the License for the 17*01aa44aaSAndrew Rist * specific language governing permissions and limitations 18*01aa44aaSAndrew Rist * under the License. 19*01aa44aaSAndrew Rist * 20*01aa44aaSAndrew Rist *************************************************************/ 21*01aa44aaSAndrew Rist 22*01aa44aaSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef _GOODIES_DESCRIPTOR_HXX 25cdf0e10cSrcweir #define _GOODIES_DESCRIPTOR_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <comphelper/propertysethelper.hxx> 28cdf0e10cSrcweir #include <com/sun/star/lang/XServiceInfo.hpp> 29cdf0e10cSrcweir 30cdf0e10cSrcweir #include <comphelper/propertysetinfo.hxx> 31cdf0e10cSrcweir #include <vcl/graph.hxx> 32cdf0e10cSrcweir 33cdf0e10cSrcweir #define MIMETYPE_BMP "image/x-MS-bmp" 34cdf0e10cSrcweir #define MIMETYPE_GIF "image/gif" 35cdf0e10cSrcweir #define MIMETYPE_JPG "image/jpeg" 36cdf0e10cSrcweir #define MIMETYPE_PCD "image/x-photo-cd" 37cdf0e10cSrcweir #define MIMETYPE_PCX "image/x-pcx" 38cdf0e10cSrcweir #define MIMETYPE_PNG "image/png" 39cdf0e10cSrcweir #define MIMETYPE_TIF "image/tiff" 40cdf0e10cSrcweir #define MIMETYPE_XBM "image/x-xbitmap" 41cdf0e10cSrcweir #define MIMETYPE_XPM "image/x-xpixmap" 42cdf0e10cSrcweir #define MIMETYPE_PBM "image/x-portable-bitmap" 43cdf0e10cSrcweir #define MIMETYPE_PGM "image/x-portable-graymap" 44cdf0e10cSrcweir #define MIMETYPE_PPM "image/x-portable-pixmap" 45cdf0e10cSrcweir #define MIMETYPE_RAS "image/x-cmu-raster" 46cdf0e10cSrcweir #define MIMETYPE_TGA "image/x-targa" 47cdf0e10cSrcweir #define MIMETYPE_PSD "image/vnd.adobe.photoshop" 48cdf0e10cSrcweir #define MIMETYPE_EPS "image/x-eps" 49cdf0e10cSrcweir #define MIMETYPE_DXF "image/vnd.dxf" 50cdf0e10cSrcweir #define MIMETYPE_MET "image/x-met" 51cdf0e10cSrcweir #define MIMETYPE_PCT "image/x-pict" 52cdf0e10cSrcweir #define MIMETYPE_SGF "image/x-sgf" 53cdf0e10cSrcweir #define MIMETYPE_SVM "image/x-svm" 54cdf0e10cSrcweir #define MIMETYPE_WMF "image/x-wmf" 55cdf0e10cSrcweir #define MIMETYPE_SGV "image/x-sgv" 56cdf0e10cSrcweir #define MIMETYPE_EMF "image/x-emf" 57cdf0e10cSrcweir #define MIMETYPE_SVG "image/svg+xml" 58cdf0e10cSrcweir #define MIMETYPE_VCLGRAPHIC "image/x-vclgraphic" 59cdf0e10cSrcweir 60cdf0e10cSrcweir using namespace com::sun::star; 61cdf0e10cSrcweir 62cdf0e10cSrcweir namespace comphelper { class PropertySetInfo; } 63cdf0e10cSrcweir namespace com { namespace sun { namespace star { namespace io { class XInputStream; } } } } 64cdf0e10cSrcweir 65cdf0e10cSrcweir class Graphic; 66cdf0e10cSrcweir 67cdf0e10cSrcweir namespace unographic { 68cdf0e10cSrcweir 69cdf0e10cSrcweir // ------------------- 70cdf0e10cSrcweir // - GraphicProvider - 71cdf0e10cSrcweir // ------------------- 72cdf0e10cSrcweir 73cdf0e10cSrcweir class GraphicDescriptor : public ::cppu::OWeakAggObject, 74cdf0e10cSrcweir public ::com::sun::star::lang::XServiceInfo, 75cdf0e10cSrcweir public ::com::sun::star::lang::XTypeProvider, 76cdf0e10cSrcweir public ::comphelper::PropertySetHelper 77cdf0e10cSrcweir { 78cdf0e10cSrcweir public: 79cdf0e10cSrcweir 80cdf0e10cSrcweir GraphicDescriptor(); 81cdf0e10cSrcweir ~GraphicDescriptor() throw(); 82cdf0e10cSrcweir 83cdf0e10cSrcweir void init( const ::Graphic& rGraphic ) throw(); 84cdf0e10cSrcweir void init( const ::rtl::OUString& rURL ) throw(); 85cdf0e10cSrcweir void init( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& rxIStm, const ::rtl::OUString& rURL ) throw(); 86cdf0e10cSrcweir 87cdf0e10cSrcweir bool isValid() const; 88cdf0e10cSrcweir 89cdf0e10cSrcweir static ::rtl::OUString getImplementationName_Static() throw(); 90cdf0e10cSrcweir static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static() throw(); 91cdf0e10cSrcweir 92cdf0e10cSrcweir protected: 93cdf0e10cSrcweir 94cdf0e10cSrcweir static ::comphelper::PropertySetInfo* createPropertySetInfo(); 95cdf0e10cSrcweir 96cdf0e10cSrcweir // XInterface 97cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); 98cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); 99cdf0e10cSrcweir virtual void SAL_CALL acquire() throw(); 100cdf0e10cSrcweir virtual void SAL_CALL release() throw(); 101cdf0e10cSrcweir 102cdf0e10cSrcweir // XServiceInfo 103cdf0e10cSrcweir virtual rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException ); 104cdf0e10cSrcweir virtual sal_Bool SAL_CALL supportsService( const rtl::OUString& ServiceName ) throw( ::com::sun::star::uno::RuntimeException ); 105cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException ); 106cdf0e10cSrcweir 107cdf0e10cSrcweir // XTypeProvider 108cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); 109cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException); 110cdf0e10cSrcweir 111cdf0e10cSrcweir // PropertySetHelper 112cdf0e10cSrcweir virtual void _setPropertyValues( const comphelper::PropertyMapEntry** ppEntries, const ::com::sun::star::uno::Any* pValues ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException ); 113cdf0e10cSrcweir virtual void _getPropertyValues( const comphelper::PropertyMapEntry** ppEntries, ::com::sun::star::uno::Any* pValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException ); 114cdf0e10cSrcweir 115cdf0e10cSrcweir private: 116cdf0e10cSrcweir 117cdf0e10cSrcweir const ::Graphic* mpGraphic; 118cdf0e10cSrcweir GraphicType meType; 119cdf0e10cSrcweir ::rtl::OUString maMimeType; 120cdf0e10cSrcweir Size maSizePixel; 121cdf0e10cSrcweir Size maSize100thMM; 122cdf0e10cSrcweir sal_uInt16 mnBitsPerPixel; 123cdf0e10cSrcweir bool mbTransparent; 124cdf0e10cSrcweir bool mbAlpha; 125cdf0e10cSrcweir bool mbAnimated; 126cdf0e10cSrcweir 127cdf0e10cSrcweir GraphicDescriptor( const GraphicDescriptor& rDescriptor ); 128cdf0e10cSrcweir 129cdf0e10cSrcweir GraphicDescriptor& operator=( const GraphicDescriptor& ); 130cdf0e10cSrcweir 131cdf0e10cSrcweir void implCreate( SvStream& rIStm, const ::rtl::OUString* pPath ); 132cdf0e10cSrcweir }; 133cdf0e10cSrcweir 134cdf0e10cSrcweir } 135cdf0e10cSrcweir 136cdf0e10cSrcweir #endif 137