summaryrefslogtreecommitdiffstats
path: root/include/svx/gallery.hxx
blob: d668bf9e668eeee60fa4cec4d979e6285811cda7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   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 .
 */

#ifndef INCLUDED_SVX_GALLERY_HXX
#define INCLUDED_SVX_GALLERY_HXX

#include <svx/svxdllapi.h>
#include <rtl/ustring.hxx>
#include <vector>

// Defines for preinstalled themes
#define GALLERY_THEME_3D                1
#define GALLERY_THEME_BULLETS           3
#define GALLERY_THEME_HOMEPAGE          10
#define GALLERY_THEME_HTMLBUTTONS       15
#define GALLERY_THEME_POWERPOINT        16
#define GALLERY_THEME_RULERS            17
#define GALLERY_THEME_SOUNDS            18
#define GALLERY_THEME_MYTHEME           20
#define GALLERY_THEME_USERSOUNDS        21
#define GALLERY_THEME_DUMMY5            36
#define GALLERY_THEME_FONTWORK          37
#define GALLERY_THEME_FONTWORK_VERTICAL 38

#define RID_GALLERY_THEME_START          (6000)

// ATTENTION: This list has to be in sync with
//  * share/gallery (theme files are identified by id)
//
// Since galleries may be copied from older offices to newer, do *never* change
// these IDs except adding new ones (and adapting GALLERY_THEME_LAST). The ID
// *is* written into the binary file *.thm (which is a gallery theme combined
// of three files, *.thm, *.sdv and *.sdg)

#define RID_GALLERY_THEME_3D             (RID_GALLERY_THEME_START + 1)
#define RID_GALLERY_THEME_ANIMATIONS     (RID_GALLERY_THEME_START + 2)
#define RID_GALLERY_THEME_BULLETS        (RID_GALLERY_THEME_START + 3)
#define RID_GALLERY_THEME_OFFICE         (RID_GALLERY_THEME_START + 4)
#define RID_GALLERY_THEME_FLAGS          (RID_GALLERY_THEME_START + 5)
#define RID_GALLERY_THEME_FLOWCHARTS     (RID_GALLERY_THEME_START + 6)
#define RID_GALLERY_THEME_EMOTICONS      (RID_GALLERY_THEME_START + 7)
#define RID_GALLERY_THEME_PHOTOS         (RID_GALLERY_THEME_START + 8)
#define RID_GALLERY_THEME_BACKGROUNDS    (RID_GALLERY_THEME_START + 9)
#define RID_GALLERY_THEME_HOMEPAGE       (RID_GALLERY_THEME_START + 10)
#define RID_GALLERY_THEME_INTERACTION    (RID_GALLERY_THEME_START + 11)
#define RID_GALLERY_THEME_MAPS           (RID_GALLERY_THEME_START + 12)
#define RID_GALLERY_THEME_PEOPLE         (RID_GALLERY_THEME_START + 13)
#define RID_GALLERY_THEME_SURFACES       (RID_GALLERY_THEME_START + 14)

#define RID_GALLERY_THEME_SOUNDS         (RID_GALLERY_THEME_START + 18)
#define RID_GALLERY_THEME_SYMBOLS        (RID_GALLERY_THEME_START + 19)
#define RID_GALLERY_THEME_MYTHEME        (RID_GALLERY_THEME_START + 20)

#define RID_GALLERY_THEME_ARROWS         (RID_GALLERY_THEME_START + 22)
#define RID_GALLERY_THEME_BALLOONS       (RID_GALLERY_THEME_START + 23)
#define RID_GALLERY_THEME_KEYBOARD       (RID_GALLERY_THEME_START + 24)
#define RID_GALLERY_THEME_TIME           (RID_GALLERY_THEME_START + 25)
#define RID_GALLERY_THEME_PRESENTATION   (RID_GALLERY_THEME_START + 26)
#define RID_GALLERY_THEME_CALENDAR       (RID_GALLERY_THEME_START + 27)
#define RID_GALLERY_THEME_NAVIGATION     (RID_GALLERY_THEME_START + 28)
#define RID_GALLERY_THEME_COMMUNICATION  (RID_GALLERY_THEME_START + 29)
#define RID_GALLERY_THEME_FINANCES       (RID_GALLERY_THEME_START + 30)
#define RID_GALLERY_THEME_COMPUTER       (RID_GALLERY_THEME_START + 31)
#define RID_GALLERY_THEME_CLIMA          (RID_GALLERY_THEME_START + 32)
#define RID_GALLERY_THEME_EDUCATION      (RID_GALLERY_THEME_START + 33)
#define RID_GALLERY_THEME_TROUBLE        (RID_GALLERY_THEME_START + 34)
#define RID_GALLERY_THEME_SCREENBEANS    (RID_GALLERY_THEME_START + 35)

#define RID_GALLERY_THEME_COMPUTERS      (RID_GALLERY_THEME_START + 39)
#define RID_GALLERY_THEME_DIAGRAMS       (RID_GALLERY_THEME_START + 40)
#define RID_GALLERY_THEME_ENVIRONMENT    (RID_GALLERY_THEME_START + 41)
#define RID_GALLERY_THEME_FINANCE        (RID_GALLERY_THEME_START + 42)
#define RID_GALLERY_THEME_TRANSPORT      (RID_GALLERY_THEME_START + 43)
#define RID_GALLERY_THEME_TXTSHAPES      (RID_GALLERY_THEME_START + 44)

#define RID_GALLERY_THEME_FIRST          RID_GALLERY_THEME_3D
#define RID_GALLERY_THEME_LAST           RID_GALLERY_THEME_TXTSHAPES

class SdrModel;
class Graphic;
class BitmapEx;

class SVXCORE_DLLPUBLIC GalleryExplorer
{
public:

    static bool                 FillThemeList( std::vector<OUString>& rThemeList );

                                // FillObjList is filling rObjList with Strings of the internal Gallery Object URL
    static bool                 FillObjList( std::u16string_view rThemeName, std::vector<OUString> &rObjList );
    static bool                 FillObjList( const sal_uInt32 nThemeId, std::vector<OUString> &rObjList );

                                // FillObjTitleList is filling the rList with the title for each gallery object
    static bool                 FillObjListTitle( const sal_uInt32 nThemeId, std::vector< OUString >& rList );

    static bool                 InsertURL( std::u16string_view rThemeName, std::u16string_view rURL );
    static bool                 InsertURL( sal_uInt32 nThemeId, std::u16string_view rURL );

    static bool                 GetGraphicObj( std::u16string_view rThemeName, sal_uInt32 nPos,
                                               Graphic* pGraphic );
    static bool                 GetGraphicObj( sal_uInt32 nThemeId, sal_uInt32 nPos,
                                               Graphic* pGraphic );

    static sal_uInt32           GetSdrObjCount( std::u16string_view rThemeName );
    static sal_uInt32           GetSdrObjCount( sal_uInt32 nThemeId );

    static bool                 GetSdrObj( std::u16string_view rThemeName, sal_uInt32 nSdrModelPos,
                                           SdrModel* pModel, BitmapEx* pThumb = nullptr );
    static bool                 GetSdrObj( sal_uInt32 nThemeId, sal_uInt32 nSdrModelPos,
                                           SdrModel* pModel, BitmapEx* pThumb = nullptr );

    static bool                 BeginLocking( std::u16string_view rThemeName );
    static bool                 BeginLocking( sal_uInt32 nThemeId );

    static bool                 EndLocking( std::u16string_view rThemeName );
    static bool                 EndLocking( sal_uInt32 nThemeId );
};

#endif // INCLUDED_SVX_GALLERY_HXX

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */