Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(265)

Side by Side Diff: xfa/fde/css/fde_cssstyleselector.cpp

Issue 1830323006: Remove FX_DWORD from XFA. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fde/css/fde_cssdeclaration.cpp ('k') | xfa/fde/css/fde_cssstylesheet.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 if (m_InheritedData.m_eTextEmphasisMark != FDE_CSSTEXTEMPHASISMARK_Auto) { 78 if (m_InheritedData.m_eTextEmphasisMark != FDE_CSSTEXTEMPHASISMARK_Auto) {
79 return (FDE_CSSTEXTEMPHASISMARK)m_InheritedData.m_eTextEmphasisMark; 79 return (FDE_CSSTEXTEMPHASISMARK)m_InheritedData.m_eTextEmphasisMark;
80 } 80 }
81 if (m_InheritedData.m_eWritingMode == FDE_CSSWRITINGMODE_HorizontalTb) { 81 if (m_InheritedData.m_eWritingMode == FDE_CSSWRITINGMODE_HorizontalTb) {
82 return FDE_CSSTEXTEMPHASISMARK_Dot; 82 return FDE_CSSTEXTEMPHASISMARK_Dot;
83 } 83 }
84 return FDE_CSSTEXTEMPHASISMARK_Sesame; 84 return FDE_CSSTEXTEMPHASISMARK_Sesame;
85 } 85 }
86 FDE_CSSRuleData::FDE_CSSRuleData(IFDE_CSSSelector* pSel, 86 FDE_CSSRuleData::FDE_CSSRuleData(IFDE_CSSSelector* pSel,
87 IFDE_CSSDeclaration* pDecl, 87 IFDE_CSSDeclaration* pDecl,
88 FX_DWORD dwPos) 88 uint32_t dwPos)
89 : pSelector(pSel), pDeclaration(pDecl), dwPriority(dwPos), pNext(NULL) { 89 : pSelector(pSel), pDeclaration(pDecl), dwPriority(dwPos), pNext(NULL) {
90 static const FX_DWORD s_Specific[5] = {0x00010000, 0x00010000, 0x00100000, 90 static const uint32_t s_Specific[5] = {0x00010000, 0x00010000, 0x00100000,
91 0x00100000, 0x01000000}; 91 0x00100000, 0x01000000};
92 for (; pSel != NULL; pSel = pSel->GetNextSelector()) { 92 for (; pSel != NULL; pSel = pSel->GetNextSelector()) {
93 FDE_CSSSELECTORTYPE eType = pSel->GetType(); 93 FDE_CSSSELECTORTYPE eType = pSel->GetType();
94 if (eType > FDE_CSSSELECTORTYPE_Descendant || 94 if (eType > FDE_CSSSELECTORTYPE_Descendant ||
95 pSel->GetNameHash() != FDE_CSSUNIVERSALHASH) { 95 pSel->GetNameHash() != FDE_CSSUNIVERSALHASH) {
96 dwPriority += s_Specific[eType]; 96 dwPriority += s_Specific[eType];
97 } 97 }
98 } 98 }
99 } 99 }
100 void CFDE_CSSRuleCollection::Clear() { 100 void CFDE_CSSRuleCollection::Clear() {
101 m_IDRules.RemoveAll(); 101 m_IDRules.RemoveAll();
102 m_TagRules.RemoveAll(); 102 m_TagRules.RemoveAll();
103 m_ClassRules.RemoveAll(); 103 m_ClassRules.RemoveAll();
104 m_pUniversalRules = NULL; 104 m_pUniversalRules = NULL;
105 m_pStaticStore = NULL; 105 m_pStaticStore = NULL;
106 m_iSelectors = 0; 106 m_iSelectors = 0;
107 } 107 }
108 void CFDE_CSSRuleCollection::AddRulesFrom(const CFDE_CSSStyleSheetArray& sheets, 108 void CFDE_CSSRuleCollection::AddRulesFrom(const CFDE_CSSStyleSheetArray& sheets,
109 FX_DWORD dwMediaList, 109 uint32_t dwMediaList,
110 IFX_FontMgr* pFontMgr) { 110 IFX_FontMgr* pFontMgr) {
111 int32_t iSheets = sheets.GetSize(); 111 int32_t iSheets = sheets.GetSize();
112 for (int32_t i = 0; i < iSheets; ++i) { 112 for (int32_t i = 0; i < iSheets; ++i) {
113 IFDE_CSSStyleSheet* pSheet = sheets.GetAt(i); 113 IFDE_CSSStyleSheet* pSheet = sheets.GetAt(i);
114 if (FX_DWORD dwMatchMedia = pSheet->GetMediaList() & dwMediaList) { 114 if (uint32_t dwMatchMedia = pSheet->GetMediaList() & dwMediaList) {
115 int32_t iRules = pSheet->CountRules(); 115 int32_t iRules = pSheet->CountRules();
116 for (int32_t j = 0; j < iRules; j++) { 116 for (int32_t j = 0; j < iRules; j++) {
117 AddRulesFrom(pSheet, pSheet->GetRule(j), dwMatchMedia, pFontMgr); 117 AddRulesFrom(pSheet, pSheet->GetRule(j), dwMatchMedia, pFontMgr);
118 } 118 }
119 } 119 }
120 } 120 }
121 } 121 }
122 void CFDE_CSSRuleCollection::AddRulesFrom(IFDE_CSSStyleSheet* pStyleSheet, 122 void CFDE_CSSRuleCollection::AddRulesFrom(IFDE_CSSStyleSheet* pStyleSheet,
123 IFDE_CSSRule* pRule, 123 IFDE_CSSRule* pRule,
124 FX_DWORD dwMediaList, 124 uint32_t dwMediaList,
125 IFX_FontMgr* pFontMgr) { 125 IFX_FontMgr* pFontMgr) {
126 switch (pRule->GetType()) { 126 switch (pRule->GetType()) {
127 case FDE_CSSRULETYPE_Style: { 127 case FDE_CSSRULETYPE_Style: {
128 IFDE_CSSStyleRule* pStyleRule = (IFDE_CSSStyleRule*)pRule; 128 IFDE_CSSStyleRule* pStyleRule = (IFDE_CSSStyleRule*)pRule;
129 IFDE_CSSDeclaration* pDeclaration = pStyleRule->GetDeclaration(); 129 IFDE_CSSDeclaration* pDeclaration = pStyleRule->GetDeclaration();
130 int32_t iSelectors = pStyleRule->CountSelectorLists(); 130 int32_t iSelectors = pStyleRule->CountSelectorLists();
131 for (int32_t i = 0; i < iSelectors; ++i) { 131 for (int32_t i = 0; i < iSelectors; ++i) {
132 IFDE_CSSSelector* pSelector = pStyleRule->GetSelectorList(i); 132 IFDE_CSSSelector* pSelector = pStyleRule->GetSelectorList(i);
133 if (pSelector->GetType() == FDE_CSSSELECTORTYPE_Persudo) { 133 if (pSelector->GetType() == FDE_CSSSELECTORTYPE_Persudo) {
134 FDE_CSSRuleData* pData = NewRuleData(pSelector, pDeclaration); 134 FDE_CSSRuleData* pData = NewRuleData(pSelector, pDeclaration);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 AddRulesFrom(pStyleSheet, pMediaRule->GetRule(i), dwMediaList, 172 AddRulesFrom(pStyleSheet, pMediaRule->GetRule(i), dwMediaList,
173 pFontMgr); 173 pFontMgr);
174 } 174 }
175 } 175 }
176 } break; 176 } break;
177 default: 177 default:
178 break; 178 break;
179 } 179 }
180 } 180 }
181 void CFDE_CSSRuleCollection::AddRuleTo(CFX_MapPtrToPtr& map, 181 void CFDE_CSSRuleCollection::AddRuleTo(CFX_MapPtrToPtr& map,
182 FX_DWORD dwKey, 182 uint32_t dwKey,
183 IFDE_CSSSelector* pSel, 183 IFDE_CSSSelector* pSel,
184 IFDE_CSSDeclaration* pDecl) { 184 IFDE_CSSDeclaration* pDecl) {
185 void* pKey = (void*)(uintptr_t)dwKey; 185 void* pKey = (void*)(uintptr_t)dwKey;
186 FDE_CSSRuleData* pData = NewRuleData(pSel, pDecl); 186 FDE_CSSRuleData* pData = NewRuleData(pSel, pDecl);
187 FDE_CSSRuleData* pList = NULL; 187 FDE_CSSRuleData* pList = NULL;
188 if (!map.Lookup(pKey, (void*&)pList)) { 188 if (!map.Lookup(pKey, (void*&)pList)) {
189 map.SetAt(pKey, pData); 189 map.SetAt(pKey, pData);
190 } else if (AddRuleTo(pList, pData)) { 190 } else if (AddRuleTo(pList, pData)) {
191 map.SetAt(pKey, pList); 191 map.SetAt(pKey, pList);
192 } 192 }
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 } else { 291 } else {
292 dest.Copy(*pArray); 292 dest.Copy(*pArray);
293 } 293 }
294 return TRUE; 294 return TRUE;
295 } 295 }
296 void CFDE_CSSStyleSelector::SetStylePriority( 296 void CFDE_CSSStyleSelector::SetStylePriority(
297 FDE_CSSSTYLESHEETGROUP eType, 297 FDE_CSSSTYLESHEETGROUP eType,
298 FDE_CSSSTYLESHEETPRIORITY ePriority) { 298 FDE_CSSSTYLESHEETPRIORITY ePriority) {
299 m_ePriorities[ePriority] = eType; 299 m_ePriorities[ePriority] = eType;
300 } 300 }
301 void CFDE_CSSStyleSelector::UpdateStyleIndex(FX_DWORD dwMediaList) { 301 void CFDE_CSSStyleSelector::UpdateStyleIndex(uint32_t dwMediaList) {
302 Reset(); 302 Reset();
303 m_pRuleDataStore = FX_CreateAllocator(FX_ALLOCTYPE_Static, 1024, 0); 303 m_pRuleDataStore = FX_CreateAllocator(FX_ALLOCTYPE_Static, 1024, 0);
304 FXSYS_assert(m_pRuleDataStore != NULL); 304 FXSYS_assert(m_pRuleDataStore != NULL);
305 for (int32_t iGroup = 0; iGroup < FDE_CSSSTYLESHEETGROUP_MAX; ++iGroup) { 305 for (int32_t iGroup = 0; iGroup < FDE_CSSSTYLESHEETGROUP_MAX; ++iGroup) {
306 CFDE_CSSRuleCollection& rules = m_RuleCollection[iGroup]; 306 CFDE_CSSRuleCollection& rules = m_RuleCollection[iGroup];
307 rules.m_pStaticStore = m_pRuleDataStore; 307 rules.m_pStaticStore = m_pRuleDataStore;
308 rules.AddRulesFrom(m_SheetGroups[iGroup], dwMediaList, m_pFontMgr); 308 rules.AddRulesFrom(m_SheetGroups[iGroup], dwMediaList, m_pFontMgr);
309 } 309 }
310 } 310 }
311 void CFDE_CSSStyleSelector::Reset() { 311 void CFDE_CSSStyleSelector::Reset() {
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 while (pList) { 365 while (pList) {
366 if (MatchSelector(pCache, pList->pSelector, ePersudoType)) 366 if (MatchSelector(pCache, pList->pSelector, ePersudoType))
367 m_MatchedRules.push_back(pList); 367 m_MatchedRules.push_back(pList);
368 pList = pList->pNext; 368 pList = pList->pNext;
369 } 369 }
370 } 370 }
371 371
372 FX_BOOL CFDE_CSSStyleSelector::MatchSelector(FDE_CSSTagCache* pCache, 372 FX_BOOL CFDE_CSSStyleSelector::MatchSelector(FDE_CSSTagCache* pCache,
373 IFDE_CSSSelector* pSel, 373 IFDE_CSSSelector* pSel,
374 FDE_CSSPERSUDO ePersudoType) { 374 FDE_CSSPERSUDO ePersudoType) {
375 FX_DWORD dwHash; 375 uint32_t dwHash;
376 while (pSel != NULL && pCache != NULL) { 376 while (pSel != NULL && pCache != NULL) {
377 switch (pSel->GetType()) { 377 switch (pSel->GetType()) {
378 case FDE_CSSSELECTORTYPE_Descendant: 378 case FDE_CSSSELECTORTYPE_Descendant:
379 dwHash = pSel->GetNameHash(); 379 dwHash = pSel->GetNameHash();
380 while ((pCache = pCache->GetParent()) != NULL) { 380 while ((pCache = pCache->GetParent()) != NULL) {
381 if (dwHash != FDE_CSSUNIVERSALHASH && dwHash != pCache->HashTag()) { 381 if (dwHash != FDE_CSSUNIVERSALHASH && dwHash != pCache->HashTag()) {
382 continue; 382 continue;
383 } 383 }
384 if (MatchSelector(pCache, pSel->GetNextSelector(), ePersudoType)) { 384 if (MatchSelector(pCache, pSel->GetNextSelector(), ePersudoType)) {
385 return TRUE; 385 return TRUE;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 IFDE_CSSComputedStyle* pDestStyle) { 426 IFDE_CSSComputedStyle* pDestStyle) {
427 FXSYS_assert(iDeclCount >= 0); 427 FXSYS_assert(iDeclCount >= 0);
428 FXSYS_assert(pDestStyle); 428 FXSYS_assert(pDestStyle);
429 FX_POSITION pos = pTag->GetFirstAttribute(); 429 FX_POSITION pos = pTag->GetFirstAttribute();
430 if (pos != NULL) { 430 if (pos != NULL) {
431 if (m_pInlineStyleStore == NULL) { 431 if (m_pInlineStyleStore == NULL) {
432 m_pInlineStyleStore = FX_CreateAllocator(FX_ALLOCTYPE_Static, 2048, 0); 432 m_pInlineStyleStore = FX_CreateAllocator(FX_ALLOCTYPE_Static, 2048, 0);
433 } 433 }
434 CFDE_CSSDeclaration* pDecl = NULL; 434 CFDE_CSSDeclaration* pDecl = NULL;
435 CFX_WideStringC wsAttri, wsValue; 435 CFX_WideStringC wsAttri, wsValue;
436 FX_DWORD dwAttriHash; 436 uint32_t dwAttriHash;
437 do { 437 do {
438 pTag->GetNextAttribute(pos, wsAttri, wsValue); 438 pTag->GetNextAttribute(pos, wsAttri, wsValue);
439 dwAttriHash = 439 dwAttriHash =
440 FX_HashCode_String_GetW(wsAttri.GetPtr(), wsAttri.GetLength(), TRUE); 440 FX_HashCode_String_GetW(wsAttri.GetPtr(), wsAttri.GetLength(), TRUE);
441 static const FX_DWORD s_dwStyleHash = 441 static const uint32_t s_dwStyleHash =
442 FX_HashCode_String_GetW(L"style", 5, TRUE); 442 FX_HashCode_String_GetW(L"style", 5, TRUE);
443 static const FX_DWORD s_dwAlignHash = 443 static const uint32_t s_dwAlignHash =
444 FX_HashCode_String_GetW(L"align", 5, TRUE); 444 FX_HashCode_String_GetW(L"align", 5, TRUE);
445 if (dwAttriHash == s_dwStyleHash) { 445 if (dwAttriHash == s_dwStyleHash) {
446 if (pDecl == NULL) { 446 if (pDecl == NULL) {
447 pDecl = FXTARGET_NewWith(m_pInlineStyleStore) CFDE_CSSDeclaration; 447 pDecl = FXTARGET_NewWith(m_pInlineStyleStore) CFDE_CSSDeclaration;
448 } 448 }
449 AppendInlineStyle(pDecl, wsValue.GetPtr(), wsValue.GetLength()); 449 AppendInlineStyle(pDecl, wsValue.GetPtr(), wsValue.GetLength());
450 } else if (dwAttriHash == s_dwAlignHash) { 450 } else if (dwAttriHash == s_dwAlignHash) {
451 if (pDecl == NULL) { 451 if (pDecl == NULL) {
452 pDecl = FXTARGET_NewWith(m_pInlineStyleStore) CFDE_CSSDeclaration; 452 pDecl = FXTARGET_NewWith(m_pInlineStyleStore) CFDE_CSSDeclaration;
453 } 453 }
(...skipping 1282 matching lines...) Expand 10 before | Expand all | Expand 10 after
1736 case FDE_CSSPROPERTYVALUE_Nowrap: 1736 case FDE_CSSPROPERTYVALUE_Nowrap:
1737 return FDE_CSSWHITESPACE_Nowrap; 1737 return FDE_CSSWHITESPACE_Nowrap;
1738 case FDE_CSSPROPERTYVALUE_PreWrap: 1738 case FDE_CSSPROPERTYVALUE_PreWrap:
1739 return FDE_CSSWHITESPACE_PreWrap; 1739 return FDE_CSSWHITESPACE_PreWrap;
1740 case FDE_CSSPROPERTYVALUE_PreLine: 1740 case FDE_CSSPROPERTYVALUE_PreLine:
1741 return FDE_CSSWHITESPACE_PreLine; 1741 return FDE_CSSWHITESPACE_PreLine;
1742 default: 1742 default:
1743 return FDE_CSSWHITESPACE_Normal; 1743 return FDE_CSSWHITESPACE_Normal;
1744 } 1744 }
1745 } 1745 }
1746 FX_DWORD CFDE_CSSStyleSelector::ToTextDecoration(IFDE_CSSValueList* pValue) { 1746 uint32_t CFDE_CSSStyleSelector::ToTextDecoration(IFDE_CSSValueList* pValue) {
1747 FX_DWORD dwDecoration = 0; 1747 uint32_t dwDecoration = 0;
1748 for (int32_t i = pValue->CountValues() - 1; i >= 0; --i) { 1748 for (int32_t i = pValue->CountValues() - 1; i >= 0; --i) {
1749 IFDE_CSSPrimitiveValue* pPrimitive = 1749 IFDE_CSSPrimitiveValue* pPrimitive =
1750 (IFDE_CSSPrimitiveValue*)pValue->GetValue(i); 1750 (IFDE_CSSPrimitiveValue*)pValue->GetValue(i);
1751 if (pPrimitive->GetPrimitiveType() == FDE_CSSPRIMITIVETYPE_Enum) { 1751 if (pPrimitive->GetPrimitiveType() == FDE_CSSPRIMITIVETYPE_Enum) {
1752 switch (pPrimitive->GetEnum()) { 1752 switch (pPrimitive->GetEnum()) {
1753 case FDE_CSSPROPERTYVALUE_Underline: 1753 case FDE_CSSPROPERTYVALUE_Underline:
1754 dwDecoration |= FDE_CSSTEXTDECORATION_Underline; 1754 dwDecoration |= FDE_CSSTEXTDECORATION_Underline;
1755 break; 1755 break;
1756 case FDE_CSSPROPERTYVALUE_LineThrough: 1756 case FDE_CSSPROPERTYVALUE_LineThrough:
1757 dwDecoration |= FDE_CSSTEXTDECORATION_LineThrough; 1757 dwDecoration |= FDE_CSSTEXTDECORATION_LineThrough;
(...skipping 27 matching lines...) Expand all
1785 return FDE_CSSTEXTTRANSFORM_LowerCase; 1785 return FDE_CSSTEXTTRANSFORM_LowerCase;
1786 default: 1786 default:
1787 return FDE_CSSTEXTTRANSFORM_None; 1787 return FDE_CSSTEXTTRANSFORM_None;
1788 } 1788 }
1789 } 1789 }
1790 FDE_CSSFONTVARIANT CFDE_CSSStyleSelector::ToFontVariant( 1790 FDE_CSSFONTVARIANT CFDE_CSSStyleSelector::ToFontVariant(
1791 FDE_CSSPROPERTYVALUE eValue) { 1791 FDE_CSSPROPERTYVALUE eValue) {
1792 return eValue == FDE_CSSPROPERTYVALUE_SmallCaps ? FDE_CSSFONTVARIANT_SmallCaps 1792 return eValue == FDE_CSSPROPERTYVALUE_SmallCaps ? FDE_CSSFONTVARIANT_SmallCaps
1793 : FDE_CSSFONTVARIANT_Normal; 1793 : FDE_CSSFONTVARIANT_Normal;
1794 } 1794 }
OLDNEW
« no previous file with comments | « xfa/fde/css/fde_cssdeclaration.cpp ('k') | xfa/fde/css/fde_cssstylesheet.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698