diff options
Diffstat (limited to 'drawinglayer/source/attribute/sdrfillattribute.cxx')
-rw-r--r-- | drawinglayer/source/attribute/sdrfillattribute.cxx | 45 |
1 files changed, 28 insertions, 17 deletions
diff --git a/drawinglayer/source/attribute/sdrfillattribute.cxx b/drawinglayer/source/attribute/sdrfillattribute.cxx index 393df42637c5..8cee8f98d1e9 100644 --- a/drawinglayer/source/attribute/sdrfillattribute.cxx +++ b/drawinglayer/source/attribute/sdrfillattribute.cxx @@ -22,7 +22,7 @@ #include <drawinglayer/attribute/sdrfillgraphicattribute.hxx> #include <drawinglayer/attribute/fillhatchattribute.hxx> #include <drawinglayer/attribute/fillgradientattribute.hxx> -#include <rtl/instance.hxx> +#include <utility> namespace drawinglayer::attribute @@ -41,23 +41,19 @@ namespace drawinglayer::attribute ImpSdrFillAttribute( double fTransparence, const basegfx::BColor& rColor, - const FillGradientAttribute& rGradient, - const FillHatchAttribute& rHatch, - const SdrFillGraphicAttribute& rFillGraphic) + FillGradientAttribute aGradient, + FillHatchAttribute aHatch, + SdrFillGraphicAttribute aFillGraphic) : mfTransparence(fTransparence), maColor(rColor), - maGradient(rGradient), - maHatch(rHatch), - maFillGraphic(rFillGraphic) + maGradient(std::move(aGradient)), + maHatch(std::move(aHatch)), + maFillGraphic(std::move(aFillGraphic)) { } ImpSdrFillAttribute() - : mfTransparence(0.0), - maColor(basegfx::BColor()), - maGradient(FillGradientAttribute()), - maHatch(FillHatchAttribute()), - maFillGraphic(SdrFillGraphicAttribute()) + : mfTransparence(0.0) { } @@ -81,8 +77,16 @@ namespace drawinglayer::attribute namespace { - struct theGlobalDefault : - public rtl::Static< SdrFillAttribute::ImplType, theGlobalDefault > {}; + SdrFillAttribute::ImplType& theGlobalDefault() + { + static SdrFillAttribute::ImplType SINGLETON; + return SINGLETON; + } + SdrFillAttribute::ImplType& slideBackgroundFillGlobalDefault() + { + static SdrFillAttribute::ImplType SINGLETON2; + return SINGLETON2; + } } SdrFillAttribute::SdrFillAttribute( @@ -96,8 +100,10 @@ namespace drawinglayer::attribute { } - SdrFillAttribute::SdrFillAttribute() - : mpSdrFillAttribute(theGlobalDefault::get()) + SdrFillAttribute::SdrFillAttribute(bool bSlideBackgroundFill) + : mpSdrFillAttribute(bSlideBackgroundFill + ? slideBackgroundFillGlobalDefault() + : theGlobalDefault()) { } @@ -109,7 +115,12 @@ namespace drawinglayer::attribute bool SdrFillAttribute::isDefault() const { - return mpSdrFillAttribute.same_object(theGlobalDefault::get()); + return mpSdrFillAttribute.same_object(theGlobalDefault()); + } + + bool SdrFillAttribute::isSlideBackgroundFill() const + { + return mpSdrFillAttribute.same_object(slideBackgroundFillGlobalDefault()); } SdrFillAttribute& SdrFillAttribute::operator=(const SdrFillAttribute&) = default; |