summaryrefslogtreecommitdiff
path: root/xmloff/source/draw/sdpropls.hxx
blob: 569340c8c3474c13cae6a6d800e9222fc4697224 (plain)
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
/*************************************************************************
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 * 
 * Copyright 2008 by Sun Microsystems, Inc.
 *
 * OpenOffice.org - a multi-platform office productivity suite
 *
 * $RCSfile: sdpropls.hxx,v $
 * $Revision: 1.41 $
 *
 * This file is part of OpenOffice.org.
 *
 * OpenOffice.org is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3
 * only, as published by the Free Software Foundation.
 *
 * OpenOffice.org is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License version 3 for more details
 * (a copy is included in the LICENSE file that accompanied this code).
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3 along with OpenOffice.org.  If not, see
 * <http://www.openoffice.org/license.html>
 * for a copy of the LGPLv3 License.
 *
 ************************************************************************/

#ifndef _SDPROPLS_HXX
#define _SDPROPLS_HXX

#include <com/sun/star/frame/XModel.hpp>
#include <xmloff/xmlnume.hxx>
#include <xmloff/maptype.hxx>
#include <xmloff/xmltypes.hxx>
#include <xmloff/xmlement.hxx>
#include <xmloff/prhdlfac.hxx>
#include <xmloff/xmlprmap.hxx>
#include "XMLTextListAutoStylePool.hxx"
#include <xmloff/xmlexppr.hxx>

//////////////////////////////////////////////////////////////////////////////
// entry list for graphic properties

extern const XMLPropertyMapEntry aXMLSDProperties[];

//////////////////////////////////////////////////////////////////////////////
// entry list for presentation page properties

extern const XMLPropertyMapEntry aXMLSDPresPageProps[];
extern const XMLPropertyMapEntry aXMLSDPresPageProps_onlyHeadersFooter[];

//////////////////////////////////////////////////////////////////////////////
// types of own properties

#define	XML_SD_TYPE_STROKE							(XML_SD_TYPES_START +  0)
#define	XML_SD_TYPE_PRESPAGE_TYPE					(XML_SD_TYPES_START +  1)
#define	XML_SD_TYPE_PRESPAGE_STYLE					(XML_SD_TYPES_START +  2)
#define	XML_SD_TYPE_PRESPAGE_SPEED					(XML_SD_TYPES_START +  3)
#define	XML_SD_TYPE_PRESPAGE_DURATION				(XML_SD_TYPES_START +  4)
#define	XML_SD_TYPE_PRESPAGE_VISIBILITY				(XML_SD_TYPES_START +  5)
#define XML_SD_TYPE_MARKER							(XML_SD_TYPES_START +  6 )
#define XML_SD_TYPE_OPACITY							(XML_SD_TYPES_START +  7 )
#define XML_SD_TYPE_LINEJOIN						(XML_SD_TYPES_START +  8 )
#define XML_SD_TYPE_FILLSTYLE						(XML_SD_TYPES_START +  9 )
#define XML_SD_TYPE_GRADIENT						(XML_SD_TYPES_START + 10 )
#define XML_SD_TYPE_GRADIENT_STEPCOUNT				(XML_SD_TYPES_START + 11 )
#define XML_SD_TYPE_SHADOW							(XML_SD_TYPES_START + 12 )
#define XML_SD_TYPE_TEXT_CROSSEDOUT					(XML_SD_TYPES_START + 13 )
#define XML_SD_TYPE_NUMBULLET						(XML_SD_TYPES_START + 14 )
#define XML_SD_TYPE_WRITINGMODE						(XML_SD_TYPES_START + 15 )
#define XML_SD_TYPE_BITMAP_MODE						(XML_SD_TYPES_START + 16 )
#define XML_SD_TYPE_BITMAPREPOFFSETX				(XML_SD_TYPES_START + 17 )
#define XML_SD_TYPE_BITMAPREPOFFSETY				(XML_SD_TYPES_START + 18 )
#define XML_SD_TYPE_FILLBITMAPSIZE					(XML_SD_TYPES_START + 19 )
#define XML_SD_TYPE_LOGICAL_SIZE					(XML_SD_TYPES_START + 20 )
#define XML_SD_TYPE_BITMAP_REFPOINT					(XML_SD_TYPES_START + 21 )
#define XML_SD_TYPE_PRESPAGE_BACKSIZE				(XML_SD_TYPES_START + 22 )
#define XML_TYPE_TEXT_ANIMATION_BLINKING			(XML_SD_TYPES_START + 23 )
#define XML_TYPE_TEXT_ANIMATION_STEPS				(XML_SD_TYPES_START + 24 )
#define XML_SD_TYPE_TEXT_ALIGN						(XML_SD_TYPES_START + 25 )
#define XML_SD_TYPE_VERTICAL_ALIGN					(XML_SD_TYPES_START + 26 )
#define XML_SD_TYPE_FITTOSIZE						(XML_SD_TYPES_START + 27 )
#define XML_SD_TYPE_MEASURE_HALIGN					(XML_SD_TYPES_START + 28 )
#define XML_SD_TYPE_MEASURE_VALIGN					(XML_SD_TYPES_START + 29 )
#define XML_SD_TYPE_MEASURE_UNIT					(XML_SD_TYPES_START + 30 )
#define XML_SD_TYPE_MEASURE_PLACING					(XML_SD_TYPES_START + 31 )
#define XML_SD_TYPE_CONTROL_BORDER					(XML_SD_TYPES_START + 32 )
#define XML_SD_TYPE_CONTROL_BORDER_COLOR            (XML_SD_TYPES_START + 33 )
#define XML_SD_TYPE_IMAGE_SCALE_MODE                (XML_SD_TYPES_START + 34 )

