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/fde/css/fde_cssdatatable.h" | 7 #include "xfa/fde/css/fde_cssdatatable.h" |
8 | 8 |
9 #include "core/fxcrt/include/fx_ext.h" | 9 #include "core/fxcrt/include/fx_ext.h" |
10 #include "xfa/fgas/crt/fgas_algorithm.h" | 10 #include "xfa/fgas/crt/fgas_algorithm.h" |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 if (FDE_CSSLengthToFloat(pRect->right, fContainerWidth, fResult)) { | 80 if (FDE_CSSLengthToFloat(pRect->right, fContainerWidth, fResult)) { |
81 rect.right += fResult; | 81 rect.right += fResult; |
82 } | 82 } |
83 if (FDE_CSSLengthToFloat(pRect->bottom, fContainerWidth, fResult)) { | 83 if (FDE_CSSLengthToFloat(pRect->bottom, fContainerWidth, fResult)) { |
84 rect.bottom += fResult; | 84 rect.bottom += fResult; |
85 } | 85 } |
86 } | 86 } |
87 } | 87 } |
88 return rect; | 88 return rect; |
89 } | 89 } |
90 FX_DWORD FDE_CSSFontStyleToFDE(IFDE_CSSFontStyle* pFontStyle) { | 90 uint32_t FDE_CSSFontStyleToFDE(IFDE_CSSFontStyle* pFontStyle) { |
91 FXSYS_assert(pFontStyle != NULL); | 91 FXSYS_assert(pFontStyle != NULL); |
92 FX_DWORD dwFontStyle = FX_FONTSTYLE_Normal; | 92 uint32_t dwFontStyle = FX_FONTSTYLE_Normal; |
93 if (pFontStyle->GetFontStyle() == FDE_CSSFONTSTYLE_Italic) { | 93 if (pFontStyle->GetFontStyle() == FDE_CSSFONTSTYLE_Italic) { |
94 dwFontStyle |= FX_FONTSTYLE_Italic; | 94 dwFontStyle |= FX_FONTSTYLE_Italic; |
95 } | 95 } |
96 if (pFontStyle->GetFontWeight() >= 700) { | 96 if (pFontStyle->GetFontWeight() >= 700) { |
97 dwFontStyle |= FX_FONTSTYLE_Bold; | 97 dwFontStyle |= FX_FONTSTYLE_Bold; |
98 } | 98 } |
99 return dwFontStyle; | 99 return dwFontStyle; |
100 } | 100 } |
101 static const FDE_CSSPROPERTYTABLE g_FDE_CSSProperties[] = { | 101 static const FDE_CSSPROPERTYTABLE g_FDE_CSSProperties[] = { |
102 {FDE_CSSPROPERTY_WritingMode, L"writing-mode", 0x01878076, | 102 {FDE_CSSPROPERTY_WritingMode, L"writing-mode", 0x01878076, |
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
553 {FDE_CSSPERSUDO_After, L":after", 0x16EE1FEC}, | 553 {FDE_CSSPERSUDO_After, L":after", 0x16EE1FEC}, |
554 {FDE_CSSPERSUDO_Before, L":before", 0x7DCDDE2D}, | 554 {FDE_CSSPERSUDO_Before, L":before", 0x7DCDDE2D}, |
555 }; | 555 }; |
556 FDE_LPCCSSPERSUDOTABLE FDE_GetCSSPersudoByEnum(FDE_CSSPERSUDO ePersudo) { | 556 FDE_LPCCSSPERSUDOTABLE FDE_GetCSSPersudoByEnum(FDE_CSSPERSUDO ePersudo) { |
557 return (ePersudo < FDE_CSSPERSUDO_NONE) ? (g_FDE_CSSPersudoType + ePersudo) | 557 return (ePersudo < FDE_CSSPERSUDO_NONE) ? (g_FDE_CSSPersudoType + ePersudo) |
558 : NULL; | 558 : NULL; |
559 } | 559 } |
560 FDE_LPCCSSPROPERTYTABLE FDE_GetCSSPropertyByName(const FX_WCHAR* pszName, | 560 FDE_LPCCSSPROPERTYTABLE FDE_GetCSSPropertyByName(const FX_WCHAR* pszName, |
561 int32_t iLength) { | 561 int32_t iLength) { |
562 FXSYS_assert(pszName != NULL && iLength > 0); | 562 FXSYS_assert(pszName != NULL && iLength > 0); |
563 FX_DWORD dwHash = FX_HashCode_String_GetW(pszName, iLength, TRUE); | 563 uint32_t dwHash = FX_HashCode_String_GetW(pszName, iLength, TRUE); |
564 int32_t iEnd = FDE_CSSPROPERTY_MAX - 1; | 564 int32_t iEnd = FDE_CSSPROPERTY_MAX - 1; |
565 int32_t iMid, iStart = 0; | 565 int32_t iMid, iStart = 0; |
566 FX_DWORD dwMid; | 566 uint32_t dwMid; |
567 do { | 567 do { |
568 iMid = (iStart + iEnd) / 2; | 568 iMid = (iStart + iEnd) / 2; |
569 dwMid = g_FDE_CSSProperties[iMid].dwHash; | 569 dwMid = g_FDE_CSSProperties[iMid].dwHash; |
570 if (dwHash == dwMid) { | 570 if (dwHash == dwMid) { |
571 return g_FDE_CSSProperties + iMid; | 571 return g_FDE_CSSProperties + iMid; |
572 } else if (dwHash > dwMid) { | 572 } else if (dwHash > dwMid) { |
573 iStart = iMid + 1; | 573 iStart = iMid + 1; |
574 } else { | 574 } else { |
575 iEnd = iMid - 1; | 575 iEnd = iMid - 1; |
576 } | 576 } |
577 } while (iStart <= iEnd); | 577 } while (iStart <= iEnd); |
578 return NULL; | 578 return NULL; |
579 } | 579 } |
580 FDE_LPCCSSPROPERTYTABLE FDE_GetCSSPropertyByEnum(FDE_CSSPROPERTY eName) { | 580 FDE_LPCCSSPROPERTYTABLE FDE_GetCSSPropertyByEnum(FDE_CSSPROPERTY eName) { |
581 return (eName < FDE_CSSPROPERTY_MAX) ? (g_FDE_CSSProperties + eName) : NULL; | 581 return (eName < FDE_CSSPROPERTY_MAX) ? (g_FDE_CSSProperties + eName) : NULL; |
582 } | 582 } |
583 FDE_LPCCSSPROPERTYVALUETABLE FDE_GetCSSPropertyValueByName( | 583 FDE_LPCCSSPROPERTYVALUETABLE FDE_GetCSSPropertyValueByName( |
584 const FX_WCHAR* pszName, | 584 const FX_WCHAR* pszName, |
585 int32_t iLength) { | 585 int32_t iLength) { |
586 FXSYS_assert(pszName != NULL && iLength > 0); | 586 FXSYS_assert(pszName != NULL && iLength > 0); |
587 FX_DWORD dwHash = FX_HashCode_String_GetW(pszName, iLength, TRUE); | 587 uint32_t dwHash = FX_HashCode_String_GetW(pszName, iLength, TRUE); |
588 int32_t iEnd = FDE_CSSPROPERTYVALUE_MAX - 1; | 588 int32_t iEnd = FDE_CSSPROPERTYVALUE_MAX - 1; |
589 int32_t iMid, iStart = 0; | 589 int32_t iMid, iStart = 0; |
590 FX_DWORD dwMid; | 590 uint32_t dwMid; |
591 do { | 591 do { |
592 iMid = (iStart + iEnd) / 2; | 592 iMid = (iStart + iEnd) / 2; |
593 dwMid = g_FDE_CSSPropertyValues[iMid].dwHash; | 593 dwMid = g_FDE_CSSPropertyValues[iMid].dwHash; |
594 if (dwHash == dwMid) { | 594 if (dwHash == dwMid) { |
595 return g_FDE_CSSPropertyValues + iMid; | 595 return g_FDE_CSSPropertyValues + iMid; |
596 } else if (dwHash > dwMid) { | 596 } else if (dwHash > dwMid) { |
597 iStart = iMid + 1; | 597 iStart = iMid + 1; |
598 } else { | 598 } else { |
599 iEnd = iMid - 1; | 599 iEnd = iMid - 1; |
600 } | 600 } |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
644 iStart = iMid + 1; | 644 iStart = iMid + 1; |
645 } else { | 645 } else { |
646 iEnd = iMid - 1; | 646 iEnd = iMid - 1; |
647 } | 647 } |
648 } while (iStart <= iEnd); | 648 } while (iStart <= iEnd); |
649 return NULL; | 649 return NULL; |
650 } | 650 } |
651 FDE_LPCCSSCOLORTABLE FDE_GetCSSColorByName(const FX_WCHAR* pszName, | 651 FDE_LPCCSSCOLORTABLE FDE_GetCSSColorByName(const FX_WCHAR* pszName, |
652 int32_t iLength) { | 652 int32_t iLength) { |
653 FXSYS_assert(pszName != NULL && iLength > 0); | 653 FXSYS_assert(pszName != NULL && iLength > 0); |
654 FX_DWORD dwHash = FX_HashCode_String_GetW(pszName, iLength, TRUE); | 654 uint32_t dwHash = FX_HashCode_String_GetW(pszName, iLength, TRUE); |
655 int32_t iEnd = sizeof(g_FDE_CSSColors) / sizeof(FDE_CSSCOLORTABLE) - 1; | 655 int32_t iEnd = sizeof(g_FDE_CSSColors) / sizeof(FDE_CSSCOLORTABLE) - 1; |
656 int32_t iMid, iStart = 0; | 656 int32_t iMid, iStart = 0; |
657 FX_DWORD dwMid; | 657 uint32_t dwMid; |
658 do { | 658 do { |
659 iMid = (iStart + iEnd) / 2; | 659 iMid = (iStart + iEnd) / 2; |
660 dwMid = g_FDE_CSSColors[iMid].dwHash; | 660 dwMid = g_FDE_CSSColors[iMid].dwHash; |
661 if (dwHash == dwMid) { | 661 if (dwHash == dwMid) { |
662 return g_FDE_CSSColors + iMid; | 662 return g_FDE_CSSColors + iMid; |
663 } else if (dwHash > dwMid) { | 663 } else if (dwHash > dwMid) { |
664 iStart = iMid + 1; | 664 iStart = iMid + 1; |
665 } else { | 665 } else { |
666 iEnd = iMid - 1; | 666 iEnd = iMid - 1; |
667 } | 667 } |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
880 } | 880 } |
881 while (iBracketCount > 0 && m_pCur < m_pEnd) { | 881 while (iBracketCount > 0 && m_pCur < m_pEnd) { |
882 if (*m_pCur == ')') { | 882 if (*m_pCur == ')') { |
883 iBracketCount--; | 883 iBracketCount--; |
884 } | 884 } |
885 m_pCur++; | 885 m_pCur++; |
886 } | 886 } |
887 } | 887 } |
888 return m_pCur - pStart; | 888 return m_pCur - pStart; |
889 } | 889 } |
OLD | NEW |