xref: /AOO41X/main/xmloff/source/draw/sdpropls.hxx (revision b2937f997bda0a05141a2d862a64f7be893955b7)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef _SDPROPLS_HXX
25 #define _SDPROPLS_HXX
26 
27 #include <com/sun/star/frame/XModel.hpp>
28 #include <xmloff/xmlnume.hxx>
29 #include <xmloff/maptype.hxx>
30 #include <xmloff/xmltypes.hxx>
31 #include <xmloff/xmlement.hxx>
32 #include <xmloff/prhdlfac.hxx>
33 #include <xmloff/xmlprmap.hxx>
34 #include "xmloff/XMLTextListAutoStylePool.hxx"
35 #include <xmloff/xmlexppr.hxx>
36 
37 //////////////////////////////////////////////////////////////////////////////
38 // entry list for graphic properties
39 
40 extern const XMLPropertyMapEntry aXMLSDProperties[];
41 
42 //////////////////////////////////////////////////////////////////////////////
43 // entry list for presentation page properties
44 
45 extern const XMLPropertyMapEntry aXMLSDPresPageProps[];
46 extern const XMLPropertyMapEntry aXMLSDPresPageProps_onlyHeadersFooter[];
47 
48 //////////////////////////////////////////////////////////////////////////////
49 // types of own properties
50 
51 #define XML_SD_TYPE_STROKE                          (XML_SD_TYPES_START +  0)
52 #define XML_SD_TYPE_PRESPAGE_TYPE                   (XML_SD_TYPES_START +  1)
53 #define XML_SD_TYPE_PRESPAGE_STYLE                  (XML_SD_TYPES_START +  2)
54 #define XML_SD_TYPE_PRESPAGE_SPEED                  (XML_SD_TYPES_START +  3)
55 #define XML_SD_TYPE_PRESPAGE_DURATION               (XML_SD_TYPES_START +  4)
56 #define XML_SD_TYPE_PRESPAGE_VISIBILITY             (XML_SD_TYPES_START +  5)
57 #define XML_SD_TYPE_MARKER                          (XML_SD_TYPES_START +  6 )
58 #define XML_SD_TYPE_OPACITY                         (XML_SD_TYPES_START +  7 )
59 #define XML_SD_TYPE_LINEJOIN                        (XML_SD_TYPES_START +  8 )
60 #define XML_SD_TYPE_FILLSTYLE                       (XML_SD_TYPES_START +  9 )
61 #define XML_SD_TYPE_GRADIENT                        (XML_SD_TYPES_START + 10 )
62 #define XML_SD_TYPE_GRADIENT_STEPCOUNT              (XML_SD_TYPES_START + 11 )
63 #define XML_SD_TYPE_SHADOW                          (XML_SD_TYPES_START + 12 )
64 #define XML_SD_TYPE_TEXT_CROSSEDOUT                 (XML_SD_TYPES_START + 13 )
65 #define XML_SD_TYPE_NUMBULLET                       (XML_SD_TYPES_START + 14 )
66 #define XML_SD_TYPE_WRITINGMODE                     (XML_SD_TYPES_START + 15 )
67 #define XML_SD_TYPE_BITMAP_MODE                     (XML_SD_TYPES_START + 16 )
68 #define XML_SD_TYPE_BITMAPREPOFFSETX                (XML_SD_TYPES_START + 17 )
69 #define XML_SD_TYPE_BITMAPREPOFFSETY                (XML_SD_TYPES_START + 18 )
70 #define XML_SD_TYPE_FILLBITMAPSIZE                  (XML_SD_TYPES_START + 19 )
71 #define XML_SD_TYPE_LOGICAL_SIZE                    (XML_SD_TYPES_START + 20 )
72 #define XML_SD_TYPE_BITMAP_REFPOINT                 (XML_SD_TYPES_START + 21 )
73 #define XML_SD_TYPE_PRESPAGE_BACKSIZE               (XML_SD_TYPES_START + 22 )
74 #define XML_TYPE_TEXT_ANIMATION_BLINKING            (XML_SD_TYPES_START + 23 )
75 #define XML_TYPE_TEXT_ANIMATION_STEPS               (XML_SD_TYPES_START + 24 )
76 #define XML_SD_TYPE_TEXT_ALIGN                      (XML_SD_TYPES_START + 25 )
77 #define XML_SD_TYPE_VERTICAL_ALIGN                  (XML_SD_TYPES_START + 26 )
78 #define XML_SD_TYPE_FITTOSIZE                       (XML_SD_TYPES_START + 27 )
79 #define XML_SD_TYPE_MEASURE_HALIGN                  (XML_SD_TYPES_START + 28 )
80 #define XML_SD_TYPE_MEASURE_VALIGN                  (XML_SD_TYPES_START + 29 )
81 #define XML_SD_TYPE_MEASURE_UNIT                    (XML_SD_TYPES_START + 30 )
82 #define XML_SD_TYPE_MEASURE_PLACING                 (XML_SD_TYPES_START + 31 )
83 #define XML_SD_TYPE_CONTROL_BORDER                  (XML_SD_TYPES_START + 32 )
84 #define XML_SD_TYPE_CONTROL_BORDER_COLOR            (XML_SD_TYPES_START + 33 )
85 #define XML_SD_TYPE_IMAGE_SCALE_MODE                (XML_SD_TYPES_START + 34 )
86 
87 // 3D property types
88 #define XML_SD_TYPE_BACKFACE_CULLING                (XML_SD_TYPES_START + 40 )
89 #define XML_SD_TYPE_NORMALS_KIND                    (XML_SD_TYPES_START + 41 )
90 #define XML_SD_TYPE_NORMALS_DIRECTION               (XML_SD_TYPES_START + 42 )
91 #define XML_SD_TYPE_TEX_GENERATION_MODE_X           (XML_SD_TYPES_START + 43 )
92 #define XML_SD_TYPE_TEX_GENERATION_MODE_Y           (XML_SD_TYPES_START + 44 )
93 #define XML_SD_TYPE_TEX_KIND                        (XML_SD_TYPES_START + 45 )
94 #define XML_SD_TYPE_TEX_MODE                        (XML_SD_TYPES_START + 46 )
95 
96 //////////////////////////////////////////////////////////////////////////////
97 // #FontWork# types
98 #define XML_SD_TYPE_FONTWORK_STYLE                  (XML_SD_TYPES_START + 47 )
99 #define XML_SD_TYPE_FONTWORK_ADJUST                 (XML_SD_TYPES_START + 48 )
100 #define XML_SD_TYPE_FONTWORK_SHADOW                 (XML_SD_TYPES_START + 49 )
101 #define XML_SD_TYPE_FONTWORK_FORM                   (XML_SD_TYPES_START + 50 )
102 
103 //////////////////////////////////////////////////////////////////////////////
104 // Caption types
105 #define XML_SD_TYPE_CAPTION_ANGLE_TYPE              (XML_SD_TYPES_START + 60 )
106 #define XML_SD_TYPE_CAPTION_IS_ESC_REL              (XML_SD_TYPES_START + 61 )
107 #define XML_SD_TYPE_CAPTION_ESC_REL                 (XML_SD_TYPES_START + 62 )
108 #define XML_SD_TYPE_CAPTION_ESC_ABS                 (XML_SD_TYPES_START + 63 )
109 #define XML_SD_TYPE_CAPTION_ESC_DIR                 (XML_SD_TYPES_START + 64 )
110 #define XML_SD_TYPE_CAPTION_TYPE                    (XML_SD_TYPES_START + 65 )
111 
112 //////////////////////////////////////////////////////////////////////////////
113 // header & footer types
114 #define XML_SD_TYPE_DATETIMEUPDATE                  (XML_SD_TYPES_START + 70 )
115 #define XML_SD_TYPE_DATETIME_FORMAT                 (XML_SD_TYPES_START + 71 )
116 
117 //////////////////////////////////////////////////////////////////////////////
118 
119 // new types for merged style:protect attribute
120 #define XML_SD_TYPE_MOVE_PROTECT                    (XML_SD_TYPES_START + 72 )
121 #define XML_SD_TYPE_SIZE_PROTECT                    (XML_SD_TYPES_START + 73 )
122 
123 // new type for style:mirror attribute
124 #define XML_TYPE_SD_MIRROR                          (XML_SD_TYPES_START + 74 )
125 
126 //////////////////////////////////////////////////////////////////////////////
127 
128 // new smil transition types for pages
129 #define XML_SD_TYPE_TRANSITION_TYPE                 (XML_SD_TYPES_START + 75 )
130 #define XML_SD_TYPE_TRANSTIION_SUBTYPE              (XML_SD_TYPES_START + 76 )
131 #define XML_SD_TYPE_TRANSTIION_DIRECTION            (XML_SD_TYPES_START + 77 )
132 
133 #define XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE   (XML_SD_TYPES_START + 78 )
134 
135 //////////////////////////////////////////////////////////////////////////////
136 
137 #define CTF_NUMBERINGRULES          1000
138 #define CTF_CONTROLWRITINGMODE      1001
139 #define CTF_WRITINGMODE             1002
140 #define CTF_REPEAT_OFFSET_X         1003
141 #define CTF_REPEAT_OFFSET_Y         1004
142 #define CTF_PAGE_SOUND_URL          1005
143 #define CTF_PAGE_VISIBLE            1006
144 #define CTF_PAGE_TRANS_TYPE         1007
145 #define CTF_PAGE_TRANS_STYLE        1008
146 #define CTF_PAGE_TRANS_SPEED        1009
147 #define CTF_PAGE_TRANS_DURATION     1010
148 #define CTF_PAGE_BACKSIZE           1011
149 #define CTF_DASHNAME                1012
150 #define CTF_LINESTARTNAME           1013
151 #define CTF_LINEENDNAME             1014
152 #define CTF_FILLGRADIENTNAME        1015
153 #define CTF_FILLHATCHNAME           1016
154 #define CTF_FILLBITMAPNAME          1017
155 #define CTF_FILLTRANSNAME           1018
156 #define CTF_TEXTANIMATION_BLINKING  1019
157 #define CTF_TEXTANIMATION_KIND      1020
158 
159 #define CTF_PAGE_TRANSITION_TYPE        1021
160 #define CTF_PAGE_TRANSITION_SUBTYPE     1022
161 #define CTF_PAGE_TRANSITION_DIRECTION   1023
162 #define CTF_PAGE_TRANSITION_FADECOLOR   1024
163 
164 //////////////////////////////////////////////////////////////////////////////
165 // #FontWork#
166 #define CTF_FONTWORK_STYLE              1021
167 #define CTF_FONTWORK_ADJUST             1022
168 #define CTF_FONTWORK_DISTANCE           1023
169 #define CTF_FONTWORK_START              1024
170 #define CTF_FONTWORK_MIRROR             1025
171 #define CTF_FONTWORK_OUTLINE            1026
172 #define CTF_FONTWORK_SHADOW             1027
173 #define CTF_FONTWORK_SHADOWCOLOR        1028
174 #define CTF_FONTWORK_SHADOWOFFSETX      1029
175 #define CTF_FONTWORK_SHADOWOFFSETY      1030
176 #define CTF_FONTWORK_FORM               1031
177 #define CTF_FONTWORK_HIDEFORM           1032
178 #define CTF_FONTWORK_SHADOWTRANSPARENCE 1033
179 
180 //////////////////////////////////////////////////////////////////////////////
181 // OLE part 1
182 #define CTF_SD_OLE_VIS_AREA_IMPORT_LEFT     1040
183 #define CTF_SD_OLE_VIS_AREA_IMPORT_TOP      1041
184 #define CTF_SD_OLE_VIS_AREA_IMPORT_WIDTH    1042
185 #define CTF_SD_OLE_VIS_AREA_IMPORT_HEIGHT   1043
186 #define CTF_SD_OLE_ISINTERNAL               1044
187 
188 #define CTF_SD_MOVE_PROTECT             1045
189 #define CTF_SD_SIZE_PROTECT             1046
190 
191 //////////////////////////////////////////////////////////////////////////////
192 // caption
193 #define CTF_CAPTION_ISESCREL            1047
194 #define CTF_CAPTION_ESCREL              1048
195 #define CTF_CAPTION_ESCABS              1049
196 
197 //////////////////////////////////////////////////////////////////////////////
198 // header&footer
199 #define CTF_HEADER_VISIBLE              1050
200 #define CTF_FOOTER_VISIBLE              1051
201 #define CTF_PAGE_NUMBER_VISIBLE         1052
202 #define CTF_DATE_TIME_VISIBLE           1053
203 #define CTF_HEADER_TEXT                 1054
204 #define CTF_FOOTER_TEXT                 1055
205 #define CTF_DATE_TIME_TEXT              1056
206 #define CTF_DATE_TIME_FORMAT            1057
207 #define CTF_DATE_TIME_UPDATE            1058
208 
209 //////////////////////////////////////////////////////////////////////////////
210 // OLE part 2
211 #define CTF_SD_OLE_ASPECT                   1059
212 #define CTF_SD_OLE_VIS_AREA_EXPORT_LEFT     1060
213 #define CTF_SD_OLE_VIS_AREA_EXPORT_TOP      1061
214 #define CTF_SD_OLE_VIS_AREA_EXPORT_WIDTH    1062
215 #define CTF_SD_OLE_VIS_AREA_EXPORT_HEIGHT   1063
216 
217 //////////////////////////////////////////////////////////////////////////////
218 // enum maps for attributes
219 
220 extern SvXMLEnumMapEntry aXML_ConnectionKind_EnumMap[];
221 extern SvXMLEnumMapEntry aXML_CircleKind_EnumMap[];
222 
223 //////////////////////////////////////////////////////////////////////////////
224 
225 /** contains the attribute to property mapping for a drawing layer table */
226 extern const XMLPropertyMapEntry aXMLTableShapeAttributes[];
227 
228 //////////////////////////////////////////////////////////////////////////////
229 // factory for own graphic properties
230 
231 class SvXMLExport;
232 class SvXMLImport;
233 
234 class XMLSdPropHdlFactory : public XMLPropertyHandlerFactory
235 {
236 private:
237     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > mxModel;
238     SvXMLExport* mpExport;
239     SvXMLImport* mpImport;
240 
241 public:
242     XMLSdPropHdlFactory( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >, SvXMLExport& rExport );
243     XMLSdPropHdlFactory( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >, SvXMLImport& rImport );
244     virtual ~XMLSdPropHdlFactory();
245     virtual const XMLPropertyHandler* GetPropertyHandler( sal_Int32 nType ) const;
246 };
247 
248 class XMLShapePropertySetMapper : public XMLPropertySetMapper
249 {
250 public:
251     XMLShapePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef);
252     XMLShapePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef, sal_uInt16 nOffset);
253     ~XMLShapePropertySetMapper();
254 };
255 
256 class XMLShapeExportPropertyMapper : public SvXMLExportPropertyMapper
257 {
258 private:
259     XMLTextListAutoStylePool *mpListAutoPool;
260     SvXMLExport& mrExport;
261     SvxXMLNumRuleExport maNumRuleExp;
262     sal_Bool mbIsInAutoStyles;
263 
264     const rtl::OUString msCDATA;
265     const rtl::OUString msTrue;
266     const rtl::OUString msFalse;
267 
268 protected:
269     virtual void ContextFilter(
270         ::std::vector< XMLPropertyState >& rProperties,
271         ::com::sun::star::uno::Reference<
272             ::com::sun::star::beans::XPropertySet > rPropSet ) const;
273 public:
274     XMLShapeExportPropertyMapper( const UniReference< XMLPropertySetMapper >& rMapper, XMLTextListAutoStylePool *pListAutoPool, SvXMLExport& rExport );
275     virtual ~XMLShapeExportPropertyMapper();
276 
277     virtual void        handleElementItem(
278                             SvXMLExport& rExport,
279                             const XMLPropertyState& rProperty,
280                             sal_uInt16 nFlags,
281                             const ::std::vector< XMLPropertyState >* pProperties = 0,
282                             sal_uInt32 nIdx = 0
283                             ) const;
284 
285     void SetAutoStyles( sal_Bool bIsInAutoStyles ) { mbIsInAutoStyles = bIsInAutoStyles; }
286 
287     virtual void handleSpecialItem(
288             SvXMLAttributeList& rAttrList,
289             const XMLPropertyState& rProperty,
290             const SvXMLUnitConverter& rUnitConverter,
291             const SvXMLNamespaceMap& rNamespaceMap,
292             const ::std::vector< XMLPropertyState > *pProperties = 0,
293             sal_uInt32 nIdx = 0 ) const;
294 };
295 
296 class XMLPagePropertySetMapper : public XMLPropertySetMapper
297 {
298 public:
299     XMLPagePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef);
300     ~XMLPagePropertySetMapper();
301 };
302 
303 class XMLPageExportPropertyMapper : public SvXMLExportPropertyMapper
304 {
305 private:
306     SvXMLExport& mrExport;
307 
308     const rtl::OUString msCDATA;
309     const rtl::OUString msTrue;
310     const rtl::OUString msFalse;
311 
312 protected:
313     virtual void ContextFilter(
314         ::std::vector< XMLPropertyState >& rProperties,
315         ::com::sun::star::uno::Reference<
316             ::com::sun::star::beans::XPropertySet > rPropSet ) const;
317 public:
318     XMLPageExportPropertyMapper( const UniReference< XMLPropertySetMapper >& rMapper, SvXMLExport& rExport );
319     virtual ~XMLPageExportPropertyMapper();
320 
321     virtual void        handleElementItem(
322                             SvXMLExport& rExport,
323                             const XMLPropertyState& rProperty,
324                             sal_uInt16 nFlags,
325                             const ::std::vector< XMLPropertyState >* pProperties = 0,
326                             sal_uInt32 nIdx = 0
327                             ) const;
328 };
329 
330 #endif  //  _SDPROPLS_HXX
331