LCOV - code coverage report
Current view: top level - xmloff/source/draw - ximpshap.hxx (source / functions) Hit Total Coverage
Test: commit 0e63ca4fde4e446f346e35849c756a30ca294aab Lines: 1 1 100.0 %
Date: 2014-04-11 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

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

Generated by: LCOV version 1.10