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 :
10 : #include "extdrawingfragmenthandler.hxx"
11 :
12 : using namespace ::oox::core;
13 : using namespace ::com::sun::star::xml::sax;
14 : using namespace ::com::sun::star::uno;
15 :
16 : namespace oox { namespace ppt {
17 :
18 16 : ExtDrawingFragmentHandler::ExtDrawingFragmentHandler( XmlFilterBase& rFilter,
19 : const OUString& rFragmentPath,
20 : const oox::ppt::SlidePersistPtr pSlidePersistPtr,
21 : const oox::ppt::ShapeLocation eShapeLocation,
22 : oox::drawingml::ShapePtr pMasterShapePtr,
23 : oox::drawingml::ShapePtr pGroupShapePtr,
24 : oox::drawingml::ShapePtr pShapePtr)
25 : throw( )
26 : : FragmentHandler2( rFilter, rFragmentPath ),
27 : mpSlidePersistPtr (pSlidePersistPtr ),
28 : meShapeLocation( eShapeLocation ),
29 : mpMasterShapePtr( pMasterShapePtr ),
30 : mpGroupShapePtr( pGroupShapePtr ),
31 16 : mpOrgShapePtr( pShapePtr )
32 : {
33 16 : }
34 :
35 32 : ExtDrawingFragmentHandler::~ExtDrawingFragmentHandler( ) throw ()
36 : {
37 :
38 32 : }
39 :
40 : ContextHandlerRef
41 32 : ExtDrawingFragmentHandler::onCreateContext( ::sal_Int32 aElement,
42 : const AttributeList& )
43 : {
44 32 : switch( aElement )
45 : {
46 : case DSP_TOKEN( drawing ):
47 16 : break;
48 : case DSP_TOKEN( spTree ):
49 16 : mpShapePtr = oox::drawingml::ShapePtr( new PPTShape( meShapeLocation, "com.sun.star.drawing.GroupShape" ) );
50 16 : mpShapePtr->setPosition( mpOrgShapePtr->getPosition() );
51 16 : mpShapePtr->setName( mpOrgShapePtr->getName() );
52 :
53 : return new PPTShapeGroupContext(
54 : *this, mpSlidePersistPtr, meShapeLocation, mpGroupShapePtr,
55 16 : mpShapePtr );
56 : default:
57 0 : break;
58 : }
59 :
60 16 : return this;
61 : }
62 :
63 408 : } }
64 :
65 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|