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/fxfa/app/xfa_textlayout.h" | 7 #include "xfa/fxfa/app/xfa_textlayout.h" |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 | 10 |
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
510 } | 510 } |
511 } else if (fLineHeight < 0.1f) { | 511 } else if (fLineHeight < 0.1f) { |
512 fLineHeight = GetFontSize(pTextProvider, pStyle) * 1.2f; | 512 fLineHeight = GetFontSize(pTextProvider, pStyle) * 1.2f; |
513 } | 513 } |
514 fLineHeight *= fVerScale; | 514 fLineHeight *= fVerScale; |
515 return fLineHeight; | 515 return fLineHeight; |
516 } | 516 } |
517 FX_BOOL CXFA_TextParser::GetEmbbedObj(CXFA_TextProvider* pTextProvider, | 517 FX_BOOL CXFA_TextParser::GetEmbbedObj(CXFA_TextProvider* pTextProvider, |
518 CFDE_XMLNode* pXMLNode, | 518 CFDE_XMLNode* pXMLNode, |
519 CFX_WideString& wsValue) { | 519 CFX_WideString& wsValue) { |
520 wsValue.Empty(); | 520 wsValue.clear(); |
521 if (pXMLNode == NULL) { | 521 if (pXMLNode == NULL) { |
522 return FALSE; | 522 return FALSE; |
523 } | 523 } |
524 FX_BOOL bRet = FALSE; | 524 FX_BOOL bRet = FALSE; |
525 if (pXMLNode->GetType() == FDE_XMLNODE_Element) { | 525 if (pXMLNode->GetType() == FDE_XMLNODE_Element) { |
526 CFDE_XMLElement* pElement = static_cast<CFDE_XMLElement*>(pXMLNode); | 526 CFDE_XMLElement* pElement = static_cast<CFDE_XMLElement*>(pXMLNode); |
527 CFX_WideString wsAttr; | 527 CFX_WideString wsAttr; |
528 pElement->GetString(FX_WSTRC(L"xfa:embed").c_str(), wsAttr); | 528 pElement->GetString(FX_WSTRC(L"xfa:embed").c_str(), wsAttr); |
529 if (wsAttr.IsEmpty()) { | 529 if (wsAttr.IsEmpty()) { |
530 return FALSE; | 530 return FALSE; |
531 } | 531 } |
532 if (wsAttr.GetAt(0) == L'#') { | 532 if (wsAttr.GetAt(0) == L'#') { |
533 wsAttr.Delete(0); | 533 wsAttr.Delete(0); |
534 } | 534 } |
535 CFX_WideString ws; | 535 CFX_WideString ws; |
536 pElement->GetString(FX_WSTRC(L"xfa:embedType").c_str(), ws); | 536 pElement->GetString(FX_WSTRC(L"xfa:embedType").c_str(), ws); |
537 if (ws.IsEmpty()) { | 537 if (ws.IsEmpty()) { |
538 ws = L"som"; | 538 ws = L"som"; |
539 } else { | 539 } else { |
540 ws.MakeLower(); | 540 ws.MakeLower(); |
541 } | 541 } |
542 FX_BOOL bURI = (ws == FX_WSTRC(L"uri")); | 542 FX_BOOL bURI = (ws == FX_WSTRC(L"uri")); |
543 if (!bURI && ws != FX_WSTRC(L"som")) { | 543 if (!bURI && ws != FX_WSTRC(L"som")) { |
544 return FALSE; | 544 return FALSE; |
545 } | 545 } |
546 ws.Empty(); | 546 ws.clear(); |
547 pElement->GetString(FX_WSTRC(L"xfa:embedMode").c_str(), ws); | 547 pElement->GetString(FX_WSTRC(L"xfa:embedMode").c_str(), ws); |
548 if (ws.IsEmpty()) { | 548 if (ws.IsEmpty()) { |
549 ws = L"formatted"; | 549 ws = L"formatted"; |
550 } else { | 550 } else { |
551 ws.MakeLower(); | 551 ws.MakeLower(); |
552 } | 552 } |
553 FX_BOOL bRaw = (ws == FX_WSTRC(L"raw")); | 553 FX_BOOL bRaw = (ws == FX_WSTRC(L"raw")); |
554 if (!bRaw && ws != FX_WSTRC(L"formatted")) { | 554 if (!bRaw && ws != FX_WSTRC(L"formatted")) { |
555 return FALSE; | 555 return FALSE; |
556 } | 556 } |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
638 eStatus = XFA_TABSTOPSSTATUS_Location; | 638 eStatus = XFA_TABSTOPSSTATUS_Location; |
639 } | 639 } |
640 break; | 640 break; |
641 case XFA_TABSTOPSSTATUS_Location: | 641 case XFA_TABSTOPSSTATUS_Location: |
642 if (ch == ' ') { | 642 if (ch == ' ') { |
643 uint32_t dwHashCode = FX_HashCode_String_GetW( | 643 uint32_t dwHashCode = FX_HashCode_String_GetW( |
644 wsAlign.c_str(), wsAlign.GetLength(), TRUE); | 644 wsAlign.c_str(), wsAlign.GetLength(), TRUE); |
645 CXFA_Measurement ms(CFX_WideStringC(pTabStops + iLast, iCur - iLast)); | 645 CXFA_Measurement ms(CFX_WideStringC(pTabStops + iLast, iCur - iLast)); |
646 FX_FLOAT fPos = ms.ToUnit(XFA_UNIT_Pt); | 646 FX_FLOAT fPos = ms.ToUnit(XFA_UNIT_Pt); |
647 pTabstopContext->Append(dwHashCode, fPos); | 647 pTabstopContext->Append(dwHashCode, fPos); |
648 wsAlign.Empty(); | 648 wsAlign.clear(); |
649 eStatus = XFA_TABSTOPSSTATUS_None; | 649 eStatus = XFA_TABSTOPSSTATUS_None; |
650 } | 650 } |
651 iCur++; | 651 iCur++; |
652 break; | 652 break; |
653 default: | 653 default: |
654 break; | 654 break; |
655 } | 655 } |
656 } | 656 } |
657 if (!wsAlign.IsEmpty()) { | 657 if (!wsAlign.IsEmpty()) { |
658 uint32_t dwHashCode = | 658 uint32_t dwHashCode = |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
881 m_pBreak->SetFontSize(fFontSize); | 881 m_pBreak->SetFontSize(fFontSize); |
882 m_pBreak->SetLineBreakTolerance(fFontSize * 0.2f); | 882 m_pBreak->SetLineBreakTolerance(fFontSize * 0.2f); |
883 m_pBreak->SetFont(m_textParser.GetFont(m_pTextProvider, pStyle)); | 883 m_pBreak->SetFont(m_textParser.GetFont(m_pTextProvider, pStyle)); |
884 m_pBreak->SetHorizontalScale( | 884 m_pBreak->SetHorizontalScale( |
885 m_textParser.GetHorScale(m_pTextProvider, pStyle, pXMLNode)); | 885 m_textParser.GetHorScale(m_pTextProvider, pStyle, pXMLNode)); |
886 m_pBreak->SetVerticalScale(m_textParser.GetVerScale(m_pTextProvider, pStyle)); | 886 m_pBreak->SetVerticalScale(m_textParser.GetVerScale(m_pTextProvider, pStyle)); |
887 m_pBreak->SetCharSpace(pParaStyle->GetLetterSpacing().GetValue()); | 887 m_pBreak->SetCharSpace(pParaStyle->GetLetterSpacing().GetValue()); |
888 } | 888 } |
889 int32_t CXFA_TextLayout::GetText(CFX_WideString& wsText) { | 889 int32_t CXFA_TextLayout::GetText(CFX_WideString& wsText) { |
890 GetTextDataNode(); | 890 GetTextDataNode(); |
891 wsText.Empty(); | 891 wsText.clear(); |
892 if (m_bRichText) { | 892 if (m_bRichText) { |
893 } else { | 893 } else { |
894 wsText = m_pTextDataNode->GetContent(); | 894 wsText = m_pTextDataNode->GetContent(); |
895 } | 895 } |
896 return wsText.GetLength(); | 896 return wsText.GetLength(); |
897 } | 897 } |
898 FX_FLOAT CXFA_TextLayout::GetLayoutHeight() { | 898 FX_FLOAT CXFA_TextLayout::GetLayoutHeight() { |
899 if (m_pLoader == NULL) { | 899 if (m_pLoader == NULL) { |
900 return 0; | 900 return 0; |
901 } | 901 } |
(...skipping 1088 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1990 tr.iLength = iLength; | 1990 tr.iLength = iLength; |
1991 tr.fFontSize = pPiece->fFontSize; | 1991 tr.fFontSize = pPiece->fFontSize; |
1992 tr.iBidiLevel = pPiece->iBidiLevel; | 1992 tr.iBidiLevel = pPiece->iBidiLevel; |
1993 tr.iCharRotation = 0; | 1993 tr.iCharRotation = 0; |
1994 tr.wLineBreakChar = L'\n'; | 1994 tr.wLineBreakChar = L'\n'; |
1995 tr.iVerticalScale = pPiece->iVerScale; | 1995 tr.iVerticalScale = pPiece->iVerScale; |
1996 tr.dwLayoutStyles = FX_RTFLAYOUTSTYLE_ExpandTab; | 1996 tr.dwLayoutStyles = FX_RTFLAYOUTSTYLE_ExpandTab; |
1997 tr.iHorizontalScale = pPiece->iHorScale; | 1997 tr.iHorizontalScale = pPiece->iHorScale; |
1998 return TRUE; | 1998 return TRUE; |
1999 } | 1999 } |
OLD | NEW |