diff options
author | Noel Grandin <noel@peralex.com> | 2016-05-30 14:00:22 +0200 |
---|---|---|
committer | Noel Grandin <noelgrandin@gmail.com> | 2016-06-03 11:34:23 +0000 |
commit | 52225a3b7fd48f79e8376caf498564b7cffc152b (patch) | |
tree | 73fafae95a446e7db3d1908c53cc79749faa30b6 /include/vcl | |
parent | 1741c0ff36e57f0629ff360a79b18c2d11bb8092 (diff) |
Convert ComplexTextLayoutMode to scoped enum
Change-Id: I257f8e15fec92f0701235a6fe4b6a2272498c4f1
Reviewed-on: https://gerrit.libreoffice.org/25667
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Diffstat (limited to 'include/vcl')
-rw-r--r-- | include/vcl/metaact.hxx | 6 | ||||
-rw-r--r-- | include/vcl/outdev.hxx | 6 | ||||
-rw-r--r-- | include/vcl/outdevstate.hxx | 46 | ||||
-rw-r--r-- | include/vcl/pdfwriter.hxx | 2 |
4 files changed, 20 insertions, 40 deletions
diff --git a/include/vcl/metaact.hxx b/include/vcl/metaact.hxx index 9f3457c370ed..af914d1b4b15 100644 --- a/include/vcl/metaact.hxx +++ b/include/vcl/metaact.hxx @@ -1461,7 +1461,7 @@ class VCL_DLLPUBLIC MetaLayoutModeAction : public MetaAction { private: - ComplexTextLayoutMode mnLayoutMode; + ComplexTextLayoutFlags mnLayoutMode; public: MetaLayoutModeAction(); @@ -1473,9 +1473,9 @@ public: virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) override; virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) override; - explicit MetaLayoutModeAction( ComplexTextLayoutMode nLayoutMode ); + explicit MetaLayoutModeAction( ComplexTextLayoutFlags nLayoutMode ); - ComplexTextLayoutMode GetLayoutMode() const { return mnLayoutMode; } + ComplexTextLayoutFlags GetLayoutMode() const { return mnLayoutMode; } }; class VCL_DLLPUBLIC MetaTextLanguageAction : public MetaAction diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx index 95e3756f408e..1f32068a598c 100644 --- a/include/vcl/outdev.hxx +++ b/include/vcl/outdev.hxx @@ -375,7 +375,7 @@ private: mutable long mnEmphasisAscent; mutable long mnEmphasisDescent; DrawModeFlags mnDrawMode; - ComplexTextLayoutMode mnTextLayoutMode; + ComplexTextLayoutFlags mnTextLayoutMode; ImplMapRes maMapRes; ImplThresholdRes maThresRes; OutDevType meOutDevType; @@ -638,8 +638,8 @@ public: void SetDrawMode( DrawModeFlags nDrawMode ); DrawModeFlags GetDrawMode() const { return mnDrawMode; } - void SetLayoutMode( ComplexTextLayoutMode nTextLayoutMode ); - ComplexTextLayoutMode GetLayoutMode() const { return mnTextLayoutMode; } + void SetLayoutMode( ComplexTextLayoutFlags nTextLayoutMode ); + ComplexTextLayoutFlags GetLayoutMode() const { return mnTextLayoutMode; } void SetDigitLanguage( LanguageType ); LanguageType GetDigitLanguage() const { return meTextLanguage; } diff --git a/include/vcl/outdevstate.hxx b/include/vcl/outdevstate.hxx index 06255171ffd3..adf915d42059 100644 --- a/include/vcl/outdevstate.hxx +++ b/include/vcl/outdevstate.hxx @@ -58,41 +58,21 @@ namespace o3tl #define PUSH_ALLTEXT (PushFlags::TEXTCOLOR | PushFlags::TEXTFILLCOLOR | PushFlags::TEXTLINECOLOR | PushFlags::OVERLINECOLOR | PushFlags::TEXTALIGN | PushFlags::TEXTLAYOUTMODE | PushFlags::TEXTLANGUAGE) #define PUSH_ALLFONT (PUSH_ALLTEXT | PushFlags::FONT) -// LayoutModes for Complex Text Layout +// Layout flags for Complex Text Layout // These are flag values, i.e they can be combined -enum ComplexTextLayoutMode +enum class ComplexTextLayoutFlags { - TEXT_LAYOUT_DEFAULT = ((sal_uLong)0x00000000), - TEXT_LAYOUT_BIDI_RTL = ((sal_uLong)0x00000001), - TEXT_LAYOUT_BIDI_STRONG = ((sal_uLong)0x00000002), - TEXT_LAYOUT_TEXTORIGIN_LEFT = ((sal_uLong)0x00000004), - TEXT_LAYOUT_TEXTORIGIN_RIGHT = ((sal_uLong)0x00000008), - TEXT_LAYOUT_COMPLEX_DISABLED = ((sal_uLong)0x00000100), - TEXT_LAYOUT_ENABLE_LIGATURES = ((sal_uLong)0x00000200), - TEXT_LAYOUT_SUBSTITUTE_DIGITS = ((sal_uLong)0x00000400) + Default = 0x0000, + BiDiRtl = 0x0001, + BiDiStrong = 0x0002, + TextOriginLeft = 0x0004, + TextOriginRight = 0x0008, + ComplexDisabled = 0x0100, + LigaturesEnabled = 0x0200, + SubstituteDigits = 0x0400 }; -// make combining these type-safe -inline ComplexTextLayoutMode operator| (ComplexTextLayoutMode lhs, ComplexTextLayoutMode rhs) -{ - return static_cast<ComplexTextLayoutMode>(static_cast<sal_uLong>(lhs) | static_cast<sal_uLong>(rhs)); -} -inline ComplexTextLayoutMode operator& (ComplexTextLayoutMode lhs, ComplexTextLayoutMode rhs) -{ - return static_cast<ComplexTextLayoutMode>(static_cast<sal_uLong>(lhs) & static_cast<sal_uLong>(rhs)); -} -inline ComplexTextLayoutMode operator~ (ComplexTextLayoutMode rhs) -{ - return static_cast<ComplexTextLayoutMode>(0x7ff & ~(static_cast<sal_uLong>(rhs))); -} -inline ComplexTextLayoutMode& operator|= (ComplexTextLayoutMode& lhs, ComplexTextLayoutMode rhs) -{ - lhs = static_cast<ComplexTextLayoutMode>(static_cast<sal_uLong>(lhs) | static_cast<sal_uLong>(rhs)); - return lhs; -} -inline ComplexTextLayoutMode& operator&= (ComplexTextLayoutMode& lhs, ComplexTextLayoutMode rhs) -{ - lhs = static_cast<ComplexTextLayoutMode>(static_cast<sal_uLong>(lhs) & static_cast<sal_uLong>(rhs)); - return lhs; +namespace o3tl { + template<> struct typed_flags<ComplexTextLayoutFlags> : is_typed_flags<ComplexTextLayoutFlags, 0x070f> {}; } class OutDevState @@ -114,7 +94,7 @@ public: Point* mpRefPoint; TextAlign meTextAlign; RasterOp meRasterOp; - ComplexTextLayoutMode mnTextLayoutMode; + ComplexTextLayoutFlags mnTextLayoutMode; LanguageType meTextLanguage; PushFlags mnFlags; }; diff --git a/include/vcl/pdfwriter.hxx b/include/vcl/pdfwriter.hxx index 8a95b6a4707e..085210a31545 100644 --- a/include/vcl/pdfwriter.hxx +++ b/include/vcl/pdfwriter.hxx @@ -736,7 +736,7 @@ The following structure describes the permissions used in PDF security void IntersectClipRegion( const Rectangle& rRect ); void IntersectClipRegion( const basegfx::B2DPolyPolygon& rRegion ); - void SetLayoutMode( ComplexTextLayoutMode nMode ); + void SetLayoutMode( ComplexTextLayoutFlags nMode ); void SetDigitLanguage( LanguageType eLang ); void SetLineColor( const Color& rColor ); |