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