xref: /aoo42x/main/svx/source/unodraw/unoprov.cxx (revision a5258243)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_svx.hxx"
30 
31 #define _SVX_USE_UNOGLOBALS_
32 
33 #include <com/sun/star/table/XTable.hpp>
34 #include <com/sun/star/container/XIndexAccess.hpp>
35 #include <com/sun/star/frame/XModel.hpp>
36 #include <com/sun/star/embed/XEmbeddedObject.hpp>
37 #include <com/sun/star/util/MeasureUnit.hpp>
38 #include <com/sun/star/drawing/TextVerticalAdjust.hpp>
39 #include <com/sun/star/media/ZoomLevel.hpp>
40 #include <com/sun/star/io/XInputStream.hpp>
41 #include <com/sun/star/beans/PropertyAttribute.hpp>
42 #include <tools/fldunit.hxx>
43 #include <tools/shl.hxx>
44 #include <vos/mutex.hxx>
45 #include <vcl/svapp.hxx>
46 #include <comphelper/propertysetinfo.hxx>
47 #include <svx/dialmgr.hxx>
48 #include "svx/unoapi.hxx"
49 #include <editeng/unotext.hxx>
50 #include <svx/unoshprp.hxx>
51 #include <editeng/editeng.hxx>
52 #include "svx/globl3d.hxx"
53 #include <svx/dialogs.hrc>
54 #include <svx/svdpool.hxx>
55 #include <svx/svdobj.hxx>
56 
57 using namespace ::rtl;
58 using namespace ::com::sun::star;
59 using namespace ::com::sun::star::beans::PropertyAttribute;
60 using ::com::sun::star::drawing::TextVerticalAdjust;
61 
62 SfxItemPropertyMapEntry* ImplGetSvxShapePropertyMap()
63 {
64     static SfxItemPropertyMapEntry aShapePropertyMap_Impl[] =
65 	{
66 		EDGERADIUS_PROPERTIES
67 		FILL_PROPERTIES
68 		LINE_PROPERTIES
69 		LINE_PROPERTIES_START_END
70 		SHAPE_DESCRIPTOR_PROPERTIES
71 		MISC_OBJ_PROPERTIES
72 		LINKTARGET_PROPERTIES
73 		SHADOW_PROPERTIES
74 		TEXT_PROPERTIES
75 		// #FontWork#
76 		FONTWORK_PROPERTIES
77 		CUSTOMSHAPE_PROPERTIES
78 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
79 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
80 		{0,0,0,0,0,0}
81 
82 	};
83 
84 	return aShapePropertyMap_Impl;
85 }
86 
87 SfxItemPropertyMapEntry* ImplGetSvxTextShapePropertyMap()
88 {
89     static SfxItemPropertyMapEntry aTextShapePropertyMap_Impl[] =
90 	{
91 		EDGERADIUS_PROPERTIES
92 		FILL_PROPERTIES
93 		LINE_PROPERTIES
94 		LINE_PROPERTIES_START_END
95 		SHAPE_DESCRIPTOR_PROPERTIES
96 		MISC_OBJ_PROPERTIES_NO_SHEAR
97 		LINKTARGET_PROPERTIES
98 		SHADOW_PROPERTIES
99 		TEXT_PROPERTIES
100 		// #FontWork#
101 		FONTWORK_PROPERTIES
102 		CUSTOMSHAPE_PROPERTIES
103 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
104 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
105 		{0,0,0,0,0,0}
106 
107 	};
108 
109 	return aTextShapePropertyMap_Impl;
110 }
111 
112 SfxItemPropertyMapEntry* ImplGetSvxConnectorPropertyMap()
113 {
114     static SfxItemPropertyMapEntry aConnectorPropertyMap_Impl[] =
115 	{
116 		SPECIAL_CONNECTOR_PROPERTIES
117 		EDGERADIUS_PROPERTIES
118 		FILL_PROPERTIES
119 		LINE_PROPERTIES
120 		LINE_PROPERTIES_START_END
121 		SHAPE_DESCRIPTOR_PROPERTIES
122 		MISC_OBJ_PROPERTIES
123 		LINKTARGET_PROPERTIES
124 		SHADOW_PROPERTIES
125 		TEXT_PROPERTIES
126 		// #FontWork#
127 		FONTWORK_PROPERTIES
128 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
129 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
130 		{0,0,0,0,0,0}
131 
132 	};
133 
134 	return aConnectorPropertyMap_Impl;
135 }
136 
137 SfxItemPropertyMapEntry* ImplGetSvxDimensioningPropertyMap()
138 {
139     static SfxItemPropertyMapEntry aDimensioningPropertyMap_Impl[] =
140 	{
141 		SPECIAL_DIMENSIONING_PROPERTIES
142 		EDGERADIUS_PROPERTIES
143 		FILL_PROPERTIES
144 		LINE_PROPERTIES
145 		LINE_PROPERTIES_START_END
146 		SHAPE_DESCRIPTOR_PROPERTIES
147 		MISC_OBJ_PROPERTIES
148 		LINKTARGET_PROPERTIES
149 		SHADOW_PROPERTIES
150 		TEXT_PROPERTIES
151 		// #FontWork#
152 		FONTWORK_PROPERTIES
153 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
154 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
155 		{0,0,0,0,0,0}
156 
157 	};
158 
159 	return aDimensioningPropertyMap_Impl;
160 }
161 
162 SfxItemPropertyMapEntry* ImplGetSvxCirclePropertyMap()
163 {
164     static SfxItemPropertyMapEntry aCirclePropertyMap_Impl[] =
165 	{
166 		SPECIAL_CIRCLE_PROPERTIES
167 		EDGERADIUS_PROPERTIES
168 		FILL_PROPERTIES
169 		LINE_PROPERTIES
170 		LINE_PROPERTIES_START_END
171 		SHAPE_DESCRIPTOR_PROPERTIES
172 		MISC_OBJ_PROPERTIES
173 		LINKTARGET_PROPERTIES
174 		SHADOW_PROPERTIES
175 		TEXT_PROPERTIES
176 		// #FontWork#
177 		FONTWORK_PROPERTIES
178 		CUSTOMSHAPE_PROPERTIES
179 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
180 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
181 		{0,0,0,0,0,0}
182 
183 	};
184 
185 	return aCirclePropertyMap_Impl;
186 }
187 
188 SfxItemPropertyMapEntry* ImplGetSvxPolyPolygonPropertyMap()
189 {
190     static SfxItemPropertyMapEntry aPolyPolygonPropertyMap_Impl[] =
191 	{
192 		{ MAP_CHAR_LEN("Geometry"),	OWN_ATTR_BASE_GEOMETRY,	SEQTYPE(::getCppuType((const ::com::sun::star::drawing::PointSequenceSequence*)0)),	0, 0 },
193 		SPECIAL_POLYGON_PROPERTIES
194 		SPECIAL_POLYPOLYGON_PROPERTIES
195 		FILL_PROPERTIES
196 		LINE_PROPERTIES
197 		LINE_PROPERTIES_START_END
198 		SHAPE_DESCRIPTOR_PROPERTIES
199 		MISC_OBJ_PROPERTIES
200 		LINKTARGET_PROPERTIES
201 		SHADOW_PROPERTIES
202 		TEXT_PROPERTIES
203 		// #FontWork#
204 		FONTWORK_PROPERTIES
205 		CUSTOMSHAPE_PROPERTIES
206 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
207 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
208 		{0,0,0,0,0,0}
209 
210 	};
211 
212 	return aPolyPolygonPropertyMap_Impl;
213 }
214 
215 SfxItemPropertyMapEntry* ImplGetSvxPolyPolygonBezierPropertyMap()
216 {
217     static SfxItemPropertyMapEntry aPolyPolygonBezierPropertyMap_Impl[] =
218 	{
219 		{ MAP_CHAR_LEN("Geometry"),	OWN_ATTR_BASE_GEOMETRY,	&::getCppuType((const ::com::sun::star::drawing::PolyPolygonBezierCoords*)0), 0, 0 },
220 		SPECIAL_POLYGON_PROPERTIES
221 		SPECIAL_POLYPOLYGONBEZIER_PROPERTIES
222 		FILL_PROPERTIES
223 		LINE_PROPERTIES
224 		LINE_PROPERTIES_START_END
225 		SHAPE_DESCRIPTOR_PROPERTIES
226 		MISC_OBJ_PROPERTIES
227 		LINKTARGET_PROPERTIES
228 		SHADOW_PROPERTIES
229 		TEXT_PROPERTIES
230 		// #FontWork#
231 		FONTWORK_PROPERTIES
232 		CUSTOMSHAPE_PROPERTIES
233 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
234 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
235 		{0,0,0,0,0,0}
236 
237 	};
238 
239 	return aPolyPolygonBezierPropertyMap_Impl;
240 }
241 
242 SfxItemPropertyMapEntry* ImplGetSvxGraphicObjectPropertyMap()
243 {
244     static SfxItemPropertyMapEntry aGraphicObjectPropertyMap_Impl[] =
245 	{
246 		SPECIAL_GRAPHOBJ_PROPERTIES
247 
248 		// #i25616#
249 		FILL_PROPERTIES
250 
251 		LINE_PROPERTIES
252 		LINE_PROPERTIES_START_END
253 		SHAPE_DESCRIPTOR_PROPERTIES
254 
255         // #i118485# Full properties now, shear included
256 		MISC_OBJ_PROPERTIES
257 
258         LINKTARGET_PROPERTIES
259 		SHADOW_PROPERTIES
260 		TEXT_PROPERTIES
261 		// #FontWork#
262 		FONTWORK_PROPERTIES
263 		{ MAP_CHAR_LEN("IsMirrored"),				OWN_ATTR_MIRRORED			, &::getCppuBooleanType(), 0, 0},
264 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
265 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
266 		{MAP_CHAR_LEN("GraphicStream"),	OWN_ATTR_GRAPHIC_STREAM, &::com::sun::star::io::XInputStream::static_type(), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
267 		{0,0,0,0,0,0}
268 
269 	};
270 
271 	return aGraphicObjectPropertyMap_Impl;
272 }
273 
274 SfxItemPropertyMapEntry* ImplGetSvx3DSceneObjectPropertyMap()
275 {
276     static SfxItemPropertyMapEntry a3DSceneObjectPropertyMap_Impl[] =
277 	{
278 		SPECIAL_3DSCENEOBJECT_PROPERTIES
279 		FILL_PROPERTIES
280 		LINE_PROPERTIES
281 		LINE_PROPERTIES_START_END
282 		SHAPE_DESCRIPTOR_PROPERTIES
283 		MISC_OBJ_PROPERTIES
284 		LINKTARGET_PROPERTIES
285 		SHADOW_PROPERTIES
286 		{0,0,0,0,0,0}
287 
288 	};
289 
290 	return a3DSceneObjectPropertyMap_Impl;
291 }
292 
293 SfxItemPropertyMapEntry* ImplGetSvx3DCubeObjectPropertyMap()
294 {
295     static SfxItemPropertyMapEntry a3DCubeObjectPropertyMap_Impl[] =
296 	{
297 		SPECIAL_3DCUBEOBJECT_PROPERTIES
298 		MISC_3D_OBJ_PROPERTIES
299 		FILL_PROPERTIES
300 		LINE_PROPERTIES
301 		LINE_PROPERTIES_START_END
302 		SHAPE_DESCRIPTOR_PROPERTIES
303 		MISC_OBJ_PROPERTIES
304 		LINKTARGET_PROPERTIES
305 		SHADOW_PROPERTIES
306 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
307 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
308 		{0,0,0,0,0,0}
309 
310 	};
311 
312 	return a3DCubeObjectPropertyMap_Impl;
313 }
314 
315 SfxItemPropertyMapEntry* ImplGetSvx3DSphereObjectPropertyMap()
316 {
317     static SfxItemPropertyMapEntry a3DSphereObjectPropertyMap_Impl[] =
318 	{
319 		SPECIAL_3DSPHEREOBJECT_PROPERTIES
320 		MISC_3D_OBJ_PROPERTIES
321 		FILL_PROPERTIES
322 		LINE_PROPERTIES
323 		LINE_PROPERTIES_START_END
324 		SHAPE_DESCRIPTOR_PROPERTIES
325 		MISC_OBJ_PROPERTIES
326 		LINKTARGET_PROPERTIES
327 		SHADOW_PROPERTIES
328 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
329 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
330 		{0,0,0,0,0,0}
331 
332 	};
333 	return a3DSphereObjectPropertyMap_Impl;
334 }
335 
336 SfxItemPropertyMapEntry* ImplGetSvx3DLatheObjectPropertyMap()
337 {
338     static SfxItemPropertyMapEntry a3DLatheObjectPropertyMap_Impl[] =
339 	{
340 		SPECIAL_3DLATHEOBJECT_PROPERTIES
341 
342 		// #107245# New 3D properties which are possible for lathe and extrude 3d objects
343 		SPECIAL_3DLATHEANDEXTRUDEOBJ_PROPERTIES
344 
345 		SPECIAL_3DBACKSCALE_PROPERTIES
346 		MISC_3D_OBJ_PROPERTIES
347 		FILL_PROPERTIES
348 		LINE_PROPERTIES
349 		LINE_PROPERTIES_START_END
350 		SHAPE_DESCRIPTOR_PROPERTIES
351 		MISC_OBJ_PROPERTIES
352 		LINKTARGET_PROPERTIES
353 		SHADOW_PROPERTIES
354 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
355 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
356 		{0,0,0,0,0,0}
357 
358 	};
359 
360 	return a3DLatheObjectPropertyMap_Impl;
361 }
362 
363 SfxItemPropertyMapEntry* ImplGetSvx3DExtrudeObjectPropertyMap()
364 {
365     static SfxItemPropertyMapEntry a3DExtrudeObjectPropertyMap_Impl[] =
366 	{
367 		SPECIAL_3DEXTRUDEOBJECT_PROPERTIES
368 
369 		// #107245# New 3D properties which are possible for lathe and extrude 3d objects
370 		SPECIAL_3DLATHEANDEXTRUDEOBJ_PROPERTIES
371 
372 		SPECIAL_3DBACKSCALE_PROPERTIES
373 		MISC_3D_OBJ_PROPERTIES
374 		FILL_PROPERTIES
375 		LINE_PROPERTIES
376 		LINE_PROPERTIES_START_END
377 		SHAPE_DESCRIPTOR_PROPERTIES
378 		MISC_OBJ_PROPERTIES
379 		LINKTARGET_PROPERTIES
380 		SHADOW_PROPERTIES
381 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
382 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
383 		{0,0,0,0,0,0}
384 
385 	};
386 
387 	return a3DExtrudeObjectPropertyMap_Impl;
388 }
389 
390 SfxItemPropertyMapEntry* ImplGetSvx3DPolygonObjectPropertyMap()
391 {
392     static SfxItemPropertyMapEntry a3DPolygonObjectPropertyMap_Impl[] =
393 	{
394 		SPECIAL_3DPOLYGONOBJECT_PROPERTIES
395 		MISC_3D_OBJ_PROPERTIES
396 		FILL_PROPERTIES
397 		LINE_PROPERTIES
398 		LINE_PROPERTIES_START_END
399 		SHAPE_DESCRIPTOR_PROPERTIES
400 		MISC_OBJ_PROPERTIES
401 		LINKTARGET_PROPERTIES
402 		SHADOW_PROPERTIES
403 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
404 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
405 		{0,0,0,0,0,0}
406 
407 	};
408 
409 	return a3DPolygonObjectPropertyMap_Impl;
410 }
411 
412 SfxItemPropertyMapEntry* ImplGetSvxAllPropertyMap()
413 {
414     static SfxItemPropertyMapEntry aAllPropertyMap_Impl[] =
415 	{
416 		SHADOW_PROPERTIES
417 		LINE_PROPERTIES
418 		LINE_PROPERTIES_START_END
419 		FILL_PROPERTIES
420 		EDGERADIUS_PROPERTIES
421 		TEXT_PROPERTIES
422 		// #FontWork#
423 		FONTWORK_PROPERTIES
424 		SHAPE_DESCRIPTOR_PROPERTIES
425 		MISC_OBJ_PROPERTIES
426 		LINKTARGET_PROPERTIES
427 		SPECIAL_CONNECTOR_PROPERTIES
428 		SPECIAL_DIMENSIONING_PROPERTIES
429 		SPECIAL_CIRCLE_PROPERTIES
430 		SPECIAL_POLYGON_PROPERTIES
431 		SPECIAL_POLYPOLYGON_PROPERTIES
432 		SPECIAL_POLYPOLYGONBEZIER_PROPERTIES
433 		SPECIAL_GRAPHOBJ_PROPERTIES
434 		SPECIAL_3DSCENEOBJECT_PROPERTIES
435 		MISC_3D_OBJ_PROPERTIES
436 		SPECIAL_3DCUBEOBJECT_PROPERTIES
437 		SPECIAL_3DSPHEREOBJECT_PROPERTIES
438 		SPECIAL_3DLATHEOBJECT_PROPERTIES
439 		SPECIAL_3DEXTRUDEOBJECT_PROPERTIES
440 
441 		// #107245# New 3D properties which are possible for lathe and extrude 3d objects
442 		SPECIAL_3DLATHEANDEXTRUDEOBJ_PROPERTIES
443 
444 		SPECIAL_3DBACKSCALE_PROPERTIES
445 		SPECIAL_3DPOLYGONOBJECT_PROPERTIES
446 		CUSTOMSHAPE_PROPERTIES
447 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
448 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
449 		{0,0,0,0,0,0}
450 
451 	};
452 
453 	return aAllPropertyMap_Impl;
454 }
455 
456 SfxItemPropertyMapEntry* ImplGetSvxGroupPropertyMap()
457 {
458     static SfxItemPropertyMapEntry aGroupPropertyMap_Impl[] =
459 	{
460 		SHAPE_DESCRIPTOR_PROPERTIES
461 		MISC_OBJ_PROPERTIES
462 		LINKTARGET_PROPERTIES
463 		{0,0,0,0,0,0}
464 
465 	};
466 
467 	return aGroupPropertyMap_Impl;
468 }
469 
470 SfxItemPropertyMapEntry* ImplGetSvxOle2PropertyMap()
471 {
472     static SfxItemPropertyMapEntry aOle2PropertyMap_Impl[] =
473 	{
474         // #i118485# Adding properties for line, fill, text, shadow, fontwork, rotate, shear
475 		FILL_PROPERTIES
476 		LINE_PROPERTIES
477 		LINE_PROPERTIES_START_END
478         SHAPE_DESCRIPTOR_PROPERTIES
479         MISC_OBJ_PROPERTIES
480         LINKTARGET_PROPERTIES
481         SHADOW_PROPERTIES
482         TEXT_PROPERTIES
483 		FONTWORK_PROPERTIES
484 
485 		{ MAP_CHAR_LEN("ThumbnailGraphicURL"),		OWN_ATTR_THUMBNAIL			, &::getCppuType(( const ::rtl::OUString*)0), 0, 0 },
486 		{ MAP_CHAR_LEN("Model"),					OWN_ATTR_OLEMODEL			, &::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
487 		{ MAP_CHAR_LEN("EmbeddedObject"),			OWN_ATTR_OLE_EMBEDDED_OBJECT	, &::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedObject >*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
488 		{ MAP_CHAR_LEN("EmbeddedObjectNoNewClient"),OWN_ATTR_OLE_EMBEDDED_OBJECT_NONEWCLIENT, &::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XEmbeddedObject >*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
489 		{ MAP_CHAR_LEN("OriginalSize"),				OWN_ATTR_OLESIZE			, &::getCppuType(( const ::com::sun::star::awt::Size*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
490 		{ MAP_CHAR_LEN("CLSID"),					OWN_ATTR_CLSID				, &::getCppuType(( const ::rtl::OUString*)0), 0, 0 },
491 		{ MAP_CHAR_LEN("IsInternal"),				OWN_ATTR_INTERNAL_OLE		, &::getBooleanCppuType() , ::com::sun::star::beans::PropertyAttribute::READONLY,     0},
492 		{ MAP_CHAR_LEN("VisibleArea"),				OWN_ATTR_OLE_VISAREA		, &::getCppuType((const ::com::sun::star::awt::Rectangle*)0), 0, 0},
493 		{ MAP_CHAR_LEN("Aspect"),					OWN_ATTR_OLE_ASPECT			, &::getCppuType((const sal_Int64*)0), 0, 0},
494 		{ MAP_CHAR_LEN(UNO_NAME_OLE2_PERSISTNAME),	OWN_ATTR_PERSISTNAME		, &::getCppuType(( const ::rtl::OUString*)0), 0, 0 },
495 		{ MAP_CHAR_LEN("LinkURL"),					OWN_ATTR_OLE_LINKURL		, &::getCppuType(( const ::rtl::OUString*)0), 0, 0 },
496 		{ MAP_CHAR_LEN(UNO_NAME_GRAPHOBJ_GRAPHIC),	 OWN_ATTR_VALUE_GRAPHIC	    , &::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic>*)0), 	0,     0},
497 		{0,0,0,0,0,0}
498 
499 	};
500 
501 	return aOle2PropertyMap_Impl;
502 }
503 
504 SfxItemPropertyMapEntry* ImplGetSvxPluginPropertyMap()
505 {
506     static SfxItemPropertyMapEntry aPluginPropertyMap_Impl[] =
507 	{
508 		{ MAP_CHAR_LEN("PluginMimeType"),			OWN_ATTR_PLUGIN_MIMETYPE	, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
509 		{ MAP_CHAR_LEN("PluginURL"),				OWN_ATTR_PLUGIN_URL			, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
510 		{ MAP_CHAR_LEN("PluginCommands"),			OWN_ATTR_PLUGIN_COMMANDS	, SEQTYPE(::getCppuType((::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >*)0)), 0, 0},
511 		{ MAP_CHAR_LEN("Transformation"),			OWN_ATTR_TRANSFORMATION		, &::getCppuType((const struct com::sun::star::drawing::HomogenMatrix3*)0), 0, 0 }, \
512 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_ZORDER),	OWN_ATTR_ZORDER				, &::getCppuType((const sal_Int32*)0),		0,		0},
513 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_LAYERID),	SDRATTR_LAYERID				, &::getCppuType((const sal_Int16*)0),		0,	0},
514 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_LAYERNAME),SDRATTR_LAYERNAME			, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
515 		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP),	OWN_ATTR_LDBITMAP			, &::getCppuType(( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap >*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
516 		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYNAME),	OWN_ATTR_LDNAME				, &::getCppuType(( const ::rtl::OUString*)0),	::com::sun::star::beans::PropertyAttribute::READONLY, 0},
517 		{ MAP_CHAR_LEN(UNO_NAME_OLE2_METAFILE),		OWN_ATTR_METAFILE			, SEQTYPE(::getCppuType((::com::sun::star::uno::Sequence<sal_Int8>*)0)), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
518 		{ MAP_CHAR_LEN("ThumbnailGraphicURL"),		OWN_ATTR_THUMBNAIL			, &::getCppuType(( const ::rtl::OUString*)0), 0, 0 },
519 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_MOVEPROTECT),		SDRATTR_OBJMOVEPROTECT, &::getBooleanCppuType(),0, 0},
520 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_SIZEPROTECT),		SDRATTR_OBJSIZEPROTECT, &::getBooleanCppuType(),0, 0},
521 		{ MAP_CHAR_LEN(UNO_NAME_OLE2_PERSISTNAME),	OWN_ATTR_PERSISTNAME		, &::getCppuType(( const ::rtl::OUString*)0), 0, 0 },
522 		{ MAP_CHAR_LEN("LinkURL"),					OWN_ATTR_OLE_LINKURL		, &::getCppuType(( const ::rtl::OUString*)0), 0, 0 },
523 	    { MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_BOUNDRECT), OWN_ATTR_BOUNDRECT,			&::getCppuType((const ::com::sun::star::awt::Rectangle*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
524 		{ MAP_CHAR_LEN("VisibleArea"),				OWN_ATTR_OLE_VISAREA		, &::getCppuType((const ::com::sun::star::awt::Rectangle*)0), 0, 0},
525 		// #i68101#
526 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_TITLE),		OWN_ATTR_MISC_OBJ_TITLE			, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
527 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_DESCRIPTION),	OWN_ATTR_MISC_OBJ_DESCRIPTION	, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
528 		{0,0,0,0,0,0}
529 
530 	};
531 
532 	return aPluginPropertyMap_Impl;
533 }
534 
535 SfxItemPropertyMapEntry* ImplGetSvxFramePropertyMap()
536 {
537     //TODO/LATER: new properties for ScrollingMode and DefaultBorder
538     static SfxItemPropertyMapEntry aFramePropertyMap_Impl[] =
539 	{
540 		{ MAP_CHAR_LEN("FrameURL"),					OWN_ATTR_FRAME_URL			, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
541 		{ MAP_CHAR_LEN("FrameName"),				OWN_ATTR_FRAME_NAME			, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
542 		{ MAP_CHAR_LEN("FrameIsAutoScroll"),		OWN_ATTR_FRAME_ISAUTOSCROLL , &::getBooleanCppuType() , ::com::sun::star::beans::PropertyAttribute::MAYBEVOID, 0},
543 		{ MAP_CHAR_LEN("FrameIsBorder"),			OWN_ATTR_FRAME_ISBORDER		, &::getBooleanCppuType() , 0, 0},
544 		{ MAP_CHAR_LEN("FrameMarginWidth"),			OWN_ATTR_FRAME_MARGIN_WIDTH , &::getCppuType((const sal_Int32*)0),		0,		0},
545 		{ MAP_CHAR_LEN("FrameMarginHeight"),		OWN_ATTR_FRAME_MARGIN_HEIGHT, &::getCppuType((const sal_Int32*)0),		0,		0},
546 		{ MAP_CHAR_LEN("Transformation"),			OWN_ATTR_TRANSFORMATION		, &::getCppuType((const struct com::sun::star::drawing::HomogenMatrix3*)0), 0, 0 }, \
547 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_ZORDER),	OWN_ATTR_ZORDER				, &::getCppuType((const sal_Int32*)0),		0,		0},
548 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_LAYERID),	SDRATTR_LAYERID				, &::getCppuType((const sal_Int16*)0),		0,	0},
549 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_LAYERNAME),SDRATTR_LAYERNAME			, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
550 		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP),	OWN_ATTR_LDBITMAP			, &::getCppuType(( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap >*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
551 		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYNAME),	OWN_ATTR_LDNAME				, &::getCppuType(( const ::rtl::OUString*)0),	::com::sun::star::beans::PropertyAttribute::READONLY, 0},
552 		{ MAP_CHAR_LEN(UNO_NAME_OLE2_METAFILE),		OWN_ATTR_METAFILE			, SEQTYPE(::getCppuType((::com::sun::star::uno::Sequence<sal_Int8>*)0)), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
553 		{ MAP_CHAR_LEN("ThumbnailGraphicURL"),		OWN_ATTR_THUMBNAIL			, &::getCppuType(( const ::rtl::OUString*)0), 0, 0 },
554 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_MOVEPROTECT),		SDRATTR_OBJMOVEPROTECT, &::getBooleanCppuType(),0, 0},
555 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_SIZEPROTECT),		SDRATTR_OBJSIZEPROTECT, &::getBooleanCppuType(),0, 0},
556 		{ MAP_CHAR_LEN(UNO_NAME_OLE2_PERSISTNAME),	OWN_ATTR_PERSISTNAME		, &::getCppuType(( const ::rtl::OUString*)0), 0, 0 },
557 		{ MAP_CHAR_LEN("LinkURL"),					OWN_ATTR_OLE_LINKURL		, &::getCppuType(( const ::rtl::OUString*)0), 0, 0 },
558 	    { MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_BOUNDRECT), OWN_ATTR_BOUNDRECT,			&::getCppuType((const ::com::sun::star::awt::Rectangle*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
559 		{ MAP_CHAR_LEN("VisibleArea"),				OWN_ATTR_OLE_VISAREA		, &::getCppuType((const ::com::sun::star::awt::Rectangle*)0), 0, 0},
560 		// #i68101#
561 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_TITLE),		OWN_ATTR_MISC_OBJ_TITLE			, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
562 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_DESCRIPTION),	OWN_ATTR_MISC_OBJ_DESCRIPTION	, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
563 		{0,0,0,0,0,0}
564 
565 	};
566 
567 	return aFramePropertyMap_Impl;
568 }
569 
570 SfxItemPropertyMapEntry* ImplGetSvxAppletPropertyMap()
571 {
572     static SfxItemPropertyMapEntry aAppletPropertyMap_Impl[] =
573 	{
574 		{ MAP_CHAR_LEN("AppletCodeBase"),			OWN_ATTR_APPLET_CODEBASE	, &::getCppuType(( const ::rtl::OUString*)0), 0, 0},
575 		{ MAP_CHAR_LEN("AppletName"),				OWN_ATTR_APPLET_NAME		, &::getCppuType(( const ::rtl::OUString*)0), 0, 0},
576 		{ MAP_CHAR_LEN("AppletCode"),				OWN_ATTR_APPLET_CODE		, &::getCppuType(( const ::rtl::OUString*)0), 0, 0},
577 		{ MAP_CHAR_LEN("AppletCommands"),			OWN_ATTR_APPLET_COMMANDS	, SEQTYPE(::getCppuType((::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >*)0)), 0, 0},
578         { MAP_CHAR_LEN("AppletDocBase"),            OWN_ATTR_APPLET_DOCBASE     , &::getCppuType(( const ::rtl::OUString*)0), 0, 0},
579 		{ MAP_CHAR_LEN("AppletIsScript"),			OWN_ATTR_APPLET_ISSCRIPT	, &::getBooleanCppuType(), 0, 0 },
580 		{ MAP_CHAR_LEN("Transformation"),			OWN_ATTR_TRANSFORMATION		, &::getCppuType((const struct com::sun::star::drawing::HomogenMatrix3*)0), 0, 0 }, \
581 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_ZORDER),	OWN_ATTR_ZORDER				, &::getCppuType((const sal_Int32*)0),		0,		0},
582 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_LAYERID),	SDRATTR_LAYERID				, &::getCppuType((const sal_Int16*)0),		0,	0},
583 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_LAYERNAME),SDRATTR_LAYERNAME			, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
584 		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP),	OWN_ATTR_LDBITMAP			, &::getCppuType(( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap >*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
585 		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYNAME),	OWN_ATTR_LDNAME				, &::getCppuType(( const ::rtl::OUString*)0),	::com::sun::star::beans::PropertyAttribute::READONLY, 0},
586 		{ MAP_CHAR_LEN(UNO_NAME_OLE2_METAFILE),		OWN_ATTR_METAFILE			, SEQTYPE(::getCppuType((::com::sun::star::uno::Sequence<sal_Int8>*)0)), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
587 		{ MAP_CHAR_LEN("ThumbnailGraphicURL"),		OWN_ATTR_THUMBNAIL			, &::getCppuType(( const ::rtl::OUString*)0), 0, 0 },
588 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_MOVEPROTECT),		SDRATTR_OBJMOVEPROTECT, &::getBooleanCppuType(),0, 0},
589 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_SIZEPROTECT),		SDRATTR_OBJSIZEPROTECT, &::getBooleanCppuType(),0, 0},
590 		{ MAP_CHAR_LEN(UNO_NAME_OLE2_PERSISTNAME),	OWN_ATTR_PERSISTNAME		, &::getCppuType(( const ::rtl::OUString*)0), 0, 0 },
591 		{ MAP_CHAR_LEN("LinkURL"),					OWN_ATTR_OLE_LINKURL		, &::getCppuType(( const ::rtl::OUString*)0), 0, 0 },
592 	    { MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_BOUNDRECT), OWN_ATTR_BOUNDRECT,			&::getCppuType((const ::com::sun::star::awt::Rectangle*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
593 		{ MAP_CHAR_LEN("VisibleArea"),				OWN_ATTR_OLE_VISAREA		, &::getCppuType((const ::com::sun::star::awt::Rectangle*)0), 0, 0},
594 		// #i68101#
595 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_TITLE),		OWN_ATTR_MISC_OBJ_TITLE			, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
596 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_DESCRIPTION),	OWN_ATTR_MISC_OBJ_DESCRIPTION	, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
597 		{0,0,0,0,0,0}
598 
599 	};
600 
601 	return aAppletPropertyMap_Impl;
602 }
603 
604 SfxItemPropertyMapEntry* ImplGetSvxControlShapePropertyMap()
605 {
606     static SfxItemPropertyMapEntry aControlPropertyMap_Impl[] =
607 	{
608 		// the following properties are mapped to the XControl Model of this shape
609 		{ MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_FONTNAME),		0,	&::getCppuType((const ::rtl::OUString*)0),	0, 0 },
610 		{ MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_FONTSTYLENAME),	0,	&::getCppuType((const ::rtl::OUString*)0),	0, 0 },
611 		{ MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_FONTFAMILY),		0,	&::getCppuType((const sal_Int16*)0),		0, 0 },
612 		{ MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_FONTCHARSET),		0,	&::getCppuType((const sal_Int16*)0),		0, 0 },
613 		{ MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_HEIGHT),			0,	&::getCppuType((const float*)0),			0, 0 },
614 		{ MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_FONTPITCH),		0,	&::getCppuType((const sal_Int16*)0),		0, 0 },
615 		{ MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_POSTURE),			0,	&::getCppuType((const ::com::sun::star::awt::FontSlant*)0),0, 0 },
616 		{ MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_WEIGHT),			0,	&::getCppuType((const float*)0),			0, 0 },
617 		{ MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_UNDERLINE),		0,	&::getCppuType((const sal_Int16*)0),		0, 0 },
618 		{ MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_STRIKEOUT),		0,  &::getCppuType((const sal_Int16*)0),		0, 0},
619 		{ MAP_CHAR_LEN(UNO_NAME_EDIT_CHAR_COLOR),			0,	&::getCppuType((const sal_Int32*)0),		0, 0 },
620 		{ MAP_CHAR_LEN("CharRelief"),						0,	&::getCppuType((const sal_Int16*)0),		0, 0 },
621 		{ MAP_CHAR_LEN("CharUnderlineColor"),				0,	&::getCppuType((const sal_Int32*)0),		0, 0 },
622 		{ MAP_CHAR_LEN("CharKerning"),						0,	&::getCppuType((const sal_Int16*)0),	  	0, 0 },
623 		{ MAP_CHAR_LEN("CharWordMode"),						0,	&::getBooleanCppuType(),					0, 0 },
624 		{ MAP_CHAR_LEN(UNO_NAME_EDIT_PARA_ADJUST),			0,	&::getCppuType((const sal_Int16*)0),		0, 0 },
625         { MAP_CHAR_LEN("TextVerticalAdjust"),               0,  &::getCppuType((const TextVerticalAdjust*)0), MAYBEVOID, 0 },
626 		{ MAP_CHAR_LEN("ControlBackground"),				0,	&::getCppuType((const sal_Int32*)0),		0, 0 },
627 		{ MAP_CHAR_LEN("ControlBorder"),					0,	&::getCppuType((const sal_Int16*)0),		0, 0 },
628         { MAP_CHAR_LEN("ControlBorderColor"),               0,  &::getCppuType((const sal_Int32*)0),        0, 0 },
629         { MAP_CHAR_LEN("ControlSymbolColor"),               0,  &::getCppuType((const sal_Int16*)0),        0, 0 },
630         { MAP_CHAR_LEN("ImageScaleMode"),                   0,  &::getCppuType((const sal_Int16*)0),        0, 0 },
631 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_MOVEPROTECT),		SDRATTR_OBJMOVEPROTECT, &::getBooleanCppuType(),0, 0},
632 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_SIZEPROTECT),		SDRATTR_OBJSIZEPROTECT, &::getBooleanCppuType(),0, 0},
633 		{ MAP_CHAR_LEN("ControlTextEmphasis"),				0,	&::getCppuType((const sal_Int16*)0),		0, 0 },
634         { MAP_CHAR_LEN("ControlWritingMode"),               0,  &::cppu::UnoType< sal_Int16 >::get(), 0, 0},
635 		// the following properties are handled by SvxShape
636 		{ MAP_CHAR_LEN("Transformation"),			OWN_ATTR_TRANSFORMATION		, &::getCppuType((const struct com::sun::star::drawing::HomogenMatrix3*)0), 0, 0 },
637 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_ZORDER),	OWN_ATTR_ZORDER				, &::getCppuType((const sal_Int32*)0),		0,		0},
638 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_LAYERID),	SDRATTR_LAYERID				, &::getCppuType((const sal_Int16*)0),		0,	0},
639 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_LAYERNAME),SDRATTR_LAYERNAME			, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
640 		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP),	OWN_ATTR_LDBITMAP			, &::getCppuType(( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap >*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
641 		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYNAME),	OWN_ATTR_LDNAME				, &::getCppuType(( const ::rtl::OUString*)0),	::com::sun::star::beans::PropertyAttribute::READONLY, 0},
642 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
643 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
644 	    { MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_BOUNDRECT), OWN_ATTR_BOUNDRECT,			&::getCppuType((const ::com::sun::star::awt::Rectangle*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
645 		// #i68101#
646 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_TITLE),		OWN_ATTR_MISC_OBJ_TITLE			, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
647 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_DESCRIPTION),	OWN_ATTR_MISC_OBJ_DESCRIPTION	, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
648 		// #i112587#
649         { MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_PRINTABLE),	SDRATTR_OBJPRINTABLE			, &::getBooleanCppuType(),						0,	0},
650         { MAP_CHAR_LEN("Visible"),						SDRATTR_OBJVISIBLE				, &::getBooleanCppuType(),						0,	0},
651 		{0,0,0,0,0,0}
652 	};
653 
654 	return aControlPropertyMap_Impl;
655 }
656 
657 SfxItemPropertyMapEntry* ImplGetSvxPageShapePropertyMap()
658 {
659     static SfxItemPropertyMapEntry aPageShapePropertyMap_Impl[] =
660 	{
661 		{ MAP_CHAR_LEN("PageNumber"),				OWN_ATTR_PAGE_NUMBER		, &::getCppuType((const sal_Int32*)0),		0, 0},
662 		{ MAP_CHAR_LEN("Transformation"),			OWN_ATTR_TRANSFORMATION		, &::getCppuType((const struct com::sun::star::drawing::HomogenMatrix3*)0), 0, 0 }, \
663 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_ZORDER),	OWN_ATTR_ZORDER				, &::getCppuType((const sal_Int32*)0),		0, 0},
664 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_LAYERID),	SDRATTR_LAYERID				, &::getCppuType((const sal_Int16*)0),		0, 0},
665 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_LAYERNAME),SDRATTR_LAYERNAME			, &::getCppuType((const ::rtl::OUString*)0), 0,	0},
666 		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP),	OWN_ATTR_LDBITMAP			, &::getCppuType(( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap >*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
667 		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYNAME),	OWN_ATTR_LDNAME				, &::getCppuType(( const ::rtl::OUString*)0),	::com::sun::star::beans::PropertyAttribute::READONLY, 0},
668 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_MOVEPROTECT),		SDRATTR_OBJMOVEPROTECT, &::getBooleanCppuType(),0, 0},
669 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_SIZEPROTECT),		SDRATTR_OBJSIZEPROTECT, &::getBooleanCppuType(),0, 0},
670 	    { MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_BOUNDRECT), OWN_ATTR_BOUNDRECT,			&::getCppuType((const ::com::sun::star::awt::Rectangle*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
671 		// #i68101#
672 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_TITLE),		OWN_ATTR_MISC_OBJ_TITLE			, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
673 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_DESCRIPTION),	OWN_ATTR_MISC_OBJ_DESCRIPTION	, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
674 		{0,0,0,0,0,0}
675 
676 	};
677 
678 	return aPageShapePropertyMap_Impl;
679 }
680 
681 SfxItemPropertyMapEntry* ImplGetSvxCaptionPropertyMap()
682 {
683     static SfxItemPropertyMapEntry aCaptionPropertyMap_Impl[] =
684 	{
685 		{ MAP_CHAR_LEN("CaptionPoint"),				OWN_ATTR_CAPTION_POINT,		&::getCppuType((const com::sun::star::awt::Point*)0),	0, 0 },
686 		{ MAP_CHAR_LEN("CaptionType"),				SDRATTR_CAPTIONTYPE,		&::getCppuType((const sal_Int16*)0), 0, 0},
687 		{ MAP_CHAR_LEN("CaptionIsFixedAngle"),		SDRATTR_CAPTIONFIXEDANGLE,	&::getBooleanCppuType(), 0, 0},
688 		{ MAP_CHAR_LEN("CaptionAngle"),				SDRATTR_CAPTIONANGLE,		&::getCppuType((const sal_Int32*)0),	0,	0},
689 		{ MAP_CHAR_LEN("CaptionGap"),				SDRATTR_CAPTIONGAP,			&::getCppuType((const sal_Int32*)0),	0,	SFX_METRIC_ITEM},
690 		{ MAP_CHAR_LEN("CaptionEscapeDirection"),	SDRATTR_CAPTIONESCDIR,		&::getCppuType((const sal_Int32*)0),	0,	0},
691 		{ MAP_CHAR_LEN("CaptionIsEscapeRelative"),	SDRATTR_CAPTIONESCISREL,	&::getBooleanCppuType(), 0, 0},
692 		{ MAP_CHAR_LEN("CaptionEscapeRelative"),	SDRATTR_CAPTIONESCREL,		&::getCppuType((const sal_Int32*)0),	0,	0},
693 		{ MAP_CHAR_LEN("CaptionEscapeAbsolute"),	SDRATTR_CAPTIONESCABS,		&::getCppuType((const sal_Int32*)0),	0,	SFX_METRIC_ITEM},
694 		{ MAP_CHAR_LEN("CaptionLineLength"),		SDRATTR_CAPTIONLINELEN,		&::getCppuType((const sal_Int32*)0),	0,	SFX_METRIC_ITEM},
695 		{ MAP_CHAR_LEN("CaptionIsFitLineLength"),	SDRATTR_CAPTIONFITLINELEN,	&::getBooleanCppuType(), 0, 0},
696 		EDGERADIUS_PROPERTIES
697 		FILL_PROPERTIES
698 		LINE_PROPERTIES
699 		LINE_PROPERTIES_START_END
700 		SHAPE_DESCRIPTOR_PROPERTIES
701 		MISC_OBJ_PROPERTIES
702 		LINKTARGET_PROPERTIES
703 		SHADOW_PROPERTIES
704 		TEXT_PROPERTIES
705 		// #FontWork#
706 		FONTWORK_PROPERTIES
707 		{ MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
708 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),			EE_PARA_XMLATTRIBS,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
709 		{0,0,0,0,0,0}
710 
711 	};
712 
713 	return aCaptionPropertyMap_Impl;
714 }
715 
716 SfxItemPropertyMapEntry* ImplGetSvxCustomShapePropertyMap()
717 {
718     static SfxItemPropertyMapEntry aCustomShapePropertyMap_Impl[] =
719 	{
720 		{ MAP_CHAR_LEN("CustomShapeEngine"),			SDRATTR_CUSTOMSHAPE_ENGINE,			&::getCppuType((const ::rtl::OUString*)0),	0, 0 },
721 		{ MAP_CHAR_LEN("CustomShapeData"),			SDRATTR_CUSTOMSHAPE_DATA,				&::getCppuType((const ::rtl::OUString*)0),  0, 0 },
722 		{ MAP_CHAR_LEN("CustomShapeGeometry"),		SDRATTR_CUSTOMSHAPE_GEOMETRY,			SEQTYPE(::getCppuType((::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >*)0)),  0, 0 },
723 		{ MAP_CHAR_LEN("CustomShapeGraphicURL"),		SDRATTR_CUSTOMSHAPE_REPLACEMENT_URL,	&::getCppuType((const ::rtl::OUString*)0),	0,	0},
724 		CUSTOMSHAPE_PROPERTIES
725 		FILL_PROPERTIES
726 		LINE_PROPERTIES
727 		LINE_PROPERTIES_START_END
728 		SHAPE_DESCRIPTOR_PROPERTIES
729 		MISC_OBJ_PROPERTIES
730 		LINKTARGET_PROPERTIES
731 		SHADOW_PROPERTIES
732 		TEXT_PROPERTIES
733 		{MAP_CHAR_LEN("UserDefinedAttributes"),		SDRATTR_XMLATTRIBUTES,		&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
734 		{MAP_CHAR_LEN("ParaUserDefinedAttributes"),	EE_PARA_XMLATTRIBS,			&::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0)  , 		0,     0},
735 		{0,0,0,0,0,0}
736 
737 	};
738 	return aCustomShapePropertyMap_Impl;
739 }
740 
741 SfxItemPropertyMapEntry* ImplGetSvxMediaShapePropertyMap()
742 {
743     static SfxItemPropertyMapEntry aMediaShapePropertyMap_Impl[] =
744 	{
745 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_ZORDER), OWN_ATTR_ZORDER, &::getCppuType((const sal_Int32*)0), 0, 0},
746 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_LAYERID), SDRATTR_LAYERID, &::getCppuType((const sal_Int16*)0), 0,	0},
747 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_LAYERNAME), SDRATTR_LAYERNAME, &::getCppuType((const ::rtl::OUString*)0), 0, 0},
748 		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP),	OWN_ATTR_LDBITMAP, &::getCppuType(( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap >*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
749 		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYNAME), OWN_ATTR_LDNAME, &::getCppuType(( const ::rtl::OUString*)0),	::com::sun::star::beans::PropertyAttribute::READONLY, 0},
750 		{ MAP_CHAR_LEN("Transformation"), OWN_ATTR_TRANSFORMATION, &::getCppuType((const struct com::sun::star::drawing::HomogenMatrix3*)0), 0, 0 },
751 		{ MAP_CHAR_LEN("MediaURL"),	OWN_ATTR_MEDIA_URL, &::getCppuType((const ::rtl::OUString*)0), 0, 0},
752 		{ MAP_CHAR_LEN("PreferredSize"), OWN_ATTR_MEDIA_PREFERREDSIZE, &::getCppuType((const ::com::sun::star::awt::Size*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
753 		{ MAP_CHAR_LEN("Loop"),	OWN_ATTR_MEDIA_LOOP, &::getCppuType((const sal_Bool*)0), 0, 0},
754 		{ MAP_CHAR_LEN("Mute"),	OWN_ATTR_MEDIA_MUTE, &::getCppuType((const sal_Bool*)0), 0, 0},
755 		{ MAP_CHAR_LEN("VolumeDB"),	OWN_ATTR_MEDIA_VOLUMEDB, &::getCppuType((const sal_Int16*)0), 0, 0},
756 		{ MAP_CHAR_LEN("Zoom"),	OWN_ATTR_MEDIA_ZOOM, &::getCppuType((const ::com::sun::star::media::ZoomLevel*)0), 0, 0},
757 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_MOVEPROTECT), SDRATTR_OBJMOVEPROTECT, &::getBooleanCppuType(),0, 0},
758 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_SIZEPROTECT), SDRATTR_OBJSIZEPROTECT, &::getBooleanCppuType(),0, 0},
759 	    { MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_BOUNDRECT), OWN_ATTR_BOUNDRECT, &::getCppuType((const ::com::sun::star::awt::Rectangle*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
760 		// #i68101#
761 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_TITLE),		OWN_ATTR_MISC_OBJ_TITLE			, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
762 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_DESCRIPTION),	OWN_ATTR_MISC_OBJ_DESCRIPTION	, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
763 		{0,0,0,0,0,0}
764 
765 	};
766 
767 	return aMediaShapePropertyMap_Impl;
768 }
769 
770 SfxItemPropertyMapEntry* ImplGetSvxTableShapePropertyMap()
771 {
772     static SfxItemPropertyMapEntry aTableShapePropertyMap_Impl[] =
773 	{
774 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_ZORDER),		OWN_ATTR_ZORDER, &::getCppuType((const sal_Int32*)0), 0, 0},
775 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_LAYERID),		SDRATTR_LAYERID, &::getCppuType((const sal_Int16*)0), 0,	0},
776 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_LAYERNAME),	SDRATTR_LAYERNAME, &::getCppuType((const ::rtl::OUString*)0), 0, 0},
777 		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYBITMAP),		OWN_ATTR_LDBITMAP, &::com::sun::star::awt::XBitmap::static_type(), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
778 		{ MAP_CHAR_LEN(UNO_NAME_LINKDISPLAYNAME),		OWN_ATTR_LDNAME, &::getCppuType(( const ::rtl::OUString*)0),	::com::sun::star::beans::PropertyAttribute::READONLY, 0},
779 		{ MAP_CHAR_LEN("Transformation"),				OWN_ATTR_TRANSFORMATION, &::getCppuType((const struct com::sun::star::drawing::HomogenMatrix3*)0), 0, 0 },
780 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_MOVEPROTECT),	SDRATTR_OBJMOVEPROTECT, &::getBooleanCppuType(),0, 0},
781 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_SIZEPROTECT),	SDRATTR_OBJSIZEPROTECT, &::getBooleanCppuType(),0, 0},
782 	    { MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_BOUNDRECT),	OWN_ATTR_BOUNDRECT, &::getCppuType((const ::com::sun::star::awt::Rectangle*)0), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
783 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_TITLE),		OWN_ATTR_MISC_OBJ_TITLE			, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
784 		{ MAP_CHAR_LEN(UNO_NAME_MISC_OBJ_DESCRIPTION),	OWN_ATTR_MISC_OBJ_DESCRIPTION	, &::getCppuType((const ::rtl::OUString*)0),	0,	0},
785 		{ MAP_CHAR_LEN("Model"),						OWN_ATTR_OLEMODEL				, &::com::sun::star::table::XTable::static_type(), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
786 		{ MAP_CHAR_LEN("TableTemplate"),				OWN_ATTR_TABLETEMPLATE			, &::com::sun::star::container::XIndexAccess::static_type(), 0, 0},
787 		{ MAP_CHAR_LEN("UseFirstRowStyle"),				OWN_ATTR_TABLETEMPLATE_FIRSTROW, &::getBooleanCppuType(),0, 0},
788 		{ MAP_CHAR_LEN("UseLastRowStyle"),				OWN_ATTR_TABLETEMPLATE_LASTROW, &::getBooleanCppuType(),0, 0},
789 		{ MAP_CHAR_LEN("UseFirstColumnStyle"),			OWN_ATTR_TABLETEMPLATE_FIRSTCOLUMN, &::getBooleanCppuType(),0, 0},
790 		{ MAP_CHAR_LEN("UseLastColumnStyle"),			OWN_ATTR_TABLETEMPLATE_LASTCOLUMN, &::getBooleanCppuType(),0, 0},
791 		{ MAP_CHAR_LEN("UseBandingRowStyle"),			OWN_ATTR_TABLETEMPLATE_BANDINGROWS, &::getBooleanCppuType(),0, 0},
792 		{ MAP_CHAR_LEN("UseBandingColumnStyle"),		OWN_ATTR_TABLETEMPLATE_BANDINGCOULUMNS, &::getBooleanCppuType(),0, 0},
793 		{ MAP_CHAR_LEN("ReplacementGraphic"),			OWN_ATTR_BITMAP, &::com::sun::star::graphic::XGraphic::static_type(), ::com::sun::star::beans::PropertyAttribute::READONLY, 0},
794 
795 		{0,0,0,0,0,0}
796 	};
797 
798 	return aTableShapePropertyMap_Impl;
799 }
800 
801 comphelper::PropertyMapEntry* ImplGetSvxDrawingDefaultsPropertyMap()
802 {
803 	static comphelper::PropertyMapEntry aSvxDrawingDefaultsPropertyMap_Impl[] =
804 	{
805 		SHADOW_PROPERTIES
806 		LINE_PROPERTIES_DEFAULTS
807 		FILL_PROPERTIES_BMP
808 		FILL_PROPERTIES_DEFAULTS
809 		EDGERADIUS_PROPERTIES
810 		TEXT_PROPERTIES_DEFAULTS
811 		CONNECTOR_PROPERTIES
812 		SPECIAL_DIMENSIONING_PROPERTIES_DEFAULTS
813 		MISC_3D_OBJ_PROPERTIES
814 		SPECIAL_3DBACKSCALE_PROPERTIES
815 		{0,0,0,0,0,0}
816 
817 	};
818 
819 	return aSvxDrawingDefaultsPropertyMap_Impl;
820 }
821 
822 // OD 13.10.2003 #i18732#
823 comphelper::PropertyMapEntry* ImplGetAdditionalWriterDrawingDefaultsPropertyMap()
824 {
825     static comphelper::PropertyMapEntry aSvxAdditionalDefaultsPropertyMap_Impl[] =
826     {
827         { MAP_CHAR_LEN("IsFollowingTextFlow"), SID_SW_FOLLOW_TEXT_FLOW, &::getBooleanCppuType(), 0, 0},
828         {0,0,0,0,0,0}
829 
830     };
831 
832     return aSvxAdditionalDefaultsPropertyMap_Impl;
833 }
834 
835 // ---------------------------------------------------------------------
836 
837 SvxUnoPropertyMapProvider aSvxMapProvider;
838 
839 UHashMapEntry pSdrShapeIdentifierMap[] =
840 {
841 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.RectangleShape"),		OBJ_RECT ),
842 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.EllipseShape"),			OBJ_CIRC ),
843 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.ControlShape"),			OBJ_UNO  ),
844 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.ConnectorShape"),		OBJ_EDGE ),
845 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.MeasureShape"),			OBJ_MEASURE ),
846 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.LineShape"),			OBJ_LINE ),
847 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.PolyPolygonShape"),		OBJ_POLY ),
848 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.PolyLineShape"),		OBJ_PLIN ),
849 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.OpenBezierShape"),		OBJ_PATHLINE ),
850 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.ClosedBezierShape"),	OBJ_PATHFILL ),
851 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.OpenFreeHandShape"),	OBJ_FREELINE ),
852 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.ClosedFreeHandShape"),	OBJ_FREEFILL ),
853 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.PolyPolygonPathShape"),	OBJ_PATHPOLY ),
854 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.PolyLinePathShape"),	OBJ_PATHPLIN ),
855 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.GraphicObjectShape"),	OBJ_GRAF ),
856 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.GroupShape"),			OBJ_GRUP ),
857 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.TextShape"),			OBJ_TEXT ),
858 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.OLE2Shape"),			OBJ_OLE2 ),
859 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.PageShape"),			OBJ_PAGE ),
860 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.CaptionShape"),			OBJ_CAPTION ),
861 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.FrameShape"),			OBJ_FRAME ),
862 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.PluginShape"),			OBJ_OLE2_PLUGIN ),
863 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.AppletShape"),			OBJ_OLE2_APPLET ),
864 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.CustomShape"),			OBJ_CUSTOMSHAPE ),
865 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.MediaShape"),			OBJ_MEDIA ),
866 
867 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.Shape3DSceneObject"),	E3D_POLYSCENE_ID  | E3D_INVENTOR_FLAG ),
868 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.Shape3DCubeObject"),	E3D_CUBEOBJ_ID    | E3D_INVENTOR_FLAG ),
869 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.Shape3DSphereObject"),	E3D_SPHEREOBJ_ID  | E3D_INVENTOR_FLAG ),
870 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.Shape3DLatheObject"),	E3D_LATHEOBJ_ID   | E3D_INVENTOR_FLAG ),
871 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.Shape3DExtrudeObject"),	E3D_EXTRUDEOBJ_ID | E3D_INVENTOR_FLAG ),
872 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM("com.sun.star.drawing.Shape3DPolygonObject"),	E3D_POLYGONOBJ_ID | E3D_INVENTOR_FLAG ),
873 	UHashMapEntry (RTL_CONSTASCII_STRINGPARAM(""),	0 )
874 };
875 
876 // ---------------------------------------------------------------------
877 
878 UHashMap aSdrShapeIdentifierMap( pSdrShapeIdentifierMap );
879 
880 /***********************************************************************
881 * class UHashMap                                                       *
882 ***********************************************************************/
883 
884 UHashMap::UHashMap( UHashMapEntry* pMap )
885 {
886 	while( pMap->aIdentifier.getLength() )
887 	{
888 		OUString aStr( pMap->aIdentifier );
889 		size_t nHash = aStr.hashCode() & (HASHARRAYSIZE-1);
890 
891 		m_aHashList[nHash].Insert(pMap);
892 		pMap++;
893 	}
894 }
895 
896 // ---------------------------------------------------------------------
897 
898 sal_uInt32 UHashMap::getId( const OUString& rCompareString )
899 {
900 	size_t nHash = rCompareString.hashCode() & (HASHARRAYSIZE-1);
901 
902 	UHashMapEntryList& rList = m_aHashList[nHash];
903 
904 	UHashMapEntry * pMap = rList.First();
905 
906 	while(pMap)
907 	{
908 		if( rCompareString == pMap->aIdentifier )
909 			return pMap->nId;
910 
911 		pMap = rList.Next();
912 	}
913 
914 	return UHASHMAP_NOTFOUND;
915 }
916 
917 /***********************************************************************
918 * class SvxUnoPropertyMapProvider                                      *
919 ***********************************************************************/
920 
921 EXTERN_C
922 #if defined( PM2 ) && (!defined( CSET ) && !defined ( MTW ) && !defined( WTC ))
923 int _stdcall
924 #else
925 #ifdef WNT
926 int _cdecl
927 #else
928 int
929 #endif
930 #endif
931 Svx_CompareMap(const void* pSmaller, const void* pBigger )
932 {
933     int nDiff = strcmp( ((const SfxItemPropertyMapEntry*)pSmaller)->pName,
934                         ((const SfxItemPropertyMapEntry*)pBigger)->pName );
935 	return nDiff;
936 }
937 
938 // ---------------------------------------------------------------------
939 
940 SvxUnoPropertyMapProvider::SvxUnoPropertyMapProvider()
941 {
942 	for(sal_uInt16 i=0;i<SVXMAP_END; i++)
943     {
944         aSetArr[i] = 0;
945         aMapArr[i] = 0;
946     }
947 }
948 
949 SvxUnoPropertyMapProvider::~SvxUnoPropertyMapProvider()
950 {
951 	for(sal_uInt16 i=0;i<SVXMAP_END; i++)
952         delete aSetArr[i];
953 }
954 
955 // ---------------------------------------------------------------------
956 
957 /*void SvxUnoPropertyMapProvider::Sort(sal_uInt16 nId)
958 {
959     SfxItemPropertyMapEntry* pTemp = aMapArr[nId];
960 	sal_uInt16 i = 0;
961 	while(pTemp[i].pName) { i++; }
962     qsort(aMapArr[nId], i, sizeof(SfxItemPropertyMapEntry), Svx_CompareMap);
963 }*/
964 
965 // ---------------------------------------------------------------------
966 
967 const SfxItemPropertyMapEntry* SvxUnoPropertyMapProvider::GetMap(sal_uInt16 nPropertyId)
968 {
969 	DBG_ASSERT(nPropertyId < SVXMAP_END, "Id ?" );
970 	if(!aMapArr[nPropertyId]) {
971 		switch(nPropertyId) {
972 			case SVXMAP_SHAPE: aMapArr[SVXMAP_SHAPE]=ImplGetSvxShapePropertyMap(); break;
973 			case SVXMAP_CONNECTOR: aMapArr[SVXMAP_CONNECTOR]=ImplGetSvxConnectorPropertyMap(); break;
974 			case SVXMAP_DIMENSIONING: aMapArr[SVXMAP_DIMENSIONING]=ImplGetSvxDimensioningPropertyMap(); break;
975 			case SVXMAP_CIRCLE: aMapArr[SVXMAP_CIRCLE]=ImplGetSvxCirclePropertyMap(); break;
976 			case SVXMAP_POLYPOLYGON: aMapArr[SVXMAP_POLYPOLYGON]=ImplGetSvxPolyPolygonPropertyMap(); break;
977 			case SVXMAP_POLYPOLYGONBEZIER: aMapArr[SVXMAP_POLYPOLYGONBEZIER]=ImplGetSvxPolyPolygonBezierPropertyMap(); break;
978 			case SVXMAP_GRAPHICOBJECT: aMapArr[SVXMAP_GRAPHICOBJECT]=ImplGetSvxGraphicObjectPropertyMap(); break;
979 			case SVXMAP_3DSCENEOBJECT: aMapArr[SVXMAP_3DSCENEOBJECT]=ImplGetSvx3DSceneObjectPropertyMap(); break;
980 			case SVXMAP_3DCUBEOBJEKT: aMapArr[SVXMAP_3DCUBEOBJEKT]=ImplGetSvx3DCubeObjectPropertyMap(); break;
981 			case SVXMAP_3DSPHEREOBJECT: aMapArr[SVXMAP_3DSPHEREOBJECT]=ImplGetSvx3DSphereObjectPropertyMap(); break;
982 			case SVXMAP_3DLATHEOBJECT: aMapArr[SVXMAP_3DLATHEOBJECT]=ImplGetSvx3DLatheObjectPropertyMap(); break;
983 			case SVXMAP_3DEXTRUDEOBJECT: aMapArr[SVXMAP_3DEXTRUDEOBJECT]=ImplGetSvx3DExtrudeObjectPropertyMap(); break;
984 			case SVXMAP_3DPOLYGONOBJECT: aMapArr[SVXMAP_3DPOLYGONOBJECT]=ImplGetSvx3DPolygonObjectPropertyMap(); break;
985 			case SVXMAP_ALL: aMapArr[SVXMAP_ALL]=ImplGetSvxAllPropertyMap(); break;
986 			case SVXMAP_GROUP: aMapArr[SVXMAP_GROUP]=ImplGetSvxGroupPropertyMap(); break;
987 			case SVXMAP_CAPTION: aMapArr[SVXMAP_CAPTION]=ImplGetSvxCaptionPropertyMap(); break;
988 			case SVXMAP_OLE2: aMapArr[SVXMAP_OLE2]=ImplGetSvxOle2PropertyMap(); break;
989 			case SVXMAP_PLUGIN: aMapArr[SVXMAP_PLUGIN]=ImplGetSvxPluginPropertyMap(); break;
990 			case SVXMAP_FRAME: aMapArr[SVXMAP_FRAME]=ImplGetSvxFramePropertyMap(); break;
991 			case SVXMAP_APPLET: aMapArr[SVXMAP_APPLET]=ImplGetSvxAppletPropertyMap(); break;
992 			case SVXMAP_CONTROL: aMapArr[SVXMAP_CONTROL]=ImplGetSvxControlShapePropertyMap(); break;
993 			case SVXMAP_TEXT: aMapArr[SVXMAP_TEXT]=ImplGetSvxTextShapePropertyMap(); break;
994 			case SVXMAP_CUSTOMSHAPE: aMapArr[SVXMAP_CUSTOMSHAPE]=ImplGetSvxCustomShapePropertyMap(); break;
995 			case SVXMAP_MEDIA: aMapArr[SVXMAP_MEDIA]=ImplGetSvxMediaShapePropertyMap(); break;
996 			case SVXMAP_TABLE: aMapArr[SVXMAP_TABLE]=ImplGetSvxTableShapePropertyMap(); break;
997             case SVXMAP_PAGE: aMapArr[SVXMAP_PAGE] = ImplGetSvxPageShapePropertyMap(); break;
998 
999 			default:
1000 				DBG_ERROR( "Unknown property map for SvxUnoPropertyMapProvider!" );
1001 		}
1002 //		Sort(nPropertyId);
1003 	}
1004 	return aMapArr[nPropertyId];
1005 }
1006 const SvxItemPropertySet* SvxUnoPropertyMapProvider::GetPropertySet(sal_uInt16 nPropertyId, SfxItemPool& rPool)
1007 {
1008     if( !aSetArr[nPropertyId] )
1009         aSetArr[nPropertyId] = new SvxItemPropertySet( GetMap( nPropertyId ), rPool );
1010     return aSetArr[nPropertyId];
1011 }
1012 
1013 // #####################################################################
1014 
1015 /** maps the API constant MeasureUnit to a vcl MapUnit enum.
1016 	Returns false if conversion is not supported.
1017 
1018 	@cl: for warnings01 I found out that this method never worked so I thin
1019 		 it is not used at all
1020 sal_Bool SvxMeasureUnitToMapUnit( const short eApi, int& eVcl ) throw()
1021 {
1022 	switch( eVcl )
1023 	{
1024 	case util::MeasureUnit::MM_100TH:		eVcl = MAP_100TH_MM;	break;
1025 	case util::MeasureUnit::MM_10TH:		eVcl = MAP_10TH_MM;		break;
1026 	case util::MeasureUnit::MM:				eVcl = MAP_MM;			break;
1027 	case util::MeasureUnit::CM:				eVcl = MAP_CM;			break;
1028 	case util::MeasureUnit::INCH_1000TH:	eVcl = MAP_1000TH_INCH; break;
1029 	case util::MeasureUnit::INCH_100TH:		eVcl = MAP_100TH_INCH;	break;
1030 	case util::MeasureUnit::INCH_10TH:		eVcl = MAP_10TH_INCH;	break;
1031 	case util::MeasureUnit::INCH:			eVcl = MAP_INCH;		break;
1032 	case util::MeasureUnit::POINT:			eVcl = MAP_POINT;		break;
1033 	case util::MeasureUnit::TWIP:			eVcl = MAP_TWIP;		break;
1034 	case util::MeasureUnit::PERCENT:		eVcl = MAP_RELATIVE;	break;
1035 	default:
1036 		return false;
1037 	}
1038 
1039 	return true;
1040 }
1041 */
1042 
1043 /** maps the vcl MapUnit enum to a API constant MeasureUnit.
1044 	Returns false if conversion is not supported.
1045 */
1046 sal_Bool SvxMapUnitToMeasureUnit( const short eVcl, short& eApi ) throw()
1047 {
1048 	switch( eVcl )
1049 	{
1050 	case MAP_100TH_MM:		eApi = util::MeasureUnit::MM_100TH;		break;
1051 	case MAP_10TH_MM:		eApi = util::MeasureUnit::MM_10TH;		break;
1052 	case MAP_MM:			eApi = util::MeasureUnit::MM;			break;
1053 	case MAP_CM:			eApi = util::MeasureUnit::CM;			break;
1054 	case MAP_1000TH_INCH:	eApi = util::MeasureUnit::INCH_1000TH;	break;
1055 	case MAP_100TH_INCH:	eApi = util::MeasureUnit::INCH_100TH;	break;
1056 	case MAP_10TH_INCH:		eApi = util::MeasureUnit::INCH_10TH;	break;
1057 	case MAP_INCH:			eApi = util::MeasureUnit::INCH;			break;
1058 	case MAP_POINT:			eApi = util::MeasureUnit::POINT;		break;
1059 	case MAP_TWIP:			eApi = util::MeasureUnit::TWIP;			break;
1060 	case MAP_RELATIVE:		eApi = util::MeasureUnit::PERCENT;		break;
1061 	default:
1062 		return false;
1063 	}
1064 
1065 	return true;
1066 }
1067 
1068 /** maps the API constant MeasureUnit to a vcl MapUnit enum.
1069 	Returns false if conversion is not supported.
1070 */
1071 
1072 sal_Bool SvxMeasureUnitToFieldUnit( const short eApi, short& eVcl ) throw()
1073 {
1074 	switch( eApi )
1075 	{
1076 	case util::MeasureUnit::MM:			eVcl = FUNIT_MM;		break;
1077 	case util::MeasureUnit::CM:			eVcl = FUNIT_CM;		break;
1078 	case util::MeasureUnit::M:			eVcl = FUNIT_M;			break;
1079 	case util::MeasureUnit::KM:			eVcl = FUNIT_KM;		break;
1080 	case util::MeasureUnit::TWIP:		eVcl = FUNIT_TWIP;		break;
1081 	case util::MeasureUnit::POINT:		eVcl = FUNIT_POINT;		break;
1082 	case util::MeasureUnit::PICA:		eVcl = FUNIT_PICA;		break;
1083 	case util::MeasureUnit::INCH:		eVcl = FUNIT_INCH;		break;
1084 	case util::MeasureUnit::FOOT:		eVcl = FUNIT_FOOT;		break;
1085 	case util::MeasureUnit::MILE:		eVcl = FUNIT_MILE;		break;
1086 	case util::MeasureUnit::PERCENT:	eVcl = FUNIT_PERCENT;	break;
1087 	case util::MeasureUnit::MM_100TH:	eVcl = FUNIT_100TH_MM;	break;
1088 	default:
1089 		return sal_False;
1090 	}
1091 
1092 	return sal_True;
1093 }
1094 
1095 /** maps the vcl MapUnit enum to a API constant MeasureUnit.
1096 	Returns false if conversion is not supported.
1097 */
1098 sal_Bool SvxFieldUnitToMeasureUnit( const short eVcl, short& eApi ) throw()
1099 {
1100 	switch( eVcl )
1101 	{
1102 	case FUNIT_MM:			eApi = util::MeasureUnit::MM;		break;
1103 	case FUNIT_CM:			eApi = util::MeasureUnit::CM;		break;
1104 	case FUNIT_M:			eApi = util::MeasureUnit::M;		break;
1105 	case FUNIT_KM:			eApi = util::MeasureUnit::KM;		break;
1106 	case FUNIT_TWIP:		eApi = util::MeasureUnit::TWIP;		break;
1107 	case FUNIT_POINT:		eApi = util::MeasureUnit::POINT;	break;
1108 	case FUNIT_PICA:		eApi = util::MeasureUnit::PICA;		break;
1109 	case FUNIT_INCH:		eApi = util::MeasureUnit::INCH;		break;
1110 	case FUNIT_FOOT:		eApi = util::MeasureUnit::FOOT;		break;
1111 	case FUNIT_MILE:		eApi = util::MeasureUnit::MILE;		break;
1112 	case FUNIT_PERCENT:		eApi = util::MeasureUnit::PERCENT;	break;
1113 	case FUNIT_100TH_MM:	eApi = util::MeasureUnit::MM_100TH;	break;
1114 	default:
1115 		return sal_False;
1116 	}
1117 
1118 	return sal_True;
1119 }
1120 
1121 bool SvxUnoGetResourceRanges( const short nWhich, int& nApiResIds, int& nIntResIds, int& nCount ) throw()
1122 {
1123 	switch( nWhich )
1124 	{
1125 	case XATTR_FILLBITMAP:
1126 		nApiResIds = RID_SVXSTR_BMP_DEF_START;
1127 		nIntResIds = RID_SVXSTR_BMP_START;
1128 		nCount = RID_SVXSTR_BMP_DEF_END - RID_SVXSTR_BMP_DEF_START + 1;
1129 		break;
1130 
1131 	case XATTR_LINEDASH:
1132 		nApiResIds = RID_SVXSTR_DASH_DEF_START;
1133 		nIntResIds = RID_SVXSTR_DASH_START;
1134 		nCount = RID_SVXSTR_DASH_DEF_END - RID_SVXSTR_DASH_DEF_START + 1;
1135 		break;
1136 
1137 	case XATTR_LINESTART:
1138 	case XATTR_LINEEND:
1139 		nApiResIds = RID_SVXSTR_LEND_DEF_START;
1140 		nIntResIds = RID_SVXSTR_LEND_START;
1141 		nCount = RID_SVXSTR_LEND_DEF_END - RID_SVXSTR_LEND_DEF_START + 1;
1142 		break;
1143 
1144 	case XATTR_FILLGRADIENT:
1145 		nApiResIds = RID_SVXSTR_GRDT_DEF_START;
1146 		nIntResIds = RID_SVXSTR_GRDT_START;
1147 		nCount = RID_SVXSTR_GRDT_DEF_END - RID_SVXSTR_GRDT_DEF_START + 1;
1148 		break;
1149 
1150 	case XATTR_FILLHATCH:
1151 		nApiResIds = RID_SVXSTR_HATCH_DEF_START;
1152 		nIntResIds = RID_SVXSTR_HATCH_START;
1153 		nCount = RID_SVXSTR_HATCH_DEF_END - RID_SVXSTR_HATCH_DEF_START + 1;
1154 		break;
1155 
1156 	case XATTR_FILLFLOATTRANSPARENCE:
1157 		nApiResIds = RID_SVXSTR_TRASNGR_DEF_START;
1158 		nIntResIds = RID_SVXSTR_TRASNGR_START;
1159 		nCount = RID_SVXSTR_TRASNGR_DEF_END - RID_SVXSTR_TRASNGR_DEF_START + 1;
1160 		break;
1161 
1162 	default:
1163 		return sal_False;
1164 	}
1165 
1166 	return sal_True;
1167 }
1168 
1169 /*sal_Int16 SvxUnoGetWhichIdForNamedProperty( const ::rtl::OUString & rPropName )
1170 {
1171     sal_Int16 nWhich = 0;
1172 
1173     const SfxItemPropertyMapEntry* pMap = aSvxMapProvider.GetMap( SVXMAP_SHAPE );
1174     if( pMap )
1175     {
1176         const SfxItemPropertyMapEntry* pFound = SfxItemPropertyMapEntry::getByName( pMap, rPropName );
1177         if( pFound )
1178             nWhich = pFound->nWID;
1179     }
1180 
1181     return nWhich;
1182 } */
1183 
1184 bool SvxUnoConvertResourceString( int nSourceResIds, int nDestResIds, int nCount, String& rString ) throw()
1185 {
1186 	// first, calculate the search string length without an optional number behind the name
1187 	xub_StrLen nLength = rString.Len();
1188 	while( nLength > 0 )
1189 	{
1190 		const sal_Unicode nChar = rString.GetChar( nLength - 1 );
1191 		if( (nChar < '0') || (nChar > '9') )
1192 			break;
1193 
1194 		nLength--;
1195 	}
1196 
1197 	// if we cut off a number, also cut of some spaces
1198 	if( nLength != rString.Len() )
1199 	{
1200 		while( nLength > 0 )
1201 		{
1202 			const sal_Unicode nChar = rString.GetChar( nLength - 1 );
1203 			if( nChar != ' ' )
1204 				break;
1205 
1206 			nLength--;
1207 		}
1208 	}
1209 
1210 	const String aShortString( rString.Copy( 0, nLength ) );
1211 
1212 	int i;
1213 	for( i = 0; i < nCount; i++ )
1214 	{
1215 		sal_uInt16 nResId = (sal_uInt16)(nSourceResIds + i);
1216 		const ResId aRes( SVX_RES(nResId));
1217 		const String aCompare( aRes );
1218 		if( aShortString == aCompare )
1219 		{
1220 			sal_uInt16 nNewResId = (sal_uInt16)(nDestResIds + i);
1221 			ResId aNewRes( SVX_RES( nNewResId ));
1222 			rString.Replace( 0, aShortString.Len(), String( aNewRes ) );
1223 			return sal_True;
1224 		}
1225 		else if( rString == aCompare )
1226 		{
1227 			sal_uInt16 nNewResId = (sal_uInt16)(nDestResIds + i);
1228 			ResId aNewRes( SVX_RES( nNewResId ));
1229 			rString = String( aNewRes );
1230 			return sal_True;
1231 		}
1232 	}
1233 
1234 	return sal_False;
1235 }
1236 
1237 static sal_uInt16 __READONLY_DATA SvxUnoColorNameDefResId[] =
1238 {
1239 	RID_SVXSTR_BLUEGREY_DEF,
1240 	RID_SVXSTR_BLACK_DEF,
1241 	RID_SVXSTR_BLUE_DEF,
1242 	RID_SVXSTR_GREEN_DEF,
1243 	RID_SVXSTR_CYAN_DEF,
1244 	RID_SVXSTR_RED_DEF,
1245 	RID_SVXSTR_MAGENTA_DEF,
1246 	RID_SVXSTR_BROWN_DEF,
1247 	RID_SVXSTR_GREY_DEF,
1248 	RID_SVXSTR_LIGHTGREY_DEF,
1249 	RID_SVXSTR_LIGHTBLUE_DEF,
1250 	RID_SVXSTR_LIGHTGREEN_DEF,
1251 	RID_SVXSTR_LIGHTCYAN_DEF,
1252 	RID_SVXSTR_LIGHTRED_DEF,
1253 	RID_SVXSTR_LIGHTMAGENTA_DEF,
1254 	RID_SVXSTR_YELLOW_DEF,
1255 	RID_SVXSTR_WHITE_DEF,
1256 	RID_SVXSTR_ORANGE_DEF,
1257 	RID_SVXSTR_VIOLET_DEF,
1258 	RID_SVXSTR_BORDEAUX_DEF,
1259 	RID_SVXSTR_PALE_YELLOW_DEF,
1260 	RID_SVXSTR_PALE_GREEN_DEF,
1261 	RID_SVXSTR_DKVIOLET_DEF,
1262 	RID_SVXSTR_SALMON_DEF,
1263 	RID_SVXSTR_SEABLUE_DEF,
1264 	RID_SVXSTR_COLOR_SUN_DEF,
1265 	RID_SVXSTR_COLOR_CHART_DEF
1266 };
1267 
1268 static sal_uInt16 __READONLY_DATA SvxUnoColorNameResId[] =
1269 {
1270 	RID_SVXSTR_BLUEGREY,
1271 	RID_SVXSTR_BLACK,
1272 	RID_SVXSTR_BLUE,
1273 	RID_SVXSTR_GREEN,
1274 	RID_SVXSTR_CYAN,
1275 	RID_SVXSTR_RED,
1276 	RID_SVXSTR_MAGENTA,
1277 	RID_SVXSTR_BROWN,
1278 	RID_SVXSTR_GREY,
1279 	RID_SVXSTR_LIGHTGREY,
1280 	RID_SVXSTR_LIGHTBLUE,
1281 	RID_SVXSTR_LIGHTGREEN,
1282 	RID_SVXSTR_LIGHTCYAN,
1283 	RID_SVXSTR_LIGHTRED,
1284 	RID_SVXSTR_LIGHTMAGENTA,
1285 	RID_SVXSTR_YELLOW,
1286 	RID_SVXSTR_WHITE,
1287 	RID_SVXSTR_ORANGE,
1288 	RID_SVXSTR_VIOLET,
1289 	RID_SVXSTR_BORDEAUX,
1290 	RID_SVXSTR_PALE_YELLOW,
1291 	RID_SVXSTR_PALE_GREEN,
1292 	RID_SVXSTR_DKVIOLET,
1293 	RID_SVXSTR_SALMON,
1294 	RID_SVXSTR_SEABLUE,
1295 	RID_SVXSTR_COLOR_SUN,
1296     RID_SVXSTR_COLOR_CHART
1297 };
1298 
1299 bool SvxUnoConvertResourceString( sal_uInt16* pSourceResIds, sal_uInt16* pDestResIds, int nCount, String& rString ) throw()
1300 {
1301 	int i = 0;
1302 
1303 	for( i = 0; i < nCount; i++ )
1304 	{
1305 		String aStrDefName = SVX_RESSTR( pSourceResIds[i] );
1306 		if( rString.Search( aStrDefName ) == 0 )
1307 		{
1308 			String aReplace = SVX_RESSTR( pDestResIds[i] );
1309 			rString.Replace( 0, aStrDefName.Len(), aReplace );
1310 			return true;
1311 		}
1312 	}
1313 
1314 	return false;
1315 }
1316 
1317 /** if the given name is a predefined name for the current language it is replaced by
1318 	the corresponding api name.
1319 */
1320 void SvxUnogetApiNameForItem( const sal_Int16 nWhich, const String& rInternalName, rtl::OUString& rApiName ) throw()
1321 {
1322 #ifndef SVX_LIGHT
1323 	String aNew = rInternalName;
1324 
1325 	if( nWhich == XATTR_LINECOLOR )
1326 	{
1327 		if( SvxUnoConvertResourceString( (sal_uInt16*)SvxUnoColorNameResId, (sal_uInt16*)SvxUnoColorNameDefResId, sizeof( SvxUnoColorNameResId ) / sizeof( sal_uInt16 ), aNew ) )
1328 		{
1329 			rApiName = aNew;
1330 			return;
1331 		}
1332 	}
1333 	else
1334 	{
1335 		int nApiResIds;
1336 		int nIntResIds;
1337 		int nCount;
1338 
1339 		if( SvxUnoGetResourceRanges( nWhich, nApiResIds, nIntResIds, nCount ) )
1340 		{
1341 			if(SvxUnoConvertResourceString( nIntResIds, nApiResIds, nCount, aNew ) )
1342 			{
1343 				rApiName = aNew;
1344 				return;
1345 			}
1346 		}
1347 	}
1348 #endif
1349 
1350 	// just use previous name, if nothing else was found.
1351 	rApiName = rInternalName;
1352 }
1353 
1354 /** if the given name is a predefined api name it is replaced by the predefined name
1355 	for the current	language.
1356 */
1357 void SvxUnogetInternalNameForItem( const sal_Int16 nWhich, const rtl::OUString& rApiName, String& rInternalName ) throw()
1358 {
1359 #ifndef SVX_LIGHT
1360 	String aNew = rApiName;
1361 
1362 	if( nWhich == XATTR_LINECOLOR )
1363 	{
1364 		if( SvxUnoConvertResourceString( (sal_uInt16*)SvxUnoColorNameDefResId, (sal_uInt16*)SvxUnoColorNameResId, sizeof( SvxUnoColorNameResId ) / sizeof( sal_uInt16 ), aNew ) )
1365 		{
1366 			rInternalName = aNew;
1367 			return;
1368 		}
1369 	}
1370 	else
1371 	{
1372 		int nApiResIds;
1373 		int nIntResIds;
1374 		int nCount;
1375 
1376 		if( SvxUnoGetResourceRanges( nWhich, nApiResIds, nIntResIds, nCount ) )
1377 		{
1378 			if(SvxUnoConvertResourceString( nApiResIds, nIntResIds, nCount, aNew ) )
1379 			{
1380 				rInternalName = aNew;
1381 				return;
1382 			}
1383 		}
1384 	}
1385 #endif // !SVX_LIGHT
1386 
1387 	// just use previous name, if nothing else was found.
1388 	rInternalName = rApiName;
1389 }
1390 
1391 ///////////////////////////////////////////////////////////////////////
1392 
1393 comphelper::PropertySetInfo* SvxPropertySetInfoPool::getOrCreate( sal_Int32 nServiceId ) throw()
1394 {
1395 	vos::OGuard aGuard( Application::GetSolarMutex() );
1396 
1397 	if( nServiceId > SVXUNO_SERVICEID_LASTID )
1398 	{
1399 		DBG_ERROR( "unknown service id!" );
1400 		return NULL;
1401 	}
1402 
1403 	if( mpInfos[ nServiceId ] == NULL )
1404 	{
1405 		mpInfos[nServiceId] = new comphelper::PropertySetInfo();
1406 		mpInfos[nServiceId]->acquire();
1407 
1408 		switch( nServiceId )
1409 		{
1410 		case SVXUNO_SERVICEID_COM_SUN_STAR_DRAWING_DEFAULTS:
1411 			mpInfos[SVXUNO_SERVICEID_COM_SUN_STAR_DRAWING_DEFAULTS]->add( ImplGetSvxDrawingDefaultsPropertyMap() );
1412 			break;
1413 		case SVXUNO_SERVICEID_COM_SUN_STAR_DRAWING_DEFAULTS_WRITER:
1414 			mpInfos[SVXUNO_SERVICEID_COM_SUN_STAR_DRAWING_DEFAULTS_WRITER]->add( ImplGetSvxDrawingDefaultsPropertyMap() );
1415 			mpInfos[SVXUNO_SERVICEID_COM_SUN_STAR_DRAWING_DEFAULTS_WRITER]->remove( OUString( RTL_CONSTASCII_USTRINGPARAM( UNO_NAME_EDIT_PARA_IS_HANGING_PUNCTUATION ) ) );
1416             // OD 13.10.2003 #i18732# - add property map for writer item 'IsFollowingTextFlow'
1417             mpInfos[SVXUNO_SERVICEID_COM_SUN_STAR_DRAWING_DEFAULTS_WRITER]->add( ImplGetAdditionalWriterDrawingDefaultsPropertyMap() );
1418             break;
1419 
1420 		default:
1421 			DBG_ERROR( "unknown service id!" );
1422 		}
1423 	}
1424 
1425 	return mpInfos[ nServiceId ];
1426 }
1427 
1428 comphelper::PropertySetInfo* SvxPropertySetInfoPool::mpInfos[SVXUNO_SERVICEID_LASTID+1] = { NULL };
1429 
1430