diff options
Diffstat (limited to 'xfa/fgas')
-rw-r--r-- | xfa/fgas/layout/fgas_rtfbreak.cpp | 24 | ||||
-rw-r--r-- | xfa/fgas/layout/fgas_rtfbreak.h | 38 |
2 files changed, 18 insertions, 44 deletions
diff --git a/xfa/fgas/layout/fgas_rtfbreak.cpp b/xfa/fgas/layout/fgas_rtfbreak.cpp index ddb9164ea7..ce6de0de66 100644 --- a/xfa/fgas/layout/fgas_rtfbreak.cpp +++ b/xfa/fgas/layout/fgas_rtfbreak.cpp @@ -34,7 +34,7 @@ CFX_RTFBreak::CFX_RTFBreak(uint32_t dwLayoutStyles) m_bWordSpace(false), m_iWordSpace(0), m_bRTL(false), - m_iAlignment(FX_RTFLINEALIGNMENT_Left), + m_iAlignment(CFX_RTFLineAlignment::Left), m_pUserData(nullptr), m_eCharType(FX_CHARTYPE_Unknown), m_dwIdentity(0), @@ -196,11 +196,6 @@ void CFX_RTFBreak::SetWordSpace(bool bDefault, FX_FLOAT fWordSpace) { void CFX_RTFBreak::SetReadingOrder(bool bRTL) { m_bRTL = bRTL; } -void CFX_RTFBreak::SetAlignment(int32_t iAlignment) { - ASSERT(iAlignment >= FX_RTFLINEALIGNMENT_Left && - iAlignment <= FX_RTFLINEALIGNMENT_Distributed); - m_iAlignment = iAlignment; -} void CFX_RTFBreak::SetUserData(const CFX_RetainPtr<CFX_Retainable>& pUserData) { if (m_pUserData == pUserData) @@ -502,12 +497,13 @@ uint32_t CFX_RTFBreak::EndBreak(uint32_t dwStatus) { m_iReady = (m_pCurLine == &m_RTFLine1) ? 1 : 2; CFX_RTFLine* pNextLine = (m_pCurLine == &m_RTFLine1) ? &m_RTFLine2 : &m_RTFLine1; - bool bAllChars = (m_iAlignment > FX_RTFLINEALIGNMENT_Right); + bool bAllChars = m_iAlignment == CFX_RTFLineAlignment::Justified || + m_iAlignment == CFX_RTFLineAlignment::Distributed; CFX_TPOArray tpos(100); if (!EndBreak_SplitLine(pNextLine, bAllChars, dwStatus)) { EndBreak_BidiLine(tpos, dwStatus); - if (!m_bPagination && m_iAlignment > FX_RTFLINEALIGNMENT_Left) + if (!m_bPagination && m_iAlignment != CFX_RTFLineAlignment::Left) EndBreak_Alignment(tpos, bAllChars, dwStatus); } @@ -727,10 +723,8 @@ void CFX_RTFBreak::EndBreak_Alignment(CFX_TPOArray& tpos, } } int32_t iOffset = m_iBoundaryEnd - iNetWidth; - int32_t iLowerAlignment = (m_iAlignment & FX_RTFLINEALIGNMENT_LowerMask); - int32_t iHigherAlignment = (m_iAlignment & FX_RTFLINEALIGNMENT_HigherMask); - if (iGapChars > 0 && (iHigherAlignment == FX_RTFLINEALIGNMENT_Distributed || - (iHigherAlignment == FX_RTFLINEALIGNMENT_Justified && + if (iGapChars > 0 && (m_iAlignment == CFX_RTFLineAlignment::Distributed || + (m_iAlignment == CFX_RTFLineAlignment::Justified && dwStatus != FX_RTFBREAK_ParagraphBreak))) { int32_t iStart = -1; for (i = 0; i < iCount; i++) { @@ -758,10 +752,10 @@ void CFX_RTFBreak::EndBreak_Alignment(CFX_TPOArray& tpos, } iStart += ttp.m_iWidth; } - } else if (iLowerAlignment > FX_RTFLINEALIGNMENT_Left) { - if (iLowerAlignment == FX_RTFLINEALIGNMENT_Center) { + } else if (m_iAlignment == CFX_RTFLineAlignment::Right || + m_iAlignment == CFX_RTFLineAlignment::Center) { + if (m_iAlignment == CFX_RTFLineAlignment::Center) iOffset /= 2; - } if (iOffset > 0) { for (i = 0; i < iCount; i++) { CFX_RTFPiece& ttp = pCurPieces->GetAt(i); diff --git a/xfa/fgas/layout/fgas_rtfbreak.h b/xfa/fgas/layout/fgas_rtfbreak.h index cbc36ad09f..9119f9df3d 100644 --- a/xfa/fgas/layout/fgas_rtfbreak.h +++ b/xfa/fgas/layout/fgas_rtfbreak.h @@ -27,33 +27,13 @@ class CFGAS_GEFont; #define FX_RTFLAYOUTSTYLE_Pagination 0x01 #define FX_RTFLAYOUTSTYLE_ExpandTab 0x10 -#define FX_RTFCHARSTYLE_Alignment 0x000F -#define FX_RTFCHARSTYLE_ArabicNumber 0x0010 -#define FX_RTFCHARSTYLE_ArabicShadda 0x0020 -#define FX_RTFCHARSTYLE_OddBidiLevel 0x0040 -#define FX_RTFCHARSTYLE_RTLReadingOrder 0x0080 -#define FX_RTFCHARSTYLE_ArabicContext 0x0300 -#define FX_RTFCHARSTYLE_ArabicIndic 0x0400 -#define FX_RTFCHARSTYLE_ArabicComma 0x0800 -#define FX_RTFLINEALIGNMENT_Left 0 -#define FX_RTFLINEALIGNMENT_Center 1 -#define FX_RTFLINEALIGNMENT_Right 2 -#define FX_RTFLINEALIGNMENT_Justified (1 << 2) -#define FX_RTFLINEALIGNMENT_Distributed (2 << 2) -#define FX_RTFLINEALIGNMENT_JustifiedLeft \ - (FX_RTFLINEALIGNMENT_Left | FX_RTFLINEALIGNMENT_Justified) -#define FX_RTFLINEALIGNMENT_JustifiedCenter \ - (FX_RTFLINEALIGNMENT_Center | FX_RTFLINEALIGNMENT_Justified) -#define FX_RTFLINEALIGNMENT_JustifiedRight \ - (FX_RTFLINEALIGNMENT_Right | FX_RTFLINEALIGNMENT_Justified) -#define FX_RTFLINEALIGNMENT_DistributedLeft \ - (FX_RTFLINEALIGNMENT_Left | FX_RTFLINEALIGNMENT_Distributed) -#define FX_RTFLINEALIGNMENT_DistributedCenter \ - (FX_RTFLINEALIGNMENT_Center | FX_RTFLINEALIGNMENT_Distributed) -#define FX_RTFLINEALIGNMENT_DistributedRight \ - (FX_RTFLINEALIGNMENT_Right | FX_RTFLINEALIGNMENT_Distributed) -#define FX_RTFLINEALIGNMENT_LowerMask 0x03 -#define FX_RTFLINEALIGNMENT_HigherMask 0x0C +enum class CFX_RTFLineAlignment { + Left = 0, + Center, + Right, + Justified, + Distributed +}; struct FX_RTFTEXTOBJ { FX_RTFTEXTOBJ(); @@ -219,7 +199,7 @@ class CFX_RTFBreak { void SetCharSpace(FX_FLOAT fCharSpace); void SetWordSpace(bool bDefault, FX_FLOAT fWordSpace); void SetReadingOrder(bool bRTL = false); - void SetAlignment(int32_t iAlignment = FX_RTFLINEALIGNMENT_Left); + void SetAlignment(CFX_RTFLineAlignment align) { m_iAlignment = align; } void SetUserData(const CFX_RetainPtr<CFX_Retainable>& pUserData); uint32_t AppendChar(FX_WCHAR wch); uint32_t EndBreak(uint32_t dwStatus = FX_RTFBREAK_PieceBreak); @@ -281,7 +261,7 @@ class CFX_RTFBreak { bool m_bWordSpace; int32_t m_iWordSpace; bool m_bRTL; - int32_t m_iAlignment; + CFX_RTFLineAlignment m_iAlignment; CFX_RetainPtr<CFX_Retainable> m_pUserData; FX_CHARTYPE m_eCharType; uint32_t m_dwIdentity; |