summaryrefslogtreecommitdiff
path: root/xmloff/source/draw/sdpropls.hxx
blob: b5befc3d1161646b064a84dd98a053c0946b74dc (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
/**************************************************************
 *
 * 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
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the 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 "xmloff/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 )
#define XML_SD_TYPE_LINECAP                         (XML_SD_TYPES_START + 35 )

// 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