diff options
Diffstat (limited to 'oox/source/ppt/slidetransitioncontext.cxx')
-rw-r--r-- | oox/source/ppt/slidetransitioncontext.cxx | 65 |
1 files changed, 27 insertions, 38 deletions
diff --git a/oox/source/ppt/slidetransitioncontext.cxx b/oox/source/ppt/slidetransitioncontext.cxx index c7f61912f44e..c74e0d89a2a7 100644 --- a/oox/source/ppt/slidetransitioncontext.cxx +++ b/oox/source/ppt/slidetransitioncontext.cxx @@ -51,23 +51,21 @@ using namespace ::com::sun::star::container; namespace oox { namespace ppt { -SlideTransitionContext::SlideTransitionContext( ContextHandler& rParent, const Reference< XFastAttributeList >& xAttribs, PropertyMap & aProperties ) throw() -: ContextHandler( rParent ) +SlideTransitionContext::SlideTransitionContext( FragmentHandler2& rParent, const AttributeList& rAttribs, PropertyMap & aProperties ) throw() +: FragmentHandler2( rParent ) , maSlideProperties( aProperties ) , mbHasTransition( sal_False ) { - AttributeList attribs(xAttribs); - // ST_TransitionSpeed - maTransition.setOoxTransitionSpeed( xAttribs->getOptionalValueToken( XML_spd, XML_fast ) ); + maTransition.setOoxTransitionSpeed( rAttribs.getToken( XML_spd, XML_fast ) ); // TODO - attribs.getBool( XML_advClick, true ); + rAttribs.getBool( XML_advClick, true ); // careful. if missing, no auto advance... 0 looks like a valid value // for auto advance - if(attribs.hasAttribute( XML_advTm )) - maTransition.setOoxAdvanceTime( attribs.getInteger( XML_advTm, -1 ) ); + if(rAttribs.hasAttribute( XML_advTm )) + maTransition.setOoxAdvanceTime( rAttribs.getInteger( XML_advTm, -1 ) ); } SlideTransitionContext::~SlideTransitionContext() throw() @@ -75,10 +73,8 @@ SlideTransitionContext::~SlideTransitionContext() throw() } -Reference< XFastContextHandler > SlideTransitionContext::createFastChildContext( sal_Int32 aElementToken, const Reference< XFastAttributeList >& xAttribs ) throw (SAXException, RuntimeException) +::oox::core::ContextHandlerRef SlideTransitionContext::onCreateContext( sal_Int32 aElementToken, const AttributeList& rAttribs ) { - Reference< XFastContextHandler > xRet; - switch( aElementToken ) { case PPT_TOKEN( blinds ): @@ -88,67 +84,65 @@ Reference< XFastContextHandler > SlideTransitionContext::createFastChildContext( if (!mbHasTransition) { mbHasTransition = true; - maTransition.setOoxTransitionType( aElementToken, xAttribs->getOptionalValueToken( XML_dir, XML_horz ), 0); + maTransition.setOoxTransitionType( aElementToken, rAttribs.getToken( XML_dir, XML_horz ), 0); // ST_Direction { XML_horz, XML_vert } } - break; + return this; case PPT_TOKEN( cover ): case PPT_TOKEN( pull ): if (!mbHasTransition) { mbHasTransition = true; - maTransition.setOoxTransitionType( aElementToken, xAttribs->getOptionalValueToken( XML_dir, XML_l ), 0 ); + maTransition.setOoxTransitionType( aElementToken, rAttribs.getToken( XML_dir, XML_l ), 0 ); // ST_TransitionEightDirectionType { ST_TransitionSideDirectionType { // XML_d, XML_d, XML_r, XML_u }, // ST_TransitionCornerDirectionType { // XML_ld, XML_lu, XML_rd, XML_ru } } - break; + return this; case PPT_TOKEN( cut ): case PPT_TOKEN( fade ): if (!mbHasTransition) { mbHasTransition = true; - AttributeList attribs(xAttribs); // CT_OptionalBlackTransition xdb:bool - maTransition.setOoxTransitionType( aElementToken, attribs.getBool( XML_thruBlk, false ), 0); + maTransition.setOoxTransitionType( aElementToken, rAttribs.getBool( XML_thruBlk, false ), 0); } - break; + return this; case PPT_TOKEN( push ): case PPT_TOKEN( wipe ): if (!mbHasTransition) { mbHasTransition = true; - maTransition.setOoxTransitionType( aElementToken, xAttribs->getOptionalValueToken( XML_dir, XML_l ), 0 ); + maTransition.setOoxTransitionType( aElementToken, rAttribs.getToken( XML_dir, XML_l ), 0 ); // ST_TransitionSideDirectionType { XML_d, XML_l, XML_r, XML_u } } - break; + return this; case PPT_TOKEN( split ): if (!mbHasTransition) { mbHasTransition = true; - maTransition.setOoxTransitionType( aElementToken, xAttribs->getOptionalValueToken( XML_orient, XML_horz ), xAttribs->getOptionalValueToken( XML_dir, XML_out ) ); + maTransition.setOoxTransitionType( aElementToken, rAttribs.getToken( XML_orient, XML_horz ), rAttribs.getToken( XML_dir, XML_out ) ); // ST_Direction { XML_horz, XML_vert } // ST_TransitionInOutDirectionType { XML_out, XML_in } } - break; + return this; case PPT_TOKEN( zoom ): if (!mbHasTransition) { mbHasTransition = true; - maTransition.setOoxTransitionType( aElementToken, xAttribs->getOptionalValueToken( XML_dir, XML_out ), 0 ); + maTransition.setOoxTransitionType( aElementToken, rAttribs.getToken( XML_dir, XML_out ), 0 ); // ST_TransitionInOutDirectionType { XML_out, XML_in } } - break; + return this; case PPT_TOKEN( wheel ): if (!mbHasTransition) { mbHasTransition = true; - AttributeList attribs(xAttribs); - maTransition.setOoxTransitionType( aElementToken, attribs.getUnsigned( XML_spokes, 4 ), 0 ); + maTransition.setOoxTransitionType( aElementToken, rAttribs.getUnsigned( XML_spokes, 4 ), 0 ); // unsignedInt } - break; + return this; case PPT_TOKEN( circle ): case PPT_TOKEN( diamond ): case PPT_TOKEN( dissolve ): @@ -162,28 +156,23 @@ Reference< XFastContextHandler > SlideTransitionContext::createFastChildContext( mbHasTransition = true; maTransition.setOoxTransitionType( aElementToken, 0, 0 ); } - break; - + return this; case PPT_TOKEN( sndAc ): // CT_TransitionSoundAction //"Sound" - xRet.set( new SoundActionContext ( *this, maSlideProperties ) ); - break; + return new SoundActionContext ( *this, maSlideProperties ); case PPT_TOKEN( extLst ): // CT_OfficeArtExtensionList - return xRet; + return this; default: break; } - if( !xRet.is() ) - xRet.set(this); - - return xRet; + return this; } -void SlideTransitionContext::endFastElement( sal_Int32 aElement ) throw (::com::sun::star::xml::sax::SAXException, RuntimeException) +void SlideTransitionContext::onEndElement() { - if( aElement == (PPT_TOKEN( transition )) ) + if( isCurrentElement(PPT_TOKEN( transition )) ) { if( mbHasTransition ) { |