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