summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drawinglayer/source/primitive2d/shadowprimitive2d.cxx10
-rw-r--r--drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx1
-rw-r--r--drawinglayer/source/processor3d/shadow3dextractor.cxx1
-rw-r--r--include/drawinglayer/primitive2d/shadowprimitive2d.hxx10
-rw-r--r--oox/source/drawingml/effectproperties.cxx3
-rw-r--r--sd/qa/unit/import-tests.cxx2
-rw-r--r--svx/source/sdr/primitive2d/sdrdecompositiontools.cxx1
7 files changed, 22 insertions, 6 deletions
diff --git a/drawinglayer/source/primitive2d/shadowprimitive2d.cxx b/drawinglayer/source/primitive2d/shadowprimitive2d.cxx
index 8cb8311494a5..e2c0be36ec9e 100644
--- a/drawinglayer/source/primitive2d/shadowprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/shadowprimitive2d.cxx
@@ -23,6 +23,8 @@
#include <drawinglayer/primitive2d/transformprimitive2d.hxx>
#include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
+#include <sal/log.hxx>
+#include <memory>
using namespace com::sun::star;
@@ -32,10 +34,12 @@ namespace drawinglayer::primitive2d
ShadowPrimitive2D::ShadowPrimitive2D(
const basegfx::B2DHomMatrix& rShadowTransform,
const basegfx::BColor& rShadowColor,
+ double fShadowBlur,
const Primitive2DContainer& rChildren)
: GroupPrimitive2D(rChildren),
maShadowTransform(rShadowTransform),
- maShadowColor(rShadowColor)
+ maShadowColor(rShadowColor),
+ mfShadowBlur(fShadowBlur)
{
}
@@ -46,7 +50,8 @@ namespace drawinglayer::primitive2d
const ShadowPrimitive2D& rCompare = static_cast< const ShadowPrimitive2D& >(rPrimitive);
return (getShadowTransform() == rCompare.getShadowTransform()
- && getShadowColor() == rCompare.getShadowColor());
+ && getShadowColor() == rCompare.getShadowColor()
+ && getShadowBlur() == rCompare.getShadowBlur());
}
return false;
@@ -55,6 +60,7 @@ namespace drawinglayer::primitive2d
basegfx::B2DRange ShadowPrimitive2D::getB2DRange(const geometry::ViewInformation2D& rViewInformation) const
{
basegfx::B2DRange aRetval(getChildren().getB2DRange(rViewInformation));
+ aRetval.grow(getShadowBlur());
aRetval.transform(getShadowTransform());
return aRetval;
}
diff --git a/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx b/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx
index 28e9eccdacc5..afc841fcf3bd 100644
--- a/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx
@@ -235,6 +235,7 @@ namespace drawinglayer::primitive2d
aShadow = new ShadowPrimitive2D(
aShadowTransform,
aShadowColor,
+ 0, // fShadowBlur = 0, there's no blur for text shadow yet.
aRetval);
}
diff --git a/drawinglayer/source/processor3d/shadow3dextractor.cxx b/drawinglayer/source/processor3d/shadow3dextractor.cxx
index 45fca6d8dd38..0b653236eb1b 100644
--- a/drawinglayer/source/processor3d/shadow3dextractor.cxx
+++ b/drawinglayer/source/processor3d/shadow3dextractor.cxx
@@ -74,6 +74,7 @@ namespace drawinglayer::processor3d
primitive2d::BasePrimitive2D* pNew = new primitive2d::ShadowPrimitive2D(
rPrimitive.getShadowTransform(),
rPrimitive.getShadowColor(),
+ 0, // shadow3d doesn't have rPrimitive.getShadowBlur() yet.
aNewSubList);
if(basegfx::fTools::more(rPrimitive.getShadowTransparence(), 0.0))
diff --git a/include/drawinglayer/primitive2d/shadowprimitive2d.hxx b/include/drawinglayer/primitive2d/shadowprimitive2d.hxx
index 4bff4c7aa89c..f384049862a9 100644
--- a/include/drawinglayer/primitive2d/shadowprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/shadowprimitive2d.hxx
@@ -24,6 +24,7 @@
#include <drawinglayer/primitive2d/groupprimitive2d.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/color/bcolor.hxx>
+#include <tools/color.hxx>
namespace drawinglayer::primitive2d
@@ -51,17 +52,22 @@ namespace drawinglayer::primitive2d
/// the shadow color to which all geometry is to be forced
basegfx::BColor maShadowColor;
- public:
+ /// the blur radius of the shadow
+ double mfShadowBlur;
+
+
+ public:
/// constructor
ShadowPrimitive2D(
const basegfx::B2DHomMatrix& rShadowTransform,
const basegfx::BColor& rShadowColor,
+ double fShadowBlur,
const Primitive2DContainer& rChildren);
/// data read access
const basegfx::B2DHomMatrix& getShadowTransform() const { return maShadowTransform; }
const basegfx::BColor& getShadowColor() const { return maShadowColor; }
-
+ double getShadowBlur() const { return mfShadowBlur; }
/// compare operator
virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
diff --git a/oox/source/drawingml/effectproperties.cxx b/oox/source/drawingml/effectproperties.cxx
index d6a1b9a749c6..b97f6b37ff1f 100644
--- a/oox/source/drawingml/effectproperties.cxx
+++ b/oox/source/drawingml/effectproperties.cxx
@@ -93,6 +93,7 @@ void EffectProperties::pushToPropMap( PropertyMap& rPropMap,
sal_Int32 nXDist = cos(nAngle) * nDist;
sal_Int32 nYDist = sin(nAngle) * nDist;
+
rPropMap.setProperty( PROP_Shadow, true );
rPropMap.setProperty( PROP_ShadowXDistance, nXDist);
rPropMap.setProperty( PROP_ShadowYDistance, nYDist);
@@ -100,7 +101,7 @@ void EffectProperties::pushToPropMap( PropertyMap& rPropMap,
rPropMap.setProperty( PROP_ShadowSizeY, nAttrSizeY);
rPropMap.setProperty( PROP_ShadowColor, it->moColor.getColor(rGraphicHelper ) );
rPropMap.setProperty( PROP_ShadowTransparence, it->moColor.getTransparency());
- rPropMap.setProperty( PROP_ShadowBlur, nAttrBlur);
+ rPropMap.setProperty( PROP_ShadowBlur, convertEmuToHmm(nAttrBlur));
}
}
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index fb68d4beeb23..1dc8557cfc2a 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -3135,7 +3135,7 @@ void SdImportTest::testShapeBlurPPTXImport()
sal_Int32 nRadius = -1;
xShape->getPropertyValue("ShadowBlur") >>= nRadius;
- CPPUNIT_ASSERT_EQUAL(sal_Int32(139700), nRadius); // 584200EMU=46pt - 139700EMU = 11pt
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(388), nRadius); // 584200EMU=46pt - 139700EMU = 388Hmm = 11pt
}
diff --git a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
index 59b38300d375..f0f3ec6001ed 100644
--- a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
+++ b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
@@ -524,6 +524,7 @@ namespace drawinglayer::primitive2d
new ShadowPrimitive2D(
aShadowOffset,
rShadow.getColor(),
+ rShadow.getBlur(),
rContent));
if(0.0 != rShadow.getTransparence())