1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
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 #include "valueproperties.hxx"
21 #include "strings.hxx"
22 #include <com/sun/star/form/FormComponentType.hpp>
23 #include <sal/log.hxx>
28 using namespace ::com::sun::star::form
;
30 //= OValuePropertiesMetaData
31 void OValuePropertiesMetaData::getValuePropertyNames(
32 OControlElement::ElementType _eType
, sal_Int16 _nFormComponentType
,
33 OUString
& _rpCurrentValuePropertyName
, OUString
& _rpValuePropertyName
)
35 // reset the pointers in case we can't determine the property names
36 _rpCurrentValuePropertyName
= _rpValuePropertyName
= OUString();
37 switch (_nFormComponentType
)
39 case FormComponentType::TEXTFIELD
:
40 if (OControlElement::FORMATTED_TEXT
== _eType
)
42 _rpCurrentValuePropertyName
= PROPERTY_EFFECTIVE_VALUE
;
43 _rpValuePropertyName
= PROPERTY_EFFECTIVE_DEFAULT
;
47 if (OControlElement::PASSWORD
!= _eType
)
48 // no CurrentValue" for passwords
49 _rpCurrentValuePropertyName
= PROPERTY_TEXT
;
50 _rpValuePropertyName
= PROPERTY_DEFAULT_TEXT
;
54 case FormComponentType::NUMERICFIELD
:
55 case FormComponentType::CURRENCYFIELD
:
56 _rpCurrentValuePropertyName
= PROPERTY_VALUE
;
57 _rpValuePropertyName
= PROPERTY_DEFAULT_VALUE
;
60 case FormComponentType::PATTERNFIELD
:
61 case FormComponentType::FILECONTROL
:
62 case FormComponentType::COMBOBOX
:
63 _rpValuePropertyName
= PROPERTY_DEFAULT_TEXT
;
65 case FormComponentType::COMMANDBUTTON
:
66 _rpCurrentValuePropertyName
= PROPERTY_TEXT
;
69 case FormComponentType::CHECKBOX
:
70 case FormComponentType::RADIOBUTTON
:
71 _rpValuePropertyName
= PROPERTY_REFVALUE
;
74 case FormComponentType::HIDDENCONTROL
:
75 _rpValuePropertyName
= PROPERTY_HIDDEN_VALUE
;
78 case FormComponentType::SCROLLBAR
:
79 _rpCurrentValuePropertyName
= PROPERTY_SCROLLVALUE
;
80 _rpValuePropertyName
= PROPERTY_SCROLLVALUE_DEFAULT
;
83 case FormComponentType::SPINBUTTON
:
84 _rpCurrentValuePropertyName
= PROPERTY_SPINVALUE
;
85 _rpValuePropertyName
= PROPERTY_DEFAULT_SPINVALUE
;
89 SAL_WARN( "xmloff", "OValuePropertiesMetaData::getValuePropertyNames: unsupported component type!" );
94 void OValuePropertiesMetaData::getValueLimitPropertyNames(sal_Int16 _nFormComponentType
,
95 OUString
& _rpMinValuePropertyName
, OUString
& _rpMaxValuePropertyName
)
97 _rpMinValuePropertyName
= _rpMaxValuePropertyName
= OUString();
98 switch (_nFormComponentType
)
100 case FormComponentType::NUMERICFIELD
:
101 case FormComponentType::CURRENCYFIELD
:
102 _rpMinValuePropertyName
= PROPERTY_VALUE_MIN
;
103 _rpMaxValuePropertyName
= PROPERTY_VALUE_MAX
;
106 case FormComponentType::TEXTFIELD
:
107 _rpMinValuePropertyName
= PROPERTY_EFFECTIVE_MIN
;
108 _rpMaxValuePropertyName
= PROPERTY_EFFECTIVE_MAX
;
111 case FormComponentType::SCROLLBAR
:
112 _rpMinValuePropertyName
= PROPERTY_SCROLLVALUE_MIN
;
113 _rpMaxValuePropertyName
= PROPERTY_SCROLLVALUE_MAX
;
116 case FormComponentType::SPINBUTTON
:
117 _rpMinValuePropertyName
= PROPERTY_SPINVALUE_MIN
;
118 _rpMaxValuePropertyName
= PROPERTY_SPINVALUE_MAX
;
122 SAL_WARN("xmloff", "OValuePropertiesMetaData::getValueLimitPropertyNames: unsupported component type!" );
127 void OValuePropertiesMetaData::getRuntimeValuePropertyNames(
128 OControlElement::ElementType _eType
, sal_Int16 _nFormComponentType
,
129 OUString
& _rpValuePropertyName
, OUString
& _rpDefaultValuePropertyName
)
131 // reset the pointers in case we can't determine the property names
132 _rpValuePropertyName
= _rpDefaultValuePropertyName
= OUString();
133 switch (_nFormComponentType
)
135 case FormComponentType::TEXTFIELD
:
136 if (OControlElement::FORMATTED_TEXT
== _eType
)
138 _rpValuePropertyName
= PROPERTY_EFFECTIVE_VALUE
;
139 _rpDefaultValuePropertyName
= PROPERTY_EFFECTIVE_DEFAULT
;
143 _rpValuePropertyName
= PROPERTY_TEXT
;
144 _rpDefaultValuePropertyName
= PROPERTY_DEFAULT_TEXT
;
148 case FormComponentType::DATEFIELD
:
149 _rpValuePropertyName
= PROPERTY_DATE
;
150 _rpDefaultValuePropertyName
= PROPERTY_DEFAULT_DATE
;
153 case FormComponentType::TIMEFIELD
:
154 _rpValuePropertyName
= PROPERTY_TIME
;
155 _rpDefaultValuePropertyName
= PROPERTY_DEFAULT_TIME
;
158 case FormComponentType::NUMERICFIELD
:
159 case FormComponentType::CURRENCYFIELD
:
160 case FormComponentType::PATTERNFIELD
:
161 case FormComponentType::FILECONTROL
:
162 case FormComponentType::COMBOBOX
:
163 case FormComponentType::SCROLLBAR
:
164 case FormComponentType::SPINBUTTON
:
165 // For these types, the runtime properties are the same as the ones which in the XML
166 // stream are named "value properties"
167 getValuePropertyNames( _eType
, _nFormComponentType
, _rpValuePropertyName
, _rpDefaultValuePropertyName
);
170 case FormComponentType::CHECKBOX
:
171 case FormComponentType::RADIOBUTTON
:
172 _rpValuePropertyName
= PROPERTY_STATE
;
173 _rpDefaultValuePropertyName
= PROPERTY_DEFAULT_STATE
;
178 } // namespace xmloff
180 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */