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 {
42 };
43 
44 class UNLESS_MERGELIBS(SVXCORE_DLLPUBLIC) SgaObject
45 {
46  friend class GalleryTheme;
47  friend class GalleryBinaryEngine;
48 
49 private:
50 
51  void ImplUpdateURL( const INetURLObject& rNewURL ) { aURL = rNewURL; }
52 
53 protected:
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 
67 public:
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 
91 class SgaObjectSound final : public SgaObject
92 {
93 private:
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 
102 public:
103 
104  SgaObjectSound();
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 
112 class FmFormModel;
113 
114 class SgaObjectSvDraw final : public SgaObject
115 {
116  using SgaObject::CreateThumb;
117 
118 private:
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 
127 public:
128 
129  SgaObjectSvDraw();
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 
136 class SgaObjectBmp: public SgaObject
137 {
138 private:
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 
147 public:
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 {
158 public:
159 
160  SgaObjectAnim();
161  SgaObjectAnim( const Graphic& rGraphic, const INetURLObject& rURL );
162 
163  virtual SgaObjKind GetObjKind() const override { return SgaObjKind::Animation; }
164 };
165 
166 class SgaObjectINet final : public SgaObjectAnim
167 {
168 public:
169 
170  SgaObjectINet();
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: */
URL aURL
void Init()
virtual sal_uInt16 GetVersion() const override
Definition: galobj.hxx:145
SvStream & ReadSgaObject(SvStream &rIn, SgaObject &rObj)
Definition: galobj.cxx:248
SvStream & WriteSgaObject(SvStream &rOut, const SgaObject &rObj)
Definition: galobj.cxx:242
virtual SgaObjKind GetObjKind() const override
Definition: galobj.hxx:108
UNOTOOLS_DLLPUBLIC bool GetTitle(OUString const &url, OUString *title)
virtual sal_uInt16 GetVersion() const override
Definition: galobj.hxx:125
SgaObjKind
Definition: galmisc.hxx:55
virtual sal_uInt16 GetVersion() const override
Definition: galobj.hxx:100
virtual SgaObjKind GetObjKind() const override
Definition: galobj.hxx:133
GalSoundType eSoundType
Definition: galobj.hxx:95
virtual SgaObjKind GetObjKind() const override
Definition: galobj.hxx:173
GalSoundType
Definition: galobj.hxx:32
sal_uInt16 GetVersion(sal_uInt16)
Definition: legacyitem.cxx:29
virtual SgaObjKind GetObjKind() const override
Definition: galobj.hxx:153
virtual SgaObjKind GetObjKind() const override
Definition: galobj.hxx:163