Convert SpreadMethod to scoped enum

Change-Id: I2a04247bd58ed6f2af8da7e109b31ff83d6d5e49
Reviewed-on: https://gerrit.libreoffice.org/25298
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
diff --git a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
index 23092b8..4283610 100644
--- a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
@@ -193,7 +193,7 @@ namespace drawinglayer
            if(nCount)
            {
                const SvgGradientEntry& rStart = rEntries[0];
                const bool bCreateStartPad(fPos < 0.0 && Spread_pad == getSpreadMethod());
                const bool bCreateStartPad(fPos < 0.0 && SpreadMethod::Pad == getSpreadMethod());
                const bool bCreateStartFill(rStart.getOffset() > 0.0);
                sal_uInt32 nIndex(0);

@@ -215,7 +215,7 @@ namespace drawinglayer
                }

                const SvgGradientEntry& rEnd = rEntries[nCount - 1];
                const bool bCreateEndPad(fPos < fMax && Spread_pad == getSpreadMethod());
                const bool bCreateEndPad(fPos < fMax && SpreadMethod::Pad == getSpreadMethod());
                const bool bCreateEndFill(rEnd.getOffset() < 1.0);

                if(bCreateEndPad || bCreateEndFill)
@@ -463,12 +463,12 @@ namespace drawinglayer
                    aUnitGradientToObject = aUnitGradientToObject * aPreMultiply;

                    // create central run, may also already do all necessary when
                    // Spread_pad is set as SpreadMethod and/or the range is smaller
                    // SpreadMethod::Pad is set as SpreadMethod and/or the range is smaller
                    double fPos(createRun(aTargetColor, aTargetOpacity, aUnitRange.getMinX(), aUnitRange.getMaxX(), getGradientEntries(), 0));

                    if(fPos < aUnitRange.getMaxX())
                    {
                        // can only happen when SpreadMethod is Spread_reflect or Spread_repeat,
                        // can only happen when SpreadMethod is SpreadMethod::Reflect or SpreadMethod::Repeat,
                        // else the start and end pads are already created and fPos == aUnitRange.getMaxX().
                        // Its possible to express the repeated linear gradient by adding the
                        // transformed central run. Create it this way
@@ -497,7 +497,7 @@ namespace drawinglayer
                                nOffset++;

                                basegfx::B2DHomMatrix aTransform;
                                const bool bMirror(Spread_reflect == getSpreadMethod() && (nOffset % 2));
                                const bool bMirror(SpreadMethod::Reflect == getSpreadMethod() && (nOffset % 2));

                                if(bMirror)
                                {
@@ -524,7 +524,7 @@ namespace drawinglayer
                            while(fPos < aUnitRange.getMaxX())
                            {
                                basegfx::B2DHomMatrix aTransform;
                                const bool bMirror(Spread_reflect == getSpreadMethod() && (nOffset % 2));
                                const bool bMirror(SpreadMethod::Reflect == getSpreadMethod() && (nOffset % 2));

                                if(bMirror)
                                {
@@ -807,12 +807,12 @@ namespace drawinglayer
                    }

                    // create central run, may also already do all necessary when
                    // Spread_pad is set as SpreadMethod and/or the range is smaller
                    // SpreadMethod::Pad is set as SpreadMethod and/or the range is smaller
                    double fPos(createRun(aTargetColor, aTargetOpacity, 0.0, fMax, getGradientEntries(), 0));

                    if(fPos < fMax)
                    {
                        // can only happen when SpreadMethod is Spread_reflect or Spread_repeat,
                        // can only happen when SpreadMethod is SpreadMethod::Reflect or SpreadMethod::Repeat,
                        // else the start and end pads are already created and fPos == fMax.
                        // For radial there is no way to transform the already created
                        // central run, it needs to be created from 1.0 to fMax
@@ -820,7 +820,7 @@ namespace drawinglayer

                        while(fPos < fMax)
                        {
                            const bool bMirror(Spread_reflect == getSpreadMethod() && (nOffset % 2));
                            const bool bMirror(SpreadMethod::Reflect == getSpreadMethod() && (nOffset % 2));

                            if(bMirror)
                            {
diff --git a/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx b/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx
index 991847e..98ee0d7 100644
--- a/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx
@@ -80,11 +80,11 @@ namespace drawinglayer
{
    namespace primitive2d
    {
        enum SpreadMethod
        enum class SpreadMethod
        {
            Spread_pad = 0,
            Spread_reflect,
            Spread_repeat
            Pad,
            Reflect,
            Repeat
        };

        /*  helper for linear and radial gradient, both get derived from this
@@ -155,7 +155,7 @@ namespace drawinglayer
                const SvgGradientEntryVector& rGradientEntries,
                const basegfx::B2DPoint& rStart,
                bool bUseUnitCoordinates,
                SpreadMethod aSpreadMethod = Spread_pad);
                SpreadMethod aSpreadMethod = SpreadMethod::Pad);
            virtual ~SvgGradientHelper();

            /// data read access
@@ -208,7 +208,7 @@ namespace drawinglayer
                const basegfx::B2DPoint& rStart,
                const basegfx::B2DPoint& rEnd,
                bool bUseUnitCoordinates,
                SpreadMethod aSpreadMethod = Spread_pad);
                SpreadMethod aSpreadMethod = SpreadMethod::Pad);
            virtual ~SvgLinearGradientPrimitive2D();

            /// data read access
@@ -245,7 +245,7 @@ namespace drawinglayer
            basegfx::B2DVector                      maFocalVector;
            double                                  maFocalLength;

            // internal helper for case Spread_reflect
            // internal helper for case SpreadMethod::Reflect
            SvgGradientEntryVector                  maMirroredGradientEntries;

            /// bitfield
@@ -277,7 +277,7 @@ namespace drawinglayer
                const basegfx::B2DPoint& rStart,
                double fRadius,
                bool bUseUnitCoordinates,
                SpreadMethod aSpreadMethod = Spread_pad,
                SpreadMethod aSpreadMethod = SpreadMethod::Pad,
                const basegfx::B2DPoint* pFocal = nullptr);
            virtual ~SvgRadialGradientPrimitive2D();

diff --git a/svgio/source/svgreader/svggradientnode.cxx b/svgio/source/svgreader/svggradientnode.cxx
index 51362b8..6f2560d 100644
--- a/svgio/source/svgreader/svggradientnode.cxx
+++ b/svgio/source/svgreader/svggradientnode.cxx
@@ -49,7 +49,7 @@ namespace svgio
            maFx(),
            maFy(),
            maGradientUnits(objectBoundingBox),
            maSpreadMethod(drawinglayer::primitive2d::Spread_pad),
            maSpreadMethod(drawinglayer::primitive2d::SpreadMethod::Pad),
            mpaGradientTransform(nullptr),
            maXLink(),
            mpXLink(nullptr)
@@ -203,15 +203,15 @@ namespace svgio
                    {
                        if(aContent.startsWith("pad"))
                        {
                            setSpreadMethod(drawinglayer::primitive2d::Spread_pad);
                            setSpreadMethod(drawinglayer::primitive2d::SpreadMethod::Pad);
                        }
                        else if(aContent.startsWith("reflect"))
                        {
                            setSpreadMethod(drawinglayer::primitive2d::Spread_reflect);
                            setSpreadMethod(drawinglayer::primitive2d::SpreadMethod::Reflect);
                        }
                        else if(aContent.startsWith("repeat"))
                        {
                            setSpreadMethod(drawinglayer::primitive2d::Spread_repeat);
                            setSpreadMethod(drawinglayer::primitive2d::SpreadMethod::Repeat);
                        }
                    }
                    break;