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