Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(346)

Side by Side Diff: xfa/fgas/layout/fgas_textbreak.cpp

Issue 2616623005: Remove CFX_MapPtrToPtr in xfa/fgas, part 2 (Closed)
Patch Set: typo Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fgas/layout/fgas_rtfbreak.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "xfa/fgas/layout/fgas_textbreak.h" 7 #include "xfa/fgas/layout/fgas_textbreak.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 1450 matching lines...) Expand 10 before | Expand all | Expand 10 after
1461 FX_FLOAT fOffset = fFontSize * (iCharWidth - iFormWidth) / 2000.0f; 1461 FX_FLOAT fOffset = fFontSize * (iCharWidth - iFormWidth) / 2000.0f;
1462 if (bVerticalDoc) { 1462 if (bVerticalDoc) {
1463 pCharPos->m_OriginY += fOffset; 1463 pCharPos->m_OriginY += fOffset;
1464 } else { 1464 } else {
1465 pCharPos->m_OriginX += fOffset; 1465 pCharPos->m_OriginX += fOffset;
1466 } 1466 }
1467 } 1467 }
1468 if (chartype == FX_CHARTYPE_Combination) { 1468 if (chartype == FX_CHARTYPE_Combination) {
1469 CFX_Rect rtBBox; 1469 CFX_Rect rtBBox;
1470 rtBBox.Reset(); 1470 rtBBox.Reset();
1471 if (pFont->GetCharBBox(wForm, rtBBox, false)) { 1471 if (pFont->GetCharBBox(wForm, &rtBBox, false)) {
1472 pCharPos->m_OriginY = 1472 pCharPos->m_OriginY =
1473 fYBase + fFontSize - 1473 fYBase + fFontSize -
1474 fFontSize * (FX_FLOAT)rtBBox.height / (FX_FLOAT)iMaxHeight; 1474 fFontSize * (FX_FLOAT)rtBBox.height / (FX_FLOAT)iMaxHeight;
1475 } 1475 }
1476 if (wForm == wch && wLast != 0xFEFF) { 1476 if (wForm == wch && wLast != 0xFEFF) {
1477 uint32_t dwLastProps = FX_GetUnicodeProperties(wLast); 1477 uint32_t dwLastProps = FX_GetUnicodeProperties(wLast);
1478 if ((dwLastProps & FX_CHARTYPEBITSMASK) == 1478 if ((dwLastProps & FX_CHARTYPEBITSMASK) ==
1479 FX_CHARTYPE_Combination) { 1479 FX_CHARTYPE_Combination) {
1480 CFX_Rect rtBox; 1480 CFX_Rect rtBox;
1481 rtBox.Reset(); 1481 rtBox.Reset();
1482 if (pFont->GetCharBBox(wLast, rtBox, false)) { 1482 if (pFont->GetCharBBox(wLast, &rtBox, false)) {
1483 pCharPos->m_OriginY -= fFontSize * rtBox.height / iMaxHeight; 1483 pCharPos->m_OriginY -= fFontSize * rtBox.height / iMaxHeight;
1484 } 1484 }
1485 } 1485 }
1486 } 1486 }
1487 } 1487 }
1488 CFX_PointF ptOffset; 1488 CFX_PointF ptOffset;
1489 bool bAdjusted = false; 1489 bool bAdjusted = false;
1490 if (pAdjustPos) { 1490 if (pAdjustPos) {
1491 bAdjusted = pAdjustPos(wForm, bCharCode, pFont, fFontSize, 1491 bAdjusted = pAdjustPos(wForm, bCharCode, pFont, fFontSize,
1492 bVerticalChar, ptOffset); 1492 bVerticalChar, ptOffset);
1493 } 1493 }
1494 if (!bAdjusted && bVerticalChar && (dwProps & 0x00010000) != 0) { 1494 if (!bAdjusted && bVerticalChar && (dwProps & 0x00010000) != 0) {
1495 CFX_Rect rtBBox; 1495 CFX_Rect rtBBox;
1496 rtBBox.Reset(); 1496 rtBBox.Reset();
1497 if (pFont->GetCharBBox(wForm, rtBBox, false)) { 1497 if (pFont->GetCharBBox(wForm, &rtBBox, false)) {
1498 ptOffset.x = fFontSize * (850 - rtBBox.right()) / iMaxHeight; 1498 ptOffset.x = fFontSize * (850 - rtBBox.right()) / iMaxHeight;
1499 ptOffset.y = fFontSize * (iAscent - rtBBox.top - 150) / iMaxHeight; 1499 ptOffset.y = fFontSize * (iAscent - rtBBox.top - 150) / iMaxHeight;
1500 } 1500 }
1501 } 1501 }
1502 pCharPos->m_OriginX += ptOffset.x; 1502 pCharPos->m_OriginX += ptOffset.x;
1503 pCharPos->m_OriginY -= ptOffset.y; 1503 pCharPos->m_OriginY -= ptOffset.y;
1504 } 1504 }
1505 if (!bRTLPiece && chartype != FX_CHARTYPE_Combination) { 1505 if (!bRTLPiece && chartype != FX_CHARTYPE_Combination) {
1506 if (bVerticalDoc) { 1506 if (bVerticalDoc) {
1507 fY += fCharHeight; 1507 fY += fCharHeight;
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
1603 FX_FLOAT fFontSize = pTxtRun->fFontSize; 1603 FX_FLOAT fFontSize = pTxtRun->fFontSize;
1604 int32_t iFontSize = FXSYS_round(fFontSize * 20.0f); 1604 int32_t iFontSize = FXSYS_round(fFontSize * 20.0f);
1605 FX_FLOAT fScale = fFontSize / 1000.0f; 1605 FX_FLOAT fScale = fFontSize / 1000.0f;
1606 CFX_RetainPtr<CFGAS_GEFont> pFont = pTxtRun->pFont; 1606 CFX_RetainPtr<CFGAS_GEFont> pFont = pTxtRun->pFont;
1607 if (!pFont) 1607 if (!pFont)
1608 bCharBBox = false; 1608 bCharBBox = false;
1609 1609
1610 CFX_Rect bbox; 1610 CFX_Rect bbox;
1611 bbox.Set(0, 0, 0, 0); 1611 bbox.Set(0, 0, 0, 0);
1612 if (bCharBBox) 1612 if (bCharBBox)
1613 bCharBBox = pFont->GetBBox(bbox); 1613 bCharBBox = pFont->GetBBox(&bbox);
1614 1614
1615 FX_FLOAT fLeft = std::max(0.0f, bbox.left * fScale); 1615 FX_FLOAT fLeft = std::max(0.0f, bbox.left * fScale);
1616 FX_FLOAT fHeight = FXSYS_fabs(bbox.height * fScale); 1616 FX_FLOAT fHeight = FXSYS_fabs(bbox.height * fScale);
1617 rtArray.RemoveAll(); 1617 rtArray.RemoveAll();
1618 rtArray.SetSize(iLength); 1618 rtArray.SetSize(iLength);
1619 bool bVertical = (pTxtRun->dwStyles & FX_TXTLAYOUTSTYLE_VerticalLayout) != 0; 1619 bool bVertical = (pTxtRun->dwStyles & FX_TXTLAYOUTSTYLE_VerticalLayout) != 0;
1620 bool bSingleLine = (pTxtRun->dwStyles & FX_TXTLAYOUTSTYLE_SingleLine) != 0; 1620 bool bSingleLine = (pTxtRun->dwStyles & FX_TXTLAYOUTSTYLE_SingleLine) != 0;
1621 bool bCombText = (pTxtRun->dwStyles & FX_TXTLAYOUTSTYLE_CombText) != 0; 1621 bool bCombText = (pTxtRun->dwStyles & FX_TXTLAYOUTSTYLE_CombText) != 0;
1622 FX_WCHAR wch, wLineBreakChar = pTxtRun->wLineBreakChar; 1622 FX_WCHAR wch, wLineBreakChar = pTxtRun->wLineBreakChar;
1623 int32_t iCharSize; 1623 int32_t iCharSize;
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
1734 CFX_TxtLine::CFX_TxtLine(int32_t iBlockSize) 1734 CFX_TxtLine::CFX_TxtLine(int32_t iBlockSize)
1735 : m_pLineChars(new CFX_TxtCharArray), 1735 : m_pLineChars(new CFX_TxtCharArray),
1736 m_pLinePieces(new CFX_TxtPieceArray(16)), 1736 m_pLinePieces(new CFX_TxtPieceArray(16)),
1737 m_iStart(0), 1737 m_iStart(0),
1738 m_iWidth(0), 1738 m_iWidth(0),
1739 m_iArabicChars(0) {} 1739 m_iArabicChars(0) {}
1740 1740
1741 CFX_TxtLine::~CFX_TxtLine() { 1741 CFX_TxtLine::~CFX_TxtLine() {
1742 RemoveAll(); 1742 RemoveAll();
1743 } 1743 }
OLDNEW
« no previous file with comments | « xfa/fgas/layout/fgas_rtfbreak.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698