summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2015-04-22 13:16:25 +0200
committerNoel Grandin <noel@peralex.com>2015-04-29 10:41:37 +0200
commite8199849a0d205bc2b815306ba6ed27b672881e6 (patch)
treef0093c1f009d539630cfdc171ffd38ffbf765599
parentb49e10f9dbe0d02b012ceff378e8e4e64a3016a0 (diff)
convert HANDLE_FLAGS constants to scoped enum
Change-Id: Ie6751bc97914e4b8ac1fe00aae41c02fff2773d9
-rw-r--r--include/svx/EnhancedCustomShape2d.hxx41
-rw-r--r--svx/source/customshapes/EnhancedCustomShape2d.cxx54
2 files changed, 52 insertions, 43 deletions
diff --git a/include/svx/EnhancedCustomShape2d.hxx b/include/svx/EnhancedCustomShape2d.hxx
index 547fe6f98142..b9ed6f2b937c 100644
--- a/include/svx/EnhancedCustomShape2d.hxx
+++ b/include/svx/EnhancedCustomShape2d.hxx
@@ -34,6 +34,7 @@
#include <com/sun/star/drawing/EnhancedCustomShapeAdjustmentValue.hpp>
#include <svx/EnhancedCustomShapeFunctionParser.hxx>
#include <tools/gen.hxx>
+#include <o3tl/typed_flags_set.hxx>
#include <memory>
#include <vector>
@@ -45,20 +46,28 @@ struct SvxMSDffVertPair;
struct SvxMSDffCalculationData;
struct SvxMSDffTextRectangles;
-#define HANDLE_FLAGS_MIRRORED_X 0x0001
-#define HANDLE_FLAGS_MIRRORED_Y 0x0002
-#define HANDLE_FLAGS_SWITCHED 0x0004
-#define HANDLE_FLAGS_POLAR 0x0008
-#define HANDLE_FLAGS_RANGE_X_MINIMUM 0x0020
-#define HANDLE_FLAGS_RANGE_X_MAXIMUM 0x0040
-#define HANDLE_FLAGS_RANGE_Y_MINIMUM 0x0080
-#define HANDLE_FLAGS_RANGE_Y_MAXIMUM 0x0100
-#define HANDLE_FLAGS_RADIUS_RANGE_MINIMUM 0x0200
-#define HANDLE_FLAGS_RADIUS_RANGE_MAXIMUM 0x0400
-#define HANDLE_FLAGS_REFX 0x0800
-#define HANDLE_FLAGS_REFY 0x1000
-#define HANDLE_FLAGS_REFANGLE 0x2000
-#define HANDLE_FLAGS_REFR 0x4000
+enum class HandleFlags
+{
+ NONE = 0x0000,
+ MIRRORED_X = 0x0001,
+ MIRRORED_Y = 0x0002,
+ SWITCHED = 0x0004,
+ POLAR = 0x0008,
+ RANGE_X_MINIMUM = 0x0020,
+ RANGE_X_MAXIMUM = 0x0040,
+ RANGE_Y_MINIMUM = 0x0080,
+ RANGE_Y_MAXIMUM = 0x0100,
+ RADIUS_RANGE_MINIMUM = 0x0200,
+ RADIUS_RANGE_MAXIMUM = 0x0400,
+ REFX = 0x0800,
+ REFY = 0x1000,
+ REFANGLE = 0x2000,
+ REFR = 0x4000,
+};
+namespace o3tl
+{
+ template<> struct typed_flags<HandleFlags> : is_typed_flags<HandleFlags, 0x7fef> {};
+}
// MSDFF_HANDLE_FLAGS_RANGE_Y seems to be not defined in
// escher, but we are using it internally in to differentiate
@@ -139,7 +148,7 @@ class SVX_DLLPUBLIC EnhancedCustomShape2d : public SfxItemSet
struct SAL_DLLPRIVATE Handle
{
- sal_uInt32 nFlags;
+ HandleFlags nFlags;
bool bMirroredX;
bool bMirroredY;
@@ -161,7 +170,7 @@ class SVX_DLLPUBLIC EnhancedCustomShape2d : public SfxItemSet
com::sun::star::drawing::EnhancedCustomShapeParameter aYRangeMaximum;
Handle()
- : nFlags(0)
+ : nFlags(HandleFlags::NONE)
, bMirroredX ( false )
, bMirroredY ( false )
, bSwitched( false )
diff --git a/svx/source/customshapes/EnhancedCustomShape2d.cxx b/svx/source/customshapes/EnhancedCustomShape2d.cxx
index 8bf41478447d..a015e8c78d5a 100644
--- a/svx/source/customshapes/EnhancedCustomShape2d.cxx
+++ b/svx/source/customshapes/EnhancedCustomShape2d.cxx
@@ -438,7 +438,7 @@ bool EnhancedCustomShape2d::ConvertSequenceToEnhancedCustomShape2dHandle(
sal_uInt32 i, nProperties = rHandleProperties.getLength();
if ( nProperties )
{
- rDestinationHandle.nFlags = 0;
+ rDestinationHandle.nFlags = HandleFlags::NONE;
for ( i = 0; i < nProperties; i++ )
{
const com::sun::star::beans::PropertyValue& rPropVal = rHandleProperties[ i ];
@@ -454,7 +454,7 @@ bool EnhancedCustomShape2d::ConvertSequenceToEnhancedCustomShape2dHandle(
if ( rPropVal.Value >>= bMirroredX )
{
if ( bMirroredX )
- rDestinationHandle.nFlags |= HANDLE_FLAGS_MIRRORED_X;
+ rDestinationHandle.nFlags |= HandleFlags::MIRRORED_X;
}
}
else if ( rPropVal.Name == "MirroredY" )
@@ -463,7 +463,7 @@ bool EnhancedCustomShape2d::ConvertSequenceToEnhancedCustomShape2dHandle(
if ( rPropVal.Value >>= bMirroredY )
{
if ( bMirroredY )
- rDestinationHandle.nFlags |= HANDLE_FLAGS_MIRRORED_Y;
+ rDestinationHandle.nFlags |= HandleFlags::MIRRORED_Y;
}
}
else if ( rPropVal.Name == "Switched" )
@@ -472,63 +472,63 @@ bool EnhancedCustomShape2d::ConvertSequenceToEnhancedCustomShape2dHandle(
if ( rPropVal.Value >>= bSwitched )
{
if ( bSwitched )
- rDestinationHandle.nFlags |= HANDLE_FLAGS_SWITCHED;
+ rDestinationHandle.nFlags |= HandleFlags::SWITCHED;
}
}
else if ( rPropVal.Name == "Polar" )
{
if ( rPropVal.Value >>= rDestinationHandle.aPolar )
- rDestinationHandle.nFlags |= HANDLE_FLAGS_POLAR;
+ rDestinationHandle.nFlags |= HandleFlags::POLAR;
}
else if ( rPropVal.Name == "RefX" )
{
if ( rPropVal.Value >>= rDestinationHandle.nRefX )
- rDestinationHandle.nFlags |= HANDLE_FLAGS_REFX;
+ rDestinationHandle.nFlags |= HandleFlags::REFX;
}
else if ( rPropVal.Name == "RefY" )
{
if ( rPropVal.Value >>= rDestinationHandle.nRefY )
- rDestinationHandle.nFlags |= HANDLE_FLAGS_REFY;
+ rDestinationHandle.nFlags |= HandleFlags::REFY;
}
else if ( rPropVal.Name == "RefAngle" )
{
if ( rPropVal.Value >>= rDestinationHandle.nRefAngle )
- rDestinationHandle.nFlags |= HANDLE_FLAGS_REFANGLE;
+ rDestinationHandle.nFlags |= HandleFlags::REFANGLE;
}
else if ( rPropVal.Name == "RefR" )
{
if ( rPropVal.Value >>= rDestinationHandle.nRefR )
- rDestinationHandle.nFlags |= HANDLE_FLAGS_REFR;
+ rDestinationHandle.nFlags |= HandleFlags::REFR;
}
else if ( rPropVal.Name == "RadiusRangeMinimum" )
{
if ( rPropVal.Value >>= rDestinationHandle.aRadiusRangeMinimum )
- rDestinationHandle.nFlags |= HANDLE_FLAGS_RADIUS_RANGE_MINIMUM;
+ rDestinationHandle.nFlags |= HandleFlags::RADIUS_RANGE_MINIMUM;
}
else if ( rPropVal.Name == "RadiusRangeMaximum" )
{
if ( rPropVal.Value >>= rDestinationHandle.aRadiusRangeMaximum )
- rDestinationHandle.nFlags |= HANDLE_FLAGS_RADIUS_RANGE_MAXIMUM;
+ rDestinationHandle.nFlags |= HandleFlags::RADIUS_RANGE_MAXIMUM;
}
else if ( rPropVal.Name == "RangeXMinimum" )
{
if ( rPropVal.Value >>= rDestinationHandle.aXRangeMinimum )
- rDestinationHandle.nFlags |= HANDLE_FLAGS_RANGE_X_MINIMUM;
+ rDestinationHandle.nFlags |= HandleFlags::RANGE_X_MINIMUM;
}
else if ( rPropVal.Name == "RangeXMaximum" )
{
if ( rPropVal.Value >>= rDestinationHandle.aXRangeMaximum )
- rDestinationHandle.nFlags |= HANDLE_FLAGS_RANGE_X_MAXIMUM;
+ rDestinationHandle.nFlags |= HandleFlags::RANGE_X_MAXIMUM;
}
else if ( rPropVal.Name == "RangeYMinimum" )
{
if ( rPropVal.Value >>= rDestinationHandle.aYRangeMinimum )
- rDestinationHandle.nFlags |= HANDLE_FLAGS_RANGE_Y_MINIMUM;
+ rDestinationHandle.nFlags |= HandleFlags::RANGE_Y_MINIMUM;
}
else if ( rPropVal.Name == "RangeYMaximum" )
{
if ( rPropVal.Value >>= rDestinationHandle.aYRangeMaximum )
- rDestinationHandle.nFlags |= HANDLE_FLAGS_RANGE_Y_MAXIMUM;
+ rDestinationHandle.nFlags |= HandleFlags::RANGE_Y_MAXIMUM;
}
}
}
@@ -1143,7 +1143,7 @@ bool EnhancedCustomShape2d::GetHandlePosition( const sal_uInt32 nIndex, Point& r
Handle aHandle;
if ( ConvertSequenceToEnhancedCustomShape2dHandle( seqHandles[ nIndex ], aHandle ) )
{
- if ( aHandle.nFlags & HANDLE_FLAGS_POLAR )
+ if ( aHandle.nFlags & HandleFlags::POLAR )
{
Point aReferencePoint( GetPoint( aHandle.aPolar, true, false ) );
@@ -1164,7 +1164,7 @@ bool EnhancedCustomShape2d::GetHandlePosition( const sal_uInt32 nIndex, Point& r
}
else
{
- if ( aHandle.nFlags & HANDLE_FLAGS_SWITCHED )
+ if ( aHandle.nFlags & HandleFlags::SWITCHED )
{
if ( aLogicRect.GetHeight() > aLogicRect.GetWidth() )
{
@@ -1235,7 +1235,7 @@ bool EnhancedCustomShape2d::SetHandleControllerPosition( const sal_uInt32 nIndex
fPos1 /= fXScale;
fPos2 /= fYScale;
- if ( aHandle.nFlags & HANDLE_FLAGS_SWITCHED )
+ if ( aHandle.nFlags & HandleFlags::SWITCHED )
{
if ( aLogicRect.GetHeight() > aLogicRect.GetWidth() )
{
@@ -1253,7 +1253,7 @@ bool EnhancedCustomShape2d::SetHandleControllerPosition( const sal_uInt32 nIndex
if ( aHandle.aPosition.Second.Type == EnhancedCustomShapeParameterType::ADJUSTMENT )
aHandle.aPosition.Second.Value>>= nSecondAdjustmentValue;
- if ( aHandle.nFlags & HANDLE_FLAGS_POLAR )
+ if ( aHandle.nFlags & HandleFlags::POLAR )
{
double fXRef, fYRef, fAngle;
GetParameter( fXRef, aHandle.aPolar.First, false, false );
@@ -1263,14 +1263,14 @@ bool EnhancedCustomShape2d::SetHandleControllerPosition( const sal_uInt32 nIndex
double fX = ( fPos1 - fXRef );
double fY = ( fPos2 - fYRef );
double fRadius = sqrt( fX * fX + fY * fY );
- if ( aHandle.nFlags & HANDLE_FLAGS_RADIUS_RANGE_MINIMUM )
+ if ( aHandle.nFlags & HandleFlags::RADIUS_RANGE_MINIMUM )
{
double fMin;
GetParameter( fMin, aHandle.aRadiusRangeMinimum, false, false );
if ( fRadius < fMin )
fRadius = fMin;
}
- if ( aHandle.nFlags & HANDLE_FLAGS_RADIUS_RANGE_MAXIMUM )
+ if ( aHandle.nFlags & HandleFlags::RADIUS_RANGE_MAXIMUM )
{
double fMax;
GetParameter( fMax, aHandle.aRadiusRangeMaximum, false, false );
@@ -1284,13 +1284,13 @@ bool EnhancedCustomShape2d::SetHandleControllerPosition( const sal_uInt32 nIndex
}
else
{
- if ( aHandle.nFlags & HANDLE_FLAGS_REFX )
+ if ( aHandle.nFlags & HandleFlags::REFX )
{
nFirstAdjustmentValue = aHandle.nRefX;
fPos1 *= 100000.0;
fPos1 /= nCoordWidth;
}
- if ( aHandle.nFlags & HANDLE_FLAGS_REFY )
+ if ( aHandle.nFlags & HandleFlags::REFY )
{
nSecondAdjustmentValue = aHandle.nRefY;
fPos2 *= 100000.0;
@@ -1298,14 +1298,14 @@ bool EnhancedCustomShape2d::SetHandleControllerPosition( const sal_uInt32 nIndex
}
if ( nFirstAdjustmentValue >= 0 )
{
- if ( aHandle.nFlags & HANDLE_FLAGS_RANGE_X_MINIMUM ) // check if horizontal handle needs to be within a range
+ if ( aHandle.nFlags & HandleFlags::RANGE_X_MINIMUM ) // check if horizontal handle needs to be within a range
{
double fXMin;
GetParameter( fXMin, aHandle.aXRangeMinimum, false, false );
if ( fPos1 < fXMin )
fPos1 = fXMin;
}
- if ( aHandle.nFlags & HANDLE_FLAGS_RANGE_X_MAXIMUM ) // check if horizontal handle needs to be within a range
+ if ( aHandle.nFlags & HandleFlags::RANGE_X_MAXIMUM ) // check if horizontal handle needs to be within a range
{
double fXMax;
GetParameter( fXMax, aHandle.aXRangeMaximum, false, false );
@@ -1316,14 +1316,14 @@ bool EnhancedCustomShape2d::SetHandleControllerPosition( const sal_uInt32 nIndex
}
if ( nSecondAdjustmentValue >= 0 )
{
- if ( aHandle.nFlags & HANDLE_FLAGS_RANGE_Y_MINIMUM ) // check if vertical handle needs to be within a range
+ if ( aHandle.nFlags & HandleFlags::RANGE_Y_MINIMUM ) // check if vertical handle needs to be within a range
{
double fYMin;
GetParameter( fYMin, aHandle.aYRangeMinimum, false, false );
if ( fPos2 < fYMin )
fPos2 = fYMin;
}
- if ( aHandle.nFlags & HANDLE_FLAGS_RANGE_Y_MAXIMUM ) // check if vertical handle needs to be within a range
+ if ( aHandle.nFlags & HandleFlags::RANGE_Y_MAXIMUM ) // check if vertical handle needs to be within a range
{
double fYMax;
GetParameter( fYMax, aHandle.aYRangeMaximum, false, false );