LibreOffice Module svx (master) 1
galobj.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_SVX_INC_GALOBJ_HXX
21#define INCLUDED_SVX_INC_GALOBJ_HXX
22
23#include <config_options.h>
24#include <tools/urlobj.hxx>
25#include <vcl/graph.hxx>
26#include <vcl/gdimtf.hxx>
27#include <svx/galmisc.hxx>
28
29#define S_THUMB 80
30
31
33{
41 SOUND_ANIMAL = 7
42};
43
44class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) SgaObject
45{
46 friend class GalleryTheme;
47 friend class GalleryFileStorage;
48
49private:
50
51 void ImplUpdateURL( const INetURLObject& rNewURL ) { aURL = rNewURL; }
52
53protected:
54
55 BitmapEx aThumbBmp; // Allow transparence to survive
56 GDIMetaFile aThumbMtf;
58 OUString aTitle;
59 bool bIsValid;
60 bool bIsThumbBmp;
61
62 virtual void WriteData( SvStream& rOut, const OUString& rDestDir ) const;
63 virtual void ReadData( SvStream& rIn, sal_uInt16& rReadVersion );
64
65 bool CreateThumb( const Graphic& rGraphic );
66
67public:
68 SgaObject();
69 SgaObject(const SgaObject& aObject);
70
71 virtual ~SgaObject() {};
72
73 virtual SgaObjKind GetObjKind() const = 0;
74 virtual sal_uInt16 GetVersion() const = 0;
75
76 virtual BitmapEx GetThumbBmp() const { return aThumbBmp; }
77 const GDIMetaFile& GetThumbMtf() const { return aThumbMtf; }
78 const INetURLObject& GetURL() const { return aURL; }
79 bool IsValid() const { return bIsValid; }
80 bool IsThumbBitmap() const { return bIsThumbBmp; }
81
82 OUString const & GetTitle() const;
83 void SetTitle( const OUString& rTitle );
84
85 friend SvStream& WriteSgaObject( SvStream& rOut, const SgaObject& rObj );
86 friend SvStream& ReadSgaObject( SvStream& rIn, SgaObject& rObj );
87
88 BitmapEx createPreviewBitmapEx(const Size& rSizePixel) const;
89};
90
91class SgaObjectSound final : public SgaObject
92{
93private:
94
96
97 virtual void WriteData( SvStream& rOut, const OUString& rDestDir ) const override;
98 virtual void ReadData( SvStream& rIn, sal_uInt16& rReadVersion ) override;
99
100 virtual sal_uInt16 GetVersion() const override { return 6; }
101
102public:
103
105 SgaObjectSound( const INetURLObject& rURL );
106 virtual ~SgaObjectSound() override;
107
108 virtual SgaObjKind GetObjKind() const override { return SgaObjKind::Sound; }
109 virtual BitmapEx GetThumbBmp() const override;
110};
111
112class FmFormModel;
113
114class SgaObjectSvDraw final : public SgaObject
115{
116 using SgaObject::CreateThumb;
117
118private:
119
120 bool CreateThumb( const FmFormModel& rModel );
121
122 virtual void WriteData( SvStream& rOut, const OUString& rDestDir ) const override;
123 virtual void ReadData( SvStream& rIn, sal_uInt16& rReadVersion ) override;
124
125 virtual sal_uInt16 GetVersion() const override { return 5; }
126
127public:
128
130 SgaObjectSvDraw( const FmFormModel& rModel, const INetURLObject& rURL );
131 SgaObjectSvDraw( SvStream& rIStm, const INetURLObject& rURL );
132
133 virtual SgaObjKind GetObjKind() const override { return SgaObjKind::SvDraw; }
134};
135
136class SgaObjectBmp: public SgaObject
137{
138private:
139
140 void Init( const Graphic& rGraphic, const INetURLObject& rURL );
141
142 virtual void WriteData( SvStream& rOut, const OUString& rDestDir ) const override;
143 virtual void ReadData( SvStream& rIn, sal_uInt16& rReadVersion ) override;
144
145 virtual sal_uInt16 GetVersion() const override { return 5; }
146
147public:
148
149 SgaObjectBmp();
150 SgaObjectBmp( const INetURLObject& rURL );
151 SgaObjectBmp( const Graphic& rGraphic, const INetURLObject& rURL );
152
153 virtual SgaObjKind GetObjKind() const override { return SgaObjKind::Bitmap; }
154};
155
157{
158public:
159
161 SgaObjectAnim( const Graphic& rGraphic, const INetURLObject& rURL );
162
163 virtual SgaObjKind GetObjKind() const override { return SgaObjKind::Animation; }
164};
165
166class SgaObjectINet final : public SgaObjectAnim
167{
168public:
169
171 SgaObjectINet( const Graphic& rGraphic, const INetURLObject& rURL );
172
173 virtual SgaObjKind GetObjKind() const override { return SgaObjKind::Inet; }
174};
175#endif
176
177/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual SgaObjKind GetObjKind() const override
Definition: galobj.hxx:163
virtual sal_uInt16 GetVersion() const override
Definition: galobj.hxx:145
virtual SgaObjKind GetObjKind() const override
Definition: galobj.hxx:153
virtual SgaObjKind GetObjKind() const override
Definition: galobj.hxx:173
virtual SgaObjKind GetObjKind() const override
Definition: galobj.hxx:108
virtual sal_uInt16 GetVersion() const override
Definition: galobj.hxx:100
GalSoundType eSoundType
Definition: galobj.hxx:95
virtual sal_uInt16 GetVersion() const override
Definition: galobj.hxx:125
virtual SgaObjKind GetObjKind() const override
Definition: galobj.hxx:133
void Init()
URL aURL
virtual void SetTitle(const OUString &rNewTitle) override
virtual OUString GetURL() const override
SgaObjKind
Definition: galmisc.hxx:57
SvStream & ReadSgaObject(SvStream &rIn, SgaObject &rObj)
Definition: galobj.cxx:247
SvStream & WriteSgaObject(SvStream &rOut, const SgaObject &rObj)
Definition: galobj.cxx:241
GalSoundType
Definition: galobj.hxx:33
@ SOUND_STANDARD
Definition: galobj.hxx:34
@ SOUND_MISC
Definition: galobj.hxx:36
@ SOUND_MUSIC
Definition: galobj.hxx:37
@ SOUND_ANIMAL
Definition: galobj.hxx:41
@ SOUND_NATURE
Definition: galobj.hxx:38
@ SOUND_SPEECH
Definition: galobj.hxx:39
@ SOUND_TECHNIC
Definition: galobj.hxx:40
@ SOUND_COMPUTER
Definition: galobj.hxx:35
sal_uInt16 GetVersion(sal_uInt16)
Definition: legacyitem.cxx:29
UNOTOOLS_DLLPUBLIC bool GetTitle(OUString const &url, OUString *title)