xref: /AOO42X/main/xmloff/source/forms/formattributes.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir #ifndef _XMLOFF_FORMATTRIBUTES_HXX_
29*cdf0e10cSrcweir #define _XMLOFF_FORMATTRIBUTES_HXX_
30*cdf0e10cSrcweir 
31*cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp>
32*cdf0e10cSrcweir #include <sal/types.h>
33*cdf0e10cSrcweir #include <vos/refernce.hxx>
34*cdf0e10cSrcweir #include <comphelper/stl_types.hxx>
35*cdf0e10cSrcweir 
36*cdf0e10cSrcweir class SvXMLExport;
37*cdf0e10cSrcweir struct SvXMLEnumMapEntry;
38*cdf0e10cSrcweir 
39*cdf0e10cSrcweir //.........................................................................
40*cdf0e10cSrcweir namespace xmloff
41*cdf0e10cSrcweir {
42*cdf0e10cSrcweir //.........................................................................
43*cdf0e10cSrcweir 
44*cdf0e10cSrcweir     // flags for common control attributes
45*cdf0e10cSrcweir     #define CCA_NAME                    0x00000001
46*cdf0e10cSrcweir     #define CCA_SERVICE_NAME            0x00000002
47*cdf0e10cSrcweir     #define CCA_BUTTON_TYPE             0x00000004
48*cdf0e10cSrcweir     #define CCA_CONTROL_ID              0x00000008
49*cdf0e10cSrcweir     #define CCA_CURRENT_SELECTED        0x00000010
50*cdf0e10cSrcweir     #define CCA_CURRENT_VALUE           0x00000020
51*cdf0e10cSrcweir     #define CCA_DISABLED                0x00000040
52*cdf0e10cSrcweir     #define CCA_DROPDOWN                0x00000080
53*cdf0e10cSrcweir     #define CCA_FOR                     0x00000100
54*cdf0e10cSrcweir     #define CCA_IMAGE_DATA              0x00000200
55*cdf0e10cSrcweir     #define CCA_LABEL                   0x00000400
56*cdf0e10cSrcweir     #define CCA_MAX_LENGTH              0x00000800
57*cdf0e10cSrcweir     #define CCA_PRINTABLE               0x00001000
58*cdf0e10cSrcweir     #define CCA_READONLY                0x00002000
59*cdf0e10cSrcweir     #define CCA_SELECTED                0x00004000
60*cdf0e10cSrcweir     #define CCA_SIZE                    0x00008000
61*cdf0e10cSrcweir     #define CCA_TAB_INDEX               0x00010000
62*cdf0e10cSrcweir     #define CCA_TARGET_FRAME            0x00020000
63*cdf0e10cSrcweir     #define CCA_TARGET_LOCATION         0x00040000
64*cdf0e10cSrcweir     #define CCA_TAB_STOP                0x00080000
65*cdf0e10cSrcweir     #define CCA_TITLE                   0x00100000
66*cdf0e10cSrcweir     #define CCA_VALUE                   0x00200000
67*cdf0e10cSrcweir     #define CCA_ORIENTATION             0x00400000
68*cdf0e10cSrcweir     #define CCA_VISUAL_EFFECT           0x00800000
69*cdf0e10cSrcweir     #define CCA_ENABLEVISIBLE                 0x01000000
70*cdf0e10cSrcweir 
71*cdf0e10cSrcweir     // flags for database control atttributes
72*cdf0e10cSrcweir     #define DA_BOUND_COLUMN             0x00000001
73*cdf0e10cSrcweir     #define DA_CONVERT_EMPTY            0x00000002
74*cdf0e10cSrcweir     #define DA_DATA_FIELD               0x00000004
75*cdf0e10cSrcweir     #define DA_LIST_SOURCE              0x00000008
76*cdf0e10cSrcweir     #define DA_LIST_SOURCE_TYPE         0x00000010
77*cdf0e10cSrcweir     #define DA_INPUT_REQUIRED           0x00000020
78*cdf0e10cSrcweir 
79*cdf0e10cSrcweir     // flags for binding related control attributes
80*cdf0e10cSrcweir     #define BA_LINKED_CELL              0x00000001
81*cdf0e10cSrcweir     #define BA_LIST_LINKING_TYPE        0x00000002
82*cdf0e10cSrcweir     #define BA_LIST_CELL_RANGE          0x00000004
83*cdf0e10cSrcweir     #define BA_XFORMS_BIND              0x00000008
84*cdf0e10cSrcweir     #define BA_XFORMS_LISTBIND          0x00000010
85*cdf0e10cSrcweir     #define BA_XFORMS_SUBMISSION        0x00000020
86*cdf0e10cSrcweir 
87*cdf0e10cSrcweir     // flags for event attributes
88*cdf0e10cSrcweir     #define EA_CONTROL_EVENTS           0x00000001
89*cdf0e10cSrcweir     #define EA_ON_CHANGE                0x00000002
90*cdf0e10cSrcweir     #define EA_ON_CLICK                 0x00000004
91*cdf0e10cSrcweir     #define EA_ON_DBLCLICK              0x00000008
92*cdf0e10cSrcweir     #define EA_ON_SELECT                0x00000010
93*cdf0e10cSrcweir 
94*cdf0e10cSrcweir     /// attributes in the xml tag representing a form
95*cdf0e10cSrcweir     enum FormAttributes
96*cdf0e10cSrcweir     {
97*cdf0e10cSrcweir         faName,
98*cdf0e10cSrcweir         faServiceName,
99*cdf0e10cSrcweir         faAction,
100*cdf0e10cSrcweir         faEnctype,
101*cdf0e10cSrcweir         faMethod,
102*cdf0e10cSrcweir         faTargetFrame,
103*cdf0e10cSrcweir         faAllowDeletes,
104*cdf0e10cSrcweir         faAllowInserts,
105*cdf0e10cSrcweir         faAllowUpdates,
106*cdf0e10cSrcweir         faApplyFilter,
107*cdf0e10cSrcweir         faCommand,
108*cdf0e10cSrcweir         faCommandType,
109*cdf0e10cSrcweir         faEscapeProcessing,
110*cdf0e10cSrcweir         faDatasource,
111*cdf0e10cSrcweir         faConnectionResource,
112*cdf0e10cSrcweir         faDetailFiels,
113*cdf0e10cSrcweir         faFilter,
114*cdf0e10cSrcweir         faIgnoreResult,
115*cdf0e10cSrcweir         faMasterFields,
116*cdf0e10cSrcweir         faNavigationMode,
117*cdf0e10cSrcweir         faOrder,
118*cdf0e10cSrcweir         faTabbingCycle
119*cdf0e10cSrcweir     };
120*cdf0e10cSrcweir 
121*cdf0e10cSrcweir     // any other attributes, which are special to some control types
122*cdf0e10cSrcweir     #define SCA_ECHO_CHAR               0x00000001
123*cdf0e10cSrcweir     #define SCA_MAX_VALUE               0x00000002
124*cdf0e10cSrcweir     #define SCA_MIN_VALUE               0x00000004
125*cdf0e10cSrcweir     #define SCA_VALIDATION              0x00000008
126*cdf0e10cSrcweir     #define SCA_MULTI_LINE              0x00000020
127*cdf0e10cSrcweir     #define SCA_AUTOMATIC_COMPLETION    0x00000080
128*cdf0e10cSrcweir     #define SCA_MULTIPLE                0x00000100
129*cdf0e10cSrcweir     #define SCA_DEFAULT_BUTTON          0x00000200
130*cdf0e10cSrcweir     #define SCA_CURRENT_STATE           0x00000400
131*cdf0e10cSrcweir     #define SCA_IS_TRISTATE             0x00000800
132*cdf0e10cSrcweir     #define SCA_STATE                   0x00001000
133*cdf0e10cSrcweir     #define SCA_COLUMN_STYLE_NAME       0x00002000
134*cdf0e10cSrcweir     #define SCA_STEP_SIZE               0x00004000
135*cdf0e10cSrcweir     #define SCA_PAGE_STEP_SIZE          0x00008000
136*cdf0e10cSrcweir     #define SCA_REPEAT_DELAY            0x00010000
137*cdf0e10cSrcweir     #define SCA_TOGGLE                  0x00020000
138*cdf0e10cSrcweir     #define SCA_FOCUS_ON_CLICK          0x00040000
139*cdf0e10cSrcweir     #define SCA_IMAGE_POSITION          0x00080000
140*cdf0e10cSrcweir 
141*cdf0e10cSrcweir     // attributes of the office:forms element
142*cdf0e10cSrcweir     enum OfficeFormsAttributes
143*cdf0e10cSrcweir     {
144*cdf0e10cSrcweir         ofaAutomaticFocus,
145*cdf0e10cSrcweir         ofaApplyDesignMode
146*cdf0e10cSrcweir     };
147*cdf0e10cSrcweir 
148*cdf0e10cSrcweir     //=====================================================================
149*cdf0e10cSrcweir     //= OAttributeMetaData
150*cdf0e10cSrcweir     //=====================================================================
151*cdf0e10cSrcweir     /** allows the translation of attribute ids into strings.
152*cdf0e10cSrcweir 
153*cdf0e10cSrcweir         <p>This class does not allow to connect xml attributes to property names or
154*cdf0e10cSrcweir         something like that, it only deals with the xml side</p>
155*cdf0e10cSrcweir     */
156*cdf0e10cSrcweir     class OAttributeMetaData
157*cdf0e10cSrcweir     {
158*cdf0e10cSrcweir     public:
159*cdf0e10cSrcweir         /** calculates the xml attribute representation of a common control attribute.
160*cdf0e10cSrcweir             @param _nId
161*cdf0e10cSrcweir                 the id of the attribute. Has to be one of the CCA_* constants.
162*cdf0e10cSrcweir         */
163*cdf0e10cSrcweir         static const sal_Char* getCommonControlAttributeName(sal_Int32 _nId);
164*cdf0e10cSrcweir 
165*cdf0e10cSrcweir         /** calculates the xml namespace key to use for a common control attribute
166*cdf0e10cSrcweir             @param _nId
167*cdf0e10cSrcweir                 the id of the attribute. Has to be one of the CCA_* constants.
168*cdf0e10cSrcweir         */
169*cdf0e10cSrcweir         static sal_uInt16 getCommonControlAttributeNamespace(sal_Int32 _nId);
170*cdf0e10cSrcweir 
171*cdf0e10cSrcweir         /** retrieves the name of an attribute of a form xml representation
172*cdf0e10cSrcweir             @param  _eAttrib
173*cdf0e10cSrcweir                 enum value specifying the attribute
174*cdf0e10cSrcweir         */
175*cdf0e10cSrcweir         static const sal_Char* getFormAttributeName(FormAttributes _eAttrib);
176*cdf0e10cSrcweir 
177*cdf0e10cSrcweir         /** calculates the xml namespace key to use for a attribute of a form xml representation
178*cdf0e10cSrcweir             @param  _eAttrib
179*cdf0e10cSrcweir                 enum value specifying the attribute
180*cdf0e10cSrcweir         */
181*cdf0e10cSrcweir         static sal_uInt16 getFormAttributeNamespace(FormAttributes _eAttrib);
182*cdf0e10cSrcweir 
183*cdf0e10cSrcweir         /** calculates the xml attribute representation of a database attribute.
184*cdf0e10cSrcweir             @param _nId
185*cdf0e10cSrcweir                 the id of the attribute. Has to be one of the DA_* constants.
186*cdf0e10cSrcweir         */
187*cdf0e10cSrcweir         static const sal_Char* getDatabaseAttributeName(sal_Int32 _nId);
188*cdf0e10cSrcweir 
189*cdf0e10cSrcweir         /** calculates the xml namespace key to use for a database attribute.
190*cdf0e10cSrcweir             @param _nId
191*cdf0e10cSrcweir                 the id of the attribute. Has to be one of the DA_* constants.
192*cdf0e10cSrcweir         */
193*cdf0e10cSrcweir         static sal_uInt16 getDatabaseAttributeNamespace(sal_Int32 _nId);
194*cdf0e10cSrcweir 
195*cdf0e10cSrcweir         /** calculates the xml attribute representation of a special attribute.
196*cdf0e10cSrcweir             @param _nId
197*cdf0e10cSrcweir                 the id of the attribute. Has to be one of the SCA_* constants.
198*cdf0e10cSrcweir         */
199*cdf0e10cSrcweir         static const sal_Char* getSpecialAttributeName(sal_Int32 _nId);
200*cdf0e10cSrcweir 
201*cdf0e10cSrcweir         /** calculates the xml attribute representation of a binding attribute.
202*cdf0e10cSrcweir             @param _nId
203*cdf0e10cSrcweir                 the id of the attribute. Has to be one of the BA_* constants.
204*cdf0e10cSrcweir         */
205*cdf0e10cSrcweir         static const sal_Char* getBindingAttributeName(sal_Int32 _nId);
206*cdf0e10cSrcweir 
207*cdf0e10cSrcweir         /** calculates the xml namespace key to use for a binding attribute.
208*cdf0e10cSrcweir             @param _nId
209*cdf0e10cSrcweir                 the id of the attribute. Has to be one of the BA_* constants.
210*cdf0e10cSrcweir         */
211*cdf0e10cSrcweir         static sal_uInt16 getBindingAttributeNamespace(sal_Int32 _nId);
212*cdf0e10cSrcweir 
213*cdf0e10cSrcweir         /** calculates the xml namespace key to use for a special attribute.
214*cdf0e10cSrcweir             @param _nId
215*cdf0e10cSrcweir                 the id of the attribute. Has to be one of the SCA_* constants.
216*cdf0e10cSrcweir         */
217*cdf0e10cSrcweir         static sal_uInt16 getSpecialAttributeNamespace(sal_Int32 _nId);
218*cdf0e10cSrcweir 
219*cdf0e10cSrcweir         /** calculates the xml attribute representation of a attribute of the office:forms element
220*cdf0e10cSrcweir             @param _nId
221*cdf0e10cSrcweir                 the id of the attribute
222*cdf0e10cSrcweir         */
223*cdf0e10cSrcweir         static const sal_Char* getOfficeFormsAttributeName(OfficeFormsAttributes _eAttrib);
224*cdf0e10cSrcweir 
225*cdf0e10cSrcweir         /** calculates the xml namedspace key of a attribute of the office:forms element
226*cdf0e10cSrcweir             @param _nId
227*cdf0e10cSrcweir                 the id of the attribute
228*cdf0e10cSrcweir         */
229*cdf0e10cSrcweir         static sal_uInt16 getOfficeFormsAttributeNamespace(OfficeFormsAttributes _eAttrib);
230*cdf0e10cSrcweir     };
231*cdf0e10cSrcweir 
232*cdf0e10cSrcweir     //=====================================================================
233*cdf0e10cSrcweir     //= OAttribute2Property
234*cdf0e10cSrcweir     //=====================================================================
235*cdf0e10cSrcweir     /** some kind of opposite to the OAttributeMetaData class. Able to translate
236*cdf0e10cSrcweir         attributes into property names/types
237*cdf0e10cSrcweir 
238*cdf0e10cSrcweir         <p>The construction of this class is rather expensive (or at least it's initialization from outside),
239*cdf0e10cSrcweir         so it should be shared</p>
240*cdf0e10cSrcweir     */
241*cdf0e10cSrcweir     class OAttribute2Property
242*cdf0e10cSrcweir     {
243*cdf0e10cSrcweir     public:
244*cdf0e10cSrcweir         // TODO: maybe the following struct should be used for exports, too. In this case we would not need to
245*cdf0e10cSrcweir         // store it's instances in a map, but in a vector for faster access.
246*cdf0e10cSrcweir         struct AttributeAssignment
247*cdf0e10cSrcweir         {
248*cdf0e10cSrcweir             ::rtl::OUString                 sAttributeName;         // the attribute name
249*cdf0e10cSrcweir             ::rtl::OUString                 sPropertyName;          // the property name
250*cdf0e10cSrcweir             ::com::sun::star::uno::Type     aPropertyType;          // the property type
251*cdf0e10cSrcweir             ::rtl::OUString                 sAttributeDefault;      // the default if the attribute is not present
252*cdf0e10cSrcweir 
253*cdf0e10cSrcweir             // entries which are special to some value types
254*cdf0e10cSrcweir             const SvXMLEnumMapEntry*        pEnumMap;               // the enum map, if appliable
255*cdf0e10cSrcweir             sal_Bool                        bInverseSemantics;      // for booleanss: attribute and property value have the same or an inverse semantics?
256*cdf0e10cSrcweir 
257*cdf0e10cSrcweir             AttributeAssignment() : pEnumMap(NULL), bInverseSemantics(sal_False) { }
258*cdf0e10cSrcweir         };
259*cdf0e10cSrcweir 
260*cdf0e10cSrcweir     protected:
261*cdf0e10cSrcweir         DECLARE_STL_USTRINGACCESS_MAP( AttributeAssignment, AttributeAssignments );
262*cdf0e10cSrcweir         AttributeAssignments        m_aKnownProperties;
263*cdf0e10cSrcweir 
264*cdf0e10cSrcweir     public:
265*cdf0e10cSrcweir         OAttribute2Property();
266*cdf0e10cSrcweir         virtual ~OAttribute2Property();
267*cdf0e10cSrcweir 
268*cdf0e10cSrcweir         /** return the AttributeAssignment which corresponds to the given attribute
269*cdf0e10cSrcweir 
270*cdf0e10cSrcweir             @param _rAttribName
271*cdf0e10cSrcweir                 the name of the attrribute
272*cdf0e10cSrcweir             @return
273*cdf0e10cSrcweir                 a pointer to the <type>AttributeAssignment</type> structure as requested, NULL if the attribute
274*cdf0e10cSrcweir                 does not represent a property.
275*cdf0e10cSrcweir         */
276*cdf0e10cSrcweir         const AttributeAssignment* getAttributeTranslation(
277*cdf0e10cSrcweir             const ::rtl::OUString& _rAttribName);
278*cdf0e10cSrcweir 
279*cdf0e10cSrcweir         /** add a attribute assignment referring to a string property to the map
280*cdf0e10cSrcweir             @param _pAttributeName
281*cdf0e10cSrcweir                 the name of the attrribute
282*cdf0e10cSrcweir             @param _rPropertyName
283*cdf0e10cSrcweir                 the name of the property assigned to the attribute
284*cdf0e10cSrcweir             @param _pAttributeDefault
285*cdf0e10cSrcweir                 the default value for the attribute, if any. May be NULL, in this case the default is assumed to be
286*cdf0e10cSrcweir                 an empty string.
287*cdf0e10cSrcweir         */
288*cdf0e10cSrcweir         void    addStringProperty(
289*cdf0e10cSrcweir             const sal_Char* _pAttributeName, const ::rtl::OUString& _rPropertyName,
290*cdf0e10cSrcweir             const sal_Char* _pAttributeDefault = NULL);
291*cdf0e10cSrcweir 
292*cdf0e10cSrcweir         /** add a attribute assignment referring to a boolean property to the map
293*cdf0e10cSrcweir 
294*cdf0e10cSrcweir             @param _pAttributeName
295*cdf0e10cSrcweir                 the name of the attrribute
296*cdf0e10cSrcweir             @param _rPropertyName
297*cdf0e10cSrcweir                 the name of the property assigned to the attribute
298*cdf0e10cSrcweir             @param _bAttributeDefault
299*cdf0e10cSrcweir                 the default value for the attribute.
300*cdf0e10cSrcweir             @param _bInverseSemantics
301*cdf0e10cSrcweir                 if <TRUE/>, a attribute value of <TRUE/> means a property value of <FALSE/> and vice verse.<br/>
302*cdf0e10cSrcweir                 if <FALSE/>, the attribute value is used as property value directly
303*cdf0e10cSrcweir         */
304*cdf0e10cSrcweir         void    addBooleanProperty(
305*cdf0e10cSrcweir             const sal_Char* _pAttributeName, const ::rtl::OUString& _rPropertyName,
306*cdf0e10cSrcweir             const sal_Bool _bAttributeDefault, const sal_Bool _bInverseSemantics = sal_False);
307*cdf0e10cSrcweir 
308*cdf0e10cSrcweir         /** add a attribute assignment referring to an int16 property to the map
309*cdf0e10cSrcweir 
310*cdf0e10cSrcweir             @param _pAttributeName
311*cdf0e10cSrcweir                 the name of the attrribute
312*cdf0e10cSrcweir             @param _rPropertyName
313*cdf0e10cSrcweir                 the name of the property assigned to the attribute
314*cdf0e10cSrcweir             @param _nAttributeDefault
315*cdf0e10cSrcweir                 the default value for the attribute.
316*cdf0e10cSrcweir         */
317*cdf0e10cSrcweir         void    addInt16Property(
318*cdf0e10cSrcweir             const sal_Char* _pAttributeName, const ::rtl::OUString& _rPropertyName,
319*cdf0e10cSrcweir             const sal_Int16 _nAttributeDefault);
320*cdf0e10cSrcweir 
321*cdf0e10cSrcweir         /** add a attribute assignment referring to an int32 property to the map
322*cdf0e10cSrcweir 
323*cdf0e10cSrcweir             @param _pAttributeName
324*cdf0e10cSrcweir                 the name of the attrribute
325*cdf0e10cSrcweir             @param _rPropertyName
326*cdf0e10cSrcweir                 the name of the property assigned to the attribute
327*cdf0e10cSrcweir             @param _nAttributeDefault
328*cdf0e10cSrcweir                 the default value for the attribute.
329*cdf0e10cSrcweir         */
330*cdf0e10cSrcweir         void    addInt32Property(
331*cdf0e10cSrcweir             const sal_Char* _pAttributeName, const ::rtl::OUString& _rPropertyName,
332*cdf0e10cSrcweir             const sal_Int32 _nAttributeDefault );
333*cdf0e10cSrcweir 
334*cdf0e10cSrcweir         /** add a attribute assignment referring to an enum property to the map
335*cdf0e10cSrcweir 
336*cdf0e10cSrcweir             @param _pAttributeName
337*cdf0e10cSrcweir                 the name of the attrribute
338*cdf0e10cSrcweir             @param _rPropertyName
339*cdf0e10cSrcweir                 the name of the property assigned to the attribute
340*cdf0e10cSrcweir             @param _nAttributeDefault
341*cdf0e10cSrcweir                 the default value for the attribute, as (32bit) integer
342*cdf0e10cSrcweir             @param _pValueMap
343*cdf0e10cSrcweir                 the map to translate strings into enum values
344*cdf0e10cSrcweir             @param _pType
345*cdf0e10cSrcweir                 the type of the property. May be NULL, in this case 32bit integer is assumed.
346*cdf0e10cSrcweir         */
347*cdf0e10cSrcweir         void    addEnumProperty(
348*cdf0e10cSrcweir             const sal_Char* _pAttributeName, const ::rtl::OUString& _rPropertyName,
349*cdf0e10cSrcweir             const sal_uInt16 _nAttributeDefault, const SvXMLEnumMapEntry* _pValueMap,
350*cdf0e10cSrcweir             const ::com::sun::star::uno::Type* _pType = NULL);
351*cdf0e10cSrcweir 
352*cdf0e10cSrcweir     protected:
353*cdf0e10cSrcweir         /// some common code for the various add*Property methods
354*cdf0e10cSrcweir         AttributeAssignment& implAdd(
355*cdf0e10cSrcweir             const sal_Char* _pAttributeName, const ::rtl::OUString& _rPropertyName,
356*cdf0e10cSrcweir             const ::com::sun::star::uno::Type& _rType, const ::rtl::OUString& _rDefaultString);
357*cdf0e10cSrcweir     };
358*cdf0e10cSrcweir //.........................................................................
359*cdf0e10cSrcweir }   // namespace xmloff
360*cdf0e10cSrcweir //.........................................................................
361*cdf0e10cSrcweir 
362*cdf0e10cSrcweir #endif // _XMLOFF_FORMATTRIBUTES_HXX_
363*cdf0e10cSrcweir 
364