summaryrefslogtreecommitdiff
path: root/include/vcl/outdevstate.hxx
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2016-05-30 14:00:22 +0200
committerNoel Grandin <noelgrandin@gmail.com>2016-06-03 11:34:23 +0000
commit52225a3b7fd48f79e8376caf498564b7cffc152b (patch)
tree73fafae95a446e7db3d1908c53cc79749faa30b6 /include/vcl/outdevstate.hxx
parent1741c0ff36e57f0629ff360a79b18c2d11bb8092 (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/outdevstate.hxx')
-rw-r--r--include/vcl/outdevstate.hxx46
1 files changed, 13 insertions, 33 deletions
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;
};