b57d51e32f
Change-Id: I3247894fe022dce7f0aa351bd85fefcd7c545dd4 Reviewed-on: https://gerrit.libreoffice.org/34377 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
337 lines
16 KiB
C++
337 lines
16 KiB
C++
/* -*- 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 override;
|
|
virtual OUString getPropertyTranslation(sal_Int32 _nId) const override;
|
|
virtual OString getPropertyHelpId(sal_Int32 _nId) const override;
|
|
virtual sal_Int16 getPropertyPos(sal_Int32 _nId) const override;
|
|
virtual sal_uInt32 getPropertyUIFlags(sal_Int32 _nId) const override;
|
|
virtual std::vector< OUString > getPropertyEnumRepresentations(sal_Int32 _nId) const override;
|
|
|
|
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:
|
|
const IPropertyInfoService& m_rMetaData;
|
|
css::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 css::uno::Type& _rType, sal_Int32 _nPropertyId );
|
|
|
|
protected:
|
|
virtual ~DefaultEnumRepresentation() override;
|
|
|
|
protected:
|
|
// IPropertyEnumRepresentation implementqation
|
|
virtual std::vector< OUString >
|
|
SAL_CALL getDescriptions() const override;
|
|
virtual void SAL_CALL getValueFromDescription( const OUString& _rDescription, css::uno::Any& _out_rValue ) const override;
|
|
virtual OUString SAL_CALL getDescriptionForValue( const css::uno::Any& _rEnumValue ) const override;
|
|
|
|
private:
|
|
DefaultEnumRepresentation( const DefaultEnumRepresentation& ) = delete;
|
|
DefaultEnumRepresentation& operator=( const DefaultEnumRepresentation& ) = delete;
|
|
};
|
|
|
|
|
|
//= 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 configuration
|
|
// 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
|
|
#define PROPERTY_ID_TYPEDITEMLIST 207
|
|
|
|
|
|
} // namespace pcr
|
|
|
|
|
|
#endif // INCLUDED_EXTENSIONS_SOURCE_PROPCTRLR_FORMMETADATA_HXX
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|