summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorAndras Timar <andras.timar@collabora.com>2015-02-24 21:34:12 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-02-25 13:25:30 +0000
commitb848e32dfd5fc6ed4e487e68460d49643fd5e3c1 (patch)
tree70f92d1c34ba00921886ec6838e1ea1c535f2f48 /oox
parentc91bfb9ac7d110c5dca0ea34ec0e1668a985b34c (diff)
bnc#637947 export shape shadow to DrawingML
Change-Id: I6e0b093d99dba731ff5723d6575f887346463908 Reviewed-on: https://gerrit.libreoffice.org/14605 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'oox')
-rw-r--r--oox/source/export/drawingml.cxx29
1 files changed, 29 insertions, 0 deletions
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 214652ddf462..573773030fac 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -2503,7 +2503,36 @@ void DrawingML::WriteShapeEffects( Reference< XPropertySet > rXPropSet )
}
}
if( aEffects.getLength() == 0 )
+ {
+ bool bHasShadow = false;
+ rXPropSet->getPropertyValue( "Shadow" ) >>= bHasShadow;
+ if( bHasShadow )
+ {
+ Sequence< PropertyValue > aShadowGrabBag( 3 );
+ Sequence< PropertyValue > aShadowAttribsGrabBag( 2 );
+
+ double dX, dY;
+ rXPropSet->getPropertyValue( "ShadowXDistance" ) >>= dX;
+ rXPropSet->getPropertyValue( "ShadowYDistance" ) >>= dY;
+
+ aShadowAttribsGrabBag[0].Name = "dist";
+ aShadowAttribsGrabBag[0].Value = Any(static_cast< sal_Int32 >(sqrt(dX*dX + dY*dY) * 360));
+ aShadowAttribsGrabBag[1].Name = "dir";
+ aShadowAttribsGrabBag[1].Value = Any(static_cast< sal_Int32 >(atan2(dY,dX) * 180 * 60000 / M_PI));
+
+ aShadowGrabBag[0].Name = "Attribs";
+ aShadowGrabBag[0].Value = Any(aShadowAttribsGrabBag);
+ aShadowGrabBag[1].Name = "RgbClr";
+ aShadowGrabBag[1].Value = rXPropSet->getPropertyValue( "ShadowColor" );
+ aShadowGrabBag[2].Name = "RgbClrTransparency";
+ aShadowGrabBag[2].Value = rXPropSet->getPropertyValue( "ShadowTransparence" );
+
+ mpFS->startElementNS(XML_a, XML_effectLst, FSEND);
+ WriteShapeEffect( "outerShdw", aShadowGrabBag );
+ mpFS->endElementNS(XML_a, XML_effectLst);
+ }
return;
+ }
mpFS->startElementNS(XML_a, XML_effectLst, FSEND);