// 3D property types
#define XML_SD_TYPE_BACKFACE_CULLING				(XML_SD_TYPES_START + 40 )
#define XML_SD_TYPE_NORMALS_KIND					(XML_SD_TYPES_START + 41 )
#define XML_SD_TYPE_NORMALS_DIRECTION				(XML_SD_TYPES_START + 42 )
#define XML_SD_TYPE_TEX_GENERATION_MODE_X			(XML_SD_TYPES_START + 43 )
#define XML_SD_TYPE_TEX_GENERATION_MODE_Y			(XML_SD_TYPES_START + 44 )
#define XML_SD_TYPE_TEX_KIND						(XML_SD_TYPES_START + 45 )
#define XML_SD_TYPE_TEX_MODE						(XML_SD_TYPES_START + 46 )

//////////////////////////////////////////////////////////////////////////////
// #FontWork# types
#define	XML_SD_TYPE_FONTWORK_STYLE					(XML_SD_TYPES_START + 47 )
#define	XML_SD_TYPE_FONTWORK_ADJUST					(XML_SD_TYPES_START + 48 )
#define	XML_SD_TYPE_FONTWORK_SHADOW					(XML_SD_TYPES_START + 49 )
#define	XML_SD_TYPE_FONTWORK_FORM					(XML_SD_TYPES_START + 50 )

//////////////////////////////////////////////////////////////////////////////
// Caption types
#define XML_SD_TYPE_CAPTION_ANGLE_TYPE				(XML_SD_TYPES_START + 60 )
#define XML_SD_TYPE_CAPTION_IS_ESC_REL				(XML_SD_TYPES_START + 61 )
#define XML_SD_TYPE_CAPTION_ESC_REL					(XML_SD_TYPES_START + 62 )
#define XML_SD_TYPE_CAPTION_ESC_ABS					(XML_SD_TYPES_START + 63 )
#define XML_SD_TYPE_CAPTION_ESC_DIR					(XML_SD_TYPES_START + 64 )
#define XML_SD_TYPE_CAPTION_TYPE					(XML_SD_TYPES_START + 65 )

//////////////////////////////////////////////////////////////////////////////
// header & footer types
#define XML_SD_TYPE_DATETIMEUPDATE					(XML_SD_TYPES_START + 70 )
#define XML_SD_TYPE_DATETIME_FORMAT					(XML_SD_TYPES_START + 71 )

//////////////////////////////////////////////////////////////////////////////

// new types for merged style:protect attribute
#define XML_SD_TYPE_MOVE_PROTECT					(XML_SD_TYPES_START + 72 )
#define XML_SD_TYPE_SIZE_PROTECT					(XML_SD_TYPES_START + 73 )

// new type for style:mirror attribute
#define	XML_TYPE_SD_MIRROR							(XML_SD_TYPES_START + 74 )

//////////////////////////////////////////////////////////////////////////////

