xref: /trunk/main/xmloff/source/draw/sdpropls.hxx (revision c0739476)
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_MEASURE_HALIGN					(XML_SD_TYPES_START + 28 )
79 #define XML_SD_TYPE_MEASURE_VALIGN					(XML_SD_TYPES_START + 29 )
80 #define XML_SD_TYPE_MEASURE_UNIT					(XML_SD_TYPES_START + 30 )
81 #define XML_SD_TYPE_MEASURE_PLACING					(XML_SD_TYPES_START + 31 )
82 #define XML_SD_TYPE_CONTROL_BORDER					(XML_SD_TYPES_START + 32 )
83 #define XML_SD_TYPE_CONTROL_BORDER_COLOR            (XML_SD_TYPES_START + 33 )
84 #define XML_SD_TYPE_IMAGE_SCALE_MODE                (XML_SD_TYPES_START + 34 )
85 #define XML_SD_TYPE_LINECAP                         (XML_SD_TYPES_START + 35 )
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