summaryrefslogtreecommitdiff
path: root/xfa/fgas/layout/fgas_rtfbreak.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-02-16 13:42:11 -0500
committerChromium commit bot <commit-bot@chromium.org>2017-02-16 19:05:27 +0000
commit2c02faed1da2375a91c7f9c003beb606a0611074 (patch)
tree81529e4ecb5e30bcd7274ae91376776f928d6e7f /xfa/fgas/layout/fgas_rtfbreak.cpp
parentabf240c57ff461f04a1766cce585cf54521e2170 (diff)
downloadpdfium-2c02faed1da2375a91c7f9c003beb606a0611074.tar.xz
Change FXTEXT_CHARPOS to use CFX_PointF
This CL updates the Origin x,y coordinates in FXTEXT_CHARPOS to be an CFX_PointF. Change-Id: I67281db2cb82687e12490145f7c99aee908e5fa8 Reviewed-on: https://pdfium-review.googlesource.com/2718 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Nicolás Peña <npm@chromium.org>
Diffstat (limited to 'xfa/fgas/layout/fgas_rtfbreak.cpp')
-rw-r--r--xfa/fgas/layout/fgas_rtfbreak.cpp102
1 files changed, 44 insertions, 58 deletions
diff --git a/xfa/fgas/layout/fgas_rtfbreak.cpp b/xfa/fgas/layout/fgas_rtfbreak.cpp
index 62e33fe9c2..24436ecf1f 100644
--- a/xfa/fgas/layout/fgas_rtfbreak.cpp
+++ b/xfa/fgas/layout/fgas_rtfbreak.cpp
@@ -1307,76 +1307,62 @@ int32_t CFX_RTFBreak::GetDisplayPos(const FX_RTFTEXTOBJ* pText,
ptOffset.y = fFontSize * (1000 - rtBBox.height) / 2000.0f;
}
}
- pCharPos->m_OriginX = fX + ptOffset.x;
- pCharPos->m_OriginY = fY - ptOffset.y;
+ pCharPos->m_Origin = CFX_PointF(fX + ptOffset.x, fY - ptOffset.y);
}
if (!bRTLPiece && dwCharType != FX_CHARTYPE_Combination) {
- if (bVerticalDoc) {
+ if (bVerticalDoc)
fY += fCharHeight;
- } else {
+ else
fX += fCharWidth;
- }
}
if (!bEmptyChar) {
pCharPos->m_bGlyphAdjust = true;
+
+ if (iCharRotation == 0) {
+ pCharPos->m_AdjustMatrix[0] = -1;
+ pCharPos->m_AdjustMatrix[1] = 0;
+ pCharPos->m_AdjustMatrix[2] = 0;
+ pCharPos->m_AdjustMatrix[3] = 1;
+ pCharPos->m_Origin.y += fAscent * iVerScale / 100.0f;
+ } else if (iCharRotation == 1) {
+ pCharPos->m_AdjustMatrix[0] = 0;
+ pCharPos->m_AdjustMatrix[1] = -1;
+ pCharPos->m_AdjustMatrix[2] = -1;
+ pCharPos->m_AdjustMatrix[3] = 0;
+ pCharPos->m_Origin.x -= fDescent;
+ } else if (iCharRotation == 2) {
+ pCharPos->m_AdjustMatrix[0] = 1;
+ pCharPos->m_AdjustMatrix[1] = 0;
+ pCharPos->m_AdjustMatrix[2] = 0;
+ pCharPos->m_AdjustMatrix[3] = -1;
+ pCharPos->m_Origin.x += fCharWidth;
+ } else {
+ pCharPos->m_AdjustMatrix[0] = 0;
+ pCharPos->m_AdjustMatrix[1] = 1;
+ pCharPos->m_AdjustMatrix[2] = 1;
+ pCharPos->m_AdjustMatrix[3] = 0;
+ }
+
if (bVerticalDoc) {
- if (iCharRotation == 0) {
- pCharPos->m_AdjustMatrix[0] = -1;
- pCharPos->m_AdjustMatrix[1] = 0;
- pCharPos->m_AdjustMatrix[2] = 0;
- pCharPos->m_AdjustMatrix[3] = 1;
- pCharPos->m_OriginY += fAscent * iVerScale / 100.0f;
- } else if (iCharRotation == 1) {
- pCharPos->m_AdjustMatrix[0] = 0;
- pCharPos->m_AdjustMatrix[1] = -1;
- pCharPos->m_AdjustMatrix[2] = -1;
- pCharPos->m_AdjustMatrix[3] = 0;
- pCharPos->m_OriginX -=
- fDescent + fAscent * iVerScale / 100.0f - fAscent;
+ if (iCharRotation == 1) {
+ pCharPos->m_Origin.x -= fAscent * iVerScale / 100.0f - fAscent;
} else if (iCharRotation == 2) {
- pCharPos->m_AdjustMatrix[0] = 1;
- pCharPos->m_AdjustMatrix[1] = 0;
- pCharPos->m_AdjustMatrix[2] = 0;
- pCharPos->m_AdjustMatrix[3] = -1;
- pCharPos->m_OriginX += fCharWidth;
- pCharPos->m_OriginY += fAscent;
- } else {
- pCharPos->m_AdjustMatrix[0] = 0;
- pCharPos->m_AdjustMatrix[1] = 1;
- pCharPos->m_AdjustMatrix[2] = 1;
- pCharPos->m_AdjustMatrix[3] = 0;
- pCharPos->m_OriginX += fAscent;
- pCharPos->m_OriginY += fCharWidth;
+ pCharPos->m_Origin.y += fAscent;
+ } else if (iCharRotation != 0) {
+ pCharPos->m_Origin.x += fAscent;
+ pCharPos->m_Origin.y += fCharWidth;
}
} else {
- if (iCharRotation == 0) {
- pCharPos->m_AdjustMatrix[0] = -1;
- pCharPos->m_AdjustMatrix[1] = 0;
- pCharPos->m_AdjustMatrix[2] = 0;
- pCharPos->m_AdjustMatrix[3] = 1;
- pCharPos->m_OriginY += fAscent * iVerScale / 100.0f - fAscent;
- } else if (iCharRotation == 1) {
- pCharPos->m_AdjustMatrix[0] = 0;
- pCharPos->m_AdjustMatrix[1] = -1;
- pCharPos->m_AdjustMatrix[2] = -1;
- pCharPos->m_AdjustMatrix[3] = 0;
- pCharPos->m_OriginX -= fDescent;
- pCharPos->m_OriginY -= fAscent + fDescent;
- } else if (iCharRotation == 2) {
- pCharPos->m_AdjustMatrix[0] = 1;
- pCharPos->m_AdjustMatrix[1] = 0;
- pCharPos->m_AdjustMatrix[2] = 0;
- pCharPos->m_AdjustMatrix[3] = -1;
- pCharPos->m_OriginX += fCharWidth;
- pCharPos->m_OriginY -= fAscent;
- } else {
- pCharPos->m_AdjustMatrix[0] = 0;
- pCharPos->m_AdjustMatrix[1] = 1;
- pCharPos->m_AdjustMatrix[2] = 1;
- pCharPos->m_AdjustMatrix[3] = 0;
- pCharPos->m_OriginX += fAscent * iVerScale / 100.0f;
- }
+ if (iCharRotation == 0)
+ pCharPos->m_Origin.y -= fAscent;
+ else if (iCharRotation == 1)
+ pCharPos->m_Origin.y -= fAscent + fDescent;
+ else if (iCharRotation == 2)
+ pCharPos->m_Origin.y -= fAscent;
+ else
+ pCharPos->m_Origin.x += fAscent * iVerScale / 100.0f;
}
+
if (iHorScale != 100 || iVerScale != 100) {
pCharPos->m_AdjustMatrix[0] =
pCharPos->m_AdjustMatrix[0] * iHorScale / 100.0f;