// new smil transition types for pages
#define XML_SD_TYPE_TRANSITION_TYPE					(XML_SD_TYPES_START + 75 )
#define XML_SD_TYPE_TRANSTIION_SUBTYPE				(XML_SD_TYPES_START + 76 )
#define XML_SD_TYPE_TRANSTIION_DIRECTION			(XML_SD_TYPES_START + 77 )

#define XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE	(XML_SD_TYPES_START + 78 )

//////////////////////////////////////////////////////////////////////////////

#define CTF_NUMBERINGRULES			1000
#define CTF_CONTROLWRITINGMODE      1001
#define CTF_WRITINGMODE				1002
#define CTF_REPEAT_OFFSET_X			1003
#define CTF_REPEAT_OFFSET_Y			1004
#define CTF_PAGE_SOUND_URL			1005
#define CTF_PAGE_VISIBLE			1006
#define CTF_PAGE_TRANS_TYPE			1007
#define CTF_PAGE_TRANS_STYLE		1008
#define CTF_PAGE_TRANS_SPEED		1009
#define CTF_PAGE_TRANS_DURATION		1010
#define CTF_PAGE_BACKSIZE			1011
#define CTF_DASHNAME				1012
#define CTF_LINESTARTNAME			1013
#define CTF_LINEENDNAME				1014
#define CTF_FILLGRADIENTNAME		1015
#define CTF_FILLHATCHNAME			1016
#define CTF_FILLBITMAPNAME			1017
#define CTF_FILLTRANSNAME			1018
#define CTF_TEXTANIMATION_BLINKING	1019
#define CTF_TEXTANIMATION_KIND		1020

#define CTF_PAGE_TRANSITION_TYPE		1021
#define CTF_PAGE_TRANSITION_SUBTYPE		1022
#define CTF_PAGE_TRANSITION_DIRECTION	1023
#define CTF_PAGE_TRANSITION_FADECOLOR	1024

//////////////////////////////////////////////////////////////////////////////
// #FontWork#
#define	CTF_FONTWORK_STYLE				1021
#define	CTF_FONTWORK_ADJUST				1022
#define	CTF_FONTWORK_DISTANCE			1023
#define	CTF_FONTWORK_START				1024
#define	CTF_FONTWORK_MIRROR				1025
#define	CTF_FONTWORK_OUTLINE			1026
#define	CTF_FONTWORK_SHADOW				1027
#define	CTF_FONTWORK_SHADOWCOLOR		1028
#define	CTF_FONTWORK_SHADOWOFFSETX		1029
#define	CTF_FONTWORK_SHADOWOFFSETY		1030
#define	CTF_FONTWORK_FORM				1031
#define	CTF_FONTWORK_HIDEFORM			1032
#define	CTF_FONTWORK_SHADOWTRANSPARENCE	1033

//////////////////////////////////////////////////////////////////////////////
// OLE part 1
#define CTF_SD_OLE_VIS_AREA_IMPORT_LEFT		1040
#define CTF_SD_OLE_VIS_AREA_IMPORT_TOP		1041
#define CTF_SD_OLE_VIS_AREA_IMPORT_WIDTH	1042
#define CTF_SD_OLE_VIS_AREA_IMPORT_HEIGHT	1043
#define CTF_SD_OLE_ISINTERNAL				1044

#define CTF_SD_MOVE_PROTECT				1045
#define CTF_SD_SIZE_PROTECT				1046

//////////////////////////////////////////////////////////////////////////////
// caption
#define CTF_CAPTION_ISESCREL			1047
#define CTF_CAPTION_ESCREL				1048
#define CTF_CAPTION_ESCABS				1049

//////////////////////////////////////////////////////////////////////////////
// header&footer
#define CTF_HEADER_VISIBLE				1050
#define	CTF_FOOTER_VISIBLE				1051
#define CTF_PAGE_NUMBER_VISIBLE			1052
#define CTF_DATE_TIME_VISIBLE			1053
#define CTF_HEADER_TEXT					1054
#define CTF_FOOTER_TEXT					1055
#define CTF_DATE_TIME_TEXT				1056
#define CTF_DATE_TIME_FORMAT			1057
#define CTF_DATE_TIME_UPDATE			1058

//////////////////////////////////////////////////////////////////////////////
// OLE part 2
#define CTF_SD_OLE_ASPECT					1059
#define CTF_SD_OLE_VIS_AREA_EXPORT_LEFT		1060
#define CTF_SD_OLE_VIS_AREA_EXPORT_TOP		1061
#define CTF_SD_OLE_VIS_AREA_EXPORT_WIDTH	1062
#define CTF_SD_OLE_VIS_AREA_EXPORT_HEIGHT	1063

