| 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_cssstyleselector.h" | 7 #include "xfa/fde/css/fde_cssstyleselector.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| 11 #include "xfa/fde/css/fde_csscache.h" | 11 #include "xfa/fde/css/fde_csscache.h" |
| 12 #include "xfa/fde/css/fde_cssdeclaration.h" | 12 #include "xfa/fde/css/fde_cssdeclaration.h" |
| 13 | 13 |
| 14 #define FDE_CSSUNIVERSALHASH ('*') |
| 15 |
| 14 int32_t CFDE_CSSCounterStyle::FindIndex(const FX_WCHAR* pszIdentifier) { | 16 int32_t CFDE_CSSCounterStyle::FindIndex(const FX_WCHAR* pszIdentifier) { |
| 15 int32_t iCount = m_arrCounterData.GetSize(); | 17 int32_t iCount = m_arrCounterData.GetSize(); |
| 16 for (int32_t i = 0; i < iCount; i++) { | 18 for (int32_t i = 0; i < iCount; i++) { |
| 17 if (FXSYS_wcscmp(pszIdentifier, m_arrCounterData.ElementAt(i).m_pszIdent) == | 19 if (FXSYS_wcscmp(pszIdentifier, m_arrCounterData.ElementAt(i).m_pszIdent) == |
| 18 0) { | 20 0) { |
| 19 return i; | 21 return i; |
| 20 } | 22 } |
| 21 } | 23 } |
| 22 return -1; | 24 return -1; |
| 23 } | 25 } |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 } | 69 } |
| 68 void CFDE_CSSCounterStyle::UpdateIndex() { | 70 void CFDE_CSSCounterStyle::UpdateIndex() { |
| 69 if (!m_bIndexDirty) { | 71 if (!m_bIndexDirty) { |
| 70 return; | 72 return; |
| 71 } | 73 } |
| 72 m_arrCounterData.RemoveAll(); | 74 m_arrCounterData.RemoveAll(); |
| 73 DoUpdateIndex(m_pCounterInc); | 75 DoUpdateIndex(m_pCounterInc); |
| 74 DoUpdateIndex(m_pCounterReset); | 76 DoUpdateIndex(m_pCounterReset); |
| 75 m_bIndexDirty = FALSE; | 77 m_bIndexDirty = FALSE; |
| 76 } | 78 } |
| 77 FDE_CSSTEXTEMPHASISMARK CFDE_CSSComputedStyle::GetTextEmphasisMark() const { | 79 |
| 78 if (m_InheritedData.m_eTextEmphasisMark != FDE_CSSTEXTEMPHASISMARK_Auto) { | |
| 79 return (FDE_CSSTEXTEMPHASISMARK)m_InheritedData.m_eTextEmphasisMark; | |
| 80 } | |
| 81 if (m_InheritedData.m_eWritingMode == FDE_CSSWRITINGMODE_HorizontalTb) { | |
| 82 return FDE_CSSTEXTEMPHASISMARK_Dot; | |
| 83 } | |
| 84 return FDE_CSSTEXTEMPHASISMARK_Sesame; | |
| 85 } | |
| 86 FDE_CSSRuleData::FDE_CSSRuleData(IFDE_CSSSelector* pSel, | 80 FDE_CSSRuleData::FDE_CSSRuleData(IFDE_CSSSelector* pSel, |
| 87 IFDE_CSSDeclaration* pDecl, | 81 IFDE_CSSDeclaration* pDecl, |
| 88 uint32_t dwPos) | 82 uint32_t dwPos) |
| 89 : pSelector(pSel), pDeclaration(pDecl), dwPriority(dwPos), pNext(NULL) { | 83 : pSelector(pSel), pDeclaration(pDecl), dwPriority(dwPos), pNext(NULL) { |
| 90 static const uint32_t s_Specific[5] = {0x00010000, 0x00010000, 0x00100000, | 84 static const uint32_t s_Specific[5] = {0x00010000, 0x00010000, 0x00100000, |
| 91 0x00100000, 0x01000000}; | 85 0x00100000, 0x01000000}; |
| 92 for (; pSel != NULL; pSel = pSel->GetNextSelector()) { | 86 for (; pSel != NULL; pSel = pSel->GetNextSelector()) { |
| 93 FDE_CSSSELECTORTYPE eType = pSel->GetType(); | 87 FDE_CSSSELECTORTYPE eType = pSel->GetType(); |
| 94 if (eType > FDE_CSSSELECTORTYPE_Descendant || | 88 if (eType > FDE_CSSSELECTORTYPE_Descendant || |
| 95 pSel->GetNameHash() != FDE_CSSUNIVERSALHASH) { | 89 pSel->GetNameHash() != FDE_CSSUNIVERSALHASH) { |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 delete m_pAccelerator; | 232 delete m_pAccelerator; |
| 239 } | 233 } |
| 240 } | 234 } |
| 241 void CFDE_CSSStyleSelector::SetFontMgr(IFX_FontMgr* pFontMgr) { | 235 void CFDE_CSSStyleSelector::SetFontMgr(IFX_FontMgr* pFontMgr) { |
| 242 m_pFontMgr = pFontMgr; | 236 m_pFontMgr = pFontMgr; |
| 243 } | 237 } |
| 244 void CFDE_CSSStyleSelector::SetDefFontSize(FX_FLOAT fFontSize) { | 238 void CFDE_CSSStyleSelector::SetDefFontSize(FX_FLOAT fFontSize) { |
| 245 FXSYS_assert(fFontSize > 0); | 239 FXSYS_assert(fFontSize > 0); |
| 246 m_fDefFontSize = fFontSize; | 240 m_fDefFontSize = fFontSize; |
| 247 } | 241 } |
| 248 IFDE_CSSAccelerator* CFDE_CSSStyleSelector::InitAccelerator() { | 242 CFDE_CSSAccelerator* CFDE_CSSStyleSelector::InitAccelerator() { |
| 249 if (m_pAccelerator == NULL) { | 243 if (m_pAccelerator == NULL) { |
| 250 m_pAccelerator = new CFDE_CSSAccelerator; | 244 m_pAccelerator = new CFDE_CSSAccelerator; |
| 251 FXSYS_assert(m_pAccelerator != NULL); | 245 FXSYS_assert(m_pAccelerator != NULL); |
| 252 } | 246 } |
| 253 m_pAccelerator->Clear(); | 247 m_pAccelerator->Clear(); |
| 254 return m_pAccelerator; | 248 return m_pAccelerator; |
| 255 } | 249 } |
| 256 IFDE_CSSComputedStyle* CFDE_CSSStyleSelector::CreateComputedStyle( | 250 IFDE_CSSComputedStyle* CFDE_CSSStyleSelector::CreateComputedStyle( |
| 257 IFDE_CSSComputedStyle* pParentStyle) { | 251 IFDE_CSSComputedStyle* pParentStyle) { |
| 258 if (m_pFixedStyleStore == NULL) { | 252 if (m_pFixedStyleStore == NULL) { |
| (...skipping 1526 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1785 return FDE_CSSTEXTTRANSFORM_LowerCase; | 1779 return FDE_CSSTEXTTRANSFORM_LowerCase; |
| 1786 default: | 1780 default: |
| 1787 return FDE_CSSTEXTTRANSFORM_None; | 1781 return FDE_CSSTEXTTRANSFORM_None; |
| 1788 } | 1782 } |
| 1789 } | 1783 } |
| 1790 FDE_CSSFONTVARIANT CFDE_CSSStyleSelector::ToFontVariant( | 1784 FDE_CSSFONTVARIANT CFDE_CSSStyleSelector::ToFontVariant( |
| 1791 FDE_CSSPROPERTYVALUE eValue) { | 1785 FDE_CSSPROPERTYVALUE eValue) { |
| 1792 return eValue == FDE_CSSPROPERTYVALUE_SmallCaps ? FDE_CSSFONTVARIANT_SmallCaps | 1786 return eValue == FDE_CSSPROPERTYVALUE_SmallCaps ? FDE_CSSFONTVARIANT_SmallCaps |
| 1793 : FDE_CSSFONTVARIANT_Normal; | 1787 : FDE_CSSFONTVARIANT_Normal; |
| 1794 } | 1788 } |
| OLD | NEW |