1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: gallery.hxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
34 #include <tools/solar.h>
35 #include <tools/string.hxx>
36 #include <tools/urlobj.hxx>
38 #include "svx/svxdllapi.h"
44 #define SGA_FORMAT_NONE 0x00000000L
45 #define SGA_FORMAT_STRING 0x00000001L
46 #define SGA_FORMAT_GRAPHIC 0x00000010L
47 #define SGA_FORMAT_SOUND 0x00000100L
48 #define SGA_FORMAT_OLE 0x00001000L
49 #define SGA_FORMAT_SVDRAW 0x00010000L
50 #define SGA_FORMAT_ALL 0xFFFFFFFFL
52 #define SVX_GALLERY() (GalleryExplorer::GetGallery())
54 // Defines for preinstalled themes
55 #define GALLERY_THEME_3D 1
56 #define GALLERY_THEME_ANIMATIONS 2
57 #define GALLERY_THEME_BULLETS 3
58 #define GALLERY_THEME_OFFICE 4
59 #define GALLERY_THEME_FLAGS 5
60 #define GALLERY_THEME_FLOWCHARTS 6
61 #define GALLERY_THEME_EMOTICONS 7
62 #define GALLERY_THEME_PHOTOS 8
63 #define GALLERY_THEME_BACKGROUNDS 9
64 #define GALLERY_THEME_HOMEPAGE 10
65 #define GALLERY_THEME_INTERACTION 11
66 #define GALLERY_THEME_MAPS 12
67 #define GALLERY_THEME_PEOPLE 13
68 #define GALLERY_THEME_SURFACES 14
69 #define GALLERY_THEME_HTMLBUTTONS 15
70 #define GALLERY_THEME_POWERPOINT 16
71 #define GALLERY_THEME_RULERS 17
72 #define GALLERY_THEME_SOUNDS 18
73 #define GALLERY_THEME_SYMBOLS 19
74 #define GALLERY_THEME_MYTHEME 20
75 #define GALLERY_THEME_USERSOUNDS 21
76 #define GALLERY_THEME_ARROWS 22
77 #define GALLERY_THEME_BALLOONS 23
78 #define GALLERY_THEME_KEYBOARD 24
79 #define GALLERY_THEME_TIME 25
80 #define GALLERY_THEME_PRESENTATION 26
81 #define GALLERY_THEME_CALENDAR 27
82 #define GALLERY_THEME_NAVIGATION 28
83 #define GALLERY_THEME_COMMUNICATION 29
84 #define GALLERY_THEME_FINANCES 30
85 #define GALLERY_THEME_COMPUTER 31
86 #define GALLERY_THEME_CLIMA 32
87 #define GALLERY_THEME_EDUCATION 33
88 #define GALLERY_THEME_TROUBLE 34
89 #define GALLERY_THEME_SCREENBEANS 35
90 #define GALLERY_THEME_FONTWORK 36
91 #define GALLERY_THEME_FONTWORK_VERTICAL 37
93 #define GALLERY_THEME_DUMMY5 38
95 // -------------------
96 // - GalleryExplorer -
97 // -------------------
109 class SVX_DLLPUBLIC GalleryExplorer
113 SVX_DLLPRIVATE
static Gallery
* ImplGetGallery();
117 static GalleryExplorer
* GetGallery();
121 INetURLObject
GetURL() const;
122 String
GetFilterName() const;
123 Graphic
GetGraphic() const;
124 BOOL
GetVCDrawModel( FmFormModel
& rModel
) const;
125 BOOL
IsLinkage() const;
127 static BOOL
FillThemeList( List
& rThemeList
);
129 // FillObjList is filling rObjList with Strings of the internal Gallery Object URL
130 static BOOL
FillObjList( const String
& rThemeName
, List
& rObjList
);
131 static BOOL
FillObjList( ULONG nThemeId
, List
& rObjList
);
133 // FillObjTitleList is filling the rList with the title for each gallery object
134 static sal_Bool
FillObjListTitle( const sal_uInt32 nThemeId
, std::vector
< rtl::OUString
>& rList
);
136 static BOOL
InsertURL( const String
& rThemeName
, const String
& rURL
);
137 static BOOL
InsertURL( ULONG nThemeId
, const String
& rURL
);
139 static BOOL
InsertURL( const String
& rThemeName
, const String
& rURL
,
140 const ULONG nSgaFormat
/* = SGA_FORMAT_ALL */ );
141 static BOOL
InsertURL( ULONG nThemeId
, const String
& rURL
,
142 const ULONG nSgaFormat
/* = SGA_FORMAT_ALL */ );
144 static ULONG
GetObjCount( const String
& rThemeName
);
145 static ULONG
GetObjCount( ULONG nThemeId
);
147 static BOOL
GetGraphicObj( const String
& rThemeName
, ULONG nPos
,
148 Graphic
* pGraphic
= NULL
, Bitmap
* pThumb
= NULL
,
149 BOOL bProgess
= FALSE
);
150 static BOOL
GetGraphicObj( ULONG nThemeId
, ULONG nPos
,
151 Graphic
* pGraphic
= NULL
, Bitmap
* pThumb
= NULL
,
152 BOOL bProgess
= FALSE
);
154 static BOOL
InsertGraphicObj( const String
& rThemeName
, const Graphic
& rGraphic
);
155 static BOOL
InsertGraphicObj( ULONG nThemeId
, const Graphic
& rGraphic
);
157 static ULONG
GetSdrObjCount( const String
& rThemeName
);
158 static ULONG
GetSdrObjCount( ULONG nThemeId
);
160 static BOOL
GetSdrObj( const String
& rThemeName
, ULONG nSdrModelPos
,
161 SdrModel
* pModel
= NULL
, Bitmap
* pThumb
= NULL
);
162 static BOOL
GetSdrObj( ULONG nThemeId
, ULONG nSdrModelPos
,
163 SdrModel
* pModel
= NULL
, Bitmap
* pThumb
= NULL
);
165 static BOOL
InsertSdrObj( const String
& rThemeName
, FmFormModel
& rModel
);
166 static BOOL
InsertSdrObj( ULONG nThemeId
, FmFormModel
& rModel
);
168 static BOOL
BeginLocking( const String
& rThemeName
);
169 static BOOL
BeginLocking( ULONG nThemeId
);
171 static BOOL
EndLocking( const String
& rThemeName
);
172 static BOOL
EndLocking( ULONG nThemeId
);
174 static BOOL
DrawCentered( OutputDevice
* pOut
, const FmFormModel
& rModel
);
177 #endif // _GALLERY_HXX_