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_rtfbreak.h" | 7 #include "xfa/fgas/layout/fgas_rtfbreak.h" |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 | 10 |
(...skipping 972 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
983 while (iLength >= 0) { | 983 while (iLength >= 0) { |
984 pCur = pCharArray + iLength; | 984 pCur = pCharArray + iLength; |
985 nCodeProp = pCur->m_dwCharProps; | 985 nCodeProp = pCur->m_dwCharProps; |
986 nCur = nCodeProp & 0x003F; | 986 nCur = nCodeProp & 0x003F; |
987 FX_BOOL bNeedBreak = FALSE; | 987 FX_BOOL bNeedBreak = FALSE; |
988 if (nCur == FX_CBP_SP) { | 988 if (nCur == FX_CBP_SP) { |
989 bNeedBreak = !bSpaceBreak; | 989 bNeedBreak = !bSpaceBreak; |
990 if (nNext == FX_CBP_SP) { | 990 if (nNext == FX_CBP_SP) { |
991 eType = bSpaceBreak ? FX_LBT_DIRECT_BRK : FX_LBT_PROHIBITED_BRK; | 991 eType = bSpaceBreak ? FX_LBT_DIRECT_BRK : FX_LBT_PROHIBITED_BRK; |
992 } else { | 992 } else { |
993 eType = *((const FX_LINEBREAKTYPE*)gs_FX_LineBreak_PairTable + | 993 eType = gs_FX_LineBreak_PairTable[nCur][nNext]; |
994 (nCur << 5) + nNext); | |
995 } | 994 } |
996 } else if (nCur == FX_CBP_TB) { | 995 } else if (nCur == FX_CBP_TB) { |
997 bNeedBreak = !bTabBreak; | 996 bNeedBreak = !bTabBreak; |
998 if (nNext == FX_CBP_TB) { | 997 if (nNext == FX_CBP_TB) { |
999 eType = bTabBreak ? FX_LBT_DIRECT_BRK : FX_LBT_PROHIBITED_BRK; | 998 eType = bTabBreak ? FX_LBT_DIRECT_BRK : FX_LBT_PROHIBITED_BRK; |
1000 } else { | 999 } else { |
1001 eType = *((const FX_LINEBREAKTYPE*)gs_FX_LineBreak_PairTable + | 1000 eType = gs_FX_LineBreak_PairTable[nCur][nNext]; |
1002 (nCur << 5) + nNext); | |
1003 } | 1001 } |
1004 } else if (bNumberBreak && nCur == FX_CBP_NU && nNext == FX_CBP_NU) { | 1002 } else if ((bNumberBreak && nCur == FX_CBP_NU && nNext == FX_CBP_NU) || |
1005 eType = FX_LBT_DIRECT_BRK; | 1003 (bInfixBreak && nCur == FX_CBP_IS && nNext == FX_CBP_IS)) { |
1006 } else if (bInfixBreak && nCur == FX_CBP_IS && nNext == FX_CBP_IS) { | |
1007 eType = FX_LBT_DIRECT_BRK; | 1004 eType = FX_LBT_DIRECT_BRK; |
1008 } else { | 1005 } else { |
1009 if (nNext == FX_CBP_SP) { | 1006 if (nNext == FX_CBP_SP) { |
1010 eType = FX_LBT_PROHIBITED_BRK; | 1007 eType = FX_LBT_PROHIBITED_BRK; |
1011 } else { | 1008 } else { |
1012 eType = *((const FX_LINEBREAKTYPE*)gs_FX_LineBreak_PairTable + | 1009 eType = gs_FX_LineBreak_PairTable[nCur][nNext]; |
1013 (nCur << 5) + nNext); | |
1014 } | 1010 } |
1015 } | 1011 } |
1016 if (bAllChars) { | 1012 if (bAllChars) { |
1017 pCur->m_nBreakType = eType; | 1013 pCur->m_nBreakType = eType; |
1018 } | 1014 } |
1019 if (!bOnlyBrk) { | 1015 if (!bOnlyBrk) { |
1020 iCharWidth = pCur->m_iCharWidth; | 1016 iCharWidth = pCur->m_iCharWidth; |
1021 FX_BOOL bBreak = FALSE; | 1017 FX_BOOL bBreak = FALSE; |
1022 if (nCur == FX_CBP_TB && bTabBreak) { | 1018 if (nCur == FX_CBP_TB && bTabBreak) { |
1023 bBreak = iCharWidth > 0 && iEndPos - iCharWidth <= m_iBoundaryEnd; | 1019 bBreak = iCharWidth > 0 && iEndPos - iCharWidth <= m_iBoundaryEnd; |
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1513 rtBBoxF.height = fHeight; | 1509 rtBBoxF.height = fHeight; |
1514 rtBBoxF.top = std::max(rtBBoxF.top, 0.0f); | 1510 rtBBoxF.top = std::max(rtBBoxF.top, 0.0f); |
1515 } | 1511 } |
1516 rtArray.SetAt(i, rtBBoxF); | 1512 rtArray.SetAt(i, rtBBoxF); |
1517 continue; | 1513 continue; |
1518 } | 1514 } |
1519 rtArray.SetAt(i, rect); | 1515 rtArray.SetAt(i, rect); |
1520 } | 1516 } |
1521 return iLength; | 1517 return iLength; |
1522 } | 1518 } |
OLD | NEW |