OLD | NEW |
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 1156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1167 int32_t CFX_TxtBreak::GetDisplayPos(const FX_TXTRUN* pTxtRun, | 1167 int32_t CFX_TxtBreak::GetDisplayPos(const FX_TXTRUN* pTxtRun, |
1168 FXTEXT_CHARPOS* pCharPos, | 1168 FXTEXT_CHARPOS* pCharPos, |
1169 FX_BOOL bCharCode, | 1169 FX_BOOL bCharCode, |
1170 CFX_WideString* pWSForms, | 1170 CFX_WideString* pWSForms, |
1171 FX_AdjustCharDisplayPos pAdjustPos) const { | 1171 FX_AdjustCharDisplayPos pAdjustPos) const { |
1172 if (pTxtRun == NULL || pTxtRun->iLength < 1) { | 1172 if (pTxtRun == NULL || pTxtRun->iLength < 1) { |
1173 return 0; | 1173 return 0; |
1174 } | 1174 } |
1175 IFX_TxtAccess* pAccess = pTxtRun->pAccess; | 1175 IFX_TxtAccess* pAccess = pTxtRun->pAccess; |
1176 void* pIdentity = pTxtRun->pIdentity; | 1176 void* pIdentity = pTxtRun->pIdentity; |
1177 const FX_WCHAR* pStr = pTxtRun->pStr; | 1177 const FX_WCHAR* pStr = pTxtRun->wsStr.c_str(); |
1178 int32_t* pWidths = pTxtRun->pWidths; | 1178 int32_t* pWidths = pTxtRun->pWidths; |
1179 int32_t iLength = pTxtRun->iLength - 1; | 1179 int32_t iLength = pTxtRun->iLength - 1; |
1180 IFX_Font* pFont = pTxtRun->pFont; | 1180 IFX_Font* pFont = pTxtRun->pFont; |
1181 uint32_t dwStyles = pTxtRun->dwStyles; | 1181 uint32_t dwStyles = pTxtRun->dwStyles; |
1182 CFX_RectF rtText(*pTxtRun->pRect); | 1182 CFX_RectF rtText(*pTxtRun->pRect); |
1183 FX_BOOL bRTLPiece = | 1183 FX_BOOL bRTLPiece = |
1184 (pTxtRun->dwCharStyles & FX_TXTCHARSTYLE_OddBidiLevel) != 0; | 1184 (pTxtRun->dwCharStyles & FX_TXTCHARSTYLE_OddBidiLevel) != 0; |
1185 FX_BOOL bArabicNumber = | 1185 FX_BOOL bArabicNumber = |
1186 (pTxtRun->dwCharStyles & FX_TXTCHARSTYLE_ArabicNumber) != 0; | 1186 (pTxtRun->dwCharStyles & FX_TXTCHARSTYLE_ArabicNumber) != 0; |
1187 FX_BOOL bArabicComma = | 1187 FX_BOOL bArabicComma = |
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1547 return iCount; | 1547 return iCount; |
1548 } | 1548 } |
1549 int32_t CFX_TxtBreak::GetCharRects(const FX_TXTRUN* pTxtRun, | 1549 int32_t CFX_TxtBreak::GetCharRects(const FX_TXTRUN* pTxtRun, |
1550 CFX_RectFArray& rtArray, | 1550 CFX_RectFArray& rtArray, |
1551 FX_BOOL bCharBBox) const { | 1551 FX_BOOL bCharBBox) const { |
1552 if (pTxtRun == NULL || pTxtRun->iLength < 1) { | 1552 if (pTxtRun == NULL || pTxtRun->iLength < 1) { |
1553 return 0; | 1553 return 0; |
1554 } | 1554 } |
1555 IFX_TxtAccess* pAccess = pTxtRun->pAccess; | 1555 IFX_TxtAccess* pAccess = pTxtRun->pAccess; |
1556 void* pIdentity = pTxtRun->pIdentity; | 1556 void* pIdentity = pTxtRun->pIdentity; |
1557 const FX_WCHAR* pStr = pTxtRun->pStr; | 1557 const FX_WCHAR* pStr = pTxtRun->wsStr.c_str(); |
1558 int32_t* pWidths = pTxtRun->pWidths; | 1558 int32_t* pWidths = pTxtRun->pWidths; |
1559 int32_t iLength = pTxtRun->iLength; | 1559 int32_t iLength = pTxtRun->iLength; |
1560 CFX_RectF rect(*pTxtRun->pRect); | 1560 CFX_RectF rect(*pTxtRun->pRect); |
1561 FX_BOOL bRTLPiece = | 1561 FX_BOOL bRTLPiece = |
1562 (pTxtRun->dwCharStyles & FX_TXTCHARSTYLE_OddBidiLevel) != 0; | 1562 (pTxtRun->dwCharStyles & FX_TXTCHARSTYLE_OddBidiLevel) != 0; |
1563 FX_FLOAT fFontSize = pTxtRun->fFontSize; | 1563 FX_FLOAT fFontSize = pTxtRun->fFontSize; |
1564 int32_t iFontSize = FXSYS_round(fFontSize * 20.0f); | 1564 int32_t iFontSize = FXSYS_round(fFontSize * 20.0f); |
1565 FX_FLOAT fScale = fFontSize / 1000.0f; | 1565 FX_FLOAT fScale = fFontSize / 1000.0f; |
1566 IFX_Font* pFont = pTxtRun->pFont; | 1566 IFX_Font* pFont = pTxtRun->pFont; |
1567 if (pFont == NULL) { | 1567 if (pFont == NULL) { |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1650 rtBBoxF.height = fHeight; | 1650 rtBBoxF.height = fHeight; |
1651 rtBBoxF.top = std::max(rtBBoxF.top, 0.0f); | 1651 rtBBoxF.top = std::max(rtBBoxF.top, 0.0f); |
1652 } | 1652 } |
1653 rtArray.SetAt(i, rtBBoxF); | 1653 rtArray.SetAt(i, rtBBoxF); |
1654 continue; | 1654 continue; |
1655 } | 1655 } |
1656 rtArray.SetAt(i, rect); | 1656 rtArray.SetAt(i, rect); |
1657 } | 1657 } |
1658 return iLength; | 1658 return iLength; |
1659 } | 1659 } |
OLD | NEW |