|  | /************************************************************** | 
|  | * | 
|  | * 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 | 
|  | * | 
|  | * Unless required by applicable law or agreed to in writing, | 
|  | * software distributed under the License is distributed on an | 
|  | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
|  | * KIND, either express or implied.  See the License for the | 
|  | * specific language governing permissions and limitations | 
|  | * under the License. | 
|  | * | 
|  | *************************************************************/ | 
|  |  | 
|  |  | 
|  |  | 
|  | #ifndef _SVX_GALOBJ_HXX_ | 
|  | #define _SVX_GALOBJ_HXX_ | 
|  |  | 
|  | #include <tools/urlobj.hxx> | 
|  | #include <vcl/graph.hxx> | 
|  | #include "svx/galmisc.hxx" | 
|  |  | 
|  | // ----------- | 
|  | // - Defines - | 
|  | // ----------- | 
|  |  | 
|  | #define S_THUMB 80 | 
|  |  | 
|  | // ----------------------------------------------------------------------------- | 
|  |  | 
|  | #define SGA_FORMAT_NONE					0x00000000L | 
|  | #define	SGA_FORMAT_STRING				0x00000001L | 
|  | #define	SGA_FORMAT_GRAPHIC				0x00000010L | 
|  | #define	SGA_FORMAT_SOUND				0x00000100L | 
|  | #define	SGA_FORMAT_OLE					0x00001000L | 
|  | #define	SGA_FORMAT_SVDRAW				0x00010000L | 
|  | #define SGA_FORMAT_ALL					0xFFFFFFFFL | 
|  |  | 
|  | // ---------------- | 
|  | // - GalSoundType - | 
|  | // ---------------- | 
|  |  | 
|  | enum GalSoundType | 
|  | { | 
|  | SOUND_STANDARD = 0, | 
|  | SOUND_COMPUTER = 1, | 
|  | SOUND_MISC = 2, | 
|  | SOUND_MUSIC = 3, | 
|  | SOUND_NATURE = 4, | 
|  | SOUND_SPEECH = 5, | 
|  | SOUND_TECHNIC = 6, | 
|  | SOUND_ANIMAL = 7 | 
|  | }; | 
|  |  | 
|  | // ------------- | 
|  | // - SgaObject - | 
|  | // ------------- | 
|  |  | 
|  | class SVX_DLLPUBLIC SgaObject | 
|  | { | 
|  | friend class GalleryTheme; | 
|  |  | 
|  | private: | 
|  |  | 
|  | void					ImplUpdateURL( const INetURLObject& rNewURL ) { aURL = rNewURL; } | 
|  |  | 
|  | protected: | 
|  |  | 
|  | BitmapEx				aThumbBmp; // Allow transparence to survive | 
|  | GDIMetaFile				aThumbMtf; | 
|  | INetURLObject			aURL; | 
|  | String					aUserName; | 
|  | String					aTitle; | 
|  | sal_Bool					bIsValid; | 
|  | sal_Bool					bIsThumbBmp; | 
|  |  | 
|  | virtual void 			WriteData( SvStream& rOut, const String& rDestDir ) const; | 
|  | virtual void 			ReadData( SvStream& rIn, sal_uInt16& rReadVersion ); | 
|  |  | 
|  | sal_Bool					CreateThumb( const Graphic& rGraphic ); | 
|  |  | 
|  | public: | 
|  | SgaObject(); | 
|  | virtual					~SgaObject() {}; | 
|  |  | 
|  | virtual SgaObjKind		GetObjKind() const = 0; | 
|  | virtual sal_uInt16			GetVersion() const = 0; | 
|  |  | 
|  | virtual BitmapEx		GetThumbBmp() const { return aThumbBmp; } | 
|  | const GDIMetaFile&		GetThumbMtf() const { return aThumbMtf; } | 
|  | const INetURLObject&	GetURL() const { return aURL; } | 
|  | sal_Bool					IsValid() const { return bIsValid; } | 
|  | sal_Bool					IsThumbBitmap() const { return bIsThumbBmp; } | 
|  |  | 
|  | const String            GetTitle() const; | 
|  | void                    SetTitle( const String& rTitle ); | 
|  |  | 
|  | friend SvStream& 		operator<<( SvStream& rOut, const SgaObject& rObj ); | 
|  | friend SvStream& 		operator>>( SvStream& rIn, SgaObject& rObj ); | 
|  |  | 
|  | BitmapEx createPreviewBitmapEx(const Size& rSizePixel) const; | 
|  | }; | 
|  |  | 
|  | // ------------------ | 
|  | // - SgaObjectSound - | 
|  | // ------------------ | 
|  |  | 
|  | class SgaObjectSound : public SgaObject | 
|  | { | 
|  | private: | 
|  |  | 
|  | GalSoundType		eSoundType; | 
|  |  | 
|  | virtual void 		WriteData( SvStream& rOut, const String& rDestDir ) const; | 
|  | virtual void 		ReadData( SvStream& rIn, sal_uInt16& rReadVersion ); | 
|  |  | 
|  | virtual sal_uInt16		GetVersion() const { return 6; } | 
|  |  | 
|  | public: | 
|  |  | 
|  | SgaObjectSound(); | 
|  | SgaObjectSound( const INetURLObject& rURL ); | 
|  | virtual 	   	   ~SgaObjectSound(); | 
|  |  | 
|  | virtual SgaObjKind	GetObjKind() const { return SGA_OBJ_SOUND; } | 
|  | virtual BitmapEx	GetThumbBmp() const; | 
|  | GalSoundType		GetSoundType() const { return eSoundType; } | 
|  | }; | 
|  |  | 
|  | // ------------------- | 
|  | // - SgaObjectSvDraw - | 
|  | // ------------------- | 
|  |  | 
|  | class FmFormModel; | 
|  |  | 
|  | class SgaObjectSvDraw : public SgaObject | 
|  | { | 
|  | using SgaObject::CreateThumb; | 
|  |  | 
|  | private: | 
|  |  | 
|  | sal_Bool				CreateThumb( const FmFormModel& rModel ); | 
|  |  | 
|  | virtual void 		WriteData( SvStream& rOut, const String& rDestDir ) const; | 
|  | virtual void 		ReadData( SvStream& rIn, sal_uInt16& rReadVersion ); | 
|  |  | 
|  | virtual sal_uInt16		GetVersion() const { return 5; } | 
|  |  | 
|  | public: | 
|  |  | 
|  | SgaObjectSvDraw(); | 
|  | SgaObjectSvDraw( const FmFormModel& rModel, const INetURLObject& rURL ); | 
|  | SgaObjectSvDraw( SvStream& rIStm, const INetURLObject& rURL ); | 
|  | virtual 	   	   ~SgaObjectSvDraw() {}; | 
|  |  | 
|  | virtual SgaObjKind	GetObjKind() const { return SGA_OBJ_SVDRAW; } | 
|  | }; | 
|  |  | 
|  | // ---------------- | 
|  | // - SgaObjectBmp - | 
|  | // ---------------- | 
|  |  | 
|  | class SgaObjectBmp: public SgaObject | 
|  | { | 
|  | private: | 
|  |  | 
|  | void				Init( const Graphic& rGraphic, const INetURLObject& rURL ); | 
|  |  | 
|  | virtual void   		WriteData( SvStream& rOut, const String& rDestDir ) const; | 
|  | virtual void   		ReadData( SvStream& rIn, sal_uInt16& rReadVersion ); | 
|  |  | 
|  | virtual sal_uInt16		GetVersion() const { return 5; } | 
|  |  | 
|  | public: | 
|  |  | 
|  | SgaObjectBmp(); | 
|  | SgaObjectBmp( const INetURLObject& rURL ); | 
|  | SgaObjectBmp( const Graphic& rGraphic, const INetURLObject& rURL, const String& rFormat ); | 
|  | virtual				~SgaObjectBmp() {}; | 
|  |  | 
|  | virtual SgaObjKind	GetObjKind() const { return SGA_OBJ_BMP; } | 
|  | }; | 
|  |  | 
|  | // ----------------- | 
|  | // - SgaObjectAnim - | 
|  | // ----------------- | 
|  |  | 
|  | class SgaObjectAnim : public SgaObjectBmp | 
|  | { | 
|  | private: | 
|  |  | 
|  | SgaObjectAnim( const INetURLObject& ) {}; | 
|  |  | 
|  | public: | 
|  |  | 
|  | SgaObjectAnim(); | 
|  | SgaObjectAnim( const Graphic& rGraphic, const INetURLObject& rURL, const String& rFormatName ); | 
|  |  | 
|  | virtual 	   	   ~SgaObjectAnim() {}; | 
|  |  | 
|  | virtual SgaObjKind	GetObjKind() const { return SGA_OBJ_ANIM; } | 
|  | }; | 
|  |  | 
|  | // ----------------- | 
|  | // - SgaObjectINet - | 
|  | // ----------------- | 
|  |  | 
|  | class SgaObjectINet : public SgaObjectAnim | 
|  | { | 
|  | private: | 
|  |  | 
|  | SgaObjectINet( const INetURLObject& ) {}; | 
|  |  | 
|  | public: | 
|  |  | 
|  | SgaObjectINet(); | 
|  | SgaObjectINet( const Graphic& rGraphic, const INetURLObject& rURL, const String& rFormatName ); | 
|  |  | 
|  | virtual 	   	   ~SgaObjectINet() {}; | 
|  |  | 
|  | virtual SgaObjKind	GetObjKind() const { return SGA_OBJ_INET; } | 
|  | }; | 
|  | #endif |