1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* 3 * This file is part of the LibreOffice project. 4 * 5 * This Source Code Form is subject to the terms of the Mozilla Public 6 * License, v. 2.0. If a copy of the MPL was not distributed with this 7 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 * 9 * This file incorporates work covered by the following license notice: 10 * 11 * Licensed to the Apache Software Foundation (ASF) under one or more 12 * contributor license agreements. See the NOTICE file distributed 13 * with this work for additional information regarding copyright 14 * ownership. The ASF licenses this file to you under the Apache 15 * License, Version 2.0 (the "License"); you may not use this file 16 * except in compliance with the License. You may obtain a copy of 17 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 18 */ 19 20 #include <sal/macros.h> 21 #include <com/sun/star/table/XTable.hpp> 22 #include <com/sun/star/container/XIndexAccess.hpp> 23 #include <com/sun/star/container/XNameContainer.hpp> 24 #include <com/sun/star/frame/XModel.hpp> 25 #include <com/sun/star/embed/XEmbeddedObject.hpp> 26 #include <com/sun/star/util/MeasureUnit.hpp> 27 #include <com/sun/star/drawing/TextVerticalAdjust.hpp> 28 #include <com/sun/star/media/ZoomLevel.hpp> 29 #include <com/sun/star/io/XInputStream.hpp> 30 #include <com/sun/star/beans/PropertyAttribute.hpp> 31 #include <com/sun/star/lang/Locale.hpp> 32 #include <tools/fldunit.hxx> 33 #include <vcl/svapp.hxx> 34 #include <comphelper/propertysetinfo.hxx> 35 #include <comphelper/sequence.hxx> 36 #include <svx/dialmgr.hxx> 37 #include <svx/unoapi.hxx> 38 #include <editeng/unotext.hxx> 39 #include <svx/unoshprp.hxx> 40 #include <svx/svx3ditems.hxx> 41 #include <svx/svxids.hrc> 42 #include <editeng/editeng.hxx> 43 #include <svx/globl3d.hxx> 44 #include <svx/strings.hrc> 45 #include <strings.hxx> 46 #include <svx/svdpool.hxx> 47 #include <svx/svdobj.hxx> 48 #include <svx/sdtaaitm.hxx> 49 #include <svx/sdtacitm.hxx> 50 #include <svx/sdtaiitm.hxx> 51 #include <svx/sdtayitm.hxx> 52 53 #include "shapeimpl.hxx" 54 #include <unordered_map> 55 56 using namespace ::com::sun::star; 57 using namespace ::com::sun::star::beans::PropertyAttribute; 58 using ::com::sun::star::drawing::TextVerticalAdjust; 59 60 static SfxItemPropertyMapEntry const * ImplGetSvxShapePropertyMap() 61 { 62 static SfxItemPropertyMapEntry const aShapePropertyMap_Impl[] = 63 { 64 EDGERADIUS_PROPERTIES 65 FILL_PROPERTIES 66 LINE_PROPERTIES 67 LINE_PROPERTIES_START_END 68 SHAPE_DESCRIPTOR_PROPERTIES 69 MISC_OBJ_PROPERTIES 70 LINKTARGET_PROPERTIES 71 SHADOW_PROPERTIES 72 TEXT_PROPERTIES 73 // #FontWork# 74 FONTWORK_PROPERTIES 75 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 76 { OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 77 { OUString(), 0, css::uno::Type(), 0, 0 } 78 }; 79 80 return aShapePropertyMap_Impl; 81 } 82 83 static SfxItemPropertyMapEntry const * ImplGetSvxTextShapePropertyMap() 84 { 85 static SfxItemPropertyMapEntry const aTextShapePropertyMap_Impl[] = 86 { 87 EDGERADIUS_PROPERTIES 88 FILL_PROPERTIES 89 LINE_PROPERTIES 90 LINE_PROPERTIES_START_END 91 SHAPE_DESCRIPTOR_PROPERTIES 92 MISC_OBJ_PROPERTIES_NO_SHEAR 93 LINKTARGET_PROPERTIES 94 SHADOW_PROPERTIES 95 TEXT_PROPERTIES 96 // #FontWork# 97 FONTWORK_PROPERTIES 98 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 99 { OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 100 { OUString(), 0, css::uno::Type(), 0, 0 } 101 }; 102 103 return aTextShapePropertyMap_Impl; 104 } 105 106 static SfxItemPropertyMapEntry const * ImplGetSvxConnectorPropertyMap() 107 { 108 static SfxItemPropertyMapEntry const aConnectorPropertyMap_Impl[] = 109 { 110 SPECIAL_CONNECTOR_PROPERTIES 111 EDGERADIUS_PROPERTIES 112 FILL_PROPERTIES 113 LINE_PROPERTIES 114 LINE_PROPERTIES_START_END 115 SHAPE_DESCRIPTOR_PROPERTIES 116 MISC_OBJ_PROPERTIES 117 LINKTARGET_PROPERTIES 118 SHADOW_PROPERTIES 119 TEXT_PROPERTIES 120 // #FontWork# 121 FONTWORK_PROPERTIES 122 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 123 { OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 124 { OUString(), 0, css::uno::Type(), 0, 0 } 125 }; 126 127 return aConnectorPropertyMap_Impl; 128 } 129 130 static SfxItemPropertyMapEntry const * ImplGetSvxDimensioningPropertyMap() 131 { 132 static SfxItemPropertyMapEntry const aDimensioningPropertyMap_Impl[] = 133 { 134 SPECIAL_DIMENSIONING_PROPERTIES 135 EDGERADIUS_PROPERTIES 136 FILL_PROPERTIES 137 LINE_PROPERTIES 138 LINE_PROPERTIES_START_END 139 SHAPE_DESCRIPTOR_PROPERTIES 140 MISC_OBJ_PROPERTIES 141 LINKTARGET_PROPERTIES 142 SHADOW_PROPERTIES 143 TEXT_PROPERTIES 144 // #FontWork# 145 FONTWORK_PROPERTIES 146 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 147 { OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 148 { OUString(), 0, css::uno::Type(), 0, 0 } 149 }; 150 151 return aDimensioningPropertyMap_Impl; 152 } 153 154 static SfxItemPropertyMapEntry const * ImplGetSvxCirclePropertyMap() 155 { 156 static SfxItemPropertyMapEntry const aCirclePropertyMap_Impl[] = 157 { 158 SPECIAL_CIRCLE_PROPERTIES 159 EDGERADIUS_PROPERTIES 160 FILL_PROPERTIES 161 LINE_PROPERTIES 162 LINE_PROPERTIES_START_END 163 SHAPE_DESCRIPTOR_PROPERTIES 164 MISC_OBJ_PROPERTIES 165 LINKTARGET_PROPERTIES 166 SHADOW_PROPERTIES 167 TEXT_PROPERTIES 168 // #FontWork# 169 FONTWORK_PROPERTIES 170 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 171 { OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 172 { OUString(), 0, css::uno::Type(), 0, 0 } 173 }; 174 175 return aCirclePropertyMap_Impl; 176 } 177 178 static SfxItemPropertyMapEntry const * ImplGetSvxPolyPolygonPropertyMap() 179 { 180 static SfxItemPropertyMapEntry const aPolyPolygonPropertyMap_Impl[] = 181 { 182 { OUString("Geometry"), OWN_ATTR_BASE_GEOMETRY, cppu::UnoType<css::drawing::PointSequenceSequence>::get(), 0, 0 }, 183 SPECIAL_POLYGON_PROPERTIES 184 SPECIAL_POLYPOLYGON_PROPERTIES 185 SPECIAL_POLYPOLYGONBEZIER_PROPERTIES 186 FILL_PROPERTIES 187 LINE_PROPERTIES 188 LINE_PROPERTIES_START_END 189 SHAPE_DESCRIPTOR_PROPERTIES 190 MISC_OBJ_PROPERTIES 191 LINKTARGET_PROPERTIES 192 SHADOW_PROPERTIES 193 TEXT_PROPERTIES 194 // #FontWork# 195 FONTWORK_PROPERTIES 196 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 197 { OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 198 { OUString(), 0, css::uno::Type(), 0, 0 } 199 }; 200 201 return aPolyPolygonPropertyMap_Impl; 202 } 203 204 static SfxItemPropertyMapEntry const * ImplGetSvxGraphicObjectPropertyMap() 205 { 206 static SfxItemPropertyMapEntry const aGraphicObjectPropertyMap_Impl[] = 207 { 208 SPECIAL_GRAPHOBJ_PROPERTIES 209 210 // #i25616# 211 FILL_PROPERTIES 212 213 LINE_PROPERTIES 214 LINE_PROPERTIES_START_END 215 SHAPE_DESCRIPTOR_PROPERTIES 216 217 // #i118485# Full properties now, shear included 218 MISC_OBJ_PROPERTIES 219 220 LINKTARGET_PROPERTIES 221 SHADOW_PROPERTIES 222 TEXT_PROPERTIES 223 // #FontWork# 224 FONTWORK_PROPERTIES 225 { OUString("IsMirrored"), OWN_ATTR_MIRRORED, cppu::UnoType<bool>::get(), 0, 0}, 226 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 227 { OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 228 { OUString("GraphicStream"), OWN_ATTR_GRAPHIC_STREAM, cppu::UnoType<css::io::XInputStream>::get(), css::beans::PropertyAttribute::READONLY, 0}, 229 { OUString(), 0, css::uno::Type(), 0, 0 } 230 }; 231 232 return aGraphicObjectPropertyMap_Impl; 233 } 234 235 static SfxItemPropertyMapEntry const * ImplGetSvx3DSceneObjectPropertyMap() 236 { 237 static SfxItemPropertyMapEntry const a3DSceneObjectPropertyMap_Impl[] = 238 { 239 SPECIAL_3DSCENEOBJECT_PROPERTIES 240 FILL_PROPERTIES 241 LINE_PROPERTIES 242 LINE_PROPERTIES_START_END 243 SHAPE_DESCRIPTOR_PROPERTIES 244 MISC_OBJ_PROPERTIES 245 LINKTARGET_PROPERTIES 246 SHADOW_PROPERTIES 247 { OUString(), 0, css::uno::Type(), 0, 0 } 248 }; 249 250 return a3DSceneObjectPropertyMap_Impl; 251 } 252 253 static SfxItemPropertyMapEntry const * ImplGetSvx3DCubeObjectPropertyMap() 254 { 255 static SfxItemPropertyMapEntry const a3DCubeObjectPropertyMap_Impl[] = 256 { 257 SPECIAL_3DCUBEOBJECT_PROPERTIES 258 MISC_3D_OBJ_PROPERTIES 259 FILL_PROPERTIES 260 LINE_PROPERTIES 261 LINE_PROPERTIES_START_END 262 SHAPE_DESCRIPTOR_PROPERTIES 263 MISC_OBJ_PROPERTIES 264 LINKTARGET_PROPERTIES 265 SHADOW_PROPERTIES 266 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 267 { OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 268 { OUString(), 0, css::uno::Type(), 0, 0 } 269 }; 270 271 return a3DCubeObjectPropertyMap_Impl; 272 } 273 274 static SfxItemPropertyMapEntry const * ImplGetSvx3DSphereObjectPropertyMap() 275 { 276 static SfxItemPropertyMapEntry const a3DSphereObjectPropertyMap_Impl[] = 277 { 278 SPECIAL_3DSPHEREOBJECT_PROPERTIES 279 MISC_3D_OBJ_PROPERTIES 280 FILL_PROPERTIES 281 LINE_PROPERTIES 282 LINE_PROPERTIES_START_END 283 SHAPE_DESCRIPTOR_PROPERTIES 284 MISC_OBJ_PROPERTIES 285 LINKTARGET_PROPERTIES 286 SHADOW_PROPERTIES 287 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 288 { OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 289 { OUString(), 0, css::uno::Type(), 0, 0 } 290 }; 291 return a3DSphereObjectPropertyMap_Impl; 292 } 293 294 static SfxItemPropertyMapEntry const * ImplGetSvx3DLatheObjectPropertyMap() 295 { 296 static SfxItemPropertyMapEntry const a3DLatheObjectPropertyMap_Impl[] = 297 { 298 SPECIAL_3DLATHEOBJECT_PROPERTIES 299 300 // #107245# New 3D properties which are possible for lathe and extrude 3d objects 301 SPECIAL_3DLATHEANDEXTRUDEOBJ_PROPERTIES 302 303 SPECIAL_3DBACKSCALE_PROPERTIES 304 MISC_3D_OBJ_PROPERTIES 305 FILL_PROPERTIES 306 LINE_PROPERTIES 307 LINE_PROPERTIES_START_END 308 SHAPE_DESCRIPTOR_PROPERTIES 309 MISC_OBJ_PROPERTIES 310 LINKTARGET_PROPERTIES 311 SHADOW_PROPERTIES 312 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 313 { OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 314 { OUString(), 0, css::uno::Type(), 0, 0 } 315 }; 316 317 return a3DLatheObjectPropertyMap_Impl; 318 } 319 320 static SfxItemPropertyMapEntry const * ImplGetSvx3DExtrudeObjectPropertyMap() 321 { 322 static SfxItemPropertyMapEntry const a3DExtrudeObjectPropertyMap_Impl[] = 323 { 324 SPECIAL_3DEXTRUDEOBJECT_PROPERTIES 325 326 // #107245# New 3D properties which are possible for lathe and extrude 3d objects 327 SPECIAL_3DLATHEANDEXTRUDEOBJ_PROPERTIES 328 329 SPECIAL_3DBACKSCALE_PROPERTIES 330 MISC_3D_OBJ_PROPERTIES 331 FILL_PROPERTIES 332 LINE_PROPERTIES 333 LINE_PROPERTIES_START_END 334 SHAPE_DESCRIPTOR_PROPERTIES 335 MISC_OBJ_PROPERTIES 336 LINKTARGET_PROPERTIES 337 SHADOW_PROPERTIES 338 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 339 { OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 340 { OUString(), 0, css::uno::Type(), 0, 0 } 341 }; 342 343 return a3DExtrudeObjectPropertyMap_Impl; 344 } 345 346 static SfxItemPropertyMapEntry const * ImplGetSvx3DPolygonObjectPropertyMap() 347 { 348 static SfxItemPropertyMapEntry const a3DPolygonObjectPropertyMap_Impl[] = 349 { 350 SPECIAL_3DPOLYGONOBJECT_PROPERTIES 351 MISC_3D_OBJ_PROPERTIES 352 FILL_PROPERTIES 353 LINE_PROPERTIES 354 LINE_PROPERTIES_START_END 355 SHAPE_DESCRIPTOR_PROPERTIES 356 MISC_OBJ_PROPERTIES 357 LINKTARGET_PROPERTIES 358 SHADOW_PROPERTIES 359 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 360 { OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 361 { OUString(), 0, css::uno::Type(), 0, 0 } 362 }; 363 364 return a3DPolygonObjectPropertyMap_Impl; 365 } 366 367 static SfxItemPropertyMapEntry const * ImplGetSvxAllPropertyMap() 368 { 369 static SfxItemPropertyMapEntry const aAllPropertyMap_Impl[] = 370 { 371 SHADOW_PROPERTIES 372 LINE_PROPERTIES 373 LINE_PROPERTIES_START_END 374 FILL_PROPERTIES 375 EDGERADIUS_PROPERTIES 376 TEXT_PROPERTIES 377 // #FontWork# 378 FONTWORK_PROPERTIES 379 SHAPE_DESCRIPTOR_PROPERTIES 380 MISC_OBJ_PROPERTIES 381 LINKTARGET_PROPERTIES 382 SPECIAL_CONNECTOR_PROPERTIES 383 SPECIAL_DIMENSIONING_PROPERTIES 384 SPECIAL_CIRCLE_PROPERTIES 385 SPECIAL_POLYGON_PROPERTIES 386 SPECIAL_POLYPOLYGON_PROPERTIES 387 SPECIAL_POLYPOLYGONBEZIER_PROPERTIES 388 SPECIAL_GRAPHOBJ_PROPERTIES 389 SPECIAL_3DSCENEOBJECT_PROPERTIES 390 MISC_3D_OBJ_PROPERTIES 391 SPECIAL_3DCUBEOBJECT_PROPERTIES 392 SPECIAL_3DSPHEREOBJECT_PROPERTIES 393 SPECIAL_3DLATHEOBJECT_PROPERTIES 394 SPECIAL_3DEXTRUDEOBJECT_PROPERTIES 395 396 // #107245# New 3D properties which are possible for lathe and extrude 3d objects 397 SPECIAL_3DLATHEANDEXTRUDEOBJ_PROPERTIES 398 399 SPECIAL_3DBACKSCALE_PROPERTIES 400 SPECIAL_3DPOLYGONOBJECT_PROPERTIES 401 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 402 { OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 403 { OUString(), 0, css::uno::Type(), 0, 0 } 404 }; 405 406 return aAllPropertyMap_Impl; 407 } 408 409 static SfxItemPropertyMapEntry const * ImplGetSvxGroupPropertyMap() 410 { 411 static SfxItemPropertyMapEntry const aGroupPropertyMap_Impl[] = 412 { 413 SHAPE_DESCRIPTOR_PROPERTIES 414 MISC_OBJ_PROPERTIES 415 LINKTARGET_PROPERTIES 416 { OUString(), 0, css::uno::Type(), 0, 0 } 417 }; 418 419 return aGroupPropertyMap_Impl; 420 } 421 422 static SfxItemPropertyMapEntry const * ImplGetSvxOle2PropertyMap() 423 { 424 static SfxItemPropertyMapEntry const aOle2PropertyMap_Impl[] = 425 { 426 // #i118485# Adding properties for line, fill, text, shadow, fontwork, rotate, shear 427 FILL_PROPERTIES 428 LINE_PROPERTIES 429 LINE_PROPERTIES_START_END 430 SHAPE_DESCRIPTOR_PROPERTIES 431 MISC_OBJ_PROPERTIES 432 LINKTARGET_PROPERTIES 433 SHADOW_PROPERTIES 434 TEXT_PROPERTIES 435 FONTWORK_PROPERTIES 436 437 { OUString("ThumbnailGraphic"), OWN_ATTR_THUMBNAIL , cppu::UnoType<css::graphic::XGraphic>::get(), 0, 0 }, 438 { OUString("Model"), OWN_ATTR_OLEMODEL , cppu::UnoType<css::frame::XModel>::get(), css::beans::PropertyAttribute::READONLY, 0}, 439 { OUString("EmbeddedObject"), OWN_ATTR_OLE_EMBEDDED_OBJECT, cppu::UnoType<css::embed::XEmbeddedObject>::get(), css::beans::PropertyAttribute::READONLY, 0}, 440 { OUString("EmbeddedObjectNoNewClient"),OWN_ATTR_OLE_EMBEDDED_OBJECT_NONEWCLIENT, cppu::UnoType<css::embed::XEmbeddedObject>::get(), css::beans::PropertyAttribute::READONLY, 0}, 441 { OUString("OriginalSize"), OWN_ATTR_OLESIZE , cppu::UnoType<css::awt::Size>::get(), css::beans::PropertyAttribute::READONLY, 0}, 442 { OUString("CLSID"), OWN_ATTR_CLSID , cppu::UnoType<OUString>::get(), 0, 0 }, 443 { OUString("IsInternal"), OWN_ATTR_INTERNAL_OLE , cppu::UnoType<bool>::get() , css::beans::PropertyAttribute::READONLY, 0}, 444 { OUString("VisibleArea"), OWN_ATTR_OLE_VISAREA , cppu::UnoType<css::awt::Rectangle>::get(), 0, 0}, 445 { OUString("Aspect"), OWN_ATTR_OLE_ASPECT , cppu::UnoType<sal_Int64>::get(), 0, 0}, 446 { OUString(UNO_NAME_OLE2_PERSISTNAME), OWN_ATTR_PERSISTNAME , cppu::UnoType<OUString>::get(), 0, 0 }, 447 { OUString("LinkURL"), OWN_ATTR_OLE_LINKURL , cppu::UnoType<OUString>::get(), 0, 0 }, 448 { OUString(UNO_NAME_GRAPHOBJ_GRAPHIC), OWN_ATTR_VALUE_GRAPHIC , cppu::UnoType<css::graphic::XGraphic>::get(), 0, 0}, 449 { OUString(), 0, css::uno::Type(), 0, 0 } 450 }; 451 452 return aOle2PropertyMap_Impl; 453 } 454 455 static SfxItemPropertyMapEntry const * ImplGetSvxPluginPropertyMap() 456 { 457 static SfxItemPropertyMapEntry const aPluginPropertyMap_Impl[] = 458 { 459 { OUString("PluginMimeType"), OWN_ATTR_PLUGIN_MIMETYPE , cppu::UnoType<OUString>::get(), 0, 0}, 460 { OUString("PluginURL"), OWN_ATTR_PLUGIN_URL , cppu::UnoType<OUString>::get(), 0, 0}, 461 { OUString("PluginCommands"), OWN_ATTR_PLUGIN_COMMANDS , cppu::UnoType<css::uno::Sequence< css::beans::PropertyValue >>::get(), 0, 0}, 462 { OUString("Transformation"), OWN_ATTR_TRANSFORMATION , cppu::UnoType<css::drawing::HomogenMatrix3>::get(), 0, 0 }, 463 { OUString(UNO_NAME_MISC_OBJ_ZORDER), OWN_ATTR_ZORDER , cppu::UnoType<sal_Int32>::get(), 0, 0}, 464 { OUString(UNO_NAME_MISC_OBJ_LAYERID), SDRATTR_LAYERID , cppu::UnoType<sal_Int16>::get(), 0, 0}, 465 { OUString(UNO_NAME_MISC_OBJ_LAYERNAME),SDRATTR_LAYERNAME , cppu::UnoType<OUString>::get(), 0, 0}, 466 { OUString(UNO_NAME_LINKDISPLAYBITMAP), OWN_ATTR_LDBITMAP , cppu::UnoType<css::awt::XBitmap>::get(), css::beans::PropertyAttribute::READONLY, 0}, 467 { OUString(UNO_NAME_LINKDISPLAYNAME), OWN_ATTR_LDNAME , cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY, 0}, 468 { OUString(UNO_NAME_OLE2_METAFILE), OWN_ATTR_METAFILE , cppu::UnoType<css::uno::Sequence<sal_Int8>>::get(), css::beans::PropertyAttribute::READONLY, 0}, 469 { OUString("ThumbnailGraphic"), OWN_ATTR_THUMBNAIL , cppu::UnoType<css::graphic::XGraphic>::get(), 0, 0 }, 470 { OUString(UNO_NAME_MISC_OBJ_MOVEPROTECT), SDRATTR_OBJMOVEPROTECT, cppu::UnoType<bool>::get(),0, 0}, 471 { OUString(UNO_NAME_MISC_OBJ_SIZEPROTECT), SDRATTR_OBJSIZEPROTECT, cppu::UnoType<bool>::get(),0, 0}, 472 { OUString(UNO_NAME_OLE2_PERSISTNAME), OWN_ATTR_PERSISTNAME , cppu::UnoType<OUString>::get(), 0, 0 }, 473 { OUString("LinkURL"), OWN_ATTR_OLE_LINKURL , cppu::UnoType<OUString>::get(), 0, 0 }, 474 { OUString(UNO_NAME_MISC_OBJ_BOUNDRECT), OWN_ATTR_BOUNDRECT, cppu::UnoType<css::awt::Rectangle>::get(), css::beans::PropertyAttribute::READONLY, 0}, 475 { OUString("VisibleArea"), OWN_ATTR_OLE_VISAREA , cppu::UnoType<css::awt::Rectangle>::get(), 0, 0}, 476 { OUString("UINameSingular"), OWN_ATTR_UINAME_SINGULAR , ::cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY, 0}, 477 // #i68101# 478 { OUString(UNO_NAME_MISC_OBJ_TITLE), OWN_ATTR_MISC_OBJ_TITLE , cppu::UnoType<OUString>::get(), 0, 0}, 479 { OUString(UNO_NAME_MISC_OBJ_DESCRIPTION), OWN_ATTR_MISC_OBJ_DESCRIPTION , cppu::UnoType<OUString>::get(), 0, 0}, 480 { OUString(), 0, css::uno::Type(), 0, 0 } 481 }; 482 483 return aPluginPropertyMap_Impl; 484 } 485 486 static SfxItemPropertyMapEntry const * ImplGetSvxFramePropertyMap() 487 { 488 //TODO/LATER: new properties for ScrollingMode and DefaultBorder 489 static SfxItemPropertyMapEntry const aFramePropertyMap_Impl[] = 490 { 491 { OUString("FrameURL"), OWN_ATTR_FRAME_URL , cppu::UnoType<OUString>::get(), 0, 0}, 492 { OUString("FrameName"), OWN_ATTR_FRAME_NAME , cppu::UnoType<OUString>::get(), 0, 0}, 493 { OUString("FrameIsAutoScroll"), OWN_ATTR_FRAME_ISAUTOSCROLL , cppu::UnoType<bool>::get() , css::beans::PropertyAttribute::MAYBEVOID, 0}, 494 { OUString("FrameIsBorder"), OWN_ATTR_FRAME_ISBORDER , cppu::UnoType<bool>::get() , 0, 0}, 495 { OUString("FrameMarginWidth"), OWN_ATTR_FRAME_MARGIN_WIDTH , cppu::UnoType<sal_Int32>::get(), 0, 0}, 496 { OUString("FrameMarginHeight"), OWN_ATTR_FRAME_MARGIN_HEIGHT, cppu::UnoType<sal_Int32>::get(), 0, 0}, 497 { OUString("Transformation"), OWN_ATTR_TRANSFORMATION , cppu::UnoType<css::drawing::HomogenMatrix3>::get(), 0, 0 }, 498 { OUString(UNO_NAME_MISC_OBJ_ZORDER), OWN_ATTR_ZORDER , cppu::UnoType<sal_Int32>::get(), 0, 0}, 499 { OUString(UNO_NAME_MISC_OBJ_LAYERID), SDRATTR_LAYERID , cppu::UnoType<sal_Int16>::get(), 0, 0}, 500 { OUString(UNO_NAME_MISC_OBJ_LAYERNAME),SDRATTR_LAYERNAME , cppu::UnoType<OUString>::get(), 0, 0}, 501 { OUString(UNO_NAME_LINKDISPLAYBITMAP), OWN_ATTR_LDBITMAP , cppu::UnoType<css::awt::XBitmap>::get(), css::beans::PropertyAttribute::READONLY, 0}, 502 { OUString(UNO_NAME_LINKDISPLAYNAME), OWN_ATTR_LDNAME , cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY, 0}, 503 { OUString(UNO_NAME_OLE2_METAFILE), OWN_ATTR_METAFILE , cppu::UnoType<css::uno::Sequence<sal_Int8>>::get(), css::beans::PropertyAttribute::READONLY, 0}, 504 { OUString("ThumbnailGraphic"), OWN_ATTR_THUMBNAIL , cppu::UnoType<css::graphic::XGraphic>::get(), 0, 0 }, 505 { OUString(UNO_NAME_MISC_OBJ_MOVEPROTECT), SDRATTR_OBJMOVEPROTECT, cppu::UnoType<bool>::get(),0, 0}, 506 { OUString(UNO_NAME_MISC_OBJ_SIZEPROTECT), SDRATTR_OBJSIZEPROTECT, cppu::UnoType<bool>::get(),0, 0}, 507 { OUString(UNO_NAME_OLE2_PERSISTNAME), OWN_ATTR_PERSISTNAME , cppu::UnoType<OUString>::get(), 0, 0 }, 508 { OUString("LinkURL"), OWN_ATTR_OLE_LINKURL , cppu::UnoType<OUString>::get(), 0, 0 }, 509 { OUString(UNO_NAME_MISC_OBJ_BOUNDRECT), OWN_ATTR_BOUNDRECT, cppu::UnoType<css::awt::Rectangle>::get(), css::beans::PropertyAttribute::READONLY, 0}, 510 { OUString("VisibleArea"), OWN_ATTR_OLE_VISAREA , cppu::UnoType<css::awt::Rectangle>::get(), 0, 0}, 511 { OUString("UINameSingular"), OWN_ATTR_UINAME_SINGULAR , ::cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY, 0}, 512 // #i68101# 513 { OUString(UNO_NAME_MISC_OBJ_TITLE), OWN_ATTR_MISC_OBJ_TITLE , cppu::UnoType<OUString>::get(), 0, 0}, 514 { OUString(UNO_NAME_MISC_OBJ_DESCRIPTION), OWN_ATTR_MISC_OBJ_DESCRIPTION , cppu::UnoType<OUString>::get(), 0, 0}, 515 { OUString(), 0, css::uno::Type(), 0, 0 } 516 }; 517 518 return aFramePropertyMap_Impl; 519 } 520 521 static SfxItemPropertyMapEntry const * ImplGetSvxAppletPropertyMap() 522 { 523 static SfxItemPropertyMapEntry const aAppletPropertyMap_Impl[] = 524 { 525 { OUString("AppletCodeBase"), OWN_ATTR_APPLET_CODEBASE , cppu::UnoType<OUString>::get(), 0, 0}, 526 { OUString("AppletName"), OWN_ATTR_APPLET_NAME , cppu::UnoType<OUString>::get(), 0, 0}, 527 { OUString("AppletCode"), OWN_ATTR_APPLET_CODE , cppu::UnoType<OUString>::get(), 0, 0}, 528 { OUString("AppletCommands"), OWN_ATTR_APPLET_COMMANDS , cppu::UnoType<css::uno::Sequence< css::beans::PropertyValue >>::get(), 0, 0}, 529 { OUString("AppletDocBase"), OWN_ATTR_APPLET_DOCBASE , cppu::UnoType<OUString>::get(), 0, 0}, 530 { OUString("AppletIsScript"), OWN_ATTR_APPLET_ISSCRIPT , cppu::UnoType<bool>::get(), 0, 0 }, 531 { OUString("Transformation"), OWN_ATTR_TRANSFORMATION , cppu::UnoType<css::drawing::HomogenMatrix3>::get(), 0, 0 }, 532 { OUString(UNO_NAME_MISC_OBJ_ZORDER), OWN_ATTR_ZORDER , cppu::UnoType<sal_Int32>::get(), 0, 0}, 533 { OUString(UNO_NAME_MISC_OBJ_LAYERID), SDRATTR_LAYERID , cppu::UnoType<sal_Int16>::get(), 0, 0}, 534 { OUString(UNO_NAME_MISC_OBJ_LAYERNAME),SDRATTR_LAYERNAME , cppu::UnoType<OUString>::get(), 0, 0}, 535 { OUString(UNO_NAME_LINKDISPLAYBITMAP), OWN_ATTR_LDBITMAP , cppu::UnoType<css::awt::XBitmap>::get(), css::beans::PropertyAttribute::READONLY, 0}, 536 { OUString(UNO_NAME_LINKDISPLAYNAME), OWN_ATTR_LDNAME , cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY, 0}, 537 { OUString(UNO_NAME_OLE2_METAFILE), OWN_ATTR_METAFILE , cppu::UnoType<css::uno::Sequence<sal_Int8>>::get(), css::beans::PropertyAttribute::READONLY, 0}, 538 { OUString("ThumbnailGraphic"), OWN_ATTR_THUMBNAIL , cppu::UnoType<css::graphic::XGraphic>::get(), 0, 0 }, 539 { OUString(UNO_NAME_MISC_OBJ_MOVEPROTECT), SDRATTR_OBJMOVEPROTECT, cppu::UnoType<bool>::get(),0, 0}, 540 { OUString(UNO_NAME_MISC_OBJ_SIZEPROTECT), SDRATTR_OBJSIZEPROTECT, cppu::UnoType<bool>::get(),0, 0}, 541 { OUString(UNO_NAME_OLE2_PERSISTNAME), OWN_ATTR_PERSISTNAME , cppu::UnoType<OUString>::get(), 0, 0 }, 542 { OUString("LinkURL"), OWN_ATTR_OLE_LINKURL , cppu::UnoType<OUString>::get(), 0, 0 }, 543 { OUString(UNO_NAME_MISC_OBJ_BOUNDRECT), OWN_ATTR_BOUNDRECT, cppu::UnoType<css::awt::Rectangle>::get(), css::beans::PropertyAttribute::READONLY, 0}, 544 { OUString("VisibleArea"), OWN_ATTR_OLE_VISAREA , cppu::UnoType<css::awt::Rectangle>::get(), 0, 0}, 545 { OUString("UINameSingular"), OWN_ATTR_UINAME_SINGULAR , ::cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY, 0}, 546 // #i68101# 547 { OUString(UNO_NAME_MISC_OBJ_TITLE), OWN_ATTR_MISC_OBJ_TITLE , cppu::UnoType<OUString>::get(), 0, 0}, 548 { OUString(UNO_NAME_MISC_OBJ_DESCRIPTION), OWN_ATTR_MISC_OBJ_DESCRIPTION , cppu::UnoType<OUString>::get(), 0, 0}, 549 { OUString(), 0, css::uno::Type(), 0, 0 } 550 }; 551 552 return aAppletPropertyMap_Impl; 553 } 554 555 static SfxItemPropertyMapEntry const * ImplGetSvxControlShapePropertyMap() 556 { 557 static SfxItemPropertyMapEntry const aControlPropertyMap_Impl[] = 558 { 559 // the following properties are mapped to the XControl Model of this shape 560 { OUString(UNO_NAME_EDIT_CHAR_FONTNAME), 0, cppu::UnoType<OUString>::get(), 0, 0 }, 561 { OUString(UNO_NAME_EDIT_CHAR_FONTSTYLENAME), 0, cppu::UnoType<OUString>::get(), 0, 0 }, 562 { OUString(UNO_NAME_EDIT_CHAR_FONTFAMILY), 0, cppu::UnoType<sal_Int16>::get(), 0, 0 }, 563 { OUString(UNO_NAME_EDIT_CHAR_FONTCHARSET), 0, cppu::UnoType<sal_Int16>::get(), 0, 0 }, 564 { OUString(UNO_NAME_EDIT_CHAR_HEIGHT), 0, cppu::UnoType<float>::get(), 0, 0 }, 565 { OUString(UNO_NAME_EDIT_CHAR_FONTPITCH), 0, cppu::UnoType<sal_Int16>::get(), 0, 0 }, 566 { OUString(UNO_NAME_EDIT_CHAR_POSTURE), 0, cppu::UnoType<css::awt::FontSlant>::get(),0, 0 }, 567 { OUString(UNO_NAME_EDIT_CHAR_WEIGHT), 0, cppu::UnoType<float>::get(), 0, 0 }, 568 { OUString(UNO_NAME_EDIT_CHAR_UNDERLINE), 0, cppu::UnoType<sal_Int16>::get(), 0, 0 }, 569 { OUString(UNO_NAME_EDIT_CHAR_STRIKEOUT), 0, cppu::UnoType<sal_Int16>::get(), 0, 0}, 570 { OUString(UNO_NAME_EDIT_CHAR_CASEMAP), 0, cppu::UnoType<sal_Int16>::get(), 0, 0 }, 571 { OUString(UNO_NAME_EDIT_CHAR_COLOR), 0, cppu::UnoType<sal_Int32>::get(), 0, 0 }, 572 { OUString("CharBackColor"), 0, cppu::UnoType<sal_Int32>::get(), 0, 0 }, 573 { OUString("CharBackTransparent"), 0, cppu::UnoType<bool>::get(), 0, 0 }, 574 { OUString("CharRelief"), 0, cppu::UnoType<sal_Int16>::get(), 0, 0 }, 575 { OUString("CharUnderlineColor"), 0, cppu::UnoType<sal_Int32>::get(), 0, 0 }, 576 { OUString("CharKerning"), 0, cppu::UnoType<sal_Int16>::get(), 0, 0 }, 577 { OUString("CharWordMode"), 0, cppu::UnoType<bool>::get(), 0, 0 }, 578 { OUString(UNO_NAME_EDIT_PARA_ADJUST), 0, cppu::UnoType<sal_Int16>::get(), 0, 0 }, 579 { OUString("TextVerticalAdjust"), 0, cppu::UnoType<TextVerticalAdjust>::get(), MAYBEVOID, 0 }, 580 { OUString("ControlBackground"), 0, cppu::UnoType<sal_Int32>::get(), 0, 0 }, 581 { OUString("ControlBorder"), 0, cppu::UnoType<sal_Int16>::get(), 0, 0 }, 582 { OUString("ControlBorderColor"), 0, cppu::UnoType<sal_Int32>::get(), 0, 0 }, 583 { OUString("ControlSymbolColor"), 0, cppu::UnoType<sal_Int16>::get(), 0, 0 }, 584 { OUString("ImageScaleMode"), 0, cppu::UnoType<sal_Int16>::get(), 0, 0 }, 585 { OUString(UNO_NAME_MISC_OBJ_MOVEPROTECT), SDRATTR_OBJMOVEPROTECT, cppu::UnoType<bool>::get(),0, 0}, 586 { OUString(UNO_NAME_MISC_OBJ_SIZEPROTECT), SDRATTR_OBJSIZEPROTECT, cppu::UnoType<bool>::get(),0, 0}, 587 { OUString("ControlTextEmphasis"), 0, cppu::UnoType<sal_Int16>::get(), 0, 0 }, 588 { OUString("ControlWritingMode"), 0, cppu::UnoType< sal_Int16 >::get(), 0, 0}, 589 // the following properties are handled by SvxShape 590 { OUString("Transformation"), OWN_ATTR_TRANSFORMATION , cppu::UnoType<css::drawing::HomogenMatrix3>::get(), 0, 0 }, 591 { OUString(UNO_NAME_MISC_OBJ_ZORDER), OWN_ATTR_ZORDER , cppu::UnoType<sal_Int32>::get(), 0, 0}, 592 { OUString(UNO_NAME_MISC_OBJ_LAYERID), SDRATTR_LAYERID , cppu::UnoType<sal_Int16>::get(), 0, 0}, 593 { OUString(UNO_NAME_MISC_OBJ_LAYERNAME),SDRATTR_LAYERNAME , cppu::UnoType<OUString>::get(), 0, 0}, 594 { OUString(UNO_NAME_LINKDISPLAYBITMAP), OWN_ATTR_LDBITMAP , cppu::UnoType<css::awt::XBitmap>::get(), css::beans::PropertyAttribute::READONLY, 0}, 595 { OUString(UNO_NAME_LINKDISPLAYNAME), OWN_ATTR_LDNAME , cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY, 0}, 596 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 597 {OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 598 { OUString(UNO_NAME_MISC_OBJ_BOUNDRECT), OWN_ATTR_BOUNDRECT, cppu::UnoType<css::awt::Rectangle>::get(), css::beans::PropertyAttribute::READONLY, 0}, 599 { OUString("UINameSingular"), OWN_ATTR_UINAME_SINGULAR , ::cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY, 0}, 600 // #i68101# 601 { OUString(UNO_NAME_MISC_OBJ_TITLE), OWN_ATTR_MISC_OBJ_TITLE , cppu::UnoType<OUString>::get(), 0, 0}, 602 { OUString(UNO_NAME_MISC_OBJ_DESCRIPTION), OWN_ATTR_MISC_OBJ_DESCRIPTION , cppu::UnoType<OUString>::get(), 0, 0}, 603 // #i112587# 604 { OUString(UNO_NAME_MISC_OBJ_PRINTABLE), SDRATTR_OBJPRINTABLE , cppu::UnoType<bool>::get(), 0, 0}, 605 { OUString("Visible"), SDRATTR_OBJVISIBLE , cppu::UnoType<bool>::get(), 0, 0}, 606 { OUString(UNO_NAME_MISC_OBJ_INTEROPGRABBAG), OWN_ATTR_INTEROPGRABBAG, cppu::UnoType<css::uno::Sequence< css::beans::PropertyValue >>::get(), 0, 0}, 607 { OUString(), 0, css::uno::Type(), 0, 0 } 608 }; 609 610 return aControlPropertyMap_Impl; 611 } 612 613 static SfxItemPropertyMapEntry const * ImplGetSvxPageShapePropertyMap() 614 { 615 static SfxItemPropertyMapEntry const aPageShapePropertyMap_Impl[] = 616 { 617 { OUString("PageNumber"), OWN_ATTR_PAGE_NUMBER , cppu::UnoType<sal_Int32>::get(), 0, 0}, 618 { OUString("Transformation"), OWN_ATTR_TRANSFORMATION , cppu::UnoType<css::drawing::HomogenMatrix3>::get(), 0, 0 }, 619 { OUString(UNO_NAME_MISC_OBJ_ZORDER), OWN_ATTR_ZORDER , cppu::UnoType<sal_Int32>::get(), 0, 0}, 620 { OUString(UNO_NAME_MISC_OBJ_LAYERID), SDRATTR_LAYERID , cppu::UnoType<sal_Int16>::get(), 0, 0}, 621 { OUString(UNO_NAME_MISC_OBJ_LAYERNAME),SDRATTR_LAYERNAME , cppu::UnoType<OUString>::get(), 0, 0}, 622 { OUString(UNO_NAME_LINKDISPLAYBITMAP), OWN_ATTR_LDBITMAP , cppu::UnoType<css::awt::XBitmap>::get(), css::beans::PropertyAttribute::READONLY, 0}, 623 { OUString(UNO_NAME_LINKDISPLAYNAME), OWN_ATTR_LDNAME , cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY, 0}, 624 { OUString(UNO_NAME_MISC_OBJ_MOVEPROTECT), SDRATTR_OBJMOVEPROTECT, cppu::UnoType<bool>::get(),0, 0}, 625 { OUString(UNO_NAME_MISC_OBJ_SIZEPROTECT), SDRATTR_OBJSIZEPROTECT, cppu::UnoType<bool>::get(),0, 0}, 626 { OUString(UNO_NAME_MISC_OBJ_BOUNDRECT), OWN_ATTR_BOUNDRECT, cppu::UnoType<css::awt::Rectangle>::get(), css::beans::PropertyAttribute::READONLY, 0}, 627 // #i68101# 628 { OUString(UNO_NAME_MISC_OBJ_TITLE), OWN_ATTR_MISC_OBJ_TITLE , cppu::UnoType<OUString>::get(), 0, 0}, 629 { OUString(UNO_NAME_MISC_OBJ_DESCRIPTION), OWN_ATTR_MISC_OBJ_DESCRIPTION , cppu::UnoType<OUString>::get(), 0, 0}, 630 { OUString(), 0, css::uno::Type(), 0, 0 } 631 }; 632 633 return aPageShapePropertyMap_Impl; 634 } 635 636 static SfxItemPropertyMapEntry const * ImplGetSvxCaptionPropertyMap() 637 { 638 static SfxItemPropertyMapEntry const aCaptionPropertyMap_Impl[] = 639 { 640 { OUString("CaptionPoint"), OWN_ATTR_CAPTION_POINT, cppu::UnoType<css::awt::Point>::get(), 0, 0 }, 641 { OUString("CaptionType"), SDRATTR_CAPTIONTYPE, cppu::UnoType<sal_Int16>::get(), 0, 0}, 642 { OUString("CaptionIsFixedAngle"), SDRATTR_CAPTIONFIXEDANGLE, cppu::UnoType<bool>::get(), 0, 0}, 643 { OUString("CaptionAngle"), SDRATTR_CAPTIONANGLE, cppu::UnoType<sal_Int32>::get(), 0, 0}, 644 { OUString("CaptionGap"), SDRATTR_CAPTIONGAP, cppu::UnoType<sal_Int32>::get(), 0, 0, PropertyMoreFlags::METRIC_ITEM}, 645 { OUString("CaptionEscapeDirection"), SDRATTR_CAPTIONESCDIR, cppu::UnoType<sal_Int32>::get(), 0, 0}, 646 { OUString("CaptionIsEscapeRelative"), SDRATTR_CAPTIONESCISREL, cppu::UnoType<bool>::get(), 0, 0}, 647 { OUString("CaptionEscapeRelative"), SDRATTR_CAPTIONESCREL, cppu::UnoType<sal_Int32>::get(), 0, 0}, 648 { OUString("CaptionEscapeAbsolute"), SDRATTR_CAPTIONESCABS, cppu::UnoType<sal_Int32>::get(), 0, 0, PropertyMoreFlags::METRIC_ITEM}, 649 { OUString("CaptionLineLength"), SDRATTR_CAPTIONLINELEN, cppu::UnoType<sal_Int32>::get(), 0, 0, PropertyMoreFlags::METRIC_ITEM}, 650 { OUString("CaptionIsFitLineLength"), SDRATTR_CAPTIONFITLINELEN, cppu::UnoType<bool>::get(), 0, 0}, 651 EDGERADIUS_PROPERTIES 652 FILL_PROPERTIES 653 LINE_PROPERTIES 654 LINE_PROPERTIES_START_END 655 SHAPE_DESCRIPTOR_PROPERTIES 656 MISC_OBJ_PROPERTIES 657 LINKTARGET_PROPERTIES 658 SHADOW_PROPERTIES 659 TEXT_PROPERTIES 660 // #FontWork# 661 FONTWORK_PROPERTIES 662 { OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 663 {OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 664 { OUString(), 0, css::uno::Type(), 0, 0 } 665 }; 666 667 return aCaptionPropertyMap_Impl; 668 } 669 670 static SfxItemPropertyMapEntry const * ImplGetSvxCustomShapePropertyMap() 671 { 672 static SfxItemPropertyMapEntry const aCustomShapePropertyMap_Impl[] = 673 { 674 { OUString("CustomShapeEngine"), SDRATTR_CUSTOMSHAPE_ENGINE, cppu::UnoType<OUString>::get(), 0, 0 }, 675 { OUString("CustomShapeData"), SDRATTR_CUSTOMSHAPE_DATA, cppu::UnoType<OUString>::get(), 0, 0 }, 676 { OUString("CustomShapeGeometry"), SDRATTR_CUSTOMSHAPE_GEOMETRY, 677 cppu::UnoType<css::uno::Sequence< css::beans::PropertyValue >>::get(), 0, 0 }, 678 FILL_PROPERTIES 679 LINE_PROPERTIES 680 LINE_PROPERTIES_START_END 681 SHAPE_DESCRIPTOR_PROPERTIES 682 MISC_OBJ_PROPERTIES 683 LINKTARGET_PROPERTIES 684 SHADOW_PROPERTIES 685 TEXT_PROPERTIES 686 {OUString("UserDefinedAttributes"), SDRATTR_XMLATTRIBUTES, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 687 {OUString("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, cppu::UnoType<css::container::XNameContainer>::get(), 0, 0}, 688 { OUString(), 0, css::uno::Type(), 0, 0 } 689 }; 690 return aCustomShapePropertyMap_Impl; 691 } 692 693 static SfxItemPropertyMapEntry const * ImplGetSvxMediaShapePropertyMap() 694 { 695 static SfxItemPropertyMapEntry const aMediaShapePropertyMap_Impl[] = 696 { 697 { OUString(UNO_NAME_MISC_OBJ_ZORDER), OWN_ATTR_ZORDER, cppu::UnoType<sal_Int32>::get(), 0, 0}, 698 { OUString(UNO_NAME_MISC_OBJ_LAYERID), SDRATTR_LAYERID, cppu::UnoType<sal_Int16>::get(), 0, 0}, 699 { OUString(UNO_NAME_MISC_OBJ_LAYERNAME), SDRATTR_LAYERNAME, cppu::UnoType<OUString>::get(), 0, 0}, 700 { OUString(UNO_NAME_LINKDISPLAYBITMAP), OWN_ATTR_LDBITMAP, cppu::UnoType<css::awt::XBitmap>::get(), css::beans::PropertyAttribute::READONLY, 0}, 701 { OUString(UNO_NAME_LINKDISPLAYNAME), OWN_ATTR_LDNAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY, 0}, 702 { OUString("Transformation"), OWN_ATTR_TRANSFORMATION, cppu::UnoType<css::drawing::HomogenMatrix3>::get(), 0, 0 }, 703 { OUString("MediaURL"), OWN_ATTR_MEDIA_URL, cppu::UnoType<OUString>::get(), 0, 0}, 704 { OUString("PreferredSize"), OWN_ATTR_MEDIA_PREFERREDSIZE, cppu::UnoType<css::awt::Size>::get(), css::beans::PropertyAttribute::READONLY, 0}, 705 { OUString("Loop"), OWN_ATTR_MEDIA_LOOP, cppu::UnoType<sal_Bool>::get(), 0, 0}, 706 { OUString("Mute"), OWN_ATTR_MEDIA_MUTE, cppu::UnoType<sal_Bool>::get(), 0, 0}, 707 { OUString("VolumeDB"), OWN_ATTR_MEDIA_VOLUMEDB, cppu::UnoType<sal_Int16>::get(), 0, 0}, 708 { OUString("Zoom"), OWN_ATTR_MEDIA_ZOOM, cppu::UnoType<css::media::ZoomLevel>::get(), 0, 0}, 709 { OUString(UNO_NAME_MISC_OBJ_MOVEPROTECT), SDRATTR_OBJMOVEPROTECT, cppu::UnoType<bool>::get(),0, 0}, 710 { OUString(UNO_NAME_MISC_OBJ_SIZEPROTECT), SDRATTR_OBJSIZEPROTECT, cppu::UnoType<bool>::get(),0, 0}, 711 { OUString(UNO_NAME_MISC_OBJ_BOUNDRECT), OWN_ATTR_BOUNDRECT, cppu::UnoType<css::awt::Rectangle>::get(), css::beans::PropertyAttribute::READONLY, 0}, 712 { OUString("UINameSingular"), OWN_ATTR_UINAME_SINGULAR , ::cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY, 0}, 713 // #i68101# 714 { OUString(UNO_NAME_MISC_OBJ_TITLE), OWN_ATTR_MISC_OBJ_TITLE , cppu::UnoType<OUString>::get(), 0, 0}, 715 { OUString(UNO_NAME_MISC_OBJ_DESCRIPTION), OWN_ATTR_MISC_OBJ_DESCRIPTION , cppu::UnoType<OUString>::get(), 0, 0}, 716 {OUString("PrivateStream"), OWN_ATTR_MEDIA_STREAM, cppu::UnoType<css::io::XInputStream>::get(), 0, 0}, 717 {OUString("PrivateTempFileURL"), OWN_ATTR_MEDIA_TEMPFILEURL, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY, 0}, 718 { OUString("MediaMimeType"), OWN_ATTR_MEDIA_MIMETYPE, cppu::UnoType<OUString>::get(), 0, 0}, 719 { OUString("FallbackGraphic"), OWN_ATTR_FALLBACK_GRAPHIC, cppu::UnoType<css::graphic::XGraphic>::get(), css::beans::PropertyAttribute::READONLY, 0}, 720 { OUString(), 0, css::uno::Type(), 0, 0 } 721 }; 722 723 return aMediaShapePropertyMap_Impl; 724 } 725 726 static SfxItemPropertyMapEntry const * ImplGetSvxTableShapePropertyMap() 727 { 728 static SfxItemPropertyMapEntry const aTableShapePropertyMap_Impl[] = 729 { 730 { OUString(UNO_NAME_MISC_OBJ_ZORDER), OWN_ATTR_ZORDER, cppu::UnoType<sal_Int32>::get(), 0, 0}, 731 { OUString(UNO_NAME_MISC_OBJ_LAYERID), SDRATTR_LAYERID, cppu::UnoType<sal_Int16>::get(), 0, 0}, 732 { OUString(UNO_NAME_MISC_OBJ_LAYERNAME), SDRATTR_LAYERNAME, cppu::UnoType<OUString>::get(), 0, 0}, 733 { OUString(UNO_NAME_LINKDISPLAYBITMAP), OWN_ATTR_LDBITMAP, cppu::UnoType<css::awt::XBitmap>::get(), css::beans::PropertyAttribute::READONLY, 0}, 734 { OUString(UNO_NAME_LINKDISPLAYNAME), OWN_ATTR_LDNAME, cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY, 0}, 735 { OUString("Transformation"), OWN_ATTR_TRANSFORMATION, cppu::UnoType<css::drawing::HomogenMatrix3>::get(), 0, 0 }, 736 { OUString(UNO_NAME_MISC_OBJ_MOVEPROTECT), SDRATTR_OBJMOVEPROTECT, cppu::UnoType<bool>::get(),0, 0}, 737 { OUString(UNO_NAME_MISC_OBJ_SIZEPROTECT), SDRATTR_OBJSIZEPROTECT, cppu::UnoType<bool>::get(),0, 0}, 738 { OUString(UNO_NAME_MISC_OBJ_BOUNDRECT), OWN_ATTR_BOUNDRECT, cppu::UnoType<css::awt::Rectangle>::get(), css::beans::PropertyAttribute::READONLY, 0}, 739 { OUString(UNO_NAME_MISC_OBJ_NAME), SDRATTR_OBJECTNAME, cppu::UnoType<OUString>::get(), 0, 0}, 740 { OUString("UINameSingular"), OWN_ATTR_UINAME_SINGULAR , ::cppu::UnoType<OUString>::get(), css::beans::PropertyAttribute::READONLY, 0}, 741 { OUString(UNO_NAME_MISC_OBJ_TITLE), OWN_ATTR_MISC_OBJ_TITLE , cppu::UnoType<OUString>::get(), 0, 0}, 742 { OUString(UNO_NAME_MISC_OBJ_DESCRIPTION), OWN_ATTR_MISC_OBJ_DESCRIPTION , cppu::UnoType<OUString>::get(), 0, 0}, 743 { OUString("Model"), OWN_ATTR_OLEMODEL , cppu::UnoType<css::table::XTable>::get(), css::beans::PropertyAttribute::READONLY, 0}, 744 { OUString("TableTemplate"), OWN_ATTR_TABLETEMPLATE , cppu::UnoType<css::container::XIndexAccess>::get(), 0, 0}, 745 { OUString("UseFirstRowStyle"), OWN_ATTR_TABLETEMPLATE_FIRSTROW, cppu::UnoType<bool>::get(),0, 0}, 746 { OUString("UseLastRowStyle"), OWN_ATTR_TABLETEMPLATE_LASTROW, cppu::UnoType<bool>::get(),0, 0}, 747 { OUString("UseFirstColumnStyle"), OWN_ATTR_TABLETEMPLATE_FIRSTCOLUMN, cppu::UnoType<bool>::get(),0, 0}, 748 { OUString("UseLastColumnStyle"), OWN_ATTR_TABLETEMPLATE_LASTCOLUMN, cppu::UnoType<bool>::get(),0, 0}, 749 { OUString("UseBandingRowStyle"), OWN_ATTR_TABLETEMPLATE_BANDINGROWS, cppu::UnoType<bool>::get(),0, 0}, 750 { OUString("UseBandingColumnStyle"), OWN_ATTR_TABLETEMPLATE_BANDINGCOULUMNS, cppu::UnoType<bool>::get(),0, 0}, 751 { OUString("ReplacementGraphic"), OWN_ATTR_REPLACEMENT_GRAPHIC, cppu::UnoType<css::graphic::XGraphic>::get(), css::beans::PropertyAttribute::READONLY, 0}, 752 { OUString(), 0, css::uno::Type(), 0, 0 } 753 }; 754 755 return aTableShapePropertyMap_Impl; 756 } 757 758 static comphelper::PropertyMapEntry const * ImplGetSvxDrawingDefaultsPropertyMap() 759 { 760 static comphelper::PropertyMapEntry const aSvxDrawingDefaultsPropertyMap_Impl[] = 761 { 762 SHADOW_PROPERTIES 763 LINE_PROPERTIES_DEFAULTS 764 FILL_PROPERTIES_BMP 765 FILL_PROPERTIES_DEFAULTS 766 EDGERADIUS_PROPERTIES 767 TEXT_PROPERTIES_DEFAULTS 768 CONNECTOR_PROPERTIES 769 SPECIAL_DIMENSIONING_PROPERTIES_DEFAULTS 770 MISC_3D_OBJ_PROPERTIES 771 SPECIAL_3DBACKSCALE_PROPERTIES 772 { OUString(), 0, css::uno::Type(), 0, 0 } 773 }; 774 775 return aSvxDrawingDefaultsPropertyMap_Impl; 776 } 777 778 static comphelper::PropertyMapEntry const * ImplGetAdditionalWriterDrawingDefaultsPropertyMap() 779 { 780 static comphelper::PropertyMapEntry const aSvxAdditionalDefaultsPropertyMap_Impl[] = 781 { 782 { OUString("IsFollowingTextFlow"), SID_SW_FOLLOW_TEXT_FLOW, cppu::UnoType<bool>::get(), 0, 0}, 783 { OUString(), 0, css::uno::Type(), 0, 0 } 784 }; 785 786 return aSvxAdditionalDefaultsPropertyMap_Impl; 787 } 788 789 typedef std::unordered_map< OUString, sal_uInt32 > UHashMapImpl; 790 791 namespace { 792 793 const UHashMapImpl& GetUHashImpl() 794 { 795 static UHashMapImpl const aImpl 796 { 797 { "com.sun.star.drawing.RectangleShape", OBJ_RECT }, 798 { "com.sun.star.drawing.EllipseShape", OBJ_CIRC }, 799 { "com.sun.star.drawing.ControlShape", OBJ_UNO }, 800 { "com.sun.star.drawing.ConnectorShape", OBJ_EDGE }, 801 { "com.sun.star.drawing.MeasureShape", OBJ_MEASURE }, 802 { "com.sun.star.drawing.LineShape", OBJ_LINE }, 803 { "com.sun.star.drawing.PolyPolygonShape", OBJ_POLY }, 804 { "com.sun.star.drawing.PolyLineShape", OBJ_PLIN }, 805 { "com.sun.star.drawing.OpenBezierShape", OBJ_PATHLINE }, 806 { "com.sun.star.drawing.ClosedBezierShape", OBJ_PATHFILL }, 807 { "com.sun.star.drawing.OpenFreeHandShape", OBJ_FREELINE }, 808 { "com.sun.star.drawing.ClosedFreeHandShape", OBJ_FREEFILL }, 809 { "com.sun.star.drawing.PolyPolygonPathShape", OBJ_PATHPOLY }, 810 { "com.sun.star.drawing.PolyLinePathShape", OBJ_PATHPLIN }, 811 { "com.sun.star.drawing.GraphicObjectShape", OBJ_GRAF }, 812 { "com.sun.star.drawing.GroupShape", OBJ_GRUP }, 813 { "com.sun.star.drawing.TextShape", OBJ_TEXT }, 814 { "com.sun.star.drawing.OLE2Shape", OBJ_OLE2 }, 815 { "com.sun.star.drawing.PageShape", OBJ_PAGE }, 816 { "com.sun.star.drawing.CaptionShape", OBJ_CAPTION }, 817 { "com.sun.star.drawing.FrameShape", OBJ_FRAME }, 818 { "com.sun.star.drawing.PluginShape", OBJ_OLE2_PLUGIN }, 819 { "com.sun.star.drawing.AppletShape", OBJ_OLE2_APPLET }, 820 { "com.sun.star.drawing.CustomShape", OBJ_CUSTOMSHAPE }, 821 { "com.sun.star.drawing.MediaShape", OBJ_MEDIA }, 822 823 { "com.sun.star.drawing.Shape3DSceneObject", E3D_SCENE_ID | E3D_INVENTOR_FLAG }, 824 { "com.sun.star.drawing.Shape3DCubeObject", E3D_CUBEOBJ_ID | E3D_INVENTOR_FLAG }, 825 { "com.sun.star.drawing.Shape3DSphereObject", E3D_SPHEREOBJ_ID | E3D_INVENTOR_FLAG }, 826 { "com.sun.star.drawing.Shape3DLatheObject", E3D_LATHEOBJ_ID | E3D_INVENTOR_FLAG }, 827 { "com.sun.star.drawing.Shape3DExtrudeObject", E3D_EXTRUDEOBJ_ID | E3D_INVENTOR_FLAG }, 828 { "com.sun.star.drawing.Shape3DPolygonObject", E3D_POLYGONOBJ_ID | E3D_INVENTOR_FLAG }, 829 }; 830 831 return aImpl; 832 } 833 834 } 835 836 837 OUString UHashMap::getNameFromId(sal_uInt32 nId) 838 { 839 const UHashMapImpl &rMap = GetUHashImpl(); 840 841 auto it = std::find_if(rMap.begin(), rMap.end(), 842 [nId](const UHashMapImpl::value_type& rEntry) { return rEntry.second == nId; }); 843 if (it != rMap.end()) 844 return it->first; 845 OSL_FAIL("[CL] unknown SdrObject identifier"); 846 return OUString(); 847 } 848 849 uno::Sequence< OUString > UHashMap::getServiceNames() 850 { 851 return comphelper::mapKeysToSequence( GetUHashImpl() ); 852 } 853 854 sal_uInt32 UHashMap::getId( const OUString& rCompareString ) 855 { 856 const UHashMapImpl &rMap = GetUHashImpl(); 857 UHashMapImpl::const_iterator it = rMap.find( rCompareString ); 858 if( it == rMap.end() ) 859 return UHASHMAP_NOTFOUND; 860 else 861 return it->second; 862 } 863 864 namespace { 865 866 struct theSvxMapProvider : 867 public rtl::Static<SvxUnoPropertyMapProvider, theSvxMapProvider> 868 { 869 }; 870 871 } 872 873 SvxUnoPropertyMapProvider& getSvxMapProvider() 874 { 875 return theSvxMapProvider::get(); 876 } 877 878 879 SvxUnoPropertyMapProvider::SvxUnoPropertyMapProvider() 880 { 881 for(sal_uInt16 i=0;i<SVXMAP_END; i++) 882 { 883 aSetArr[i] = nullptr; 884 aMapArr[i] = nullptr; 885 } 886 } 887 888 SvxUnoPropertyMapProvider::~SvxUnoPropertyMapProvider() 889 { 890 } 891 892 893 const SfxItemPropertyMapEntry* SvxUnoPropertyMapProvider::GetMap(sal_uInt16 nPropertyId) 894 { 895 DBG_ASSERT(nPropertyId < SVXMAP_END, "Id ?" ); 896 if(!aMapArr[nPropertyId]) { 897 switch(nPropertyId) { 898 case SVXMAP_SHAPE: aMapArr[SVXMAP_SHAPE]=ImplGetSvxShapePropertyMap(); break; 899 case SVXMAP_CONNECTOR: aMapArr[SVXMAP_CONNECTOR]=ImplGetSvxConnectorPropertyMap(); break; 900 case SVXMAP_DIMENSIONING: aMapArr[SVXMAP_DIMENSIONING]=ImplGetSvxDimensioningPropertyMap(); break; 901 case SVXMAP_CIRCLE: aMapArr[SVXMAP_CIRCLE]=ImplGetSvxCirclePropertyMap(); break; 902 case SVXMAP_POLYPOLYGON: aMapArr[SVXMAP_POLYPOLYGON]=ImplGetSvxPolyPolygonPropertyMap(); break; 903 case SVXMAP_GRAPHICOBJECT: aMapArr[SVXMAP_GRAPHICOBJECT]=ImplGetSvxGraphicObjectPropertyMap(); break; 904 case SVXMAP_3DSCENEOBJECT: aMapArr[SVXMAP_3DSCENEOBJECT]=ImplGetSvx3DSceneObjectPropertyMap(); break; 905 case SVXMAP_3DCUBEOBJECT: aMapArr[SVXMAP_3DCUBEOBJECT]=ImplGetSvx3DCubeObjectPropertyMap(); break; 906 case SVXMAP_3DSPHEREOBJECT: aMapArr[SVXMAP_3DSPHEREOBJECT]=ImplGetSvx3DSphereObjectPropertyMap(); break; 907 case SVXMAP_3DLATHEOBJECT: aMapArr[SVXMAP_3DLATHEOBJECT]=ImplGetSvx3DLatheObjectPropertyMap(); break; 908 case SVXMAP_3DEXTRUDEOBJECT: aMapArr[SVXMAP_3DEXTRUDEOBJECT]=ImplGetSvx3DExtrudeObjectPropertyMap(); break; 909 case SVXMAP_3DPOLYGONOBJECT: aMapArr[SVXMAP_3DPOLYGONOBJECT]=ImplGetSvx3DPolygonObjectPropertyMap(); break; 910 case SVXMAP_ALL: aMapArr[SVXMAP_ALL]=ImplGetSvxAllPropertyMap(); break; 911 case SVXMAP_GROUP: aMapArr[SVXMAP_GROUP]=ImplGetSvxGroupPropertyMap(); break; 912 case SVXMAP_CAPTION: aMapArr[SVXMAP_CAPTION]=ImplGetSvxCaptionPropertyMap(); break; 913 case SVXMAP_OLE2: aMapArr[SVXMAP_OLE2]=ImplGetSvxOle2PropertyMap(); break; 914 case SVXMAP_PLUGIN: aMapArr[SVXMAP_PLUGIN]=ImplGetSvxPluginPropertyMap(); break; 915 case SVXMAP_FRAME: aMapArr[SVXMAP_FRAME]=ImplGetSvxFramePropertyMap(); break; 916 case SVXMAP_APPLET: aMapArr[SVXMAP_APPLET]=ImplGetSvxAppletPropertyMap(); break; 917 case SVXMAP_CONTROL: aMapArr[SVXMAP_CONTROL]=ImplGetSvxControlShapePropertyMap(); break; 918 case SVXMAP_TEXT: aMapArr[SVXMAP_TEXT]=ImplGetSvxTextShapePropertyMap(); break; 919 case SVXMAP_CUSTOMSHAPE: aMapArr[SVXMAP_CUSTOMSHAPE]=ImplGetSvxCustomShapePropertyMap(); break; 920 case SVXMAP_MEDIA: aMapArr[SVXMAP_MEDIA]=ImplGetSvxMediaShapePropertyMap(); break; 921 case SVXMAP_TABLE: aMapArr[SVXMAP_TABLE]=ImplGetSvxTableShapePropertyMap(); break; 922 case SVXMAP_PAGE: aMapArr[SVXMAP_PAGE] = ImplGetSvxPageShapePropertyMap(); break; 923 924 default: 925 OSL_FAIL( "Unknown property map for SvxUnoPropertyMapProvider!" ); 926 } 927 // Sort(nPropertyId); 928 } 929 return aMapArr[nPropertyId]; 930 } 931 const SvxItemPropertySet* SvxUnoPropertyMapProvider::GetPropertySet(sal_uInt16 nPropertyId, SfxItemPool& rPool) 932 { 933 if( !aSetArr[nPropertyId] ) 934 aSetArr[nPropertyId].reset(new SvxItemPropertySet( GetMap( nPropertyId ), rPool )); 935 return aSetArr[nPropertyId].get(); 936 } 937 938 /** maps the vcl MapUnit enum to an API constant MeasureUnit. 939 Returns false if conversion is not supported. 940 */ 941 bool SvxMapUnitToMeasureUnit( const MapUnit eVcl, short& eApi ) throw() 942 { 943 switch( eVcl ) 944 { 945 case MapUnit::Map100thMM: eApi = util::MeasureUnit::MM_100TH; break; 946 case MapUnit::Map10thMM: eApi = util::MeasureUnit::MM_10TH; break; 947 case MapUnit::MapMM: eApi = util::MeasureUnit::MM; break; 948 case MapUnit::MapCM: eApi = util::MeasureUnit::CM; break; 949 case MapUnit::Map1000thInch: eApi = util::MeasureUnit::INCH_1000TH; break; 950 case MapUnit::Map100thInch: eApi = util::MeasureUnit::INCH_100TH; break; 951 case MapUnit::Map10thInch: eApi = util::MeasureUnit::INCH_10TH; break; 952 case MapUnit::MapInch: eApi = util::MeasureUnit::INCH; break; 953 case MapUnit::MapPoint: eApi = util::MeasureUnit::POINT; break; 954 case MapUnit::MapTwip: eApi = util::MeasureUnit::TWIP; break; 955 case MapUnit::MapRelative: eApi = util::MeasureUnit::PERCENT; break; 956 default: 957 return false; 958 } 959 960 return true; 961 } 962 963 /** maps the API constant MeasureUnit to a vcl MapUnit enum. 964 Returns false if conversion is not supported. 965 */ 966 967 bool SvxMeasureUnitToFieldUnit( const short eApi, FieldUnit& eVcl ) throw() 968 { 969 switch( eApi ) 970 { 971 case util::MeasureUnit::MM: eVcl = FieldUnit::MM; break; 972 case util::MeasureUnit::CM: eVcl = FieldUnit::CM; break; 973 case util::MeasureUnit::M: eVcl = FieldUnit::M; break; 974 case util::MeasureUnit::KM: eVcl = FieldUnit::KM; break; 975 case util::MeasureUnit::TWIP: eVcl = FieldUnit::TWIP; break; 976 case util::MeasureUnit::POINT: eVcl = FieldUnit::POINT; break; 977 case util::MeasureUnit::PICA: eVcl = FieldUnit::PICA; break; 978 case util::MeasureUnit::INCH: eVcl = FieldUnit::INCH; break; 979 case util::MeasureUnit::FOOT: eVcl = FieldUnit::FOOT; break; 980 case util::MeasureUnit::MILE: eVcl = FieldUnit::MILE; break; 981 case util::MeasureUnit::PERCENT: eVcl = FieldUnit::PERCENT; break; 982 case util::MeasureUnit::MM_100TH: eVcl = FieldUnit::MM_100TH; break; 983 default: 984 return false; 985 } 986 987 return true; 988 } 989 990 /** maps the vcl MapUnit enum to an API constant MeasureUnit. 991 Returns false if conversion is not supported. 992 */ 993 bool SvxFieldUnitToMeasureUnit( const FieldUnit eVcl, short& eApi ) throw() 994 { 995 switch( eVcl ) 996 { 997 case FieldUnit::MM: eApi = util::MeasureUnit::MM; break; 998 case FieldUnit::CM: eApi = util::MeasureUnit::CM; break; 999 case FieldUnit::M: eApi = util::MeasureUnit::M; break; 1000 case FieldUnit::KM: eApi = util::MeasureUnit::KM; break; 1001 case FieldUnit::TWIP: eApi = util::MeasureUnit::TWIP; break; 1002 case FieldUnit::POINT: eApi = util::MeasureUnit::POINT; break; 1003 case FieldUnit::PICA: eApi = util::MeasureUnit::PICA; break; 1004 case FieldUnit::INCH: eApi = util::MeasureUnit::INCH; break; 1005 case FieldUnit::FOOT: eApi = util::MeasureUnit::FOOT; break; 1006 case FieldUnit::MILE: eApi = util::MeasureUnit::MILE; break; 1007 case FieldUnit::PERCENT: eApi = util::MeasureUnit::PERCENT; break; 1008 case FieldUnit::MM_100TH: eApi = util::MeasureUnit::MM_100TH; break; 1009 default: 1010 return false; 1011 } 1012 1013 return true; 1014 } 1015 1016 static const char* RID_SVXSTR_BMP_DEF[] = 1017 { 1018 RID_SVXSTR_BMP0_DEF, 1019 RID_SVXSTR_BMP1_DEF, 1020 RID_SVXSTR_BMP2_DEF, 1021 RID_SVXSTR_BMP3_DEF, 1022 RID_SVXSTR_BMP4_DEF, 1023 RID_SVXSTR_BMP5_DEF, 1024 RID_SVXSTR_BMP6_DEF, 1025 RID_SVXSTR_BMP7_DEF, 1026 RID_SVXSTR_BMP8_DEF, 1027 RID_SVXSTR_BMP9_DEF, 1028 RID_SVXSTR_BMP10_DEF, 1029 RID_SVXSTR_BMP11_DEF, 1030 RID_SVXSTR_BMP12_DEF, 1031 RID_SVXSTR_BMP13_DEF, 1032 RID_SVXSTR_BMP14_DEF, 1033 RID_SVXSTR_BMP15_DEF, 1034 RID_SVXSTR_BMP16_DEF, 1035 RID_SVXSTR_BMP17_DEF, 1036 RID_SVXSTR_BMP18_DEF, 1037 RID_SVXSTR_BMP19_DEF, 1038 RID_SVXSTR_BMP20_DEF, 1039 RID_SVXSTR_BMP21_DEF, 1040 RID_SVXSTR_BMP22_DEF, 1041 RID_SVXSTR_BMP23_DEF, 1042 RID_SVXSTR_BMP24_DEF, 1043 RID_SVXSTR_BMP25_DEF, 1044 RID_SVXSTR_BMP26_DEF, 1045 RID_SVXSTR_BMP27_DEF, 1046 RID_SVXSTR_BMP28_DEF, 1047 RID_SVXSTR_BMP29_DEF, 1048 RID_SVXSTR_BMP30_DEF, 1049 RID_SVXSTR_BMP31_DEF, 1050 RID_SVXSTR_BMP32_DEF, 1051 RID_SVXSTR_BMP33_DEF, 1052 RID_SVXSTR_BMP34_DEF, 1053 RID_SVXSTR_BMP35_DEF, 1054 RID_SVXSTR_BMP36_DEF, 1055 RID_SVXSTR_BMP37_DEF, 1056 RID_SVXSTR_BMP38_DEF, 1057 RID_SVXSTR_BMP39_DEF, 1058 RID_SVXSTR_BMP40_DEF, 1059 RID_SVXSTR_BMP41_DEF, 1060 RID_SVXSTR_BMP42_DEF, 1061 RID_SVXSTR_BMP43_DEF, 1062 RID_SVXSTR_BMP44_DEF, 1063 RID_SVXSTR_BMP45_DEF, 1064 RID_SVXSTR_BMP46_DEF, 1065 RID_SVXSTR_BMP47_DEF, 1066 RID_SVXSTR_BMP48_DEF, 1067 RID_SVXSTR_BMP49_DEF, 1068 RID_SVXSTR_BMP50_DEF, 1069 RID_SVXSTR_BMP51_DEF, 1070 RID_SVXSTR_BMP52_DEF, 1071 RID_SVXSTR_BMP53_DEF, 1072 RID_SVXSTR_BMP54_DEF, 1073 RID_SVXSTR_BMP55_DEF, 1074 RID_SVXSTR_BMP56_DEF, 1075 RID_SVXSTR_BMP57_DEF, 1076 RID_SVXSTR_BMP58_DEF, 1077 RID_SVXSTR_BMP59_DEF, 1078 RID_SVXSTR_BMP60_DEF, 1079 RID_SVXSTR_BMP61_DEF, 1080 RID_SVXSTR_BMP62_DEF, 1081 RID_SVXSTR_BMP63_DEF, 1082 RID_SVXSTR_BMP64_DEF, 1083 RID_SVXSTR_BMP65_DEF, 1084 RID_SVXSTR_BMP66_DEF, 1085 RID_SVXSTR_BMP67_DEF, 1086 RID_SVXSTR_BMP68_DEF, 1087 RID_SVXSTR_BMP69_DEF, 1088 RID_SVXSTR_BMP70_DEF, 1089 RID_SVXSTR_BMP71_DEF, 1090 RID_SVXSTR_BMP72_DEF, 1091 RID_SVXSTR_BMP73_DEF, 1092 RID_SVXSTR_BMP74_DEF, 1093 RID_SVXSTR_BMP75_DEF 1094 }; 1095 1096 static const char* RID_SVXSTR_BMP[] = 1097 { 1098 RID_SVXSTR_BMP0, 1099 RID_SVXSTR_BMP1, 1100 RID_SVXSTR_BMP2, 1101 RID_SVXSTR_BMP3, 1102 RID_SVXSTR_BMP4, 1103 RID_SVXSTR_BMP5, 1104 RID_SVXSTR_BMP6, 1105 RID_SVXSTR_BMP7, 1106 RID_SVXSTR_BMP8, 1107 RID_SVXSTR_BMP9, 1108 RID_SVXSTR_BMP10, 1109 RID_SVXSTR_BMP11, 1110 RID_SVXSTR_BMP12, 1111 RID_SVXSTR_BMP13, 1112 RID_SVXSTR_BMP14, 1113 RID_SVXSTR_BMP15, 1114 RID_SVXSTR_BMP16, 1115 RID_SVXSTR_BMP17, 1116 RID_SVXSTR_BMP18, 1117 RID_SVXSTR_BMP19, 1118 RID_SVXSTR_BMP20, 1119 RID_SVXSTR_BMP21, 1120 RID_SVXSTR_BMP22, 1121 RID_SVXSTR_BMP23, 1122 RID_SVXSTR_BMP24, 1123 RID_SVXSTR_BMP25, 1124 RID_SVXSTR_BMP26, 1125 RID_SVXSTR_BMP27, 1126 RID_SVXSTR_BMP28, 1127 RID_SVXSTR_BMP29, 1128 RID_SVXSTR_BMP30, 1129 RID_SVXSTR_BMP31, 1130 RID_SVXSTR_BMP32, 1131 RID_SVXSTR_BMP33, 1132 RID_SVXSTR_BMP34, 1133 RID_SVXSTR_BMP35, 1134 RID_SVXSTR_BMP36, 1135 RID_SVXSTR_BMP37, 1136 RID_SVXSTR_BMP38, 1137 RID_SVXSTR_BMP39, 1138 RID_SVXSTR_BMP40, 1139 RID_SVXSTR_BMP41, 1140 RID_SVXSTR_BMP42, 1141 RID_SVXSTR_BMP43, 1142 RID_SVXSTR_BMP44, 1143 RID_SVXSTR_BMP45, 1144 RID_SVXSTR_BMP46, 1145 RID_SVXSTR_BMP47, 1146 RID_SVXSTR_BMP48, 1147 RID_SVXSTR_BMP49, 1148 RID_SVXSTR_BMP50, 1149 RID_SVXSTR_BMP51, 1150 RID_SVXSTR_BMP52, 1151 RID_SVXSTR_BMP53, 1152 RID_SVXSTR_BMP54, 1153 RID_SVXSTR_BMP55, 1154 RID_SVXSTR_BMP56, 1155 RID_SVXSTR_BMP57, 1156 RID_SVXSTR_BMP58, 1157 RID_SVXSTR_BMP59, 1158 RID_SVXSTR_BMP60, 1159 RID_SVXSTR_BMP61, 1160 RID_SVXSTR_BMP62, 1161 RID_SVXSTR_BMP63, 1162 RID_SVXSTR_BMP64, 1163 RID_SVXSTR_BMP65, 1164 RID_SVXSTR_BMP66, 1165 RID_SVXSTR_BMP67, 1166 RID_SVXSTR_BMP68, 1167 RID_SVXSTR_BMP69, 1168 RID_SVXSTR_BMP70, 1169 RID_SVXSTR_BMP71, 1170 RID_SVXSTR_BMP72, 1171 RID_SVXSTR_BMP73, 1172 RID_SVXSTR_BMP74, 1173 RID_SVXSTR_BMP75 1174 }; 1175 1176 static const char* RID_SVXSTR_DASH_DEF[] = 1177 { 1178 RID_SVXSTR_DASH0_DEF, 1179 RID_SVXSTR_DASH1_DEF, 1180 RID_SVXSTR_DASH2_DEF, 1181 RID_SVXSTR_DASH3_DEF, 1182 RID_SVXSTR_DASH4_DEF, 1183 RID_SVXSTR_DASH5_DEF, 1184 RID_SVXSTR_DASH6_DEF, 1185 RID_SVXSTR_DASH7_DEF, 1186 RID_SVXSTR_DASH8_DEF, 1187 RID_SVXSTR_DASH9_DEF, 1188 RID_SVXSTR_DASH10_DEF, 1189 RID_SVXSTR_DASH11_DEF, 1190 RID_SVXSTR_DASH12_DEF 1191 }; 1192 1193 static const char* RID_SVXSTR_DASH[] = 1194 { 1195 RID_SVXSTR_DASH0, 1196 RID_SVXSTR_DASH1, 1197 RID_SVXSTR_DASH2, 1198 RID_SVXSTR_DASH3, 1199 RID_SVXSTR_DASH4, 1200 RID_SVXSTR_DASH5, 1201 RID_SVXSTR_DASH6, 1202 RID_SVXSTR_DASH7, 1203 RID_SVXSTR_DASH8, 1204 RID_SVXSTR_DASH9, 1205 RID_SVXSTR_DASH10, 1206 RID_SVXSTR_DASH11, 1207 RID_SVXSTR_DASH12 1208 }; 1209 1210 static const char* RID_SVXSTR_LEND_DEF[] = 1211 { 1212 RID_SVXSTR_LEND0_DEF, 1213 RID_SVXSTR_LEND1_DEF, 1214 RID_SVXSTR_LEND2_DEF, 1215 RID_SVXSTR_LEND3_DEF, 1216 RID_SVXSTR_LEND4_DEF, 1217 RID_SVXSTR_LEND5_DEF, 1218 RID_SVXSTR_LEND6_DEF, 1219 RID_SVXSTR_LEND7_DEF, 1220 RID_SVXSTR_LEND8_DEF, 1221 RID_SVXSTR_LEND9_DEF, 1222 RID_SVXSTR_LEND10_DEF, 1223 RID_SVXSTR_LEND11_DEF, 1224 RID_SVXSTR_LEND12_DEF, 1225 RID_SVXSTR_LEND13_DEF, 1226 RID_SVXSTR_LEND14_DEF, 1227 RID_SVXSTR_LEND15_DEF, 1228 RID_SVXSTR_LEND16_DEF, 1229 RID_SVXSTR_LEND17_DEF, 1230 RID_SVXSTR_LEND18_DEF, 1231 RID_SVXSTR_LEND19_DEF, 1232 RID_SVXSTR_LEND20_DEF 1233 }; 1234 1235 static const char* RID_SVXSTR_LEND[] = 1236 { 1237 RID_SVXSTR_LEND0, 1238 RID_SVXSTR_LEND1, 1239 RID_SVXSTR_LEND2, 1240 RID_SVXSTR_LEND3, 1241 RID_SVXSTR_LEND4, 1242 RID_SVXSTR_LEND5, 1243 RID_SVXSTR_LEND6, 1244 RID_SVXSTR_LEND7, 1245 RID_SVXSTR_LEND8, 1246 RID_SVXSTR_LEND9, 1247 RID_SVXSTR_LEND10, 1248 RID_SVXSTR_LEND11, 1249 RID_SVXSTR_LEND12, 1250 RID_SVXSTR_LEND13, 1251 RID_SVXSTR_LEND14, 1252 RID_SVXSTR_LEND15, 1253 RID_SVXSTR_LEND16, 1254 RID_SVXSTR_LEND17, 1255 RID_SVXSTR_LEND18, 1256 RID_SVXSTR_LEND19, 1257 RID_SVXSTR_LEND20 1258 }; 1259 1260 static const char* RID_SVXSTR_GRDT_DEF[] = 1261 { 1262 RID_SVXSTR_GRDT0_DEF, 1263 RID_SVXSTR_GRDT1_DEF, 1264 RID_SVXSTR_GRDT2_DEF, 1265 RID_SVXSTR_GRDT3_DEF, 1266 RID_SVXSTR_GRDT4_DEF, 1267 RID_SVXSTR_GRDT5_DEF, 1268 RID_SVXSTR_GRDT6_DEF, 1269 RID_SVXSTR_GRDT7_DEF, 1270 RID_SVXSTR_GRDT8_DEF, 1271 RID_SVXSTR_GRDT9_DEF, 1272 RID_SVXSTR_GRDT10_DEF, 1273 RID_SVXSTR_GRDT11_DEF, 1274 RID_SVXSTR_GRDT12_DEF, 1275 RID_SVXSTR_GRDT13_DEF, 1276 RID_SVXSTR_GRDT14_DEF, 1277 RID_SVXSTR_GRDT15_DEF, 1278 RID_SVXSTR_GRDT16_DEF, 1279 RID_SVXSTR_GRDT17_DEF, 1280 RID_SVXSTR_GRDT18_DEF, 1281 RID_SVXSTR_GRDT19_DEF, 1282 RID_SVXSTR_GRDT20_DEF, 1283 RID_SVXSTR_GRDT21_DEF, 1284 RID_SVXSTR_GRDT22_DEF, 1285 RID_SVXSTR_GRDT23_DEF, 1286 RID_SVXSTR_GRDT24_DEF, 1287 RID_SVXSTR_GRDT25_DEF, 1288 RID_SVXSTR_GRDT26_DEF, 1289 RID_SVXSTR_GRDT27_DEF, 1290 RID_SVXSTR_GRDT28_DEF, 1291 RID_SVXSTR_GRDT29_DEF, 1292 RID_SVXSTR_GRDT30_DEF, 1293 RID_SVXSTR_GRDT31_DEF, 1294 RID_SVXSTR_GRDT32_DEF, 1295 RID_SVXSTR_GRDT33_DEF, 1296 RID_SVXSTR_GRDT34_DEF, 1297 RID_SVXSTR_GRDT35_DEF, 1298 RID_SVXSTR_GRDT36_DEF, 1299 RID_SVXSTR_GRDT37_DEF, 1300 RID_SVXSTR_GRDT38_DEF, 1301 RID_SVXSTR_GRDT39_DEF, 1302 RID_SVXSTR_GRDT40_DEF, 1303 RID_SVXSTR_GRDT41_DEF, 1304 RID_SVXSTR_GRDT42_DEF, 1305 RID_SVXSTR_GRDT43_DEF, 1306 RID_SVXSTR_GRDT44_DEF, 1307 RID_SVXSTR_GRDT45_DEF, 1308 RID_SVXSTR_GRDT46_DEF, 1309 RID_SVXSTR_GRDT47_DEF, 1310 RID_SVXSTR_GRDT48_DEF, 1311 RID_SVXSTR_GRDT49_DEF, 1312 RID_SVXSTR_GRDT50_DEF, 1313 RID_SVXSTR_GRDT51_DEF, 1314 RID_SVXSTR_GRDT52_DEF, 1315 RID_SVXSTR_GRDT53_DEF, 1316 RID_SVXSTR_GRDT54_DEF, 1317 RID_SVXSTR_GRDT55_DEF, 1318 RID_SVXSTR_GRDT56_DEF, 1319 RID_SVXSTR_GRDT57_DEF, 1320 RID_SVXSTR_GRDT58_DEF, 1321 RID_SVXSTR_GRDT59_DEF, 1322 RID_SVXSTR_GRDT60_DEF, 1323 RID_SVXSTR_GRDT61_DEF, 1324 RID_SVXSTR_GRDT62_DEF, 1325 RID_SVXSTR_GRDT63_DEF, 1326 RID_SVXSTR_GRDT64_DEF, 1327 RID_SVXSTR_GRDT65_DEF, 1328 RID_SVXSTR_GRDT66_DEF, 1329 RID_SVXSTR_GRDT67_DEF, 1330 RID_SVXSTR_GRDT68_DEF, 1331 RID_SVXSTR_GRDT69_DEF, 1332 RID_SVXSTR_GRDT70_DEF, 1333 RID_SVXSTR_GRDT71_DEF, 1334 RID_SVXSTR_GRDT72_DEF, 1335 RID_SVXSTR_GRDT73_DEF, 1336 RID_SVXSTR_GRDT74_DEF, 1337 RID_SVXSTR_GRDT75_DEF, 1338 RID_SVXSTR_GRDT76_DEF, 1339 RID_SVXSTR_GRDT77_DEF, 1340 RID_SVXSTR_GRDT78_DEF, 1341 RID_SVXSTR_GRDT79_DEF, 1342 RID_SVXSTR_GRDT80_DEF, 1343 RID_SVXSTR_GRDT81_DEF, 1344 RID_SVXSTR_GRDT82_DEF, 1345 RID_SVXSTR_GRDT83_DEF, 1346 RID_SVXSTR_GRDT84_DEF 1347 }; 1348 1349 static const char* RID_SVXSTR_GRDT[] = 1350 { 1351 RID_SVXSTR_GRDT0, 1352 RID_SVXSTR_GRDT1, 1353 RID_SVXSTR_GRDT2, 1354 RID_SVXSTR_GRDT3, 1355 RID_SVXSTR_GRDT4, 1356 RID_SVXSTR_GRDT5, 1357 RID_SVXSTR_GRDT6, 1358 RID_SVXSTR_GRDT7, 1359 RID_SVXSTR_GRDT8, 1360 RID_SVXSTR_GRDT9, 1361 RID_SVXSTR_GRDT10, 1362 RID_SVXSTR_GRDT11, 1363 RID_SVXSTR_GRDT12, 1364 RID_SVXSTR_GRDT13, 1365 RID_SVXSTR_GRDT14, 1366 RID_SVXSTR_GRDT15, 1367 RID_SVXSTR_GRDT16, 1368 RID_SVXSTR_GRDT17, 1369 RID_SVXSTR_GRDT18, 1370 RID_SVXSTR_GRDT19, 1371 RID_SVXSTR_GRDT20, 1372 RID_SVXSTR_GRDT21, 1373 RID_SVXSTR_GRDT22, 1374 RID_SVXSTR_GRDT23, 1375 RID_SVXSTR_GRDT24, 1376 RID_SVXSTR_GRDT25, 1377 RID_SVXSTR_GRDT26, 1378 RID_SVXSTR_GRDT27, 1379 RID_SVXSTR_GRDT28, 1380 RID_SVXSTR_GRDT29, 1381 RID_SVXSTR_GRDT30, 1382 RID_SVXSTR_GRDT31, 1383 RID_SVXSTR_GRDT32, 1384 RID_SVXSTR_GRDT33, 1385 RID_SVXSTR_GRDT34, 1386 RID_SVXSTR_GRDT35, 1387 RID_SVXSTR_GRDT36, 1388 RID_SVXSTR_GRDT37, 1389 RID_SVXSTR_GRDT38, 1390 RID_SVXSTR_GRDT39, 1391 RID_SVXSTR_GRDT40, 1392 RID_SVXSTR_GRDT41, 1393 RID_SVXSTR_GRDT42, 1394 RID_SVXSTR_GRDT43, 1395 RID_SVXSTR_GRDT44, 1396 RID_SVXSTR_GRDT45, 1397 RID_SVXSTR_GRDT46, 1398 RID_SVXSTR_GRDT47, 1399 RID_SVXSTR_GRDT48, 1400 RID_SVXSTR_GRDT49, 1401 RID_SVXSTR_GRDT50, 1402 RID_SVXSTR_GRDT51, 1403 RID_SVXSTR_GRDT52, 1404 RID_SVXSTR_GRDT53, 1405 RID_SVXSTR_GRDT54, 1406 RID_SVXSTR_GRDT55, 1407 RID_SVXSTR_GRDT56, 1408 RID_SVXSTR_GRDT57, 1409 RID_SVXSTR_GRDT58, 1410 RID_SVXSTR_GRDT59, 1411 RID_SVXSTR_GRDT60, 1412 RID_SVXSTR_GRDT61, 1413 RID_SVXSTR_GRDT62, 1414 RID_SVXSTR_GRDT63, 1415 RID_SVXSTR_GRDT64, 1416 RID_SVXSTR_GRDT65, 1417 RID_SVXSTR_GRDT66, 1418 RID_SVXSTR_GRDT67, 1419 RID_SVXSTR_GRDT68, 1420 RID_SVXSTR_GRDT69, 1421 RID_SVXSTR_GRDT70, 1422 RID_SVXSTR_GRDT71, 1423 RID_SVXSTR_GRDT72, 1424 RID_SVXSTR_GRDT73, 1425 RID_SVXSTR_GRDT74, 1426 RID_SVXSTR_GRDT75, 1427 RID_SVXSTR_GRDT76, 1428 RID_SVXSTR_GRDT77, 1429 RID_SVXSTR_GRDT78, 1430 RID_SVXSTR_GRDT79, 1431 RID_SVXSTR_GRDT80, 1432 RID_SVXSTR_GRDT81, 1433 RID_SVXSTR_GRDT82, 1434 RID_SVXSTR_GRDT83, 1435 RID_SVXSTR_GRDT84 1436 }; 1437 1438 static const char* RID_SVXSTR_HATCHS_DEF[] = 1439 { 1440 RID_SVXSTR_HATCH0_DEF, 1441 RID_SVXSTR_HATCH1_DEF, 1442 RID_SVXSTR_HATCH2_DEF, 1443 RID_SVXSTR_HATCH3_DEF, 1444 RID_SVXSTR_HATCH4_DEF, 1445 RID_SVXSTR_HATCH5_DEF, 1446 RID_SVXSTR_HATCH6_DEF, 1447 RID_SVXSTR_HATCH7_DEF, 1448 RID_SVXSTR_HATCH8_DEF, 1449 RID_SVXSTR_HATCH9_DEF, 1450 RID_SVXSTR_HATCH10_DEF 1451 }; 1452 1453 static const char* RID_SVXSTR_HATCHS[] = 1454 { 1455 RID_SVXSTR_HATCH0, 1456 RID_SVXSTR_HATCH1, 1457 RID_SVXSTR_HATCH2, 1458 RID_SVXSTR_HATCH3, 1459 RID_SVXSTR_HATCH4, 1460 RID_SVXSTR_HATCH5, 1461 RID_SVXSTR_HATCH6, 1462 RID_SVXSTR_HATCH7, 1463 RID_SVXSTR_HATCH8, 1464 RID_SVXSTR_HATCH9, 1465 RID_SVXSTR_HATCH10 1466 }; 1467 1468 static const char* RID_SVXSTR_TRASNGR_DEF[] = 1469 { 1470 RID_SVXSTR_TRASNGR0_DEF 1471 }; 1472 1473 static const char* RID_SVXSTR_TRASNGR[] = 1474 { 1475 RID_SVXSTR_TRASNGR0 1476 }; 1477 1478 static bool SvxUnoGetResourceRanges( const sal_uInt16 nWhich, const char**& pApiResIds, const char**& pIntResIds, int& nCount ) throw() 1479 { 1480 switch( nWhich ) 1481 { 1482 case XATTR_FILLBITMAP: 1483 pApiResIds = RID_SVXSTR_BMP_DEF; 1484 pIntResIds = RID_SVXSTR_BMP; 1485 nCount = SAL_N_ELEMENTS(RID_SVXSTR_BMP_DEF); 1486 break; 1487 case XATTR_LINEDASH: 1488 pApiResIds = RID_SVXSTR_DASH_DEF; 1489 pIntResIds = RID_SVXSTR_DASH; 1490 nCount = SAL_N_ELEMENTS(RID_SVXSTR_DASH_DEF); 1491 break; 1492 1493 case XATTR_LINESTART: 1494 case XATTR_LINEEND: 1495 pApiResIds = RID_SVXSTR_LEND_DEF; 1496 pIntResIds = RID_SVXSTR_LEND; 1497 nCount = SAL_N_ELEMENTS(RID_SVXSTR_LEND_DEF); 1498 break; 1499 1500 case XATTR_FILLGRADIENT: 1501 pApiResIds = RID_SVXSTR_GRDT_DEF; 1502 pIntResIds = RID_SVXSTR_GRDT; 1503 nCount = SAL_N_ELEMENTS(RID_SVXSTR_GRDT_DEF); 1504 break; 1505 1506 case XATTR_FILLHATCH: 1507 pApiResIds = RID_SVXSTR_HATCHS_DEF; 1508 pIntResIds = RID_SVXSTR_HATCHS; 1509 nCount = SAL_N_ELEMENTS(RID_SVXSTR_HATCHS_DEF); 1510 break; 1511 1512 case XATTR_FILLFLOATTRANSPARENCE: 1513 pApiResIds = RID_SVXSTR_TRASNGR_DEF; 1514 pIntResIds = RID_SVXSTR_TRASNGR; 1515 nCount = SAL_N_ELEMENTS(RID_SVXSTR_TRASNGR_DEF); 1516 break; 1517 1518 default: 1519 return false; 1520 } 1521 return true; 1522 } 1523 1524 /// @throws std::exception 1525 static bool SvxUnoConvertResourceString(const char **pSourceResIds, const char** pDestResIds, int nCount, OUString& rString, bool bToApi) 1526 { 1527 // first, calculate the search string length without an optional number after the name 1528 sal_Int32 nLength = rString.getLength(); 1529 while( nLength > 0 ) 1530 { 1531 const sal_Unicode nChar = rString[ nLength - 1 ]; 1532 if( (nChar < '0') || (nChar > '9') ) 1533 break; 1534 1535 nLength--; 1536 } 1537 1538 // if we cut off a number, also cut of some spaces 1539 if( nLength != rString.getLength() ) 1540 { 1541 while( nLength > 0 ) 1542 { 1543 const sal_Unicode nChar = rString[ nLength - 1 ]; 1544 if( nChar != ' ' ) 1545 break; 1546 1547 nLength--; 1548 } 1549 } 1550 1551 const OUString aShortString( rString.copy( 0, nLength ) ); 1552 1553 for (int i = 0; i < nCount; ++i) 1554 { 1555 if (bToApi) 1556 { 1557 const OUString & aCompare = SvxResId(pSourceResIds[i]); 1558 if( aShortString == aCompare ) 1559 { 1560 rString = rString.replaceAt( 0, aShortString.getLength(), OUString::createFromAscii(pDestResIds[i]) ); 1561 return true; 1562 } 1563 else if( rString == aCompare ) 1564 { 1565 rString = OUString::createFromAscii(pDestResIds[i]); 1566 return true; 1567 } 1568 } 1569 else 1570 { 1571 auto pCompare = pSourceResIds[i]; 1572 if( aShortString.equalsAscii(pCompare) ) 1573 { 1574 rString = rString.replaceAt( 0, aShortString.getLength(), SvxResId(pDestResIds[i]) ); 1575 return true; 1576 } 1577 else if( rString.equalsAscii(pCompare) ) 1578 { 1579 rString = SvxResId(pDestResIds[i]); 1580 return true; 1581 } 1582 } 1583 } 1584 1585 return false; 1586 } 1587 1588 1589 // #i122649# Some comments on the below arrays: 1590 // - They need to have the same order and count of items 1591 // - They are used to translate between translated and non-translated color names 1592 // - To make longer names be found which start with the same basic string, 1593 // these have to be in front of others 1594 1595 // It would be nice to: 1596 // - evtl. organize these in a single array with 2-dimensional inner to eliminate 1597 // the possibility to define it wrong 1598 // - change the compare to also work when a shorter name is in front of a longer one 1599 1600 static const char* SvxUnoColorNameDefResId[] = 1601 { 1602 RID_SVXSTR_COLOR_BLUEGREY_DEF, 1603 RID_SVXSTR_COLOR_BLACK_DEF, 1604 RID_SVXSTR_COLOR_BLUE_CLASSIC_DEF, 1605 RID_SVXSTR_COLOR_BLUE_DEF, 1606 RID_SVXSTR_COLOR_GREEN_DEF, 1607 RID_SVXSTR_COLOR_RED_DEF, 1608 RID_SVXSTR_COLOR_MAGENTA_DEF, 1609 RID_SVXSTR_COLOR_GREY_DEF, 1610 RID_SVXSTR_COLOR_YELLOWGREEN_DEF, 1611 RID_SVXSTR_COLOR_YELLOW_DEF, 1612 RID_SVXSTR_COLOR_WHITE_DEF, 1613 RID_SVXSTR_COLOR_ORANGE_DEF, 1614 RID_SVXSTR_COLOR_BORDEAUX_DEF, 1615 RID_SVXSTR_COLOR_PALE_YELLOW_DEF, 1616 RID_SVXSTR_COLOR_PALE_GREEN_DEF, 1617 RID_SVXSTR_COLOR_DARKVIOLET_DEF, 1618 RID_SVXSTR_COLOR_SALMON_DEF, 1619 RID_SVXSTR_COLOR_SEABLUE_DEF, 1620 RID_SVXSTR_COLOR_CHART_DEF, 1621 RID_SVXSTR_COLOR_PURPLE_DEF, 1622 RID_SVXSTR_COLOR_SKYBLUE_DEF, 1623 RID_SVXSTR_COLOR_PINK_DEF, 1624 RID_SVXSTR_COLOR_TURQUOISE_DEF, 1625 RID_SVXSTR_COLOR_GOLD_DEF, 1626 RID_SVXSTR_COLOR_BRICK_DEF, 1627 RID_SVXSTR_COLOR_INDIGO_DEF, 1628 RID_SVXSTR_COLOR_TEAL_DEF, 1629 RID_SVXSTR_COLOR_LIME_DEF, 1630 RID_SVXSTR_COLOR_LIGHTGRAY_DEF, 1631 RID_SVXSTR_COLOR_LIGHTYELLOW_DEF, 1632 RID_SVXSTR_COLOR_LIGHTGOLD_DEF, 1633 RID_SVXSTR_COLOR_LIGHTORANGE_DEF, 1634 RID_SVXSTR_COLOR_LIGHTBRICK_DEF, 1635 RID_SVXSTR_COLOR_LIGHTRED_DEF, 1636 RID_SVXSTR_COLOR_LIGHTMAGENTA_DEF, 1637 RID_SVXSTR_COLOR_LIGHTPURPLE_DEF, 1638 RID_SVXSTR_COLOR_LIGHTINDIGO_DEF, 1639 RID_SVXSTR_COLOR_LIGHTBLUE_DEF, 1640 RID_SVXSTR_COLOR_LIGHTTEAL_DEF, 1641 RID_SVXSTR_COLOR_LIGHTGREEN_DEF, 1642 RID_SVXSTR_COLOR_LIGHTLIME_DEF, 1643 RID_SVXSTR_COLOR_DARKGRAY_DEF, 1644 RID_SVXSTR_COLOR_DARKYELLOW_DEF, 1645 RID_SVXSTR_COLOR_DARKGOLD_DEF, 1646 RID_SVXSTR_COLOR_DARKORANGE_DEF, 1647 RID_SVXSTR_COLOR_DARKBRICK_DEF, 1648 RID_SVXSTR_COLOR_DARKRED_DEF, 1649 RID_SVXSTR_COLOR_DARKMAGENTA_DEF, 1650 RID_SVXSTR_COLOR_DARKPURPLE_DEF, 1651 RID_SVXSTR_COLOR_DARKINDIGO_DEF, 1652 RID_SVXSTR_COLOR_DARKBLUE_DEF, 1653 RID_SVXSTR_COLOR_DARKTEAL_DEF, 1654 RID_SVXSTR_COLOR_DARKGREEN_DEF, 1655 RID_SVXSTR_COLOR_DARKLIME_DEF, 1656 RID_SVXSTR_COLOR_VIOLET_DEF, 1657 RID_SVXSTR_COLOR_VIOLET_OUG_DEF, 1658 RID_SVXSTR_COLOR_BLUE_OUG_DEF, 1659 RID_SVXSTR_COLOR_AZURE_OUG_DEF, 1660 RID_SVXSTR_COLOR_SPRINGGREEN_OUG_DEF, 1661 RID_SVXSTR_COLOR_GREEN_OUG_DEF, 1662 RID_SVXSTR_COLOR_CHARTREUSEGREEN_OUG_DEF, 1663 RID_SVXSTR_COLOR_ORANGE_OUG_DEF, 1664 RID_SVXSTR_COLOR_RED_OUG_DEF, 1665 RID_SVXSTR_COLOR_ROSE_OUG_DEF, 1666 RID_SVXSTR_COLOR_AZURE_DEF, 1667 RID_SVXSTR_COLOR_CYAN_DEF, 1668 RID_SVXSTR_COLOR_SPRINGGREEN_DEF, 1669 RID_SVXSTR_COLOR_CHARTREUSEGREEN_DEF, 1670 RID_SVXSTR_COLOR_ROSE_DEF, 1671 RID_SVXSTR_COLOR_MATERIAL_GRAY_A_DEF, 1672 RID_SVXSTR_COLOR_MATERIAL_YELLOW_A_DEF, 1673 RID_SVXSTR_COLOR_MATERIAL_AMBER_A_DEF, 1674 RID_SVXSTR_COLOR_MATERIAL_AMBER_DEF, 1675 RID_SVXSTR_COLOR_MATERIAL_ORANGE_A_DEF, 1676 RID_SVXSTR_COLOR_MATERIAL_DEEP_ORANGE_A_DEF, 1677 RID_SVXSTR_COLOR_MATERIAL_DEEP_ORANGE_DEF, 1678 RID_SVXSTR_COLOR_MATERIAL_RED_A_DEF, 1679 RID_SVXSTR_COLOR_MATERIAL_PINK_A_DEF, 1680 RID_SVXSTR_COLOR_MATERIAL_PURPLE_A_DEF, 1681 RID_SVXSTR_COLOR_MATERIAL_DEEP_PURPLE_A_DEF, 1682 RID_SVXSTR_COLOR_MATERIAL_DEEP_PURPLE_DEF, 1683 RID_SVXSTR_COLOR_MATERIAL_INDIGO_A_DEF, 1684 RID_SVXSTR_COLOR_MATERIAL_BLUE_A_DEF, 1685 RID_SVXSTR_COLOR_MATERIAL_LIGHT_BLUE_A_DEF, 1686 RID_SVXSTR_COLOR_MATERIAL_CYAN_A_DEF, 1687 RID_SVXSTR_COLOR_MATERIAL_TEAL_A_DEF, 1688 RID_SVXSTR_COLOR_MATERIAL_GREEN_A_DEF, 1689 RID_SVXSTR_COLOR_MATERIAL_LIGHT_GREEN_A_DEF, 1690 RID_SVXSTR_COLOR_MATERIAL_LIME_A_DEF, 1691 RID_SVXSTR_COLOR_MATERIAL_BROWN_A_DEF, 1692 RID_SVXSTR_COLOR_MATERIAL_BROWN_DEF, 1693 RID_SVXSTR_COLOR_MATERIAL_BLUE_GRAY_A_DEF, 1694 RID_SVXSTR_COLOR_MATERIAL_BLUE_GRAY_DEF, 1695 RID_SVXSTR_COLOR_LIBRE_GREEN_1_DEF, 1696 RID_SVXSTR_COLOR_LIBRE_GREEN_ACCENT_DEF, 1697 RID_SVXSTR_COLOR_LIBRE_BLUE_ACCENT_DEF, 1698 RID_SVXSTR_COLOR_LIBRE_ORANGE_ACCENT_DEF, 1699 RID_SVXSTR_COLOR_LIBRE_PURPLE_DEF, 1700 RID_SVXSTR_COLOR_LIBRE_PURPLE_ACCENT_DEF, 1701 RID_SVXSTR_COLOR_LIBRE_YELLOW_ACCENT_DEF, 1702 RID_SVXSTR_COLOR_TANGO_BUTTER_DEF, 1703 RID_SVXSTR_COLOR_TANGO_ORANGE_DEF, 1704 RID_SVXSTR_COLOR_TANGO_CHOCOLATE_DEF, 1705 RID_SVXSTR_COLOR_TANGO_CHAMELEON_DEF, 1706 RID_SVXSTR_COLOR_TANGO_SKY_BLUE_DEF, 1707 RID_SVXSTR_COLOR_TANGO_PLUM_DEF, 1708 RID_SVXSTR_COLOR_TANGO_SCARLET_RED_DEF, 1709 RID_SVXSTR_COLOR_TANGO_ALUMINIUM_DEF 1710 }; 1711 1712 static const char* SvxUnoColorNameResId[] = 1713 { 1714 RID_SVXSTR_COLOR_BLUEGREY, 1715 RID_SVXSTR_COLOR_BLACK, 1716 RID_SVXSTR_COLOR_BLUE_CLASSIC, 1717 RID_SVXSTR_COLOR_BLUE, 1718 RID_SVXSTR_COLOR_GREEN, 1719 RID_SVXSTR_COLOR_RED, 1720 RID_SVXSTR_COLOR_MAGENTA, 1721 RID_SVXSTR_COLOR_GREY, 1722 RID_SVXSTR_COLOR_YELLOWGREEN, 1723 RID_SVXSTR_COLOR_YELLOW, 1724 RID_SVXSTR_COLOR_WHITE, 1725 RID_SVXSTR_COLOR_ORANGE, 1726 RID_SVXSTR_COLOR_BORDEAUX, 1727 RID_SVXSTR_COLOR_PALE_YELLOW, 1728 RID_SVXSTR_COLOR_PALE_GREEN, 1729 RID_SVXSTR_COLOR_DARKVIOLET, 1730 RID_SVXSTR_COLOR_SALMON, 1731 RID_SVXSTR_COLOR_SEABLUE, 1732 RID_SVXSTR_COLOR_CHART, 1733 RID_SVXSTR_COLOR_PURPLE, 1734 RID_SVXSTR_COLOR_SKYBLUE, 1735 RID_SVXSTR_COLOR_PINK, 1736 RID_SVXSTR_COLOR_TURQUOISE, 1737 RID_SVXSTR_COLOR_GOLD, 1738 RID_SVXSTR_COLOR_BRICK, 1739 RID_SVXSTR_COLOR_INDIGO, 1740 RID_SVXSTR_COLOR_TEAL, 1741 RID_SVXSTR_COLOR_LIME, 1742 RID_SVXSTR_COLOR_LIGHTGRAY, 1743 RID_SVXSTR_COLOR_LIGHTYELLOW, 1744 RID_SVXSTR_COLOR_LIGHTGOLD, 1745 RID_SVXSTR_COLOR_LIGHTORANGE, 1746 RID_SVXSTR_COLOR_LIGHTBRICK, 1747 RID_SVXSTR_COLOR_LIGHTRED, 1748 RID_SVXSTR_COLOR_LIGHTMAGENTA, 1749 RID_SVXSTR_COLOR_LIGHTPURPLE, 1750 RID_SVXSTR_COLOR_LIGHTINDIGO, 1751 RID_SVXSTR_COLOR_LIGHTBLUE, 1752 RID_SVXSTR_COLOR_LIGHTTEAL, 1753 RID_SVXSTR_COLOR_LIGHTGREEN, 1754 RID_SVXSTR_COLOR_LIGHTLIME, 1755 RID_SVXSTR_COLOR_DARKGRAY, 1756 RID_SVXSTR_COLOR_DARKYELLOW, 1757 RID_SVXSTR_COLOR_DARKGOLD, 1758 RID_SVXSTR_COLOR_DARKORANGE, 1759 RID_SVXSTR_COLOR_DARKBRICK, 1760 RID_SVXSTR_COLOR_DARKRED, 1761 RID_SVXSTR_COLOR_DARKMAGENTA, 1762 RID_SVXSTR_COLOR_DARKPURPLE, 1763 RID_SVXSTR_COLOR_DARKINDIGO, 1764 RID_SVXSTR_COLOR_DARKBLUE, 1765 RID_SVXSTR_COLOR_DARKTEAL, 1766 RID_SVXSTR_COLOR_DARKGREEN, 1767 RID_SVXSTR_COLOR_DARKLIME, 1768 RID_SVXSTR_COLOR_VIOLET, 1769 RID_SVXSTR_COLOR_VIOLET_OUG, 1770 RID_SVXSTR_COLOR_BLUE_OUG, 1771 RID_SVXSTR_COLOR_AZURE_OUG, 1772 RID_SVXSTR_COLOR_SPRINGGREEN_OUG, 1773 RID_SVXSTR_COLOR_GREEN_OUG, 1774 RID_SVXSTR_COLOR_CHARTREUSEGREEN_OUG, 1775 RID_SVXSTR_COLOR_ORANGE_OUG, 1776 RID_SVXSTR_COLOR_RED_OUG, 1777 RID_SVXSTR_COLOR_ROSE_OUG, 1778 RID_SVXSTR_COLOR_AZURE, 1779 RID_SVXSTR_COLOR_CYAN, 1780 RID_SVXSTR_COLOR_SPRINGGREEN, 1781 RID_SVXSTR_COLOR_CHARTREUSEGREEN, 1782 RID_SVXSTR_COLOR_ROSE, 1783 RID_SVXSTR_COLOR_MATERIAL_GRAY_A, 1784 RID_SVXSTR_COLOR_MATERIAL_YELLOW_A, 1785 RID_SVXSTR_COLOR_MATERIAL_AMBER_A, 1786 RID_SVXSTR_COLOR_MATERIAL_AMBER, 1787 RID_SVXSTR_COLOR_MATERIAL_ORANGE_A, 1788 RID_SVXSTR_COLOR_MATERIAL_DEEP_ORANGE_A, 1789 RID_SVXSTR_COLOR_MATERIAL_DEEP_ORANGE, 1790 RID_SVXSTR_COLOR_MATERIAL_RED_A, 1791 RID_SVXSTR_COLOR_MATERIAL_PINK_A, 1792 RID_SVXSTR_COLOR_MATERIAL_PURPLE_A, 1793 RID_SVXSTR_COLOR_MATERIAL_DEEP_PURPLE_A, 1794 RID_SVXSTR_COLOR_MATERIAL_DEEP_PURPLE, 1795 RID_SVXSTR_COLOR_MATERIAL_INDIGO_A, 1796 RID_SVXSTR_COLOR_MATERIAL_BLUE_A, 1797 RID_SVXSTR_COLOR_MATERIAL_LIGHT_BLUE_A, 1798 RID_SVXSTR_COLOR_MATERIAL_CYAN_A, 1799 RID_SVXSTR_COLOR_MATERIAL_TEAL_A, 1800 RID_SVXSTR_COLOR_MATERIAL_GREEN_A, 1801 RID_SVXSTR_COLOR_MATERIAL_LIGHT_GREEN_A, 1802 RID_SVXSTR_COLOR_MATERIAL_LIME_A, 1803 RID_SVXSTR_COLOR_MATERIAL_BROWN_A, 1804 RID_SVXSTR_COLOR_MATERIAL_BROWN, 1805 RID_SVXSTR_COLOR_MATERIAL_BLUE_GRAY_A, 1806 RID_SVXSTR_COLOR_MATERIAL_BLUE_GRAY, 1807 RID_SVXSTR_COLOR_LIBRE_GREEN_1, 1808 RID_SVXSTR_COLOR_LIBRE_GREEN_ACCENT, 1809 RID_SVXSTR_COLOR_LIBRE_BLUE_ACCENT, 1810 RID_SVXSTR_COLOR_LIBRE_ORANGE_ACCENT, 1811 RID_SVXSTR_COLOR_LIBRE_PURPLE, 1812 RID_SVXSTR_COLOR_LIBRE_PURPLE_ACCENT, 1813 RID_SVXSTR_COLOR_LIBRE_YELLOW_ACCENT, 1814 RID_SVXSTR_COLOR_TANGO_BUTTER, 1815 RID_SVXSTR_COLOR_TANGO_ORANGE, 1816 RID_SVXSTR_COLOR_TANGO_CHOCOLATE, 1817 RID_SVXSTR_COLOR_TANGO_CHAMELEON, 1818 RID_SVXSTR_COLOR_TANGO_SKY_BLUE, 1819 RID_SVXSTR_COLOR_TANGO_PLUM, 1820 RID_SVXSTR_COLOR_TANGO_SCARLET_RED, 1821 RID_SVXSTR_COLOR_TANGO_ALUMINIUM 1822 }; 1823 1824 /// @throws std::exception 1825 static bool SvxUnoConvertResourceStringBuiltIn(const char** pSourceResIds, const char** pDestResIds, int nCount, OUString& rString, bool bToApi) 1826 { 1827 //We replace e.g. "Gray 10%" with the translation of Gray, but we shouldn't 1828 //replace "Red Hat 1" with the translation of Red :-) 1829 sal_Int32 nLength = rString.getLength(); 1830 while( nLength > 0 ) 1831 { 1832 const sal_Unicode nChar = rString[nLength-1]; 1833 if (nChar != '%' && (nChar < '0' || nChar > '9')) 1834 break; 1835 nLength--; 1836 } 1837 OUString sStr = rString.copy(0, nLength).trim(); 1838 1839 for(int i = 0; i < nCount; ++i ) 1840 { 1841 if (bToApi) 1842 { 1843 OUString aStrDefName = SvxResId(pSourceResIds[i]); 1844 if( sStr == aStrDefName ) 1845 { 1846 OUString aReplace = OUString::createFromAscii(pDestResIds[i]); 1847 rString = rString.replaceAt( 0, aStrDefName.getLength(), aReplace ); 1848 return true; 1849 } 1850 } 1851 else 1852 { 1853 if( sStr.equalsAscii(pSourceResIds[i]) ) 1854 { 1855 OUString aReplace = SvxResId(pDestResIds[i]); 1856 rString = rString.replaceAt( 0, strlen(pSourceResIds[i]), aReplace ); 1857 return true; 1858 } 1859 } 1860 } 1861 1862 return false; 1863 } 1864 1865 /** if the given name is a predefined name for the current language it is replaced by 1866 the corresponding api name. 1867 */ 1868 OUString SvxUnogetApiNameForItem(const sal_uInt16 nWhich, const OUString& rInternalName) 1869 { 1870 OUString aNew = rInternalName; 1871 1872 if( nWhich == sal_uInt16(XATTR_LINECOLOR) ) 1873 { 1874 if (SvxUnoConvertResourceStringBuiltIn(SvxUnoColorNameResId, SvxUnoColorNameDefResId, SAL_N_ELEMENTS(SvxUnoColorNameResId), aNew, true)) 1875 { 1876 return aNew; 1877 } 1878 } 1879 else 1880 { 1881 const char** pApiResIds; 1882 const char** pIntResIds; 1883 int nCount; 1884 1885 if( SvxUnoGetResourceRanges(nWhich, pApiResIds, pIntResIds, nCount)) 1886 { 1887 if (SvxUnoConvertResourceString(pIntResIds, pApiResIds, nCount, aNew, true)) 1888 { 1889 return aNew; 1890 } 1891 } 1892 } 1893 1894 // just use previous name, if nothing else was found. 1895 return rInternalName; 1896 } 1897 1898 /** if the given name is a predefined api name it is replaced by the predefined name 1899 for the current language. 1900 */ 1901 OUString SvxUnogetInternalNameForItem(const sal_uInt16 nWhich, const OUString& rApiName) 1902 { 1903 OUString aNew = rApiName; 1904 1905 if( nWhich == sal_uInt16(XATTR_LINECOLOR) ) 1906 { 1907 if (SvxUnoConvertResourceStringBuiltIn(SvxUnoColorNameDefResId, SvxUnoColorNameResId, SAL_N_ELEMENTS(SvxUnoColorNameResId), aNew, false)) 1908 { 1909 return aNew; 1910 } 1911 } 1912 else 1913 { 1914 const char** pApiResIds; 1915 const char** pIntResIds; 1916 int nCount; 1917 1918 if (SvxUnoGetResourceRanges(nWhich, pApiResIds, pIntResIds, nCount)) 1919 { 1920 if (SvxUnoConvertResourceString(pApiResIds, pIntResIds, nCount, aNew, false)) 1921 { 1922 return aNew; 1923 } 1924 } 1925 } 1926 1927 // just use previous name, if nothing else was found. 1928 return rApiName; 1929 } 1930 1931 1932 rtl::Reference<comphelper::PropertySetInfo> const & SvxPropertySetInfoPool::getOrCreate( sal_Int32 nServiceId ) throw() 1933 { 1934 SolarMutexGuard aGuard; 1935 1936 assert( nServiceId <= SVXUNO_SERVICEID_LASTID ); 1937 1938 if( !mxInfos[ nServiceId ].is() ) 1939 { 1940 mxInfos[nServiceId] = new comphelper::PropertySetInfo(); 1941 1942 switch( nServiceId ) 1943 { 1944 case SVXUNO_SERVICEID_COM_SUN_STAR_DRAWING_DEFAULTS: 1945 mxInfos[SVXUNO_SERVICEID_COM_SUN_STAR_DRAWING_DEFAULTS]->add( ImplGetSvxDrawingDefaultsPropertyMap() ); 1946 break; 1947 case SVXUNO_SERVICEID_COM_SUN_STAR_DRAWING_DEFAULTS_WRITER: 1948 mxInfos[SVXUNO_SERVICEID_COM_SUN_STAR_DRAWING_DEFAULTS_WRITER]->add( ImplGetSvxDrawingDefaultsPropertyMap() ); 1949 mxInfos[SVXUNO_SERVICEID_COM_SUN_STAR_DRAWING_DEFAULTS_WRITER]->remove( UNO_NAME_EDIT_PARA_IS_HANGING_PUNCTUATION ); 1950 // OD 13.10.2003 #i18732# - add property map for writer item 'IsFollowingTextFlow' 1951 mxInfos[SVXUNO_SERVICEID_COM_SUN_STAR_DRAWING_DEFAULTS_WRITER]->add( ImplGetAdditionalWriterDrawingDefaultsPropertyMap() ); 1952 break; 1953 1954 default: 1955 OSL_FAIL( "unknown service id!" ); 1956 } 1957 } 1958 1959 return mxInfos[ nServiceId ]; 1960 } 1961 1962 rtl::Reference<comphelper::PropertySetInfo> SvxPropertySetInfoPool::mxInfos[SVXUNO_SERVICEID_LASTID+1] = { nullptr }; 1963 1964 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 1965
