merged tag LIBREOFFICE_3_2_99_3
[LibreOffice.git] / extensions / source / propctrlr / formmetadata.hxx
blob24341b617d087bd7f701500cb76a9c43bb8f6f7a
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * Copyright 2000, 2010 Oracle and/or its affiliates.
8 * OpenOffice.org - a multi-platform office productivity suite
10 * This file is part of OpenOffice.org.
12 * OpenOffice.org is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License version 3
14 * only, as published by the Free Software Foundation.
16 * OpenOffice.org is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License version 3 for more details
20 * (a copy is included in the LICENSE file that accompanied this code).
22 * You should have received a copy of the GNU Lesser General Public License
23 * version 3 along with OpenOffice.org. If not, see
24 * <http://www.openoffice.org/license.html>
25 * for a copy of the LGPLv3 License.
27 ************************************************************************/
29 #ifndef _EXTENSIONS_PROPCTRLR_FORMMETADATA_HXX_
30 #define _EXTENSIONS_PROPCTRLR_FORMMETADATA_HXX_
32 #include "propertyinfo.hxx"
33 #include "modulepcr.hxx"
34 #include "enumrepresentation.hxx"
35 #include <comphelper/composedprops.hxx>
37 //............................................................................
38 namespace pcr
40 //............................................................................
42 struct OPropertyInfoImpl;
44 //========================================================================
45 //= OPropertyInfoService
46 //========================================================================
47 class OPropertyInfoService
48 :public IPropertyInfoService
49 ,public ::comphelper::IPropertySetComposerCallback
50 ,public PcrClient
52 protected:
53 static sal_uInt16 s_nCount;
54 static OPropertyInfoImpl* s_pPropertyInfos;
55 // TODO: a real structure which allows quick access by name as well as by id
57 public:
58 // IPropertyInfoService
59 virtual sal_Int32 getPropertyId(const String& _rName) const;
60 virtual String getPropertyTranslation(sal_Int32 _nId) const;
61 virtual sal_Int32 getPropertyHelpId(sal_Int32 _nId) const;
62 virtual sal_Int16 getPropertyPos(sal_Int32 _nId) const;
63 virtual sal_uInt32 getPropertyUIFlags(sal_Int32 _nId) const;
64 virtual ::std::vector< ::rtl::OUString > getPropertyEnumRepresentations(sal_Int32 _nId) const;
65 virtual String getPropertyName( sal_Int32 _nPropId );
67 // IPropertySetComposerCallback
68 virtual sal_Bool isComposeable( const ::rtl::OUString& _rPropertyName ) const;
70 protected:
71 static const OPropertyInfoImpl* getPropertyInfo();
73 static const OPropertyInfoImpl* getPropertyInfo(const String& _rName);
74 static const OPropertyInfoImpl* getPropertyInfo(sal_Int32 _nId);
77 //========================================================================
78 //= DefaultEnumRepresentation
79 //========================================================================
80 /** an implementation of the IPropertyEnumRepresentation
82 To be used with properties which, in formmetadata.cxx, are declared as ENUM.
84 class DefaultEnumRepresentation : public IPropertyEnumRepresentation
86 private:
87 oslInterlockedCount m_refCount;
88 const IPropertyInfoService& m_rMetaData;
89 ::com::sun::star::uno::Type m_aType;
90 const sal_Int32 m_nPropertyId;
92 public:
93 /** constructs an instance
95 @param _rInfo
96 An instance implementing IPropertyInfoService. Must live at least as
97 long as the DefaultEnumRepresentation should live.
99 DefaultEnumRepresentation( const IPropertyInfoService& _rInfo, const ::com::sun::star::uno::Type& _rType, sal_Int32 _nPropertyId );
101 protected:
102 ~DefaultEnumRepresentation();
104 protected:
105 // IPropertyEnumRepresentation implementqation
106 virtual ::std::vector< ::rtl::OUString >
107 SAL_CALL getDescriptions() const;
108 virtual void SAL_CALL getValueFromDescription( const ::rtl::OUString& _rDescription, ::com::sun::star::uno::Any& _out_rValue ) const;
109 virtual ::rtl::OUString SAL_CALL getDescriptionForValue( const ::com::sun::star::uno::Any& _rEnumValue ) const;
111 // IReference implementqation
112 virtual oslInterlockedCount SAL_CALL acquire();
113 virtual oslInterlockedCount SAL_CALL release();
115 private:
116 DefaultEnumRepresentation(); // never implemented
117 DefaultEnumRepresentation( const DefaultEnumRepresentation& ); // never implemented
118 DefaultEnumRepresentation& operator=( const DefaultEnumRepresentation& ); // never implemented
121 //========================================================================
122 //= UI flags (for all browseable properties)
123 //========================================================================
125 #define PROP_FLAG_NONE 0x00000000 // no special flag
126 #define PROP_FLAG_FORM_VISIBLE 0x00000001 // the property is visible when inspecting a form object
127 #define PROP_FLAG_DIALOG_VISIBLE 0x00000002 // the property is visible when inspecting a dialog object
128 #define PROP_FLAG_DATA_PROPERTY 0x00000004 // the property is to appear on the "Data" page
129 #define PROP_FLAG_ENUM 0x00000020 // the property is some kind of enum property, i.e. its
130 // value is chosen from a fixed list of possible values
131 #define PROP_FLAG_ENUM_ONE 0x00000060 // the property is an enum property starting with 1
132 // (note that this includes PROP_FLAG_ENUM)
133 #define PROP_FLAG_COMPOSEABLE 0x00000080 // the property is "composeable", i.e. an intersection of property
134 // sets should expose it, if all elements do
135 #define PROP_FLAG_EXPERIMENTAL 0x00000100 // the property is experimental, i.e. should not appear in the
136 // UI, unless experimental properties are enabled by a configuraiton
137 // option
139 //========================================================================
140 //= property ids (for all browseable properties)
141 //========================================================================
143 #define PROPERTY_ID_NAME 1
144 #define PROPERTY_ID_LABEL 2
145 #define PROPERTY_ID_CONTROLLABEL 3
146 #define PROPERTY_ID_MAXTEXTLEN 4
147 #define PROPERTY_ID_EDITMASK 5
148 #define PROPERTY_ID_LITERALMASK 6
149 #define PROPERTY_ID_STRICTFORMAT 7
150 #define PROPERTY_ID_ENABLED 8
151 #define PROPERTY_ID_READONLY 9
152 #define PROPERTY_ID_PRINTABLE 10
153 #define PROPERTY_ID_CONTROLSOURCE 11
154 #define PROPERTY_ID_TABSTOP 12
155 #define PROPERTY_ID_TABINDEX 13
156 #define PROPERTY_ID_DATASOURCE 14
157 #define PROPERTY_ID_COMMAND 15
158 #define PROPERTY_ID_COMMANDTYPE 16
159 #define PROPERTY_ID_FILTER 17
160 #define PROPERTY_ID_SORT 18
161 #define PROPERTY_ID_INSERTONLY 19
162 #define PROPERTY_ID_ALLOWADDITIONS 20
163 #define PROPERTY_ID_ALLOWEDITS 21
164 #define PROPERTY_ID_ALLOWDELETIONS 22
165 #define PROPERTY_ID_GROUP_NAME 23
166 #define PROPERTY_ID_NAVIGATION 24
167 #define PROPERTY_ID_CYCLE 25
168 #define PROPERTY_ID_HIDDEN_VALUE 26
169 #define PROPERTY_ID_VALUEMIN 27
170 #define PROPERTY_ID_VALUEMAX 28
171 #define PROPERTY_ID_VALUESTEP 29
172 #define PROPERTY_ID_DEFAULT_VALUE 30
173 #define PROPERTY_ID_DECIMAL_ACCURACY 31
174 #define PROPERTY_ID_SHOWTHOUSANDSEP 32
175 #define PROPERTY_ID_REFVALUE 33
176 #define PROPERTY_ID_CURRENCYSYMBOL 34
177 #define PROPERTY_ID_CURRSYM_POSITION 35
178 #define PROPERTY_ID_DATEMIN 36
179 #define PROPERTY_ID_DATEMAX 37
180 #define PROPERTY_ID_DATEFORMAT 38
181 #define PROPERTY_ID_SELECTEDITEMS 39
182 #define PROPERTY_ID_DEFAULT_DATE 40
183 #define PROPERTY_ID_TIMEMIN 41
184 #define PROPERTY_ID_TIMEMAX 42
185 #define PROPERTY_ID_TIMEFORMAT 43
186 #define PROPERTY_ID_DEFAULT_TIME 44
187 #define PROPERTY_ID_EFFECTIVE_MIN 45
188 #define PROPERTY_ID_EFFECTIVE_MAX 46
189 #define PROPERTY_ID_EFFECTIVE_DEFAULT 47
190 #define PROPERTY_ID_FORMATKEY 48
191 #define PROPERTY_ID_CLASSID 50
192 #define PROPERTY_ID_HEIGHT 51
193 #define PROPERTY_ID_WIDTH 52
194 #define PROPERTY_ID_BOUNDCOLUMN 53
195 #define PROPERTY_ID_LISTSOURCETYPE 54
196 #define PROPERTY_ID_LISTSOURCE 55
197 #define PROPERTY_ID_LISTINDEX 56
198 #define PROPERTY_ID_STRINGITEMLIST 57
199 #define PROPERTY_ID_DEFAULT_TEXT 58
200 #define PROPERTY_ID_FONT 59
201 #define PROPERTY_ID_ALIGN 60
202 #define PROPERTY_ID_ROWHEIGHT 61
203 #define PROPERTY_ID_BACKGROUNDCOLOR 62
204 #define PROPERTY_ID_FILLCOLOR 63
205 #define PROPERTY_ID_ESCAPE_PROCESSING 64
206 #define PROPERTY_ID_LINECOLOR 65
207 #define PROPERTY_ID_BORDER 66
208 #define PROPERTY_ID_DROPDOWN 67
209 #define PROPERTY_ID_AUTOCOMPLETE 68
210 #define PROPERTY_ID_LINECOUNT 69
211 #define PROPERTY_ID_WORDBREAK 70
212 #define PROPERTY_ID_MULTILINE 71
213 #define PROPERTY_ID_MULTISELECTION 72
214 #define PROPERTY_ID_AUTOLINEBREAK 73
215 #define PROPERTY_ID_HSCROLL 74
216 #define PROPERTY_ID_VSCROLL 75
217 #define PROPERTY_ID_SPIN 76
218 #define PROPERTY_ID_BUTTONTYPE 77
219 #define PROPERTY_ID_TARGET_URL 78
220 #define PROPERTY_ID_TARGET_FRAME 79
221 #define PROPERTY_ID_SUBMIT_ACTION 80
222 #define PROPERTY_ID_SUBMIT_TARGET 81
223 #define PROPERTY_ID_SUBMIT_METHOD 82
224 #define PROPERTY_ID_SUBMIT_ENCODING 83
225 #define PROPERTY_ID_DEFAULT_STATE 84
226 #define PROPERTY_ID_DEFAULTBUTTON 85
227 #define PROPERTY_ID_IMAGE_URL 86
228 #define PROPERTY_ID_DEFAULT_SELECT_SEQ 87
229 #define PROPERTY_ID_ECHO_CHAR 88
230 #define PROPERTY_ID_EMPTY_IS_NULL 89
231 #define PROPERTY_ID_TRISTATE 90
232 #define PROPERTY_ID_MASTERFIELDS 91
233 #define PROPERTY_ID_DETAILFIELDS 92
234 #define PROPERTY_ID_RECORDMARKER 93
235 #define PROPERTY_ID_FILTERPROPOSAL 94
236 #define PROPERTY_ID_TAG 95
237 #define PROPERTY_ID_HELPTEXT 96
238 #define PROPERTY_ID_HELPURL 97
239 #define PROPERTY_ID_HASNAVIGATION 98
240 #define PROPERTY_ID_POSITIONX 99
241 #define PROPERTY_ID_POSITIONY 100
242 #define PROPERTY_ID_TITLE 101
243 #define PROPERTY_ID_STEP 102
244 #define PROPERTY_ID_PROGRESSVALUE 103
245 #define PROPERTY_ID_PROGRESSVALUE_MIN 104
246 #define PROPERTY_ID_PROGRESSVALUE_MAX 105
247 #define PROPERTY_ID_SCROLLVALUE 106
248 #define PROPERTY_ID_SCROLLVALUE_MAX 107
249 #define PROPERTY_ID_LINEINCREMENT 108
250 #define PROPERTY_ID_BLOCKINCREMENT 109
251 #define PROPERTY_ID_VISIBLESIZE 110
252 #define PROPERTY_ID_ORIENTATION 111
253 #define PROPERTY_ID_IMAGEPOSITION 112
254 #define PROPERTY_ID_DATE 113
255 #define PROPERTY_ID_STATE 114
256 #define PROPERTY_ID_TIME 115
257 #define PROPERTY_ID_VALUE 116
258 #define PROPERTY_ID_SCALEIMAGE 117
259 #define PROPERTY_ID_PUSHBUTTONTYPE 118
260 #define PROPERTY_ID_EFFECTIVE_VALUE 119
261 #define PROPERTY_ID_TEXT 120
262 #define PROPERTY_ID_BOUND_CELL 121
263 #define PROPERTY_ID_LIST_CELL_RANGE 122
264 #define PROPERTY_ID_CELL_EXCHANGE_TYPE 123
265 #define PROPERTY_ID_SCROLLVALUE_MIN 124
266 #define PROPERTY_ID_DEFAULT_SCROLLVALUE 125
267 #define PROPERTY_ID_REPEAT_DELAY 126
268 #define PROPERTY_ID_SYMBOLCOLOR 127
269 #define PROPERTY_ID_SPINVALUE 128
270 #define PROPERTY_ID_SPINVALUE_MIN 129
271 #define PROPERTY_ID_SPINVALUE_MAX 130
272 #define PROPERTY_ID_DEFAULT_SPINVALUE 131
273 #define PROPERTY_ID_SPININCREMENT 132
274 #define PROPERTY_ID_REPEAT 133
275 #define PROPERTY_ID_SHOW_SCROLLBARS 134
276 #define PROPERTY_ID_ICONSIZE 135
277 #define PROPERTY_ID_SHOW_POSITION 136
278 #define PROPERTY_ID_SHOW_NAVIGATION 137
279 #define PROPERTY_ID_SHOW_RECORDACTIONS 138
280 #define PROPERTY_ID_SHOW_FILTERSORT 139
281 #define PROPERTY_ID_TEXTTYPE 140
282 #define PROPERTY_ID_LINEEND_FORMAT 141
283 #define PROPERTY_ID_TOGGLE 142
284 #define PROPERTY_ID_FOCUSONCLICK 143
285 #define PROPERTY_ID_HIDEINACTIVESELECTION 144
286 #define PROPERTY_ID_VISUALEFFECT 145
287 #define PROPERTY_ID_BORDERCOLOR 146
288 #define PROPERTY_ID_XML_DATA_MODEL 147
289 #define PROPERTY_ID_BIND_EXPRESSION 148
290 #define PROPERTY_ID_XSD_REQUIRED 149
291 #define PROPERTY_ID_XSD_RELEVANT 150
292 #define PROPERTY_ID_XSD_READONLY 151
293 #define PROPERTY_ID_XSD_CONSTRAINT 152
294 #define PROPERTY_ID_XSD_CALCULATION 153
295 #define PROPERTY_ID_XSD_DATA_TYPE 154
296 #define PROPERTY_ID_XSD_WHITESPACES 155
297 #define PROPERTY_ID_XSD_PATTERN 156
298 #define PROPERTY_ID_XSD_LENGTH 157
299 #define PROPERTY_ID_XSD_MIN_LENGTH 158
300 #define PROPERTY_ID_XSD_MAX_LENGTH 159
301 #define PROPERTY_ID_XSD_TOTAL_DIGITS 160
302 #define PROPERTY_ID_XSD_FRACTION_DIGITS 161
303 #define PROPERTY_ID_XSD_MAX_INCLUSIVE_INT 162
304 #define PROPERTY_ID_XSD_MAX_EXCLUSIVE_INT 163
305 #define PROPERTY_ID_XSD_MIN_INCLUSIVE_INT 164
306 #define PROPERTY_ID_XSD_MIN_EXCLUSIVE_INT 165
307 #define PROPERTY_ID_XSD_MAX_INCLUSIVE_DOUBLE 166
308 #define PROPERTY_ID_XSD_MAX_EXCLUSIVE_DOUBLE 167
309 #define PROPERTY_ID_XSD_MIN_INCLUSIVE_DOUBLE 168
310 #define PROPERTY_ID_XSD_MIN_EXCLUSIVE_DOUBLE 169
311 #define PROPERTY_ID_XSD_MAX_INCLUSIVE_DATE 170
312 #define PROPERTY_ID_XSD_MAX_EXCLUSIVE_DATE 171
313 #define PROPERTY_ID_XSD_MIN_INCLUSIVE_DATE 172
314 #define PROPERTY_ID_XSD_MIN_EXCLUSIVE_DATE 173
315 #define PROPERTY_ID_XSD_MAX_INCLUSIVE_TIME 174
316 #define PROPERTY_ID_XSD_MAX_EXCLUSIVE_TIME 175
317 #define PROPERTY_ID_XSD_MIN_INCLUSIVE_TIME 176
318 #define PROPERTY_ID_XSD_MIN_EXCLUSIVE_TIME 177
319 #define PROPERTY_ID_XSD_MAX_INCLUSIVE_DATE_TIME 178
320 #define PROPERTY_ID_XSD_MAX_EXCLUSIVE_DATE_TIME 179
321 #define PROPERTY_ID_XSD_MIN_INCLUSIVE_DATE_TIME 180
322 #define PROPERTY_ID_XSD_MIN_EXCLUSIVE_DATE_TIME 181
323 #define PROPERTY_ID_UNCHECKEDREFVALUE 182
324 #define PROPERTY_ID_SUBMISSION_ID 183
325 #define PROPERTY_ID_XFORMS_BUTTONTYPE 184
326 #define PROPERTY_ID_LIST_BINDING 185
327 #define PROPERTY_ID_VERTICAL_ALIGN 186
328 #define PROPERTY_ID_BINDING_NAME 187
329 #define PROPERTY_ID_DECORATION 188
330 #define PROPERTY_ID_SELECTION_TYPE 189
331 #define PROPERTY_ID_ROOT_DISPLAYED 190
332 #define PROPERTY_ID_SHOWS_HANDLES 191
333 #define PROPERTY_ID_SHOWS_ROOT_HANDLES 192
334 #define PROPERTY_ID_EDITABLE 193
335 #define PROPERTY_ID_INVOKES_STOP_NOT_EDITING 194
336 #define PROPERTY_ID_NOLABEL 195
337 #define PROPERTY_ID_SCALE_MODE 196
338 #define PROPERTY_ID_INPUT_REQUIRED 197
339 #define PROPERTY_ID_WRITING_MODE 198
340 #define PROPERTY_ID_ENABLE_VISIBLE 199
341 #define PROPERTY_ID_WHEEL_BEHAVIOR 200
342 #define PROPERTY_ID_TEXT_ANCHOR_TYPE 201
343 #define PROPERTY_ID_SHEET_ANCHOR_TYPE 202
345 //............................................................................
346 } // namespace pcr
347 //............................................................................
349 #endif // _EXTENSIONS_PROPCTRLR_FORMMETADATA_HXX_
351 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */