summaryrefslogtreecommitdiff
path: root/xfa/fgas
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fgas')
-rw-r--r--xfa/fgas/layout/fgas_rtfbreak.cpp24
-rw-r--r--xfa/fgas/layout/fgas_rtfbreak.h38
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;