summaryrefslogtreecommitdiff
path: root/cppcanvas
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2014-08-01 12:34:33 +0200
committerCaolán McNamara <caolanm@redhat.com>2014-08-20 09:01:26 -0500
commit794d5ac4ac0b1dcaac289772ce096a4295d4e15d (patch)
treed02d4d13e793b0856c4dd962cf4b8d946942e3c4 /cppcanvas
parent71804294c79136ef43a8f91b5c961e266d32187a (diff)
vcl: use enum for complex text layout constants
Since these constants are bitfield flags, we define some methods to make working with them reasonably type safe. Move the definitions to outdevstate.hxx, since we need the values there, and that appears to be the "root most" header file. Also dump TEXT_LAYOUT_BIDI_LTR constant, since it means the same thing as TEXT_LAYOUT_DEFAULT (ie. 0), and leaving it in causes people to write weird code thinking that it's a real flag. Change-Id: Iddab86cd6c78181ceb8caa48e77e1f5a8e526343 Reviewed-on: https://gerrit.libreoffice.org/10676 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'cppcanvas')
-rw-r--r--cppcanvas/source/mtfrenderer/implrenderer.cxx22
1 files changed, 7 insertions, 15 deletions
diff --git a/cppcanvas/source/mtfrenderer/implrenderer.cxx b/cppcanvas/source/mtfrenderer/implrenderer.cxx
index 0208486ce0df..63cb370c8a91 100644
--- a/cppcanvas/source/mtfrenderer/implrenderer.cxx
+++ b/cppcanvas/source/mtfrenderer/implrenderer.cxx
@@ -1515,26 +1515,18 @@ namespace cppcanvas
case META_LAYOUTMODE_ACTION:
{
// TODO(F2): A lot is missing here
- int nLayoutMode = static_cast<MetaLayoutModeAction*>(pCurrAct)->GetLayoutMode();
+ ComplexTextLayoutMode nLayoutMode = static_cast<MetaLayoutModeAction*>(pCurrAct)->GetLayoutMode();
::cppcanvas::internal::OutDevState& rState = rStates.getState();
- switch( nLayoutMode & (TEXT_LAYOUT_BIDI_RTL|TEXT_LAYOUT_BIDI_STRONG) )
- {
- case TEXT_LAYOUT_BIDI_LTR:
- rState.textDirection = rendering::TextDirection::WEAK_LEFT_TO_RIGHT;
- break;
- case (TEXT_LAYOUT_BIDI_LTR | TEXT_LAYOUT_BIDI_STRONG):
+ ComplexTextLayoutMode nBidiLayoutMode = nLayoutMode & (TEXT_LAYOUT_BIDI_RTL|TEXT_LAYOUT_BIDI_STRONG);
+ if( nBidiLayoutMode == 0)
+ rState.textDirection = rendering::TextDirection::WEAK_LEFT_TO_RIGHT;
+ else if( nBidiLayoutMode == TEXT_LAYOUT_BIDI_STRONG)
rState.textDirection = rendering::TextDirection::STRONG_LEFT_TO_RIGHT;
- break;
-
- case TEXT_LAYOUT_BIDI_RTL:
+ else if( nBidiLayoutMode == TEXT_LAYOUT_BIDI_RTL)
rState.textDirection = rendering::TextDirection::WEAK_RIGHT_TO_LEFT;
- break;
-
- case (TEXT_LAYOUT_BIDI_RTL | TEXT_LAYOUT_BIDI_STRONG):
+ else if( nBidiLayoutMode == (TEXT_LAYOUT_BIDI_RTL | TEXT_LAYOUT_BIDI_STRONG))
rState.textDirection = rendering::TextDirection::STRONG_RIGHT_TO_LEFT;
- break;
- }
rState.textAlignment = 0; // TODO(F2): rendering::TextAlignment::LEFT_ALIGNED;
if( (nLayoutMode & (TEXT_LAYOUT_BIDI_RTL | TEXT_LAYOUT_TEXTORIGIN_RIGHT) )