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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: metadata.hxx,v $
* $Revision: 1.8 $
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef RPTUI_METADATA_HXX_
#define RPTUI_METADATA_HXX_
#include "ModuleHelper.hxx"
/** === begin UNO includes === **/
#include <com/sun/star/beans/Property.hpp>
#include <com/sun/star/inspection/XPropertyHandler.hpp>
/** === end UNO includes === **/
//............................................................................
namespace rptui
{
//............................................................................
struct OPropertyInfoImpl;
//========================================================================
//= OPropertyInfoService
//========================================================================
class OPropertyInfoService
:public OModuleClient
{
OPropertyInfoService(const OPropertyInfoService&);
void operator =(const OPropertyInfoService&);
protected:
static sal_uInt16 s_nCount;
static OPropertyInfoImpl* s_pPropertyInfos;
// TODO: a real structure which allows quick access by name as well as by id
public:
OPropertyInfoService(){}
virtual ~OPropertyInfoService(){}
// IPropertyInfoService
sal_Int32 getPropertyId(const String& _rName) const;
String getPropertyTranslation(sal_Int32 _nId) const;
sal_Int32 getPropertyHelpId(sal_Int32 _nId) const;
sal_uInt32 getPropertyUIFlags(sal_Int32 _nId) const;
static void getExcludeProperties(::std::vector< com::sun::star::beans::Property >& _rExcludeProperties,const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyHandler >& _xFormComponentHandler);
bool isComposable(
const ::rtl::OUString& _rPropertyName,
const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyHandler >& _xFormComponentHandler
);
protected:
static const OPropertyInfoImpl* getPropertyInfo();
static const OPropertyInfoImpl* getPropertyInfo(const String& _rName);
static const OPropertyInfoImpl* getPropertyInfo(sal_Int32 _nId);
};
//========================================================================
//= HelpIdUrl
//========================================================================
/// small helper to translate help ids into help urls
class HelpIdUrl
{
public:
static ::rtl::OUString getHelpURL( sal_uInt32 _nHelpId );
};
//========================================================================
//= UI flags (for all browseable properties)
//========================================================================
#define PROP_FLAG_NONE 0x00000001 // no special flag
#define PROP_FLAG_ENUM 0x00000002 // the property is some kind of enum property, i.e. its
// value is chosen from a fixed list of possible values
#define PROP_FLAG_ENUM_ONE 0x00000004 // the property is an enum property starting with 1
// (note that this includes PROP_FLAG_ENUM)
#define PROP_FLAG_COMPOSEABLE 0x00000008 // the property is "composeable", i.e. an intersection of property
// sets should expose it, if all elements do
#define PROP_FLAG_EXPERIMENTAL 0x00000010 // the property is experimental, i.e. should not appear in the
// UI, unless experimental properties are enabled by a configuraiton
// option
#define PROP_FLAG_DATA_PROPERTY 0x00000020 // the property is to appear on the "Data" page
//========================================================================
//= property ids (for all browseable properties)
//= The ID is used for the view order in the property browser.
//========================================================================
#define PROPERTY_ID_FORCENEWPAGE 1
#define PROPERTY_ID_NEWROWORCOL 2
#define PROPERTY_ID_KEEPTOGETHER 3
#define PROPERTY_ID_CANGROW 4
#define PROPERTY_ID_CANSHRINK 5
#define PROPERTY_ID_REPEATSECTION 6
#define PROPERTY_ID_PRESERVEIRI 7
#define PROPERTY_ID_VISIBLE 8
#define PROPERTY_ID_GROUPKEEPTOGETHER 9
#define PROPERTY_ID_PAGEHEADEROPTION 10
#define PROPERTY_ID_PAGEFOOTEROPTION 11
#define PROPERTY_ID_POSITIONX 12
#define PROPERTY_ID_POSITIONY 13
#define PROPERTY_ID_WIDTH 14
#define PROPERTY_ID_HEIGHT 15
#define PROPERTY_ID_FORMULA 16
#define PROPERTY_ID_PRINTREPEATEDVALUES 17
#define PROPERTY_ID_CONDITIONALPRINTEXPRESSION 18
#define PROPERTY_ID_INITIALFORMULA 19
#define PROPERTY_ID_STARTNEWCOLUMN 20
#define PROPERTY_ID_TYPE 21
#define PROPERTY_ID_DATAFIELD 22
#define PROPERTY_ID_CHARFONTNAME 23
#define PROPERTY_ID_PRINTWHENGROUPCHANGE 24
#define PROPERTY_ID_DEEPTRAVERSING 25
#define PROPERTY_ID_PREEVALUATED 26
#define PROPERTY_ID_BACKTRANSPARENT 27
#define PROPERTY_ID_CONTROLBACKGROUNDTRANSPARENT 28
#define PROPERTY_ID_BACKCOLOR 29
#define PROPERTY_ID_CONTROLBACKGROUND 30
#define PROPERTY_ID_FORMULALIST 31
#define PROPERTY_ID_SCOPE 32
#define PROPERTY_ID_RESETPAGENUMBER 33
#define PROPERTY_ID_CHARTTYPE 34
#define PROPERTY_ID_MASTERFIELDS 35
#define PROPERTY_ID_DETAILFIELDS 36
#define PROPERTY_ID_PREVIEW_COUNT 37
#define PROPERTY_ID_AREA 38
#define PROPERTY_ID_MIMETYPE 39
#define PROPERTY_ID_FONT 40
#define PROPERTY_ID_PARAADJUST 41
#define PROPERTY_ID_VERTICALALIGN 42
//............................................................................
} // namespace rptui
//............................................................................
#endif // RPTUI_METADATA_HXX_
|