diff options
author | RĂ¼diger Timm <rt@openoffice.org> | 2007-07-06 11:28:29 +0000 |
---|---|---|
committer | RĂ¼diger Timm <rt@openoffice.org> | 2007-07-06 11:28:29 +0000 |
commit | c9b0be949611941e171f708d49895352b5881109 (patch) | |
tree | 64050ebcac1a62e3791150fc4c7003c0f7cc1b0b /xmloff | |
parent | 357c2d97c19d75d7fe73bd23958b328902f8a7c6 (diff) |
INTEGRATION: CWS dr55 (1.59.40); FILE MERGED
2007/06/28 12:29:41 dr 1.59.40.2: #i66550# changes disabled
2007/06/15 15:41:40 dr 1.59.40.1: #i66550# add hyperlinks to shapes, patch by npower, reviewed by dr
Diffstat (limited to 'xmloff')
-rw-r--r-- | xmloff/source/draw/shapeexport2.cxx | 406 |
1 files changed, 224 insertions, 182 deletions
diff --git a/xmloff/source/draw/shapeexport2.cxx b/xmloff/source/draw/shapeexport2.cxx index c97bc3702607..8402e64708ef 100644 --- a/xmloff/source/draw/shapeexport2.cxx +++ b/xmloff/source/draw/shapeexport2.cxx @@ -4,9 +4,9 @@ * * $RCSfile: shapeexport2.cxx,v $ * - * $Revision: 1.60 $ + * $Revision: 1.61 $ * - * last change: $Author: hr $ $Date: 2007-06-27 15:06:20 $ + * last change: $Author: rt $ $Date: 2007-07-06 12:28:29 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -358,125 +358,151 @@ void XMLShapeExport::ImpExportText( const uno::Reference< drawing::XShape >& xSh #include <com/sun/star/presentation/AnimationSpeed.hpp> #endif -#define FOUND_CLICKACTION 0x0001 -#define FOUND_BOOKMARK 0x0002 -#define FOUND_EFFECT 0x0004 -#define FOUND_PLAYFULL 0x0008 -#define FOUND_VERB 0x0010 -#define FOUND_SOUNDURL 0x0020 -#define FOUND_SPEED 0x0040 -#define FOUND_EVENTTYPE 0x0080 -#define FOUND_MACRO 0x0100 -#define FOUND_LIBRARY 0x0200 +namespace { + +const sal_Int32 FOUND_CLICKACTION = 0x00000001; +const sal_Int32 FOUND_BOOKMARK = 0x00000002; +const sal_Int32 FOUND_EFFECT = 0x00000004; +const sal_Int32 FOUND_PLAYFULL = 0x00000008; +const sal_Int32 FOUND_VERB = 0x00000010; +const sal_Int32 FOUND_SOUNDURL = 0x00000020; +const sal_Int32 FOUND_SPEED = 0x00000040; +const sal_Int32 FOUND_CLICKEVENTTYPE = 0x00000080; +const sal_Int32 FOUND_MACRO = 0x00000100; +const sal_Int32 FOUND_LIBRARY = 0x00000200; +const sal_Int32 FOUND_ACTIONEVENTTYPE = 0x00000400; +#ifdef ISSUE66550_HLINK_FOR_SHAPES +const sal_Int32 FOUND_URL = 0x00000800; +#endif + +} // namespace void XMLShapeExport::ImpExportEvents( const uno::Reference< drawing::XShape >& xShape ) { - do + uno::Reference< document::XEventsSupplier > xEventsSupplier( xShape, uno::UNO_QUERY ); + if( !xEventsSupplier.is() ) + return; + + uno::Reference< container::XNameAccess > xEvents( xEventsSupplier->getEvents(), uno::UNO_QUERY ); + DBG_ASSERT( xEvents.is(), "XEventsSupplier::getEvents() returned NULL" ); + if( !xEvents.is() ) + return; + + sal_Int32 nFound = 0; + + // extract properties from "OnClick" event -------------------------------- + + OUString aClickEventType; + presentation::ClickAction eClickAction = presentation::ClickAction_NONE; + presentation::AnimationEffect eEffect = presentation::AnimationEffect_NONE; + presentation::AnimationSpeed eSpeed = presentation::AnimationSpeed_SLOW; + OUString aStrSoundURL; + sal_Bool bPlayFull = false; + sal_Int32 nVerb = 0; + OUString aStrMacro; + OUString aStrLibrary; + OUString aStrBookmark; + + uno::Sequence< beans::PropertyValue > aClickProperties; + if( xEvents->hasByName( msOnClick ) && (xEvents->getByName( msOnClick ) >>= aClickProperties) ) { - uno::Reference< document::XEventsSupplier > xEventsSupplier( xShape, uno::UNO_QUERY ); - if( !xEventsSupplier.is() ) - break; - - uno::Reference< container::XNameReplace > xEvents( xEventsSupplier->getEvents() ); - DBG_ASSERT( xEvents.is(), "XEventsSupplier::getEvents() returned NULL" ); - if( !xEvents.is() ) - break; - - uno::Sequence< beans::PropertyValue > aProperties; - if( !xEvents->hasByName( msOnClick ) ) - break; - - if( !(xEvents->getByName( msOnClick ) >>= aProperties) ) - break; - - sal_Int32 nFound = 0; - const beans::PropertyValue* pProperties = aProperties.getConstArray(); - - OUString aStrEventType; - presentation::ClickAction eClickAction = presentation::ClickAction_NONE; - presentation::AnimationEffect eEffect = - presentation::AnimationEffect_NONE; - presentation::AnimationSpeed eSpeed = presentation::AnimationSpeed_SLOW; - OUString aStrSoundURL; - sal_Bool bPlayFull = false; - sal_Int32 nVerb = 0; - OUString aStrMacro; - OUString aStrLibrary; - OUString aStrBookmark; - - const sal_Int32 nCount = aProperties.getLength(); - sal_Int32 nIndex; - for( nIndex = 0; nIndex < nCount; nIndex++, pProperties++ ) + const beans::PropertyValue* pProperty = aClickProperties.getConstArray(); + const beans::PropertyValue* pPropertyEnd = pProperty + aClickProperties.getLength(); + for( ; pProperty != pPropertyEnd; ++pProperty ) { - if( ( ( nFound & FOUND_EVENTTYPE ) == 0 ) && pProperties->Name == msEventType ) + if( ( ( nFound & FOUND_CLICKEVENTTYPE ) == 0 ) && pProperty->Name == msEventType ) { - if( pProperties->Value >>= aStrEventType ) - nFound |= FOUND_EVENTTYPE; + if( pProperty->Value >>= aClickEventType ) + nFound |= FOUND_CLICKEVENTTYPE; } - else if( ( ( nFound & FOUND_CLICKACTION ) == 0 ) && pProperties->Name == msClickAction ) + else if( ( ( nFound & FOUND_CLICKACTION ) == 0 ) && pProperty->Name == msClickAction ) { - if( pProperties->Value >>= eClickAction ) + if( pProperty->Value >>= eClickAction ) nFound |= FOUND_CLICKACTION; } - else if( ( ( nFound & FOUND_MACRO ) == 0 ) && ( pProperties->Name == msMacroName || pProperties->Name == msScript ) ) + else if( ( ( nFound & FOUND_MACRO ) == 0 ) && ( pProperty->Name == msMacroName || pProperty->Name == msScript ) ) { - if( pProperties->Value >>= aStrMacro ) + if( pProperty->Value >>= aStrMacro ) nFound |= FOUND_MACRO; } - else if( ( ( nFound & FOUND_LIBRARY ) == 0 ) && pProperties->Name == msLibrary ) + else if( ( ( nFound & FOUND_LIBRARY ) == 0 ) && pProperty->Name == msLibrary ) { - if( pProperties->Value >>= aStrLibrary ) + if( pProperty->Value >>= aStrLibrary ) nFound |= FOUND_LIBRARY; } - else if( ( ( nFound & FOUND_EFFECT ) == 0 ) && pProperties->Name == msEffect ) + else if( ( ( nFound & FOUND_EFFECT ) == 0 ) && pProperty->Name == msEffect ) { - if( pProperties->Value >>= eEffect ) + if( pProperty->Value >>= eEffect ) nFound |= FOUND_EFFECT; } - else if( ( ( nFound & FOUND_BOOKMARK ) == 0 ) && pProperties->Name == msBookmark ) + else if( ( ( nFound & FOUND_BOOKMARK ) == 0 ) && pProperty->Name == msBookmark ) { - if( pProperties->Value >>= aStrBookmark ) + if( pProperty->Value >>= aStrBookmark ) nFound |= FOUND_BOOKMARK; } - else if( ( ( nFound & FOUND_SPEED ) == 0 ) && pProperties->Name == msSpeed ) + else if( ( ( nFound & FOUND_SPEED ) == 0 ) && pProperty->Name == msSpeed ) { - if( pProperties->Value >>= eSpeed ) + if( pProperty->Value >>= eSpeed ) nFound |= FOUND_SPEED; } - else if( ( ( nFound & FOUND_SOUNDURL ) == 0 ) && pProperties->Name == msSoundURL ) + else if( ( ( nFound & FOUND_SOUNDURL ) == 0 ) && pProperty->Name == msSoundURL ) { - if( pProperties->Value >>= aStrSoundURL ) + if( pProperty->Value >>= aStrSoundURL ) nFound |= FOUND_SOUNDURL; } - else if( ( ( nFound & FOUND_PLAYFULL ) == 0 ) && pProperties->Name == msPlayFull ) + else if( ( ( nFound & FOUND_PLAYFULL ) == 0 ) && pProperty->Name == msPlayFull ) { - if( pProperties->Value >>= bPlayFull ) + if( pProperty->Value >>= bPlayFull ) nFound |= FOUND_PLAYFULL; } - else if( ( ( nFound & FOUND_VERB ) == 0 ) && pProperties->Name == msVerb ) + else if( ( ( nFound & FOUND_VERB ) == 0 ) && pProperty->Name == msVerb ) { - if( pProperties->Value >>= nVerb ) + if( pProperty->Value >>= nVerb ) nFound |= FOUND_VERB; } } + } - if( ( nFound & FOUND_EVENTTYPE ) == 0 ) - break; +#ifdef ISSUE66550_HLINK_FOR_SHAPES + // extract properties from "OnAction" event ------------------------------- + + OUString aActionEventType; + OUString aHyperURL; - if( aStrEventType == msPresentation ) + uno::Sequence< beans::PropertyValue > aActionProperties; + if( xEvents->hasByName( msOnAction ) && (xEvents->getByName( msOnAction ) >>= aActionProperties) ) + { + const beans::PropertyValue* pProperty = aActionProperties.getConstArray(); + const beans::PropertyValue* pPropertyEnd = pProperty + aActionProperties.getLength(); + for( ; pProperty != pPropertyEnd; ++pProperty ) { - if( ( nFound & FOUND_CLICKACTION ) == 0 ) - break; + if( ( ( nFound & FOUND_ACTIONEVENTTYPE ) == 0 ) && pProperty->Name == msEventType ) + { + if( pProperty->Value >>= aActionEventType ) + nFound |= FOUND_ACTIONEVENTTYPE; + } + else if( ( ( nFound & FOUND_URL ) == 0 ) && ( pProperty->Name == msURL ) ) + { + if( pProperty->Value >>= aHyperURL ) + nFound |= FOUND_URL; + } + } + } +#endif - if( eClickAction == presentation::ClickAction_NONE ) - break; + // create the XML elements - SvXMLElementExport aEventsElemt(mrExport, XML_NAMESPACE_OFFICE, XML_EVENT_LISTENERS, sal_True, sal_True); + if( aClickEventType == msPresentation ) + { + if( ((nFound & FOUND_CLICKACTION) == 0) || (eClickAction == presentation::ClickAction_NONE) ) + return; - enum XMLTokenEnum eStrAction; + SvXMLElementExport aEventsElemt(mrExport, XML_NAMESPACE_OFFICE, XML_EVENT_LISTENERS, sal_True, sal_True); - switch( eClickAction ) - { + enum XMLTokenEnum eStrAction; + + switch( eClickAction ) + { case presentation::ClickAction_PREVPAGE: eStrAction = XML_PREVIOUS_PAGE; break; case presentation::ClickAction_NEXTPAGE: eStrAction = XML_NEXT_PAGE; break; case presentation::ClickAction_FIRSTPAGE: eStrAction = XML_FIRST_PAGE; break; @@ -493,149 +519,165 @@ void XMLShapeExport::ImpExportEvents( const uno::Reference< drawing::XShape >& x default: DBG_ERROR( "unknown presentation::ClickAction found!" ); eStrAction = XML_UNKNOWN; - } + } - OUString aEventQName( - mrExport.GetNamespaceMap().GetQNameByKey( - XML_NAMESPACE_DOM, OUString( RTL_CONSTASCII_USTRINGPARAM( "click" ) ) ) ); - mrExport.AddAttribute( XML_NAMESPACE_SCRIPT, XML_EVENT_NAME, aEventQName ); - mrExport.AddAttribute( XML_NAMESPACE_PRESENTATION, XML_ACTION, eStrAction ); + OUString aEventQName( + mrExport.GetNamespaceMap().GetQNameByKey( + XML_NAMESPACE_DOM, OUString( RTL_CONSTASCII_USTRINGPARAM( "click" ) ) ) ); + mrExport.AddAttribute( XML_NAMESPACE_SCRIPT, XML_EVENT_NAME, aEventQName ); + mrExport.AddAttribute( XML_NAMESPACE_PRESENTATION, XML_ACTION, eStrAction ); - if( eClickAction == presentation::ClickAction_VANISH ) + if( eClickAction == presentation::ClickAction_VANISH ) + { + if( nFound & FOUND_EFFECT ) { - if( nFound & FOUND_EFFECT ) - { - XMLEffect eKind; - XMLEffectDirection eDirection; - sal_Int16 nStartScale; - sal_Bool bIn; + XMLEffect eKind; + XMLEffectDirection eDirection; + sal_Int16 nStartScale; + sal_Bool bIn; - SdXMLImplSetEffect( eEffect, eKind, eDirection, nStartScale, bIn ); - - if( eKind != EK_none ) - { - SvXMLUnitConverter::convertEnum( msBuffer, eKind, aXML_AnimationEffect_EnumMap ); - mrExport.AddAttribute( XML_NAMESPACE_PRESENTATION, XML_EFFECT, msBuffer.makeStringAndClear() ); - } + SdXMLImplSetEffect( eEffect, eKind, eDirection, nStartScale, bIn ); - if( eDirection != ED_none ) - { - SvXMLUnitConverter::convertEnum( msBuffer, eDirection, aXML_AnimationDirection_EnumMap ); - mrExport.AddAttribute( XML_NAMESPACE_PRESENTATION, XML_DIRECTION, msBuffer.makeStringAndClear() ); - } + if( eKind != EK_none ) + { + SvXMLUnitConverter::convertEnum( msBuffer, eKind, aXML_AnimationEffect_EnumMap ); + mrExport.AddAttribute( XML_NAMESPACE_PRESENTATION, XML_EFFECT, msBuffer.makeStringAndClear() ); + } - if( nStartScale != -1 ) - { - SvXMLUnitConverter::convertPercent( msBuffer, nStartScale ); - mrExport.AddAttribute( XML_NAMESPACE_PRESENTATION, XML_START_SCALE, msBuffer.makeStringAndClear() ); - } + if( eDirection != ED_none ) + { + SvXMLUnitConverter::convertEnum( msBuffer, eDirection, aXML_AnimationDirection_EnumMap ); + mrExport.AddAttribute( XML_NAMESPACE_PRESENTATION, XML_DIRECTION, msBuffer.makeStringAndClear() ); } - if( nFound & FOUND_SPEED && eEffect != presentation::AnimationEffect_NONE ) + if( nStartScale != -1 ) { - if( eSpeed != presentation::AnimationSpeed_MEDIUM ) - { - SvXMLUnitConverter::convertEnum( msBuffer, eSpeed, aXML_AnimationSpeed_EnumMap ); - mrExport.AddAttribute( XML_NAMESPACE_PRESENTATION, XML_SPEED, msBuffer.makeStringAndClear() ); - } + SvXMLUnitConverter::convertPercent( msBuffer, nStartScale ); + mrExport.AddAttribute( XML_NAMESPACE_PRESENTATION, XML_START_SCALE, msBuffer.makeStringAndClear() ); } } - if( eClickAction == presentation::ClickAction_PROGRAM || - eClickAction == presentation::ClickAction_BOOKMARK || - eClickAction == presentation::ClickAction_DOCUMENT ) + if( nFound & FOUND_SPEED && eEffect != presentation::AnimationEffect_NONE ) { - if( eClickAction == presentation::ClickAction_BOOKMARK ) - msBuffer.append( sal_Unicode('#') ); + if( eSpeed != presentation::AnimationSpeed_MEDIUM ) + { + SvXMLUnitConverter::convertEnum( msBuffer, eSpeed, aXML_AnimationSpeed_EnumMap ); + mrExport.AddAttribute( XML_NAMESPACE_PRESENTATION, XML_SPEED, msBuffer.makeStringAndClear() ); + } + } + } + + if( eClickAction == presentation::ClickAction_PROGRAM || + eClickAction == presentation::ClickAction_BOOKMARK || + eClickAction == presentation::ClickAction_DOCUMENT ) + { + if( eClickAction == presentation::ClickAction_BOOKMARK ) + msBuffer.append( sal_Unicode('#') ); + + msBuffer.append( aStrBookmark ); + mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, GetExport().GetRelativeReference(msBuffer.makeStringAndClear()) ); + mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE ); + mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_SHOW, XML_EMBED ); + mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_ACTUATE, XML_ONREQUEST ); + } + + if( ( nFound & FOUND_VERB ) && eClickAction == presentation::ClickAction_VERB ) + { + msBuffer.append( nVerb ); + mrExport.AddAttribute(XML_NAMESPACE_PRESENTATION, XML_VERB, msBuffer.makeStringAndClear()); + } - msBuffer.append( aStrBookmark ); - mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, GetExport().GetRelativeReference(msBuffer.makeStringAndClear()) ); + SvXMLElementExport aEventElemt(mrExport, XML_NAMESPACE_PRESENTATION, XML_EVENT_LISTENER, sal_True, sal_True); + + if( eClickAction == presentation::ClickAction_VANISH || eClickAction == presentation::ClickAction_SOUND ) + { + if( ( nFound & FOUND_SOUNDURL ) && aStrSoundURL.getLength() != 0 ) + { + mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, GetExport().GetRelativeReference(aStrSoundURL) ); mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE ); - mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_SHOW, XML_EMBED ); + mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_SHOW, XML_NEW ); mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_ACTUATE, XML_ONREQUEST ); - } + if( nFound & FOUND_PLAYFULL && bPlayFull ) + mrExport.AddAttribute( XML_NAMESPACE_PRESENTATION, XML_PLAY_FULL, XML_TRUE ); - if( ( nFound & FOUND_VERB ) && eClickAction == presentation::ClickAction_VERB ) - { - msBuffer.append( nVerb ); - mrExport.AddAttribute(XML_NAMESPACE_PRESENTATION, XML_VERB, msBuffer.makeStringAndClear()); + SvXMLElementExport aElem( mrExport, XML_NAMESPACE_PRESENTATION, XML_SOUND, sal_True, sal_True ); } + } + } + else if( aClickEventType == msStarBasic ) + { + if( nFound & FOUND_MACRO ) + { + SvXMLElementExport aEventsElemt(mrExport, XML_NAMESPACE_OFFICE, XML_EVENT_LISTENERS, sal_True, sal_True); - SvXMLElementExport aEventElemt(mrExport, XML_NAMESPACE_PRESENTATION, XML_EVENT_LISTENER, sal_True, sal_True); + mrExport.AddAttribute( XML_NAMESPACE_SCRIPT, XML_LANGUAGE, + mrExport.GetNamespaceMap().GetQNameByKey( + XML_NAMESPACE_OOO, + OUString( RTL_CONSTASCII_USTRINGPARAM( + "starbasic" ) ) ) ); + OUString aEventQName( + mrExport.GetNamespaceMap().GetQNameByKey( + XML_NAMESPACE_DOM, OUString( RTL_CONSTASCII_USTRINGPARAM( "click" ) ) ) ); + mrExport.AddAttribute( XML_NAMESPACE_SCRIPT, XML_EVENT_NAME, aEventQName ); - if( eClickAction == presentation::ClickAction_VANISH || eClickAction == presentation::ClickAction_SOUND ) + if( nFound & FOUND_LIBRARY ) { - if( ( nFound & FOUND_SOUNDURL ) && aStrSoundURL.getLength() != 0 ) - { - mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, GetExport().GetRelativeReference(aStrSoundURL) ); - mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE ); - mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_SHOW, XML_NEW ); - mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_ACTUATE, XML_ONREQUEST ); - if( nFound & FOUND_PLAYFULL && bPlayFull ) - mrExport.AddAttribute( XML_NAMESPACE_PRESENTATION, XML_PLAY_FULL, XML_TRUE ); - - SvXMLElementExport aElem( mrExport, XML_NAMESPACE_PRESENTATION, XML_SOUND, sal_True, sal_True ); - } + OUString sLocation( GetXMLToken( + (aStrLibrary.equalsIgnoreAsciiCaseAscii("StarOffice") || + aStrLibrary.equalsIgnoreAsciiCaseAscii("application") ) ? XML_APPLICATION + : XML_DOCUMENT ) ); + OUStringBuffer sTmp( sLocation.getLength() + aStrMacro.getLength() + 1 ); + sTmp = sLocation; + sTmp.append( sal_Unicode( ':' ) ); + sTmp.append( aStrMacro ); + mrExport.AddAttribute(XML_NAMESPACE_SCRIPT, XML_MACRO_NAME, + sTmp.makeStringAndClear()); } - break; + else + { + mrExport.AddAttribute( XML_NAMESPACE_SCRIPT, XML_MACRO_NAME, aStrMacro ); + } + + SvXMLElementExport aEventElemt(mrExport, XML_NAMESPACE_SCRIPT, XML_EVENT_LISTENER, sal_True, sal_True); } - else if( aStrEventType == msStarBasic ) + } +#ifdef ISSUE66550_HLINK_FOR_SHAPES + else if( aClickEventType == msScript || aActionEventType == msAction ) + { + if( nFound & ( FOUND_MACRO | FOUND_URL ) ) +#else + else if( aClickEventType == msScript ) + { + if( nFound & FOUND_MACRO ) +#endif { - if( nFound & FOUND_MACRO ) + SvXMLElementExport aEventsElemt(mrExport, XML_NAMESPACE_OFFICE, XML_EVENT_LISTENERS, sal_True, sal_True); + if ( nFound & FOUND_MACRO ) { - SvXMLElementExport aEventsElemt(mrExport, XML_NAMESPACE_OFFICE, XML_EVENT_LISTENERS, sal_True, sal_True); - - mrExport.AddAttribute( XML_NAMESPACE_SCRIPT, XML_LANGUAGE, - mrExport.GetNamespaceMap().GetQNameByKey( - XML_NAMESPACE_OOO, - OUString( RTL_CONSTASCII_USTRINGPARAM( - "starbasic" ) ) ) ); + mrExport.AddAttribute( XML_NAMESPACE_SCRIPT, XML_LANGUAGE, mrExport.GetNamespaceMap().GetQNameByKey( + XML_NAMESPACE_OOO, GetXMLToken(XML_SCRIPT) ) ); OUString aEventQName( mrExport.GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_DOM, OUString( RTL_CONSTASCII_USTRINGPARAM( "click" ) ) ) ); mrExport.AddAttribute( XML_NAMESPACE_SCRIPT, XML_EVENT_NAME, aEventQName ); - - if( nFound & FOUND_LIBRARY ) - { - OUString sLocation( GetXMLToken( - (aStrLibrary.equalsIgnoreAsciiCaseAscii("StarOffice") || - aStrLibrary.equalsIgnoreAsciiCaseAscii("application") ) ? XML_APPLICATION - : XML_DOCUMENT ) ); - OUStringBuffer sTmp( sLocation.getLength() + aStrMacro.getLength() + 1 ); - sTmp = sLocation; - sTmp.append( sal_Unicode( ':' ) ); - sTmp.append( aStrMacro ); - mrExport.AddAttribute(XML_NAMESPACE_SCRIPT, XML_MACRO_NAME, - sTmp.makeStringAndClear()); - } - else - { - mrExport.AddAttribute( XML_NAMESPACE_SCRIPT, XML_MACRO_NAME, aStrMacro ); - } - + mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, aStrMacro ); SvXMLElementExport aEventElemt(mrExport, XML_NAMESPACE_SCRIPT, XML_EVENT_LISTENER, sal_True, sal_True); } - } - else if( aStrEventType == msScript ) - { - if( nFound & FOUND_MACRO ) +#ifdef ISSUE66550_HLINK_FOR_SHAPES + if ( nFound & FOUND_URL ) { - SvXMLElementExport aEventsElemt(mrExport, XML_NAMESPACE_OFFICE, XML_EVENT_LISTENERS, sal_True, sal_True); - - mrExport.AddAttribute( XML_NAMESPACE_SCRIPT, XML_LANGUAGE, mrExport.GetNamespaceMap().GetQNameByKey( - XML_NAMESPACE_OOO, GetXMLToken(XML_SCRIPT) ) ); OUString aEventQName( mrExport.GetNamespaceMap().GetQNameByKey( - XML_NAMESPACE_DOM, OUString( RTL_CONSTASCII_USTRINGPARAM( "click" ) ) ) ); + XML_NAMESPACE_DOM, OUString( RTL_CONSTASCII_USTRINGPARAM( "action" ) ) ) ); mrExport.AddAttribute( XML_NAMESPACE_SCRIPT, XML_EVENT_NAME, aEventQName ); - mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, aStrMacro ); + mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, aHyperURL ); - SvXMLElementExport aEventElemt(mrExport, XML_NAMESPACE_SCRIPT, XML_EVENT_LISTENER, sal_True, sal_True); + SvXMLElementExport aEventElemt(mrExport, XML_NAMESPACE_PRESENTATION, XML_EVENT_LISTENER, sal_True, sal_True); } +#endif } } - while(0); } ////////////////////////////////////////////////////////////////////////////// |