1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #ifndef _XIMPSHAPE_HXX 29 #define _XIMPSHAPE_HXX 30 31 #include <com/sun/star/io/XOutputStream.hpp> 32 #include <com/sun/star/document/XActionLockable.hpp> 33 #include <com/sun/star/container/XIdentifierContainer.hpp> 34 #include <xmloff/xmlictxt.hxx> 35 #include "sdxmlimp_impl.hxx" 36 #include <xmloff/nmspmap.hxx> 37 #include <com/sun/star/drawing/XShapes.hpp> 38 #include <com/sun/star/text/XTextCursor.hpp> 39 #include <com/sun/star/awt/Point.hpp> 40 #include <tools/rtti.hxx> 41 #include "xexptran.hxx" 42 43 #include <vector> 44 #include <xmloff/shapeimport.hxx> 45 46 ////////////////////////////////////////////////////////////////////////////// 47 // common shape context 48 49 class SdXMLShapeContext : public SvXMLShapeContext 50 { 51 protected: 52 // the shape group this object should be created inside 53 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes > mxShapes; 54 com::sun::star::uno::Reference< com::sun::star::text::XTextCursor > mxCursor; 55 com::sun::star::uno::Reference< com::sun::star::text::XTextCursor > mxOldCursor; 56 com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList> mxAttrList; 57 com::sun::star::uno::Reference< com::sun::star::container::XIdentifierContainer > mxGluePoints; 58 com::sun::star::uno::Reference< com::sun::star::document::XActionLockable > mxLockable; 59 60 rtl::OUString maDrawStyleName; 61 rtl::OUString maTextStyleName; 62 rtl::OUString maPresentationClass; 63 rtl::OUString maShapeName; 64 rtl::OUString maThumbnailURL; 65 66 /// whether to restore list context (#91964#) 67 bool mbListContextPushed; 68 69 sal_uInt16 mnStyleFamily; 70 sal_uInt16 mnClass; 71 sal_Bool mbIsPlaceholder; 72 bool mbClearDefaultAttributes; 73 sal_Bool mbIsUserTransformed; 74 sal_Int32 mnZOrder; 75 rtl::OUString maShapeId; 76 rtl::OUString maLayerName; 77 78 // #i68101# 79 rtl::OUString maShapeTitle; 80 rtl::OUString maShapeDescription; 81 82 SdXMLImExTransform2D mnTransform; 83 com::sun::star::awt::Size maSize; 84 com::sun::star::awt::Point maPosition; 85 86 bool mbVisible; 87 bool mbPrintable; 88 89 /** if bSupportsStyle is false, auto styles will be set but not a style */ 90 void SetStyle( bool bSupportsStyle = true ); 91 void SetLayer(); 92 void SetThumbnail(); 93 94 void AddShape(com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& xShape); 95 void AddShape(const char* pServiceName ); 96 void SetTransformation(); 97 98 SvXMLImport& GetImport() { return SvXMLImportContext::GetImport(); } 99 const SvXMLImport& GetImport() const { return SvXMLImportContext::GetImport(); } 100 101 void addGluePoint( const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList ); 102 103 sal_Bool isPresentationShape() const; 104 105 public: 106 TYPEINFO(); 107 108 SdXMLShapeContext( SvXMLImport& rImport, 109 sal_uInt16 nPrfx, 110 const rtl::OUString& rLocalName, 111 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 112 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 113 sal_Bool bTemporaryShape); 114 virtual ~SdXMLShapeContext(); 115 116 virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList); 117 virtual void EndElement(); 118 119 virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, 120 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList ); 121 122 // this is called from the parent group for each unparsed attribute in the attribute list 123 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 124 }; 125 126 ////////////////////////////////////////////////////////////////////////////// 127 // draw:rect context 128 129 class SdXMLRectShapeContext : public SdXMLShapeContext 130 { 131 sal_Int32 mnRadius; 132 133 public: 134 TYPEINFO(); 135 136 SdXMLRectShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 137 const rtl::OUString& rLocalName, 138 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 139 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 140 sal_Bool bTemporaryShape); 141 virtual ~SdXMLRectShapeContext(); 142 virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList); 143 144 // this is called from the parent group for each unparsed attribute in the attribute list 145 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 146 }; 147 148 ////////////////////////////////////////////////////////////////////////////// 149 // draw:line context 150 151 class SdXMLLineShapeContext : public SdXMLShapeContext 152 { 153 sal_Int32 mnX1; 154 sal_Int32 mnY1; 155 sal_Int32 mnX2; 156 sal_Int32 mnY2; 157 158 public: 159 TYPEINFO(); 160 161 SdXMLLineShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 162 const rtl::OUString& rLocalName, 163 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 164 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 165 sal_Bool bTemporaryShape); 166 virtual ~SdXMLLineShapeContext(); 167 virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList); 168 169 // this is called from the parent group for each unparsed attribute in the attribute list 170 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 171 }; 172 173 ////////////////////////////////////////////////////////////////////////////// 174 // draw:ellipse and draw:circle context 175 176 class SdXMLEllipseShapeContext : public SdXMLShapeContext 177 { 178 sal_Int32 mnCX; 179 sal_Int32 mnCY; 180 sal_Int32 mnRX; 181 sal_Int32 mnRY; 182 183 sal_uInt16 meKind; 184 sal_Int32 mnStartAngle; 185 sal_Int32 mnEndAngle; 186 public: 187 TYPEINFO(); 188 189 SdXMLEllipseShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 190 const rtl::OUString& rLocalName, 191 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 192 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 193 sal_Bool bTemporaryShape); 194 virtual ~SdXMLEllipseShapeContext(); 195 virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList); 196 197 // this is called from the parent group for each unparsed attribute in the attribute list 198 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 199 }; 200 201 ////////////////////////////////////////////////////////////////////////////// 202 // draw:polyline and draw:polygon context 203 204 class SdXMLPolygonShapeContext : public SdXMLShapeContext 205 { 206 rtl::OUString maPoints; 207 rtl::OUString maViewBox; 208 sal_Bool mbClosed; 209 210 public: 211 TYPEINFO(); 212 213 SdXMLPolygonShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 214 const rtl::OUString& rLocalName, 215 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 216 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, sal_Bool bClosed, sal_Bool bTemporaryShape); 217 virtual ~SdXMLPolygonShapeContext(); 218 virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList); 219 220 // this is called from the parent group for each unparsed attribute in the attribute list 221 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 222 }; 223 224 ////////////////////////////////////////////////////////////////////////////// 225 // draw:path context 226 227 class SdXMLPathShapeContext : public SdXMLShapeContext 228 { 229 rtl::OUString maD; 230 rtl::OUString maViewBox; 231 sal_Bool mbClosed; 232 233 public: 234 TYPEINFO(); 235 236 SdXMLPathShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 237 const rtl::OUString& rLocalName, 238 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 239 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 240 sal_Bool bTemporaryShape); 241 virtual ~SdXMLPathShapeContext(); 242 virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList); 243 244 // this is called from the parent group for each unparsed attribute in the attribute list 245 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 246 }; 247 248 ////////////////////////////////////////////////////////////////////////////// 249 // draw:text-box context 250 251 class SdXMLTextBoxShapeContext : public SdXMLShapeContext 252 { 253 sal_Int32 mnRadius; 254 255 public: 256 TYPEINFO(); 257 258 SdXMLTextBoxShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 259 const rtl::OUString& rLocalName, 260 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 261 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 262 sal_Bool bTemporaryShape); 263 virtual ~SdXMLTextBoxShapeContext(); 264 virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList); 265 266 // this is called from the parent group for each unparsed attribute in the attribute list 267 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 268 }; 269 270 ////////////////////////////////////////////////////////////////////////////// 271 // draw:control context 272 273 class SdXMLControlShapeContext : public SdXMLShapeContext 274 { 275 private: 276 rtl::OUString maFormId; 277 278 public: 279 TYPEINFO(); 280 281 SdXMLControlShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 282 const rtl::OUString& rLocalName, 283 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 284 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 285 sal_Bool bTemporaryShape); 286 virtual ~SdXMLControlShapeContext(); 287 virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList); 288 289 // this is called from the parent group for each unparsed attribute in the attribute list 290 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 291 }; 292 293 ////////////////////////////////////////////////////////////////////////////// 294 // draw:connector context 295 296 class SdXMLConnectorShapeContext : public SdXMLShapeContext 297 { 298 private: 299 ::com::sun::star::awt::Point maStart; 300 ::com::sun::star::awt::Point maEnd; 301 302 sal_uInt16 mnType; 303 304 rtl::OUString maStartShapeId; 305 sal_Int32 mnStartGlueId; 306 rtl::OUString maEndShapeId; 307 sal_Int32 mnEndGlueId; 308 309 sal_Int32 mnDelta1; 310 sal_Int32 mnDelta2; 311 sal_Int32 mnDelta3; 312 313 com::sun::star::uno::Any maPath; 314 315 public: 316 TYPEINFO(); 317 318 SdXMLConnectorShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 319 const rtl::OUString& rLocalName, 320 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 321 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 322 sal_Bool bTemporaryShape); 323 virtual ~SdXMLConnectorShapeContext(); 324 virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList); 325 326 // this is called from the parent group for each unparsed attribute in the attribute list 327 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 328 }; 329 330 ////////////////////////////////////////////////////////////////////////////// 331 // draw:measure context 332 333 class SdXMLMeasureShapeContext : public SdXMLShapeContext 334 { 335 private: 336 ::com::sun::star::awt::Point maStart; 337 ::com::sun::star::awt::Point maEnd; 338 339 public: 340 TYPEINFO(); 341 342 SdXMLMeasureShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 343 const rtl::OUString& rLocalName, 344 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 345 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 346 sal_Bool bTemporaryShape); 347 virtual ~SdXMLMeasureShapeContext(); 348 virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList); 349 virtual void EndElement(); 350 351 // this is called from the parent group for each unparsed attribute in the attribute list 352 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 353 }; 354 355 ////////////////////////////////////////////////////////////////////////////// 356 // draw:page context 357 358 class SdXMLPageShapeContext : public SdXMLShapeContext 359 { 360 private: 361 sal_Int32 mnPageNumber; 362 public: 363 TYPEINFO(); 364 365 SdXMLPageShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 366 const rtl::OUString& rLocalName, 367 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 368 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 369 sal_Bool bTemporaryShape); 370 virtual ~SdXMLPageShapeContext(); 371 virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList); 372 373 // this is called from the parent group for each unparsed attribute in the attribute list 374 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 375 }; 376 377 ////////////////////////////////////////////////////////////////////////////// 378 // draw:caption context 379 380 class SdXMLCaptionShapeContext : public SdXMLShapeContext 381 { 382 private: 383 com::sun::star::awt::Point maCaptionPoint; 384 sal_Int32 mnRadius; 385 386 public: 387 TYPEINFO(); 388 389 SdXMLCaptionShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 390 const rtl::OUString& rLocalName, 391 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 392 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 393 sal_Bool bTemporaryShape); 394 virtual ~SdXMLCaptionShapeContext(); 395 virtual void StartElement(const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList); 396 397 // this is called from the parent group for each unparsed attribute in the attribute list 398 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 399 }; 400 401 ////////////////////////////////////////////////////////////////////////////// 402 // office:image context 403 404 class SdXMLGraphicObjectShapeContext : public SdXMLShapeContext 405 { 406 private: 407 ::rtl::OUString maURL; 408 ::com::sun::star::uno::Reference < ::com::sun::star::io::XOutputStream > mxBase64Stream; 409 410 public: 411 TYPEINFO(); 412 413 SdXMLGraphicObjectShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 414 const rtl::OUString& rLocalName, 415 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 416 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 417 sal_Bool bTemporaryShape); 418 virtual ~SdXMLGraphicObjectShapeContext(); 419 420 virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList ); 421 virtual void EndElement(); 422 virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, 423 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList ); 424 425 // this is called from the parent group for each unparsed attribute in the attribute list 426 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 427 }; 428 429 ////////////////////////////////////////////////////////////////////////////// 430 // chart:chart context 431 432 class SdXMLChartShapeContext : public SdXMLShapeContext 433 { 434 SvXMLImportContext* mpChartContext; 435 436 public: 437 TYPEINFO(); 438 439 SdXMLChartShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 440 const rtl::OUString& rLocalName, 441 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 442 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 443 sal_Bool bTemporaryShape); 444 virtual ~SdXMLChartShapeContext(); 445 446 virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList ); 447 virtual void EndElement(); 448 virtual void Characters( const ::rtl::OUString& rChars ); 449 virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, 450 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList ); 451 }; 452 453 ////////////////////////////////////////////////////////////////////////////// 454 // draw:object and draw:object_ole context 455 456 class SdXMLObjectShapeContext : public SdXMLShapeContext 457 { 458 private: 459 rtl::OUString maCLSID; 460 rtl::OUString maHref; 461 462 // #100592# 463 ::com::sun::star::uno::Reference < ::com::sun::star::io::XOutputStream > mxBase64Stream; 464 465 public: 466 TYPEINFO(); 467 468 SdXMLObjectShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 469 const rtl::OUString& rLocalName, 470 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 471 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 472 sal_Bool bTemporaryShape); 473 virtual ~SdXMLObjectShapeContext(); 474 475 virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList ); 476 virtual void EndElement(); 477 478 // #100592# 479 virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, 480 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList ); 481 482 // this is called from the parent group for each unparsed attribute in the attribute list 483 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 484 }; 485 486 ////////////////////////////////////////////////////////////////////////////// 487 // draw:applet 488 489 class SdXMLAppletShapeContext : public SdXMLShapeContext 490 { 491 private: 492 rtl::OUString maAppletName; 493 rtl::OUString maAppletCode; 494 rtl::OUString maHref; 495 sal_Bool mbIsScript; 496 497 com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > maParams; 498 499 public: 500 TYPEINFO(); 501 502 SdXMLAppletShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 503 const rtl::OUString& rLocalName, 504 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 505 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 506 sal_Bool bTemporaryShape); 507 virtual ~SdXMLAppletShapeContext(); 508 509 virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList ); 510 virtual void EndElement(); 511 512 virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, 513 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList ); 514 515 // this is called from the parent group for each unparsed attribute in the attribute list 516 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 517 }; 518 519 ////////////////////////////////////////////////////////////////////////////// 520 // draw:plugin 521 522 class SdXMLPluginShapeContext : public SdXMLShapeContext 523 { 524 private: 525 rtl::OUString maMimeType; 526 rtl::OUString maHref; 527 bool mbMedia; 528 529 com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > maParams; 530 531 public: 532 TYPEINFO(); 533 534 SdXMLPluginShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 535 const rtl::OUString& rLocalName, 536 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 537 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 538 sal_Bool bTemporaryShape); 539 virtual ~SdXMLPluginShapeContext(); 540 541 virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList ); 542 virtual void EndElement(); 543 544 virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, 545 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList ); 546 547 // this is called from the parent group for each unparsed attribute in the attribute list 548 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 549 }; 550 551 ////////////////////////////////////////////////////////////////////////////// 552 // draw:floating-frame 553 554 class SdXMLFloatingFrameShapeContext : public SdXMLShapeContext 555 { 556 private: 557 rtl::OUString maFrameName; 558 rtl::OUString maHref; 559 560 public: 561 TYPEINFO(); 562 563 SdXMLFloatingFrameShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 564 const rtl::OUString& rLocalName, 565 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 566 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 567 sal_Bool bTemporaryShape); 568 virtual ~SdXMLFloatingFrameShapeContext(); 569 570 virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList ); 571 virtual void EndElement(); 572 573 // this is called from the parent group for each unparsed attribute in the attribute list 574 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 575 }; 576 577 ////////////////////////////////////////////////////////////////////////////// 578 // draw:-frame 579 580 class SdXMLFrameShapeContext : public SdXMLShapeContext 581 { 582 private: 583 sal_Bool mbSupportsReplacement; 584 SvXMLImportContextRef mxImplContext; 585 SvXMLImportContextRef mxReplImplContext; 586 587 public: 588 TYPEINFO(); 589 590 SdXMLFrameShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 591 const rtl::OUString& rLocalName, 592 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 593 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 594 sal_Bool bTemporaryShape); 595 virtual ~SdXMLFrameShapeContext(); 596 597 virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, 598 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList ); 599 600 virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList ); 601 virtual void EndElement(); 602 603 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 604 }; 605 606 class SdXMLCustomShapeContext : public SdXMLShapeContext 607 { 608 609 protected : 610 611 rtl::OUString maCustomShapeEngine; 612 rtl::OUString maCustomShapeData; 613 614 std::vector< com::sun::star::beans::PropertyValue > maCustomShapeGeometry; 615 616 public: 617 618 TYPEINFO(); 619 620 SdXMLCustomShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, const rtl::OUString& rLocalName, 621 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 622 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes, 623 sal_Bool bTemporaryShape); 624 virtual ~SdXMLCustomShapeContext(); 625 626 virtual void StartElement( const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList ); 627 virtual void EndElement(); 628 629 virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, 630 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList ); 631 632 // this is called from the parent group for each unparsed attribute in the attribute list 633 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 634 }; 635 636 ////////////////////////////////////////////////////////////////////////////// 637 // draw:table 638 639 class SdXMLTableShapeContext : public SdXMLShapeContext 640 { 641 public: 642 TYPEINFO(); 643 644 SdXMLTableShapeContext( SvXMLImport& rImport, sal_uInt16 nPrfx, 645 const rtl::OUString& rLocalName, 646 const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList, 647 com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes ); 648 virtual ~SdXMLTableShapeContext(); 649 650 virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList ); 651 virtual void EndElement(); 652 653 virtual SvXMLImportContext * CreateChildContext( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList>& xAttrList ); 654 655 // this is called from the parent group for each unparsed attribute in the attribute list 656 virtual void processAttribute( sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName, const ::rtl::OUString& rValue ); 657 658 private: 659 SvXMLImportContextRef mxTableImportContext; 660 rtl::OUString msTemplateStyleName; 661 sal_Bool maTemplateStylesUsed[6]; 662 }; 663 664 #endif // _XIMPSHAPE_HXX 665