//////////////////////////////////////////////////////////////////////////////
// enum maps for attributes

extern SvXMLEnumMapEntry aXML_ConnectionKind_EnumMap[];
extern SvXMLEnumMapEntry aXML_CircleKind_EnumMap[];

//////////////////////////////////////////////////////////////////////////////

/** contains the attribute to property mapping for a drawing layer table */
extern const XMLPropertyMapEntry aXMLTableShapeAttributes[];

//////////////////////////////////////////////////////////////////////////////
// factory for own graphic properties

class SvXMLExport;
class SvXMLImport;

class XMLSdPropHdlFactory : public XMLPropertyHandlerFactory
{
private:
    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > mxModel;
    SvXMLExport* mpExport;
    SvXMLImport* mpImport;

public:
    XMLSdPropHdlFactory( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >, SvXMLExport& rExport );
    XMLSdPropHdlFactory( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >, SvXMLImport& rImport );
    virtual ~XMLSdPropHdlFactory();
    virtual const XMLPropertyHandler* GetPropertyHandler( sal_Int32 nType ) const;
};

class XMLShapePropertySetMapper : public XMLPropertySetMapper
{
public:
    XMLShapePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef);
    XMLShapePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef, sal_uInt16 nOffset);
    ~XMLShapePropertySetMapper();
};

class XMLShapeExportPropertyMapper : public SvXMLExportPropertyMapper
{
private:
    XMLTextListAutoStylePool *mpListAutoPool;
    SvXMLExport& mrExport;
    SvxXMLNumRuleExport maNumRuleExp;
    sal_Bool mbIsInAutoStyles;

    const rtl::OUString msCDATA;
    const rtl::OUString msTrue;
    const rtl::OUString msFalse;

protected:
    virtual void ContextFilter(
        ::std::vector< XMLPropertyState >& rProperties,
        ::com::sun::star::uno::Reference<
            ::com::sun::star::beans::XPropertySet > rPropSet ) const;
public:
    XMLShapeExportPropertyMapper( const UniReference< XMLPropertySetMapper >& rMapper, XMLTextListAutoStylePool *pListAutoPool, SvXMLExport& rExport );
    virtual ~XMLShapeExportPropertyMapper();

    virtual void		handleElementItem(
                            SvXMLExport& rExport,
                            const XMLPropertyState& rProperty,
                            sal_uInt16 nFlags,
                            const ::std::vector< XMLPropertyState >* pProperties = 0,
                            sal_uInt32 nIdx = 0
                            ) const;

    void SetAutoStyles( sal_Bool bIsInAutoStyles ) { mbIsInAutoStyles = bIsInAutoStyles; }

    virtual void handleSpecialItem(
            SvXMLAttributeList& rAttrList,
            const XMLPropertyState& rProperty,
            const SvXMLUnitConverter& rUnitConverter,
            const SvXMLNamespaceMap& rNamespaceMap,
            const ::std::vector< XMLPropertyState > *pProperties = 0,
            sal_uInt32 nIdx = 0 ) const;
};

class XMLPagePropertySetMapper : public XMLPropertySetMapper
{
public:
    XMLPagePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef);
    ~XMLPagePropertySetMapper();
};

class XMLPageExportPropertyMapper : public SvXMLExportPropertyMapper
{
private:
    SvXMLExport& mrExport;

    const rtl::OUString msCDATA;
    const rtl::OUString msTrue;
    const rtl::OUString msFalse;

protected:
    virtual void ContextFilter(
        ::std::vector< XMLPropertyState >& rProperties,
        ::com::sun::star::uno::Reference<
            ::com::sun::star::beans::XPropertySet > rPropSet ) const;
public:
    XMLPageExportPropertyMapper( const UniReference< XMLPropertySetMapper >& rMapper, SvXMLExport& rExport );
    virtual ~XMLPageExportPropertyMapper();

    virtual void		handleElementItem(
                            SvXMLExport& rExport,
                            const XMLPropertyState& rProperty,
                            sal_uInt16 nFlags,
                            const ::std::vector< XMLPropertyState >* pProperties = 0,
                            sal_uInt32 nIdx = 0
                            ) const;
};

#endif	//  _SDPROPLS_HXX