| 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 #include <memory> | 10 #include <memory> |
| 11 | 11 |
| 12 #include "xfa/fde/css/fde_csscache.h" | 12 #include "xfa/fde/css/fde_csscache.h" |
| 13 #include "xfa/fde/css/fde_cssdeclaration.h" | 13 #include "xfa/fde/css/fde_cssdeclaration.h" |
| 14 #include "xfa/fde/css/fde_cssstylesheet.h" | 14 #include "xfa/fde/css/fde_cssstylesheet.h" |
| 15 #include "xfa/fde/css/fde_csssyntax.h" | 15 #include "xfa/fde/css/fde_csssyntax.h" |
| 16 #include "xfa/fxfa/app/xfa_textlayout.h" | 16 #include "xfa/fxfa/app/xfa_textlayout.h" |
| 17 | 17 |
| 18 #define FDE_CSSUNIVERSALHASH ('*') | 18 #define FDE_CSSUNIVERSALHASH ('*') |
| 19 | 19 |
| 20 int32_t CFDE_CSSCounterStyle::FindIndex(const FX_WCHAR* pszIdentifier) { | 20 int32_t CFDE_CSSCounterStyle::FindIndex(const FX_WCHAR* pszIdentifier) { |
| 21 int32_t iCount = m_arrCounterData.GetSize(); | 21 int32_t iCount = m_arrCounterData.GetSize(); |
| 22 for (int32_t i = 0; i < iCount; i++) { | 22 for (int32_t i = 0; i < iCount; i++) { |
| 23 if (FXSYS_wcscmp(pszIdentifier, m_arrCounterData.ElementAt(i).m_pszIdent) == | 23 if (FXSYS_wcscmp(pszIdentifier, m_arrCounterData.ElementAt(i).m_pszIdent) == |
| 24 0) { | 24 0) { |
| 25 return i; | 25 return i; |
| 26 } | 26 } |
| 27 } | 27 } |
| 28 return -1; | 28 return -1; |
| 29 } | 29 } |
| 30 |
| 30 void CFDE_CSSCounterStyle::DoUpdateIndex(IFDE_CSSValueList* pList) { | 31 void CFDE_CSSCounterStyle::DoUpdateIndex(IFDE_CSSValueList* pList) { |
| 31 if (!pList) | 32 if (!pList) |
| 32 return; | 33 return; |
| 33 | 34 |
| 34 int32_t iCount = pList->CountValues(); | 35 int32_t iCount = pList->CountValues(); |
| 35 FX_FLOAT fDefValue = 1.0; | 36 FX_FLOAT fDefValue = 1.0; |
| 36 FX_BOOL bDefIncrement = TRUE; | 37 FX_BOOL bDefIncrement = TRUE; |
| 37 if (pList == m_pCounterReset) { | 38 if (pList == m_pCounterReset) { |
| 38 fDefValue = 0.0; | 39 fDefValue = 0.0; |
| 39 bDefIncrement = FALSE; | 40 bDefIncrement = FALSE; |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 0x00100000, 0x01000000}; | 99 0x00100000, 0x01000000}; |
| 99 for (; pSel; pSel = pSel->GetNextSelector()) { | 100 for (; pSel; pSel = pSel->GetNextSelector()) { |
| 100 FDE_CSSSELECTORTYPE eType = pSel->GetType(); | 101 FDE_CSSSELECTORTYPE eType = pSel->GetType(); |
| 101 if (eType > FDE_CSSSELECTORTYPE_Descendant || | 102 if (eType > FDE_CSSSELECTORTYPE_Descendant || |
| 102 pSel->GetNameHash() != FDE_CSSUNIVERSALHASH) { | 103 pSel->GetNameHash() != FDE_CSSUNIVERSALHASH) { |
| 103 dwPriority += s_Specific[eType]; | 104 dwPriority += s_Specific[eType]; |
| 104 } | 105 } |
| 105 } | 106 } |
| 106 } | 107 } |
| 107 | 108 |
| 108 CFDE_CSSStyleSelector::CFDE_CSSStyleSelector() | 109 CFDE_CSSStyleSelector::CFDE_CSSStyleSelector(IFGAS_FontMgr* pFontMgr) |
| 109 : m_pFontMgr(nullptr), | 110 : m_pFontMgr(pFontMgr), m_fDefFontSize(12.0f) { |
| 110 m_fDefFontSize(12.0f), | |
| 111 m_pRuleDataStore(nullptr), | |
| 112 m_pInlineStyleStore(nullptr), | |
| 113 m_pFixedStyleStore(nullptr), | |
| 114 m_pAccelerator(nullptr) { | |
| 115 m_ePriorities[FDE_CSSSTYLESHEETPRIORITY_High] = FDE_CSSSTYLESHEETGROUP_Author; | 111 m_ePriorities[FDE_CSSSTYLESHEETPRIORITY_High] = FDE_CSSSTYLESHEETGROUP_Author; |
| 116 m_ePriorities[FDE_CSSSTYLESHEETPRIORITY_Mid] = FDE_CSSSTYLESHEETGROUP_User; | 112 m_ePriorities[FDE_CSSSTYLESHEETPRIORITY_Mid] = FDE_CSSSTYLESHEETGROUP_User; |
| 117 m_ePriorities[FDE_CSSSTYLESHEETPRIORITY_Low] = | 113 m_ePriorities[FDE_CSSSTYLESHEETPRIORITY_Low] = |
| 118 FDE_CSSSTYLESHEETGROUP_UserAgent; | 114 FDE_CSSSTYLESHEETGROUP_UserAgent; |
| 119 } | 115 } |
| 120 | 116 |
| 121 CFDE_CSSStyleSelector::~CFDE_CSSStyleSelector() { | 117 CFDE_CSSStyleSelector::~CFDE_CSSStyleSelector() { |
| 122 Reset(); | 118 Reset(); |
| 123 delete m_pInlineStyleStore; | |
| 124 delete m_pFixedStyleStore; | |
| 125 delete m_pAccelerator; | |
| 126 } | 119 } |
| 127 | 120 |
| 128 void CFDE_CSSStyleSelector::SetFontMgr(IFGAS_FontMgr* pFontMgr) { | |
| 129 m_pFontMgr = pFontMgr; | |
| 130 } | |
| 131 void CFDE_CSSStyleSelector::SetDefFontSize(FX_FLOAT fFontSize) { | 121 void CFDE_CSSStyleSelector::SetDefFontSize(FX_FLOAT fFontSize) { |
| 132 ASSERT(fFontSize > 0); | 122 ASSERT(fFontSize > 0); |
| 133 m_fDefFontSize = fFontSize; | 123 m_fDefFontSize = fFontSize; |
| 134 } | 124 } |
| 135 | 125 |
| 136 CFDE_CSSAccelerator* CFDE_CSSStyleSelector::InitAccelerator() { | 126 CFDE_CSSAccelerator* CFDE_CSSStyleSelector::InitAccelerator() { |
| 137 if (!m_pAccelerator) | 127 if (!m_pAccelerator) |
| 138 m_pAccelerator = new CFDE_CSSAccelerator; | 128 m_pAccelerator.reset(new CFDE_CSSAccelerator); |
| 139 m_pAccelerator->Clear(); | 129 m_pAccelerator->Clear(); |
| 140 return m_pAccelerator; | 130 return m_pAccelerator.get(); |
| 141 } | 131 } |
| 142 | 132 |
| 143 IFDE_CSSComputedStyle* CFDE_CSSStyleSelector::CreateComputedStyle( | 133 IFDE_CSSComputedStyle* CFDE_CSSStyleSelector::CreateComputedStyle( |
| 144 IFDE_CSSComputedStyle* pParentStyle) { | 134 IFDE_CSSComputedStyle* pParentStyle) { |
| 145 if (!m_pFixedStyleStore) { | 135 if (!m_pFixedStyleStore) { |
| 146 m_pFixedStyleStore = IFX_MemoryAllocator::Create( | 136 m_pFixedStyleStore = IFX_MemoryAllocator::Create( |
| 147 FX_ALLOCTYPE_Fixed, 16, sizeof(CFDE_CSSComputedStyle)); | 137 FX_ALLOCTYPE_Fixed, 16, sizeof(CFDE_CSSComputedStyle)); |
| 148 } | 138 } |
| 149 CFDE_CSSComputedStyle* pStyle = FXTARGET_NewWith(m_pFixedStyleStore) | 139 CFDE_CSSComputedStyle* pStyle = FXTARGET_NewWith(m_pFixedStyleStore.get()) |
| 150 CFDE_CSSComputedStyle(m_pFixedStyleStore); | 140 CFDE_CSSComputedStyle(m_pFixedStyleStore.get()); |
| 151 if (pParentStyle) { | 141 if (pParentStyle) { |
| 152 pStyle->m_InheritedData = | 142 pStyle->m_InheritedData = |
| 153 static_cast<CFDE_CSSComputedStyle*>(pParentStyle)->m_InheritedData; | 143 static_cast<CFDE_CSSComputedStyle*>(pParentStyle)->m_InheritedData; |
| 154 } else { | 144 } else { |
| 155 pStyle->m_InheritedData.Reset(); | 145 pStyle->m_InheritedData.Reset(); |
| 156 } | 146 } |
| 157 pStyle->m_NonInheritedData.Reset(); | 147 pStyle->m_NonInheritedData.Reset(); |
| 158 return pStyle; | 148 return pStyle; |
| 159 } | 149 } |
| 150 |
| 160 FX_BOOL CFDE_CSSStyleSelector::SetStyleSheet(FDE_CSSSTYLESHEETGROUP eType, | 151 FX_BOOL CFDE_CSSStyleSelector::SetStyleSheet(FDE_CSSSTYLESHEETGROUP eType, |
| 161 IFDE_CSSStyleSheet* pSheet) { | 152 IFDE_CSSStyleSheet* pSheet) { |
| 162 ASSERT(eType < FDE_CSSSTYLESHEETGROUP_MAX); | 153 ASSERT(eType < FDE_CSSSTYLESHEETGROUP_MAX); |
| 163 CFDE_CSSStyleSheetArray& dest = m_SheetGroups[eType]; | 154 CFDE_CSSStyleSheetArray& dest = m_SheetGroups[eType]; |
| 164 dest.RemoveAt(0, dest.GetSize()); | 155 dest.RemoveAt(0, dest.GetSize()); |
| 165 if (pSheet) | 156 if (pSheet) |
| 166 dest.Add(pSheet); | 157 dest.Add(pSheet); |
| 167 return TRUE; | 158 return TRUE; |
| 168 } | 159 } |
| 160 |
| 169 FX_BOOL CFDE_CSSStyleSelector::SetStyleSheets( | 161 FX_BOOL CFDE_CSSStyleSelector::SetStyleSheets( |
| 170 FDE_CSSSTYLESHEETGROUP eType, | 162 FDE_CSSSTYLESHEETGROUP eType, |
| 171 const CFDE_CSSStyleSheetArray* pArray) { | 163 const CFDE_CSSStyleSheetArray* pArray) { |
| 172 ASSERT(eType < FDE_CSSSTYLESHEETGROUP_MAX); | 164 ASSERT(eType < FDE_CSSSTYLESHEETGROUP_MAX); |
| 173 CFDE_CSSStyleSheetArray& dest = m_SheetGroups[eType]; | 165 CFDE_CSSStyleSheetArray& dest = m_SheetGroups[eType]; |
| 174 if (pArray) | 166 if (pArray) |
| 175 dest.Copy(*pArray); | 167 dest.Copy(*pArray); |
| 176 else | 168 else |
| 177 dest.RemoveAt(0, dest.GetSize()); | 169 dest.RemoveAt(0, dest.GetSize()); |
| 178 return TRUE; | 170 return TRUE; |
| 179 } | 171 } |
| 172 |
| 180 void CFDE_CSSStyleSelector::SetStylePriority( | 173 void CFDE_CSSStyleSelector::SetStylePriority( |
| 181 FDE_CSSSTYLESHEETGROUP eType, | 174 FDE_CSSSTYLESHEETGROUP eType, |
| 182 FDE_CSSSTYLESHEETPRIORITY ePriority) { | 175 FDE_CSSSTYLESHEETPRIORITY ePriority) { |
| 183 m_ePriorities[ePriority] = eType; | 176 m_ePriorities[ePriority] = eType; |
| 184 } | 177 } |
| 178 |
| 185 void CFDE_CSSStyleSelector::UpdateStyleIndex(uint32_t dwMediaList) { | 179 void CFDE_CSSStyleSelector::UpdateStyleIndex(uint32_t dwMediaList) { |
| 186 Reset(); | 180 Reset(); |
| 187 m_pRuleDataStore = IFX_MemoryAllocator::Create(FX_ALLOCTYPE_Static, 1024, 0); | 181 m_pRuleDataStore = IFX_MemoryAllocator::Create(FX_ALLOCTYPE_Static, 1024, 0); |
| 188 for (int32_t iGroup = 0; iGroup < FDE_CSSSTYLESHEETGROUP_MAX; ++iGroup) { | 182 for (int32_t iGroup = 0; iGroup < FDE_CSSSTYLESHEETGROUP_MAX; ++iGroup) { |
| 189 CFDE_CSSRuleCollection& rules = m_RuleCollection[iGroup]; | 183 CFDE_CSSRuleCollection& rules = m_RuleCollection[iGroup]; |
| 190 rules.m_pStaticStore = m_pRuleDataStore; | 184 rules.m_pStaticStore = m_pRuleDataStore.get(); |
| 191 rules.AddRulesFrom(m_SheetGroups[iGroup], dwMediaList, m_pFontMgr); | 185 rules.AddRulesFrom(m_SheetGroups[iGroup], dwMediaList, m_pFontMgr); |
| 192 } | 186 } |
| 193 } | 187 } |
| 188 |
| 194 void CFDE_CSSStyleSelector::Reset() { | 189 void CFDE_CSSStyleSelector::Reset() { |
| 195 for (int32_t iGroup = 0; iGroup < FDE_CSSSTYLESHEETGROUP_MAX; ++iGroup) { | 190 for (int32_t iGroup = 0; iGroup < FDE_CSSSTYLESHEETGROUP_MAX; ++iGroup) { |
| 196 m_RuleCollection[iGroup].Clear(); | 191 m_RuleCollection[iGroup].Clear(); |
| 197 } | 192 } |
| 198 delete m_pRuleDataStore; | 193 m_pRuleDataStore.reset(); |
| 199 m_pRuleDataStore = nullptr; | |
| 200 } | 194 } |
| 195 |
| 201 int32_t CFDE_CSSStyleSelector::MatchDeclarations( | 196 int32_t CFDE_CSSStyleSelector::MatchDeclarations( |
| 202 CXFA_CSSTagProvider* pTag, | 197 CXFA_CSSTagProvider* pTag, |
| 203 CFDE_CSSDeclarationArray& matchedDecls, | 198 CFDE_CSSDeclarationArray& matchedDecls, |
| 204 FDE_CSSPERSUDO ePersudoType) { | 199 FDE_CSSPERSUDO ePersudoType) { |
| 205 ASSERT(m_pAccelerator && pTag); | 200 ASSERT(m_pAccelerator && pTag); |
| 206 | 201 |
| 207 FDE_CSSTagCache* pCache = m_pAccelerator->GetTopElement(); | 202 FDE_CSSTagCache* pCache = m_pAccelerator->GetTopElement(); |
| 208 ASSERT(pCache && pCache->GetTag() == pTag); | 203 ASSERT(pCache && pCache->GetTag() == pTag); |
| 209 | 204 |
| 210 matchedDecls.RemoveAt(0, matchedDecls.GetSize()); | 205 matchedDecls.RemoveAt(0, matchedDecls.GetSize()); |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 318 m_pInlineStyleStore = | 313 m_pInlineStyleStore = |
| 319 IFX_MemoryAllocator::Create(FX_ALLOCTYPE_Static, 2048, 0); | 314 IFX_MemoryAllocator::Create(FX_ALLOCTYPE_Static, 2048, 0); |
| 320 } | 315 } |
| 321 CFDE_CSSDeclaration* pDecl = nullptr; | 316 CFDE_CSSDeclaration* pDecl = nullptr; |
| 322 for (auto it : *pTag) { | 317 for (auto it : *pTag) { |
| 323 CFX_WideString wsAttri = it.first; | 318 CFX_WideString wsAttri = it.first; |
| 324 CFX_WideString wsValue = it.second; | 319 CFX_WideString wsValue = it.second; |
| 325 uint32_t dwAttriHash = FX_HashCode_GetW(wsAttri.AsStringC(), true); | 320 uint32_t dwAttriHash = FX_HashCode_GetW(wsAttri.AsStringC(), true); |
| 326 if (dwAttriHash == s_dwStyleHash) { | 321 if (dwAttriHash == s_dwStyleHash) { |
| 327 if (!pDecl) | 322 if (!pDecl) |
| 328 pDecl = FXTARGET_NewWith(m_pInlineStyleStore) CFDE_CSSDeclaration; | 323 pDecl = |
| 324 FXTARGET_NewWith(m_pInlineStyleStore.get()) CFDE_CSSDeclaration; |
| 329 | 325 |
| 330 AppendInlineStyle(pDecl, wsValue.c_str(), wsValue.GetLength()); | 326 AppendInlineStyle(pDecl, wsValue.c_str(), wsValue.GetLength()); |
| 331 } else if (dwAttriHash == s_dwAlignHash) { | 327 } else if (dwAttriHash == s_dwAlignHash) { |
| 332 if (!pDecl) | 328 if (!pDecl) |
| 333 pDecl = FXTARGET_NewWith(m_pInlineStyleStore) CFDE_CSSDeclaration; | 329 pDecl = |
| 330 FXTARGET_NewWith(m_pInlineStyleStore.get()) CFDE_CSSDeclaration; |
| 334 | 331 |
| 335 FDE_CSSPROPERTYARGS args; | 332 FDE_CSSPROPERTYARGS args; |
| 336 args.pStringCache = nullptr; | 333 args.pStringCache = nullptr; |
| 337 args.pStaticStore = m_pInlineStyleStore; | 334 args.pStaticStore = m_pInlineStyleStore.get(); |
| 338 args.pProperty = FDE_GetCSSPropertyByEnum(FDE_CSSPROPERTY_TextAlign); | 335 args.pProperty = FDE_GetCSSPropertyByEnum(FDE_CSSPROPERTY_TextAlign); |
| 339 pDecl->AddProperty(&args, wsValue.c_str(), wsValue.GetLength()); | 336 pDecl->AddProperty(&args, wsValue.c_str(), wsValue.GetLength()); |
| 340 } | 337 } |
| 341 } | 338 } |
| 342 | 339 |
| 343 if (pDecl) { | 340 if (pDecl) { |
| 344 CFDE_CSSDeclarationArray decls; | 341 CFDE_CSSDeclarationArray decls; |
| 345 decls.SetSize(iDeclCount + 1); | 342 decls.SetSize(iDeclCount + 1); |
| 346 CFDE_CSSDeclaration** ppInline = decls.GetData(); | 343 CFDE_CSSDeclaration** ppInline = decls.GetData(); |
| 347 FXSYS_memcpy(ppInline, ppDeclArray, | 344 FXSYS_memcpy(ppInline, ppDeclArray, |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 424 } | 421 } |
| 425 } | 422 } |
| 426 CFX_WideString wsName, wsValue; | 423 CFX_WideString wsName, wsValue; |
| 427 pos = pDecl->GetStartCustom(); | 424 pos = pDecl->GetStartCustom(); |
| 428 while (pos) { | 425 while (pos) { |
| 429 pDecl->GetNextCustom(pos, wsName, wsValue); | 426 pDecl->GetNextCustom(pos, wsName, wsValue); |
| 430 pComputedStyle->AddCustomStyle(wsName, wsValue); | 427 pComputedStyle->AddCustomStyle(wsName, wsValue); |
| 431 } | 428 } |
| 432 } | 429 } |
| 433 } | 430 } |
| 431 |
| 434 void CFDE_CSSStyleSelector::AppendInlineStyle(CFDE_CSSDeclaration* pDecl, | 432 void CFDE_CSSStyleSelector::AppendInlineStyle(CFDE_CSSDeclaration* pDecl, |
| 435 const FX_WCHAR* psz, | 433 const FX_WCHAR* psz, |
| 436 int32_t iLen) { | 434 int32_t iLen) { |
| 437 ASSERT(pDecl && psz && iLen > 0); | 435 ASSERT(pDecl && psz && iLen > 0); |
| 438 std::unique_ptr<CFDE_CSSSyntaxParser> pSyntax(new CFDE_CSSSyntaxParser); | 436 std::unique_ptr<CFDE_CSSSyntaxParser> pSyntax(new CFDE_CSSSyntaxParser); |
| 439 if (!pSyntax->Init(psz, iLen, 32, TRUE)) | 437 if (!pSyntax->Init(psz, iLen, 32, TRUE)) |
| 440 return; | 438 return; |
| 441 | 439 |
| 442 int32_t iLen2 = 0; | 440 int32_t iLen2 = 0; |
| 443 const FX_WCHAR* psz2; | 441 const FX_WCHAR* psz2; |
| 444 FDE_CSSPROPERTYARGS args; | 442 FDE_CSSPROPERTYARGS args; |
| 445 args.pStringCache = nullptr; | 443 args.pStringCache = nullptr; |
| 446 args.pStaticStore = m_pInlineStyleStore; | 444 args.pStaticStore = m_pInlineStyleStore.get(); |
| 447 args.pProperty = nullptr; | 445 args.pProperty = nullptr; |
| 448 CFX_WideString wsName; | 446 CFX_WideString wsName; |
| 449 while (1) { | 447 while (1) { |
| 450 FDE_CSSSYNTAXSTATUS eStatus = pSyntax->DoSyntaxParse(); | 448 FDE_CSSSYNTAXSTATUS eStatus = pSyntax->DoSyntaxParse(); |
| 451 if (eStatus == FDE_CSSSYNTAXSTATUS_PropertyName) { | 449 if (eStatus == FDE_CSSSYNTAXSTATUS_PropertyName) { |
| 452 psz2 = pSyntax->GetCurrentString(iLen2); | 450 psz2 = pSyntax->GetCurrentString(iLen2); |
| 453 args.pProperty = FDE_GetCSSPropertyByName(CFX_WideStringC(psz2, iLen2)); | 451 args.pProperty = FDE_GetCSSPropertyByName(CFX_WideStringC(psz2, iLen2)); |
| 454 if (!args.pProperty) | 452 if (!args.pProperty) |
| 455 wsName = CFX_WideStringC(psz2, iLen2); | 453 wsName = CFX_WideStringC(psz2, iLen2); |
| 456 } else if (eStatus == FDE_CSSSYNTAXSTATUS_PropertyValue) { | 454 } else if (eStatus == FDE_CSSSYNTAXSTATUS_PropertyValue) { |
| (...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1009 } | 1007 } |
| 1010 } break; | 1008 } break; |
| 1011 default: | 1009 default: |
| 1012 break; | 1010 break; |
| 1013 } | 1011 } |
| 1014 } | 1012 } |
| 1015 } else { | 1013 } else { |
| 1016 ASSERT(FALSE); | 1014 ASSERT(FALSE); |
| 1017 } | 1015 } |
| 1018 } | 1016 } |
| 1017 |
| 1019 FX_FLOAT CFDE_CSSStyleSelector::ApplyNumber(FDE_CSSPRIMITIVETYPE eUnit, | 1018 FX_FLOAT CFDE_CSSStyleSelector::ApplyNumber(FDE_CSSPRIMITIVETYPE eUnit, |
| 1020 FX_FLOAT fValue, | 1019 FX_FLOAT fValue, |
| 1021 FX_FLOAT fPercentBase) { | 1020 FX_FLOAT fPercentBase) { |
| 1022 switch (eUnit) { | 1021 switch (eUnit) { |
| 1023 case FDE_CSSPRIMITIVETYPE_PX: | 1022 case FDE_CSSPRIMITIVETYPE_PX: |
| 1024 case FDE_CSSPRIMITIVETYPE_Number: | 1023 case FDE_CSSPRIMITIVETYPE_Number: |
| 1025 return fValue * 72 / 96; | 1024 return fValue * 72 / 96; |
| 1026 case FDE_CSSPRIMITIVETYPE_PT: | 1025 case FDE_CSSPRIMITIVETYPE_PT: |
| 1027 return fValue; | 1026 return fValue; |
| 1028 case FDE_CSSPRIMITIVETYPE_EMS: | 1027 case FDE_CSSPRIMITIVETYPE_EMS: |
| 1029 case FDE_CSSPRIMITIVETYPE_EXS: | 1028 case FDE_CSSPRIMITIVETYPE_EXS: |
| 1030 return fValue * fPercentBase; | 1029 return fValue * fPercentBase; |
| 1031 case FDE_CSSPRIMITIVETYPE_Percent: | 1030 case FDE_CSSPRIMITIVETYPE_Percent: |
| 1032 return fValue * fPercentBase / 100.0f; | 1031 return fValue * fPercentBase / 100.0f; |
| 1033 case FDE_CSSPRIMITIVETYPE_CM: | 1032 case FDE_CSSPRIMITIVETYPE_CM: |
| 1034 return fValue * 28.3464f; | 1033 return fValue * 28.3464f; |
| 1035 case FDE_CSSPRIMITIVETYPE_MM: | 1034 case FDE_CSSPRIMITIVETYPE_MM: |
| 1036 return fValue * 2.8346f; | 1035 return fValue * 2.8346f; |
| 1037 case FDE_CSSPRIMITIVETYPE_IN: | 1036 case FDE_CSSPRIMITIVETYPE_IN: |
| 1038 return fValue * 72.0f; | 1037 return fValue * 72.0f; |
| 1039 case FDE_CSSPRIMITIVETYPE_PC: | 1038 case FDE_CSSPRIMITIVETYPE_PC: |
| 1040 return fValue / 12.0f; | 1039 return fValue / 12.0f; |
| 1041 default: | 1040 default: |
| 1042 return fValue; | 1041 return fValue; |
| 1043 } | 1042 } |
| 1044 } | 1043 } |
| 1044 |
| 1045 FDE_CSSRUBYSPAN CFDE_CSSStyleSelector::ToRubySpan(FDE_CSSPROPERTYVALUE eValue) { | 1045 FDE_CSSRUBYSPAN CFDE_CSSStyleSelector::ToRubySpan(FDE_CSSPROPERTYVALUE eValue) { |
| 1046 switch (eValue) { | 1046 switch (eValue) { |
| 1047 case FDE_CSSPROPERTYVALUE_None: | 1047 case FDE_CSSPROPERTYVALUE_None: |
| 1048 default: | 1048 default: |
| 1049 return FDE_CSSRUBYSPAN_None; | 1049 return FDE_CSSRUBYSPAN_None; |
| 1050 } | 1050 } |
| 1051 } | 1051 } |
| 1052 |
| 1052 FDE_CSSRUBYPOSITION CFDE_CSSStyleSelector::ToRubyPosition( | 1053 FDE_CSSRUBYPOSITION CFDE_CSSStyleSelector::ToRubyPosition( |
| 1053 FDE_CSSPROPERTYVALUE eValue) { | 1054 FDE_CSSPROPERTYVALUE eValue) { |
| 1054 switch (eValue) { | 1055 switch (eValue) { |
| 1055 case FDE_CSSPROPERTYVALUE_Before: | 1056 case FDE_CSSPROPERTYVALUE_Before: |
| 1056 return FDE_CSSRUBYPOSITION_Before; | 1057 return FDE_CSSRUBYPOSITION_Before; |
| 1057 case FDE_CSSPROPERTYVALUE_After: | 1058 case FDE_CSSPROPERTYVALUE_After: |
| 1058 return FDE_CSSRUBYPOSITION_After; | 1059 return FDE_CSSRUBYPOSITION_After; |
| 1059 case FDE_CSSPROPERTYVALUE_Right: | 1060 case FDE_CSSPROPERTYVALUE_Right: |
| 1060 return FDE_CSSRUBYPOSITION_Right; | 1061 return FDE_CSSRUBYPOSITION_Right; |
| 1061 case FDE_CSSPROPERTYVALUE_Inline: | 1062 case FDE_CSSPROPERTYVALUE_Inline: |
| 1062 return FDE_CSSRUBYPOSITION_Inline; | 1063 return FDE_CSSRUBYPOSITION_Inline; |
| 1063 default: | 1064 default: |
| 1064 return FDE_CSSRUBYPOSITION_Before; | 1065 return FDE_CSSRUBYPOSITION_Before; |
| 1065 } | 1066 } |
| 1066 } | 1067 } |
| 1068 |
| 1067 FDE_CSSRUBYOVERHANG CFDE_CSSStyleSelector::ToRubyOverhang( | 1069 FDE_CSSRUBYOVERHANG CFDE_CSSStyleSelector::ToRubyOverhang( |
| 1068 FDE_CSSPROPERTYVALUE eValue) { | 1070 FDE_CSSPROPERTYVALUE eValue) { |
| 1069 switch (eValue) { | 1071 switch (eValue) { |
| 1070 case FDE_CSSPROPERTYVALUE_Auto: | 1072 case FDE_CSSPROPERTYVALUE_Auto: |
| 1071 return FDE_CSSRUBYOVERHANG_Auto; | 1073 return FDE_CSSRUBYOVERHANG_Auto; |
| 1072 case FDE_CSSPROPERTYVALUE_Start: | 1074 case FDE_CSSPROPERTYVALUE_Start: |
| 1073 return FDE_CSSRUBYOVERHANG_Start; | 1075 return FDE_CSSRUBYOVERHANG_Start; |
| 1074 case FDE_CSSPROPERTYVALUE_End: | 1076 case FDE_CSSPROPERTYVALUE_End: |
| 1075 return FDE_CSSRUBYOVERHANG_End; | 1077 return FDE_CSSRUBYOVERHANG_End; |
| 1076 case FDE_CSSPROPERTYVALUE_None: | 1078 case FDE_CSSPROPERTYVALUE_None: |
| 1077 default: | 1079 default: |
| 1078 return FDE_CSSRUBYOVERHANG_None; | 1080 return FDE_CSSRUBYOVERHANG_None; |
| 1079 } | 1081 } |
| 1080 } | 1082 } |
| 1083 |
| 1081 FDE_CSSRUBYALIGN CFDE_CSSStyleSelector::ToRubyAlign( | 1084 FDE_CSSRUBYALIGN CFDE_CSSStyleSelector::ToRubyAlign( |
| 1082 FDE_CSSPROPERTYVALUE eValue) { | 1085 FDE_CSSPROPERTYVALUE eValue) { |
| 1083 switch (eValue) { | 1086 switch (eValue) { |
| 1084 case FDE_CSSPROPERTYVALUE_Auto: | 1087 case FDE_CSSPROPERTYVALUE_Auto: |
| 1085 return FDE_CSSRUBYALIGN_Auto; | 1088 return FDE_CSSRUBYALIGN_Auto; |
| 1086 case FDE_CSSPROPERTYVALUE_Start: | 1089 case FDE_CSSPROPERTYVALUE_Start: |
| 1087 return FDE_CSSRUBYALIGN_Start; | 1090 return FDE_CSSRUBYALIGN_Start; |
| 1088 case FDE_CSSPROPERTYVALUE_Left: | 1091 case FDE_CSSPROPERTYVALUE_Left: |
| 1089 return FDE_CSSRUBYALIGN_End; | 1092 return FDE_CSSRUBYALIGN_End; |
| 1090 case FDE_CSSPROPERTYVALUE_Center: | 1093 case FDE_CSSPROPERTYVALUE_Center: |
| 1091 return FDE_CSSRUBYALIGN_Center; | 1094 return FDE_CSSRUBYALIGN_Center; |
| 1092 case FDE_CSSPROPERTYVALUE_End: | 1095 case FDE_CSSPROPERTYVALUE_End: |
| 1093 return FDE_CSSRUBYALIGN_End; | 1096 return FDE_CSSRUBYALIGN_End; |
| 1094 case FDE_CSSPROPERTYVALUE_Right: | 1097 case FDE_CSSPROPERTYVALUE_Right: |
| 1095 return FDE_CSSRUBYALIGN_Right; | 1098 return FDE_CSSRUBYALIGN_Right; |
| 1096 case FDE_CSSPROPERTYVALUE_DistributeLetter: | 1099 case FDE_CSSPROPERTYVALUE_DistributeLetter: |
| 1097 return FDE_CSSRUBYALIGN_DistributeLetter; | 1100 return FDE_CSSRUBYALIGN_DistributeLetter; |
| 1098 case FDE_CSSPROPERTYVALUE_DistributeSpace: | 1101 case FDE_CSSPROPERTYVALUE_DistributeSpace: |
| 1099 return FDE_CSSRUBYALIGN_DistributeSpace; | 1102 return FDE_CSSRUBYALIGN_DistributeSpace; |
| 1100 case FDE_CSSPROPERTYVALUE_LineEdge: | 1103 case FDE_CSSPROPERTYVALUE_LineEdge: |
| 1101 return FDE_CSSRUBYALIGN_LineEdge; | 1104 return FDE_CSSRUBYALIGN_LineEdge; |
| 1102 default: | 1105 default: |
| 1103 return FDE_CSSRUBYALIGN_Auto; | 1106 return FDE_CSSRUBYALIGN_Auto; |
| 1104 } | 1107 } |
| 1105 } | 1108 } |
| 1109 |
| 1106 FX_BOOL CFDE_CSSStyleSelector::ToTextEmphasisMark( | 1110 FX_BOOL CFDE_CSSStyleSelector::ToTextEmphasisMark( |
| 1107 FDE_CSSPROPERTYVALUE eValue, | 1111 FDE_CSSPROPERTYVALUE eValue, |
| 1108 FDE_CSSTEXTEMPHASISMARK& eMark) { | 1112 FDE_CSSTEXTEMPHASISMARK& eMark) { |
| 1109 switch (eValue) { | 1113 switch (eValue) { |
| 1110 case FDE_CSSPROPERTYVALUE_None: | 1114 case FDE_CSSPROPERTYVALUE_None: |
| 1111 eMark = FDE_CSSTEXTEMPHASISMARK_None; | 1115 eMark = FDE_CSSTEXTEMPHASISMARK_None; |
| 1112 return TRUE; | 1116 return TRUE; |
| 1113 case FDE_CSSPROPERTYVALUE_Dot: | 1117 case FDE_CSSPROPERTYVALUE_Dot: |
| 1114 eMark = FDE_CSSTEXTEMPHASISMARK_Dot; | 1118 eMark = FDE_CSSTEXTEMPHASISMARK_Dot; |
| 1115 return TRUE; | 1119 return TRUE; |
| 1116 case FDE_CSSPROPERTYVALUE_Circle: | 1120 case FDE_CSSPROPERTYVALUE_Circle: |
| 1117 eMark = FDE_CSSTEXTEMPHASISMARK_Circle; | 1121 eMark = FDE_CSSTEXTEMPHASISMARK_Circle; |
| 1118 return TRUE; | 1122 return TRUE; |
| 1119 case FDE_CSSPROPERTYVALUE_DoubleCircle: | 1123 case FDE_CSSPROPERTYVALUE_DoubleCircle: |
| 1120 eMark = FDE_CSSTEXTEMPHASISMARK_DoubleCircle; | 1124 eMark = FDE_CSSTEXTEMPHASISMARK_DoubleCircle; |
| 1121 return TRUE; | 1125 return TRUE; |
| 1122 case FDE_CSSPROPERTYVALUE_Triangle: | 1126 case FDE_CSSPROPERTYVALUE_Triangle: |
| 1123 eMark = FDE_CSSTEXTEMPHASISMARK_Triangle; | 1127 eMark = FDE_CSSTEXTEMPHASISMARK_Triangle; |
| 1124 return TRUE; | 1128 return TRUE; |
| 1125 case FDE_CSSPROPERTYVALUE_Sesame: | 1129 case FDE_CSSPROPERTYVALUE_Sesame: |
| 1126 eMark = FDE_CSSTEXTEMPHASISMARK_Sesame; | 1130 eMark = FDE_CSSTEXTEMPHASISMARK_Sesame; |
| 1127 return TRUE; | 1131 return TRUE; |
| 1128 default: | 1132 default: |
| 1129 return FALSE; | 1133 return FALSE; |
| 1130 } | 1134 } |
| 1131 } | 1135 } |
| 1136 |
| 1132 FX_BOOL CFDE_CSSStyleSelector::ToTextEmphasisFill( | 1137 FX_BOOL CFDE_CSSStyleSelector::ToTextEmphasisFill( |
| 1133 FDE_CSSPROPERTYVALUE eValue, | 1138 FDE_CSSPROPERTYVALUE eValue, |
| 1134 FDE_CSSTEXTEMPHASISFILL& eFill) { | 1139 FDE_CSSTEXTEMPHASISFILL& eFill) { |
| 1135 switch (eValue) { | 1140 switch (eValue) { |
| 1136 case FDE_CSSPROPERTYVALUE_Filled: | 1141 case FDE_CSSPROPERTYVALUE_Filled: |
| 1137 eFill = FDE_CSSTEXTEMPHASISFILL_Filled; | 1142 eFill = FDE_CSSTEXTEMPHASISFILL_Filled; |
| 1138 return TRUE; | 1143 return TRUE; |
| 1139 case FDE_CSSPROPERTYVALUE_Open: | 1144 case FDE_CSSPROPERTYVALUE_Open: |
| 1140 eFill = FDE_CSSTEXTEMPHASISFILL_Open; | 1145 eFill = FDE_CSSTEXTEMPHASISFILL_Open; |
| 1141 return TRUE; | 1146 return TRUE; |
| 1142 default: | 1147 default: |
| 1143 return FALSE; | 1148 return FALSE; |
| 1144 } | 1149 } |
| 1145 } | 1150 } |
| 1151 |
| 1146 FDE_CSSBKGATTACHMENT CFDE_CSSStyleSelector::ToBKGAttachment( | 1152 FDE_CSSBKGATTACHMENT CFDE_CSSStyleSelector::ToBKGAttachment( |
| 1147 FDE_CSSPROPERTYVALUE eValue) { | 1153 FDE_CSSPROPERTYVALUE eValue) { |
| 1148 switch (eValue) { | 1154 switch (eValue) { |
| 1149 case FDE_CSSPROPERTYVALUE_Fixed: | 1155 case FDE_CSSPROPERTYVALUE_Fixed: |
| 1150 return FDE_CSSBKGATTACHMENT_Fixed; | 1156 return FDE_CSSBKGATTACHMENT_Fixed; |
| 1151 case FDE_CSSPROPERTYVALUE_Scroll: | 1157 case FDE_CSSPROPERTYVALUE_Scroll: |
| 1152 return FDE_CSSBKGATTACHMENT_Scroll; | 1158 return FDE_CSSBKGATTACHMENT_Scroll; |
| 1153 default: | 1159 default: |
| 1154 return FDE_CSSBKGATTACHMENT_Fixed; | 1160 return FDE_CSSBKGATTACHMENT_Fixed; |
| 1155 } | 1161 } |
| 1156 } | 1162 } |
| 1163 |
| 1157 FDE_CSSCAPTIONSIDE CFDE_CSSStyleSelector::ToCaptionSide( | 1164 FDE_CSSCAPTIONSIDE CFDE_CSSStyleSelector::ToCaptionSide( |
| 1158 FDE_CSSPROPERTYVALUE eValue) { | 1165 FDE_CSSPROPERTYVALUE eValue) { |
| 1159 switch (eValue) { | 1166 switch (eValue) { |
| 1160 case FDE_CSSPROPERTYVALUE_Top: | 1167 case FDE_CSSPROPERTYVALUE_Top: |
| 1161 return FDE_CSSCAPTIONSIDE_Top; | 1168 return FDE_CSSCAPTIONSIDE_Top; |
| 1162 case FDE_CSSPROPERTYVALUE_Bottom: | 1169 case FDE_CSSPROPERTYVALUE_Bottom: |
| 1163 return FDE_CSSCAPTIONSIDE_Bottom; | 1170 return FDE_CSSCAPTIONSIDE_Bottom; |
| 1164 case FDE_CSSPROPERTYVALUE_Left: | 1171 case FDE_CSSPROPERTYVALUE_Left: |
| 1165 return FDE_CSSCAPTIONSIDE_Left; | 1172 return FDE_CSSCAPTIONSIDE_Left; |
| 1166 case FDE_CSSPROPERTYVALUE_Right: | 1173 case FDE_CSSPROPERTYVALUE_Right: |
| 1167 return FDE_CSSCAPTIONSIDE_Right; | 1174 return FDE_CSSCAPTIONSIDE_Right; |
| 1168 case FDE_CSSPROPERTYVALUE_Before: | 1175 case FDE_CSSPROPERTYVALUE_Before: |
| 1169 return FDE_CSSCAPTIONSIDE_Before; | 1176 return FDE_CSSCAPTIONSIDE_Before; |
| 1170 case FDE_CSSPROPERTYVALUE_After: | 1177 case FDE_CSSPROPERTYVALUE_After: |
| 1171 return FDE_CSSCAPTIONSIDE_After; | 1178 return FDE_CSSCAPTIONSIDE_After; |
| 1172 default: | 1179 default: |
| 1173 return FDE_CSSCAPTIONSIDE_Top; | 1180 return FDE_CSSCAPTIONSIDE_Top; |
| 1174 } | 1181 } |
| 1175 } | 1182 } |
| 1183 |
| 1176 FDE_CSSPOSITION CFDE_CSSStyleSelector::ToPosition(FDE_CSSPROPERTYVALUE eValue) { | 1184 FDE_CSSPOSITION CFDE_CSSStyleSelector::ToPosition(FDE_CSSPROPERTYVALUE eValue) { |
| 1177 switch (eValue) { | 1185 switch (eValue) { |
| 1178 case FDE_CSSPROPERTYVALUE_Static: | 1186 case FDE_CSSPROPERTYVALUE_Static: |
| 1179 return FDE_CSSPOSITION_Static; | 1187 return FDE_CSSPOSITION_Static; |
| 1180 case FDE_CSSPROPERTYVALUE_Relative: | 1188 case FDE_CSSPROPERTYVALUE_Relative: |
| 1181 return FDE_CSSPOSITION_Relative; | 1189 return FDE_CSSPOSITION_Relative; |
| 1182 case FDE_CSSPROPERTYVALUE_Fixed: | 1190 case FDE_CSSPROPERTYVALUE_Fixed: |
| 1183 return FDE_CSSPOSITION_Fixed; | 1191 return FDE_CSSPOSITION_Fixed; |
| 1184 case FDE_CSSPROPERTYVALUE_Absolute: | 1192 case FDE_CSSPROPERTYVALUE_Absolute: |
| 1185 return FDE_CSSPOSITION_Absolute; | 1193 return FDE_CSSPOSITION_Absolute; |
| 1186 default: | 1194 default: |
| 1187 return FDE_CSSPOSITION_Static; | 1195 return FDE_CSSPOSITION_Static; |
| 1188 } | 1196 } |
| 1189 } | 1197 } |
| 1198 |
| 1190 FDE_CSSCURSOR CFDE_CSSStyleSelector::ToCursor(FDE_CSSPROPERTYVALUE eValue) { | 1199 FDE_CSSCURSOR CFDE_CSSStyleSelector::ToCursor(FDE_CSSPROPERTYVALUE eValue) { |
| 1191 switch (eValue) { | 1200 switch (eValue) { |
| 1192 case FDE_CSSPROPERTYVALUE_Auto: | 1201 case FDE_CSSPROPERTYVALUE_Auto: |
| 1193 return FDE_CSSCURSOR_Auto; | 1202 return FDE_CSSCURSOR_Auto; |
| 1194 case FDE_CSSPROPERTYVALUE_Crosshair: | 1203 case FDE_CSSPROPERTYVALUE_Crosshair: |
| 1195 return FDE_CSSCURSOR_Crosshair; | 1204 return FDE_CSSCURSOR_Crosshair; |
| 1196 case FDE_CSSPROPERTYVALUE_Default: | 1205 case FDE_CSSPROPERTYVALUE_Default: |
| 1197 return FDE_CSSCURSOR_Default; | 1206 return FDE_CSSCURSOR_Default; |
| 1198 case FDE_CSSPROPERTYVALUE_Pointer: | 1207 case FDE_CSSPROPERTYVALUE_Pointer: |
| 1199 return FDE_CSSCURSOR_Pointer; | 1208 return FDE_CSSCURSOR_Pointer; |
| 1200 case FDE_CSSPROPERTYVALUE_Move: | 1209 case FDE_CSSPROPERTYVALUE_Move: |
| 1201 return FDE_CSSCURSOR_Move; | 1210 return FDE_CSSCURSOR_Move; |
| 1202 case FDE_CSSPROPERTYVALUE_EResize: | 1211 case FDE_CSSPROPERTYVALUE_EResize: |
| 1203 return FDE_CSSCURSOR_EResize; | 1212 return FDE_CSSCURSOR_EResize; |
| 1204 case FDE_CSSPROPERTYVALUE_NeResize: | 1213 case FDE_CSSPROPERTYVALUE_NeResize: |
| 1205 return FDE_CSSCURSOR_NeResize; | 1214 return FDE_CSSCURSOR_NeResize; |
| 1206 case FDE_CSSPROPERTYVALUE_NwResize: | 1215 case FDE_CSSPROPERTYVALUE_NwResize: |
| 1207 return FDE_CSSCURSOR_NwResize; | 1216 return FDE_CSSCURSOR_NwResize; |
| 1208 case FDE_CSSPROPERTYVALUE_NResize: | 1217 case FDE_CSSPROPERTYVALUE_NResize: |
| 1209 return FDE_CSSCURSOR_NResize; | 1218 return FDE_CSSCURSOR_NResize; |
| 1210 case FDE_CSSPROPERTYVALUE_SeResize: | 1219 case FDE_CSSPROPERTYVALUE_SeResize: |
| 1211 return FDE_CSSCURSOR_SeResize; | 1220 return FDE_CSSCURSOR_SeResize; |
| 1212 case FDE_CSSPROPERTYVALUE_SwResize: | 1221 case FDE_CSSPROPERTYVALUE_SwResize: |
| 1213 return FDE_CSSCURSOR_SwResize; | 1222 return FDE_CSSCURSOR_SwResize; |
| 1214 default: | 1223 default: |
| 1215 return FDE_CSSCURSOR_Auto; | 1224 return FDE_CSSCURSOR_Auto; |
| 1216 } | 1225 } |
| 1217 } | 1226 } |
| 1227 |
| 1218 FDE_CSSBKGREPEAT CFDE_CSSStyleSelector::ToBKGRepeat( | 1228 FDE_CSSBKGREPEAT CFDE_CSSStyleSelector::ToBKGRepeat( |
| 1219 FDE_CSSPROPERTYVALUE eValue) { | 1229 FDE_CSSPROPERTYVALUE eValue) { |
| 1220 switch (eValue) { | 1230 switch (eValue) { |
| 1221 case FDE_CSSPROPERTYVALUE_Repeat: | 1231 case FDE_CSSPROPERTYVALUE_Repeat: |
| 1222 return FDE_CSSBKGREPEAT_Repeat; | 1232 return FDE_CSSBKGREPEAT_Repeat; |
| 1223 case FDE_CSSPROPERTYVALUE_RepeatX: | 1233 case FDE_CSSPROPERTYVALUE_RepeatX: |
| 1224 return FDE_CSSBKGREPEAT_RepeatX; | 1234 return FDE_CSSBKGREPEAT_RepeatX; |
| 1225 case FDE_CSSPROPERTYVALUE_RepeatY: | 1235 case FDE_CSSPROPERTYVALUE_RepeatY: |
| 1226 return FDE_CSSBKGREPEAT_RepeatY; | 1236 return FDE_CSSBKGREPEAT_RepeatY; |
| 1227 case FDE_CSSPROPERTYVALUE_NoRepeat: | 1237 case FDE_CSSPROPERTYVALUE_NoRepeat: |
| 1228 return FDE_CSSBKGREPEAT_NoRepeat; | 1238 return FDE_CSSBKGREPEAT_NoRepeat; |
| 1229 default: | 1239 default: |
| 1230 return FDE_CSSBKGREPEAT_Repeat; | 1240 return FDE_CSSBKGREPEAT_Repeat; |
| 1231 } | 1241 } |
| 1232 } | 1242 } |
| 1243 |
| 1233 FDE_CSSTEXTCOMBINE CFDE_CSSStyleSelector::ToTextCombine( | 1244 FDE_CSSTEXTCOMBINE CFDE_CSSStyleSelector::ToTextCombine( |
| 1234 FDE_CSSPROPERTYVALUE eValue) { | 1245 FDE_CSSPROPERTYVALUE eValue) { |
| 1235 switch (eValue) { | 1246 switch (eValue) { |
| 1236 case FDE_CSSPROPERTYVALUE_Horizontal: | 1247 case FDE_CSSPROPERTYVALUE_Horizontal: |
| 1237 return FDE_CSSTEXTCOMBINE_Horizontal; | 1248 return FDE_CSSTEXTCOMBINE_Horizontal; |
| 1238 case FDE_CSSPROPERTYVALUE_None: | 1249 case FDE_CSSPROPERTYVALUE_None: |
| 1239 default: | 1250 default: |
| 1240 return FDE_CSSTEXTCOMBINE_None; | 1251 return FDE_CSSTEXTCOMBINE_None; |
| 1241 } | 1252 } |
| 1242 } | 1253 } |
| 1254 |
| 1243 FDE_CSSLINEBREAK CFDE_CSSStyleSelector::ToLineBreak( | 1255 FDE_CSSLINEBREAK CFDE_CSSStyleSelector::ToLineBreak( |
| 1244 FDE_CSSPROPERTYVALUE eValue) { | 1256 FDE_CSSPROPERTYVALUE eValue) { |
| 1245 switch (eValue) { | 1257 switch (eValue) { |
| 1246 case FDE_CSSPROPERTYVALUE_Auto: | 1258 case FDE_CSSPROPERTYVALUE_Auto: |
| 1247 return FDE_CSSLINEBREAK_Auto; | 1259 return FDE_CSSLINEBREAK_Auto; |
| 1248 case FDE_CSSPROPERTYVALUE_Loose: | 1260 case FDE_CSSPROPERTYVALUE_Loose: |
| 1249 return FDE_CSSLINEBREAK_Loose; | 1261 return FDE_CSSLINEBREAK_Loose; |
| 1250 case FDE_CSSPROPERTYVALUE_Normal: | 1262 case FDE_CSSPROPERTYVALUE_Normal: |
| 1251 return FDE_CSSLINEBREAK_Normal; | 1263 return FDE_CSSLINEBREAK_Normal; |
| 1252 case FDE_CSSPROPERTYVALUE_Strict: | 1264 case FDE_CSSPROPERTYVALUE_Strict: |
| 1253 return FDE_CSSLINEBREAK_Strict; | 1265 return FDE_CSSLINEBREAK_Strict; |
| 1254 default: | 1266 default: |
| 1255 return FDE_CSSLINEBREAK_Auto; | 1267 return FDE_CSSLINEBREAK_Auto; |
| 1256 } | 1268 } |
| 1257 } | 1269 } |
| 1270 |
| 1258 FDE_CSSOVERFLOW CFDE_CSSStyleSelector::ToOverflow(FDE_CSSPROPERTYVALUE eValue) { | 1271 FDE_CSSOVERFLOW CFDE_CSSStyleSelector::ToOverflow(FDE_CSSPROPERTYVALUE eValue) { |
| 1259 switch (eValue) { | 1272 switch (eValue) { |
| 1260 case FDE_CSSPROPERTYVALUE_Visible: | 1273 case FDE_CSSPROPERTYVALUE_Visible: |
| 1261 return FDE_CSSOVERFLOW_Visible; | 1274 return FDE_CSSOVERFLOW_Visible; |
| 1262 case FDE_CSSPROPERTYVALUE_Hidden: | 1275 case FDE_CSSPROPERTYVALUE_Hidden: |
| 1263 return FDE_CSSOVERFLOW_Hidden; | 1276 return FDE_CSSOVERFLOW_Hidden; |
| 1264 case FDE_CSSPROPERTYVALUE_Scroll: | 1277 case FDE_CSSPROPERTYVALUE_Scroll: |
| 1265 return FDE_CSSOVERFLOW_Scroll; | 1278 return FDE_CSSOVERFLOW_Scroll; |
| 1266 case FDE_CSSPROPERTYVALUE_Auto: | 1279 case FDE_CSSPROPERTYVALUE_Auto: |
| 1267 return FDE_CSSOVERFLOW_Auto; | 1280 return FDE_CSSOVERFLOW_Auto; |
| 1268 case FDE_CSSPROPERTYVALUE_NoDisplay: | 1281 case FDE_CSSPROPERTYVALUE_NoDisplay: |
| 1269 return FDE_CSSOVERFLOW_NoDisplay; | 1282 return FDE_CSSOVERFLOW_NoDisplay; |
| 1270 case FDE_CSSPROPERTYVALUE_NoContent: | 1283 case FDE_CSSPROPERTYVALUE_NoContent: |
| 1271 return FDE_CSSOVERFLOW_NoContent; | 1284 return FDE_CSSOVERFLOW_NoContent; |
| 1272 default: | 1285 default: |
| 1273 return FDE_CSSOVERFLOW_Visible; | 1286 return FDE_CSSOVERFLOW_Visible; |
| 1274 } | 1287 } |
| 1275 } | 1288 } |
| 1289 |
| 1276 FDE_CSSWRITINGMODE CFDE_CSSStyleSelector::ToWritingMode( | 1290 FDE_CSSWRITINGMODE CFDE_CSSStyleSelector::ToWritingMode( |
| 1277 FDE_CSSPROPERTYVALUE eValue) { | 1291 FDE_CSSPROPERTYVALUE eValue) { |
| 1278 switch (eValue) { | 1292 switch (eValue) { |
| 1279 case FDE_CSSPROPERTYVALUE_HorizontalTb: | 1293 case FDE_CSSPROPERTYVALUE_HorizontalTb: |
| 1280 return FDE_CSSWRITINGMODE_HorizontalTb; | 1294 return FDE_CSSWRITINGMODE_HorizontalTb; |
| 1281 case FDE_CSSPROPERTYVALUE_VerticalRl: | 1295 case FDE_CSSPROPERTYVALUE_VerticalRl: |
| 1282 return FDE_CSSWRITINGMODE_VerticalRl; | 1296 return FDE_CSSWRITINGMODE_VerticalRl; |
| 1283 case FDE_CSSPROPERTYVALUE_VerticalLr: | 1297 case FDE_CSSPROPERTYVALUE_VerticalLr: |
| 1284 return FDE_CSSWRITINGMODE_VerticalLr; | 1298 return FDE_CSSWRITINGMODE_VerticalLr; |
| 1285 default: | 1299 default: |
| 1286 return FDE_CSSWRITINGMODE_HorizontalTb; | 1300 return FDE_CSSWRITINGMODE_HorizontalTb; |
| 1287 } | 1301 } |
| 1288 } | 1302 } |
| 1303 |
| 1289 FDE_CSSWORDBREAK CFDE_CSSStyleSelector::ToWordBreak( | 1304 FDE_CSSWORDBREAK CFDE_CSSStyleSelector::ToWordBreak( |
| 1290 FDE_CSSPROPERTYVALUE eValue) { | 1305 FDE_CSSPROPERTYVALUE eValue) { |
| 1291 switch (eValue) { | 1306 switch (eValue) { |
| 1292 case FDE_CSSPROPERTYVALUE_Normal: | 1307 case FDE_CSSPROPERTYVALUE_Normal: |
| 1293 return FDE_CSSWORDBREAK_Normal; | 1308 return FDE_CSSWORDBREAK_Normal; |
| 1294 case FDE_CSSPROPERTYVALUE_KeepAll: | 1309 case FDE_CSSPROPERTYVALUE_KeepAll: |
| 1295 return FDE_CSSWORDBREAK_KeepAll; | 1310 return FDE_CSSWORDBREAK_KeepAll; |
| 1296 case FDE_CSSPROPERTYVALUE_BreakAll: | 1311 case FDE_CSSPROPERTYVALUE_BreakAll: |
| 1297 return FDE_CSSWORDBREAK_BreakAll; | 1312 return FDE_CSSWORDBREAK_BreakAll; |
| 1298 case FDE_CSSPROPERTYVALUE_KeepWords: | 1313 case FDE_CSSPROPERTYVALUE_KeepWords: |
| 1299 return FDE_CSSWORDBREAK_KeepWords; | 1314 return FDE_CSSWORDBREAK_KeepWords; |
| 1300 default: | 1315 default: |
| 1301 return FDE_CSSWORDBREAK_Normal; | 1316 return FDE_CSSWORDBREAK_Normal; |
| 1302 } | 1317 } |
| 1303 } | 1318 } |
| 1319 |
| 1304 FDE_CSSFLOAT CFDE_CSSStyleSelector::ToFloat(FDE_CSSPROPERTYVALUE eValue) { | 1320 FDE_CSSFLOAT CFDE_CSSStyleSelector::ToFloat(FDE_CSSPROPERTYVALUE eValue) { |
| 1305 switch (eValue) { | 1321 switch (eValue) { |
| 1306 case FDE_CSSPROPERTYVALUE_Left: | 1322 case FDE_CSSPROPERTYVALUE_Left: |
| 1307 return FDE_CSSFLOAT_Left; | 1323 return FDE_CSSFLOAT_Left; |
| 1308 case FDE_CSSPROPERTYVALUE_Right: | 1324 case FDE_CSSPROPERTYVALUE_Right: |
| 1309 return FDE_CSSFLOAT_Right; | 1325 return FDE_CSSFLOAT_Right; |
| 1310 case FDE_CSSPROPERTYVALUE_None: | 1326 case FDE_CSSPROPERTYVALUE_None: |
| 1311 return FDE_CSSFLOAT_None; | 1327 return FDE_CSSFLOAT_None; |
| 1312 default: | 1328 default: |
| 1313 return FDE_CSSFLOAT_None; | 1329 return FDE_CSSFLOAT_None; |
| 1314 } | 1330 } |
| 1315 } | 1331 } |
| 1332 |
| 1316 FDE_CSSCLEAR CFDE_CSSStyleSelector::ToClear(FDE_CSSPROPERTYVALUE eValue) { | 1333 FDE_CSSCLEAR CFDE_CSSStyleSelector::ToClear(FDE_CSSPROPERTYVALUE eValue) { |
| 1317 switch (eValue) { | 1334 switch (eValue) { |
| 1318 case FDE_CSSPROPERTYVALUE_None: | 1335 case FDE_CSSPROPERTYVALUE_None: |
| 1319 return FDE_CSSCLEAR_None; | 1336 return FDE_CSSCLEAR_None; |
| 1320 case FDE_CSSPROPERTYVALUE_Left: | 1337 case FDE_CSSPROPERTYVALUE_Left: |
| 1321 return FDE_CSSCLEAR_Left; | 1338 return FDE_CSSCLEAR_Left; |
| 1322 case FDE_CSSPROPERTYVALUE_Right: | 1339 case FDE_CSSPROPERTYVALUE_Right: |
| 1323 return FDE_CSSCLEAR_Right; | 1340 return FDE_CSSCLEAR_Right; |
| 1324 case FDE_CSSPROPERTYVALUE_Both: | 1341 case FDE_CSSPROPERTYVALUE_Both: |
| 1325 return FDE_CSSCLEAR_Both; | 1342 return FDE_CSSCLEAR_Both; |
| 1326 default: | 1343 default: |
| 1327 return FDE_CSSCLEAR_None; | 1344 return FDE_CSSCLEAR_None; |
| 1328 } | 1345 } |
| 1329 } | 1346 } |
| 1347 |
| 1330 FDE_CSSPAGEBREAK CFDE_CSSStyleSelector::ToPageBreak( | 1348 FDE_CSSPAGEBREAK CFDE_CSSStyleSelector::ToPageBreak( |
| 1331 FDE_CSSPROPERTYVALUE eValue) { | 1349 FDE_CSSPROPERTYVALUE eValue) { |
| 1332 switch (eValue) { | 1350 switch (eValue) { |
| 1333 case FDE_CSSPROPERTYVALUE_Avoid: | 1351 case FDE_CSSPROPERTYVALUE_Avoid: |
| 1334 return FDE_CSSPAGEBREAK_Avoid; | 1352 return FDE_CSSPAGEBREAK_Avoid; |
| 1335 case FDE_CSSPROPERTYVALUE_Auto: | 1353 case FDE_CSSPROPERTYVALUE_Auto: |
| 1336 return FDE_CSSPAGEBREAK_Auto; | 1354 return FDE_CSSPAGEBREAK_Auto; |
| 1337 case FDE_CSSPROPERTYVALUE_Always: | 1355 case FDE_CSSPROPERTYVALUE_Always: |
| 1338 return FDE_CSSPAGEBREAK_Always; | 1356 return FDE_CSSPAGEBREAK_Always; |
| 1339 case FDE_CSSPROPERTYVALUE_Left: | 1357 case FDE_CSSPROPERTYVALUE_Left: |
| 1340 return FDE_CSSPAGEBREAK_Left; | 1358 return FDE_CSSPAGEBREAK_Left; |
| 1341 case FDE_CSSPROPERTYVALUE_Right: | 1359 case FDE_CSSPROPERTYVALUE_Right: |
| 1342 return FDE_CSSPAGEBREAK_Right; | 1360 return FDE_CSSPAGEBREAK_Right; |
| 1343 default: | 1361 default: |
| 1344 return FDE_CSSPAGEBREAK_Auto; | 1362 return FDE_CSSPAGEBREAK_Auto; |
| 1345 } | 1363 } |
| 1346 } | 1364 } |
| 1365 |
| 1347 FDE_CSSDISPLAY CFDE_CSSStyleSelector::ToDisplay(FDE_CSSPROPERTYVALUE eValue) { | 1366 FDE_CSSDISPLAY CFDE_CSSStyleSelector::ToDisplay(FDE_CSSPROPERTYVALUE eValue) { |
| 1348 switch (eValue) { | 1367 switch (eValue) { |
| 1349 case FDE_CSSPROPERTYVALUE_Inline: | 1368 case FDE_CSSPROPERTYVALUE_Inline: |
| 1350 return FDE_CSSDISPLAY_Inline; | 1369 return FDE_CSSDISPLAY_Inline; |
| 1351 case FDE_CSSPROPERTYVALUE_Block: | 1370 case FDE_CSSPROPERTYVALUE_Block: |
| 1352 return FDE_CSSDISPLAY_Block; | 1371 return FDE_CSSDISPLAY_Block; |
| 1353 case FDE_CSSPROPERTYVALUE_None: | 1372 case FDE_CSSPROPERTYVALUE_None: |
| 1354 return FDE_CSSDISPLAY_None; | 1373 return FDE_CSSDISPLAY_None; |
| 1355 case FDE_CSSPROPERTYVALUE_ListItem: | 1374 case FDE_CSSPROPERTYVALUE_ListItem: |
| 1356 return FDE_CSSDISPLAY_ListItem; | 1375 return FDE_CSSDISPLAY_ListItem; |
| (...skipping 28 matching lines...) Expand all Loading... |
| 1385 case FDE_CSSPROPERTYVALUE_RubyText: | 1404 case FDE_CSSPROPERTYVALUE_RubyText: |
| 1386 return FDE_CSSDISPLAY_RubyText; | 1405 return FDE_CSSDISPLAY_RubyText; |
| 1387 case FDE_CSSPROPERTYVALUE_RubyBaseGroup: | 1406 case FDE_CSSPROPERTYVALUE_RubyBaseGroup: |
| 1388 return FDE_CSSDISPLSY_RubyBaseGroup; | 1407 return FDE_CSSDISPLSY_RubyBaseGroup; |
| 1389 case FDE_CSSPROPERTYVALUE_RubyTextGroup: | 1408 case FDE_CSSPROPERTYVALUE_RubyTextGroup: |
| 1390 return FDE_CSSDISPLAY_RubyTextGroup; | 1409 return FDE_CSSDISPLAY_RubyTextGroup; |
| 1391 default: | 1410 default: |
| 1392 return FDE_CSSDISPLAY_Inline; | 1411 return FDE_CSSDISPLAY_Inline; |
| 1393 } | 1412 } |
| 1394 } | 1413 } |
| 1414 |
| 1395 FDE_CSSTEXTALIGN CFDE_CSSStyleSelector::ToTextAlign( | 1415 FDE_CSSTEXTALIGN CFDE_CSSStyleSelector::ToTextAlign( |
| 1396 FDE_CSSPROPERTYVALUE eValue) { | 1416 FDE_CSSPROPERTYVALUE eValue) { |
| 1397 switch (eValue) { | 1417 switch (eValue) { |
| 1398 case FDE_CSSPROPERTYVALUE_Left: | 1418 case FDE_CSSPROPERTYVALUE_Left: |
| 1399 return FDE_CSSTEXTALIGN_Left; | 1419 return FDE_CSSTEXTALIGN_Left; |
| 1400 case FDE_CSSPROPERTYVALUE_Center: | 1420 case FDE_CSSPROPERTYVALUE_Center: |
| 1401 return FDE_CSSTEXTALIGN_Center; | 1421 return FDE_CSSTEXTALIGN_Center; |
| 1402 case FDE_CSSPROPERTYVALUE_Right: | 1422 case FDE_CSSPROPERTYVALUE_Right: |
| 1403 return FDE_CSSTEXTALIGN_Right; | 1423 return FDE_CSSTEXTALIGN_Right; |
| 1404 case FDE_CSSPROPERTYVALUE_Justify: | 1424 case FDE_CSSPROPERTYVALUE_Justify: |
| 1405 return FDE_CSSTEXTALIGN_Justify; | 1425 return FDE_CSSTEXTALIGN_Justify; |
| 1406 default: | 1426 default: |
| 1407 return FDE_CSSTEXTALIGN_Left; | 1427 return FDE_CSSTEXTALIGN_Left; |
| 1408 } | 1428 } |
| 1409 } | 1429 } |
| 1430 |
| 1410 uint16_t CFDE_CSSStyleSelector::ToFontWeight(FDE_CSSPROPERTYVALUE eValue) { | 1431 uint16_t CFDE_CSSStyleSelector::ToFontWeight(FDE_CSSPROPERTYVALUE eValue) { |
| 1411 switch (eValue) { | 1432 switch (eValue) { |
| 1412 case FDE_CSSPROPERTYVALUE_Normal: | 1433 case FDE_CSSPROPERTYVALUE_Normal: |
| 1413 return 400; | 1434 return 400; |
| 1414 case FDE_CSSPROPERTYVALUE_Bold: | 1435 case FDE_CSSPROPERTYVALUE_Bold: |
| 1415 return 700; | 1436 return 700; |
| 1416 case FDE_CSSPROPERTYVALUE_Bolder: | 1437 case FDE_CSSPROPERTYVALUE_Bolder: |
| 1417 return 900; | 1438 return 900; |
| 1418 case FDE_CSSPROPERTYVALUE_Lighter: | 1439 case FDE_CSSPROPERTYVALUE_Lighter: |
| 1419 return 200; | 1440 return 200; |
| 1420 default: | 1441 default: |
| 1421 return 400; | 1442 return 400; |
| 1422 } | 1443 } |
| 1423 } | 1444 } |
| 1445 |
| 1424 FDE_CSSFONTSTYLE CFDE_CSSStyleSelector::ToFontStyle( | 1446 FDE_CSSFONTSTYLE CFDE_CSSStyleSelector::ToFontStyle( |
| 1425 FDE_CSSPROPERTYVALUE eValue) { | 1447 FDE_CSSPROPERTYVALUE eValue) { |
| 1426 switch (eValue) { | 1448 switch (eValue) { |
| 1427 case FDE_CSSPROPERTYVALUE_Italic: | 1449 case FDE_CSSPROPERTYVALUE_Italic: |
| 1428 case FDE_CSSPROPERTYVALUE_Oblique: | 1450 case FDE_CSSPROPERTYVALUE_Oblique: |
| 1429 return FDE_CSSFONTSTYLE_Italic; | 1451 return FDE_CSSFONTSTYLE_Italic; |
| 1430 default: | 1452 default: |
| 1431 return FDE_CSSFONTSTYLE_Normal; | 1453 return FDE_CSSFONTSTYLE_Normal; |
| 1432 } | 1454 } |
| 1433 } | 1455 } |
| 1456 |
| 1434 FDE_CSSBORDERSTYLE CFDE_CSSStyleSelector::ToBorderStyle( | 1457 FDE_CSSBORDERSTYLE CFDE_CSSStyleSelector::ToBorderStyle( |
| 1435 FDE_CSSPROPERTYVALUE eValue) { | 1458 FDE_CSSPROPERTYVALUE eValue) { |
| 1436 switch (eValue) { | 1459 switch (eValue) { |
| 1437 case FDE_CSSPROPERTYVALUE_None: | 1460 case FDE_CSSPROPERTYVALUE_None: |
| 1438 return FDE_CSSBORDERSTYLE_None; | 1461 return FDE_CSSBORDERSTYLE_None; |
| 1439 case FDE_CSSPROPERTYVALUE_Solid: | 1462 case FDE_CSSPROPERTYVALUE_Solid: |
| 1440 return FDE_CSSBORDERSTYLE_Solid; | 1463 return FDE_CSSBORDERSTYLE_Solid; |
| 1441 case FDE_CSSPROPERTYVALUE_Hidden: | 1464 case FDE_CSSPROPERTYVALUE_Hidden: |
| 1442 return FDE_CSSBORDERSTYLE_Hidden; | 1465 return FDE_CSSBORDERSTYLE_Hidden; |
| 1443 case FDE_CSSPROPERTYVALUE_Dotted: | 1466 case FDE_CSSPROPERTYVALUE_Dotted: |
| 1444 return FDE_CSSBORDERSTYLE_Dotted; | 1467 return FDE_CSSBORDERSTYLE_Dotted; |
| 1445 case FDE_CSSPROPERTYVALUE_Dashed: | 1468 case FDE_CSSPROPERTYVALUE_Dashed: |
| 1446 return FDE_CSSBORDERSTYLE_Dashed; | 1469 return FDE_CSSBORDERSTYLE_Dashed; |
| 1447 case FDE_CSSPROPERTYVALUE_Double: | 1470 case FDE_CSSPROPERTYVALUE_Double: |
| 1448 return FDE_CSSBORDERSTYLE_Double; | 1471 return FDE_CSSBORDERSTYLE_Double; |
| 1449 case FDE_CSSPROPERTYVALUE_Groove: | 1472 case FDE_CSSPROPERTYVALUE_Groove: |
| 1450 return FDE_CSSBORDERSTYLE_Groove; | 1473 return FDE_CSSBORDERSTYLE_Groove; |
| 1451 case FDE_CSSPROPERTYVALUE_Ridge: | 1474 case FDE_CSSPROPERTYVALUE_Ridge: |
| 1452 return FDE_CSSBORDERSTYLE_Ridge; | 1475 return FDE_CSSBORDERSTYLE_Ridge; |
| 1453 case FDE_CSSPROPERTYVALUE_Inset: | 1476 case FDE_CSSPROPERTYVALUE_Inset: |
| 1454 return FDE_CSSBORDERSTYLE_Inset; | 1477 return FDE_CSSBORDERSTYLE_Inset; |
| 1455 case FDE_CSSPROPERTYVALUE_Outset: | 1478 case FDE_CSSPROPERTYVALUE_Outset: |
| 1456 return FDE_CSSBORDERSTYLE_outset; | 1479 return FDE_CSSBORDERSTYLE_outset; |
| 1457 default: | 1480 default: |
| 1458 return FDE_CSSBORDERSTYLE_None; | 1481 return FDE_CSSBORDERSTYLE_None; |
| 1459 } | 1482 } |
| 1460 } | 1483 } |
| 1484 |
| 1461 FX_BOOL CFDE_CSSStyleSelector::SetLengthWithPercent( | 1485 FX_BOOL CFDE_CSSStyleSelector::SetLengthWithPercent( |
| 1462 FDE_CSSLENGTH& width, | 1486 FDE_CSSLENGTH& width, |
| 1463 FDE_CSSPRIMITIVETYPE eType, | 1487 FDE_CSSPRIMITIVETYPE eType, |
| 1464 IFDE_CSSPrimitiveValue* pPrimitive, | 1488 IFDE_CSSPrimitiveValue* pPrimitive, |
| 1465 FX_FLOAT fFontSize) { | 1489 FX_FLOAT fFontSize) { |
| 1466 if (eType == FDE_CSSPRIMITIVETYPE_Percent) { | 1490 if (eType == FDE_CSSPRIMITIVETYPE_Percent) { |
| 1467 width.Set(FDE_CSSLENGTHUNIT_Percent, pPrimitive->GetFloat() / 100.0f); | 1491 width.Set(FDE_CSSLENGTHUNIT_Percent, pPrimitive->GetFloat() / 100.0f); |
| 1468 return width.NonZero(); | 1492 return width.NonZero(); |
| 1469 } else if (eType >= FDE_CSSPRIMITIVETYPE_Number && | 1493 } else if (eType >= FDE_CSSPRIMITIVETYPE_Number && |
| 1470 eType <= FDE_CSSPRIMITIVETYPE_PC) { | 1494 eType <= FDE_CSSPRIMITIVETYPE_PC) { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1487 return TRUE; | 1511 return TRUE; |
| 1488 case FDE_CSSPROPERTYVALUE_Thick: | 1512 case FDE_CSSPROPERTYVALUE_Thick: |
| 1489 width.Set(FDE_CSSLENGTHUNIT_Point, 4); | 1513 width.Set(FDE_CSSLENGTHUNIT_Point, 4); |
| 1490 return TRUE; | 1514 return TRUE; |
| 1491 default: | 1515 default: |
| 1492 return FALSE; | 1516 return FALSE; |
| 1493 } | 1517 } |
| 1494 } | 1518 } |
| 1495 return FALSE; | 1519 return FALSE; |
| 1496 } | 1520 } |
| 1521 |
| 1497 FX_FLOAT CFDE_CSSStyleSelector::ToFontSize(FDE_CSSPROPERTYVALUE eValue, | 1522 FX_FLOAT CFDE_CSSStyleSelector::ToFontSize(FDE_CSSPROPERTYVALUE eValue, |
| 1498 FX_FLOAT fCurFontSize) { | 1523 FX_FLOAT fCurFontSize) { |
| 1499 switch (eValue) { | 1524 switch (eValue) { |
| 1500 case FDE_CSSPROPERTYVALUE_XxSmall: | 1525 case FDE_CSSPROPERTYVALUE_XxSmall: |
| 1501 return m_fDefFontSize / 1.2f / 1.2f / 1.2f; | 1526 return m_fDefFontSize / 1.2f / 1.2f / 1.2f; |
| 1502 case FDE_CSSPROPERTYVALUE_XSmall: | 1527 case FDE_CSSPROPERTYVALUE_XSmall: |
| 1503 return m_fDefFontSize / 1.2f / 1.2f; | 1528 return m_fDefFontSize / 1.2f / 1.2f; |
| 1504 case FDE_CSSPROPERTYVALUE_Small: | 1529 case FDE_CSSPROPERTYVALUE_Small: |
| 1505 return m_fDefFontSize / 1.2f; | 1530 return m_fDefFontSize / 1.2f; |
| 1506 case FDE_CSSPROPERTYVALUE_Medium: | 1531 case FDE_CSSPROPERTYVALUE_Medium: |
| 1507 return m_fDefFontSize; | 1532 return m_fDefFontSize; |
| 1508 case FDE_CSSPROPERTYVALUE_Large: | 1533 case FDE_CSSPROPERTYVALUE_Large: |
| 1509 return m_fDefFontSize * 1.2f; | 1534 return m_fDefFontSize * 1.2f; |
| 1510 case FDE_CSSPROPERTYVALUE_XLarge: | 1535 case FDE_CSSPROPERTYVALUE_XLarge: |
| 1511 return m_fDefFontSize * 1.2f * 1.2f; | 1536 return m_fDefFontSize * 1.2f * 1.2f; |
| 1512 case FDE_CSSPROPERTYVALUE_XxLarge: | 1537 case FDE_CSSPROPERTYVALUE_XxLarge: |
| 1513 return m_fDefFontSize * 1.2f * 1.2f * 1.2f; | 1538 return m_fDefFontSize * 1.2f * 1.2f * 1.2f; |
| 1514 case FDE_CSSPROPERTYVALUE_Larger: | 1539 case FDE_CSSPROPERTYVALUE_Larger: |
| 1515 return fCurFontSize * 1.2f; | 1540 return fCurFontSize * 1.2f; |
| 1516 case FDE_CSSPROPERTYVALUE_Smaller: | 1541 case FDE_CSSPROPERTYVALUE_Smaller: |
| 1517 return fCurFontSize / 1.2f; | 1542 return fCurFontSize / 1.2f; |
| 1518 default: | 1543 default: |
| 1519 return fCurFontSize; | 1544 return fCurFontSize; |
| 1520 } | 1545 } |
| 1521 } | 1546 } |
| 1547 |
| 1522 FDE_CSSVERTICALALIGN CFDE_CSSStyleSelector::ToVerticalAlign( | 1548 FDE_CSSVERTICALALIGN CFDE_CSSStyleSelector::ToVerticalAlign( |
| 1523 FDE_CSSPROPERTYVALUE eValue) { | 1549 FDE_CSSPROPERTYVALUE eValue) { |
| 1524 switch (eValue) { | 1550 switch (eValue) { |
| 1525 case FDE_CSSPROPERTYVALUE_Baseline: | 1551 case FDE_CSSPROPERTYVALUE_Baseline: |
| 1526 return FDE_CSSVERTICALALIGN_Baseline; | 1552 return FDE_CSSVERTICALALIGN_Baseline; |
| 1527 case FDE_CSSPROPERTYVALUE_Middle: | 1553 case FDE_CSSPROPERTYVALUE_Middle: |
| 1528 return FDE_CSSVERTICALALIGN_Middle; | 1554 return FDE_CSSVERTICALALIGN_Middle; |
| 1529 case FDE_CSSPROPERTYVALUE_Bottom: | 1555 case FDE_CSSPROPERTYVALUE_Bottom: |
| 1530 return FDE_CSSVERTICALALIGN_Bottom; | 1556 return FDE_CSSVERTICALALIGN_Bottom; |
| 1531 case FDE_CSSPROPERTYVALUE_Super: | 1557 case FDE_CSSPROPERTYVALUE_Super: |
| 1532 return FDE_CSSVERTICALALIGN_Super; | 1558 return FDE_CSSVERTICALALIGN_Super; |
| 1533 case FDE_CSSPROPERTYVALUE_Sub: | 1559 case FDE_CSSPROPERTYVALUE_Sub: |
| 1534 return FDE_CSSVERTICALALIGN_Sub; | 1560 return FDE_CSSVERTICALALIGN_Sub; |
| 1535 case FDE_CSSPROPERTYVALUE_Top: | 1561 case FDE_CSSPROPERTYVALUE_Top: |
| 1536 return FDE_CSSVERTICALALIGN_Top; | 1562 return FDE_CSSVERTICALALIGN_Top; |
| 1537 case FDE_CSSPROPERTYVALUE_TextTop: | 1563 case FDE_CSSPROPERTYVALUE_TextTop: |
| 1538 return FDE_CSSVERTICALALIGN_TextTop; | 1564 return FDE_CSSVERTICALALIGN_TextTop; |
| 1539 case FDE_CSSPROPERTYVALUE_TextBottom: | 1565 case FDE_CSSPROPERTYVALUE_TextBottom: |
| 1540 return FDE_CSSVERTICALALIGN_TextBottom; | 1566 return FDE_CSSVERTICALALIGN_TextBottom; |
| 1541 default: | 1567 default: |
| 1542 return FDE_CSSVERTICALALIGN_Baseline; | 1568 return FDE_CSSVERTICALALIGN_Baseline; |
| 1543 } | 1569 } |
| 1544 } | 1570 } |
| 1571 |
| 1545 FDE_CSSLISTSTYLETYPE CFDE_CSSStyleSelector::ToListStyleType( | 1572 FDE_CSSLISTSTYLETYPE CFDE_CSSStyleSelector::ToListStyleType( |
| 1546 FDE_CSSPROPERTYVALUE eValue) { | 1573 FDE_CSSPROPERTYVALUE eValue) { |
| 1547 switch (eValue) { | 1574 switch (eValue) { |
| 1548 case FDE_CSSPROPERTYVALUE_None: | 1575 case FDE_CSSPROPERTYVALUE_None: |
| 1549 return FDE_CSSLISTSTYLETYPE_None; | 1576 return FDE_CSSLISTSTYLETYPE_None; |
| 1550 case FDE_CSSPROPERTYVALUE_Disc: | 1577 case FDE_CSSPROPERTYVALUE_Disc: |
| 1551 return FDE_CSSLISTSTYLETYPE_Disc; | 1578 return FDE_CSSLISTSTYLETYPE_Disc; |
| 1552 case FDE_CSSPROPERTYVALUE_Circle: | 1579 case FDE_CSSPROPERTYVALUE_Circle: |
| 1553 return FDE_CSSLISTSTYLETYPE_Circle; | 1580 return FDE_CSSLISTSTYLETYPE_Circle; |
| 1554 case FDE_CSSPROPERTYVALUE_Square: | 1581 case FDE_CSSPROPERTYVALUE_Square: |
| (...skipping 29 matching lines...) Expand all Loading... |
| 1584 case FDE_CSSLISTSTYLETYPE_HiraganaIroha: | 1611 case FDE_CSSLISTSTYLETYPE_HiraganaIroha: |
| 1585 return FDE_CSSLISTSTYLETYPE_HiraganaIroha; | 1612 return FDE_CSSLISTSTYLETYPE_HiraganaIroha; |
| 1586 case FDE_CSSLISTSTYLETYPE_Katakana: | 1613 case FDE_CSSLISTSTYLETYPE_Katakana: |
| 1587 return FDE_CSSLISTSTYLETYPE_Katakana; | 1614 return FDE_CSSLISTSTYLETYPE_Katakana; |
| 1588 case FDE_CSSLISTSTYLETYPE_KatakanaIroha: | 1615 case FDE_CSSLISTSTYLETYPE_KatakanaIroha: |
| 1589 return FDE_CSSLISTSTYLETYPE_KatakanaIroha; | 1616 return FDE_CSSLISTSTYLETYPE_KatakanaIroha; |
| 1590 default: | 1617 default: |
| 1591 return FDE_CSSLISTSTYLETYPE_Disc; | 1618 return FDE_CSSLISTSTYLETYPE_Disc; |
| 1592 } | 1619 } |
| 1593 } | 1620 } |
| 1621 |
| 1594 FDE_CSSLISTSTYLEPOSITION CFDE_CSSStyleSelector::ToListStylePosition( | 1622 FDE_CSSLISTSTYLEPOSITION CFDE_CSSStyleSelector::ToListStylePosition( |
| 1595 FDE_CSSPROPERTYVALUE eValue) { | 1623 FDE_CSSPROPERTYVALUE eValue) { |
| 1596 return eValue == FDE_CSSPROPERTYVALUE_Inside | 1624 return eValue == FDE_CSSPROPERTYVALUE_Inside |
| 1597 ? FDE_CSSLISTSTYLEPOSITION_Inside | 1625 ? FDE_CSSLISTSTYLEPOSITION_Inside |
| 1598 : FDE_CSSLISTSTYLEPOSITION_Outside; | 1626 : FDE_CSSLISTSTYLEPOSITION_Outside; |
| 1599 } | 1627 } |
| 1628 |
| 1600 FDE_CSSVISIBILITY CFDE_CSSStyleSelector::ToVisibility( | 1629 FDE_CSSVISIBILITY CFDE_CSSStyleSelector::ToVisibility( |
| 1601 FDE_CSSPROPERTYVALUE eValue) { | 1630 FDE_CSSPROPERTYVALUE eValue) { |
| 1602 switch (eValue) { | 1631 switch (eValue) { |
| 1603 case FDE_CSSPROPERTYVALUE_Visible: | 1632 case FDE_CSSPROPERTYVALUE_Visible: |
| 1604 return FDE_CSSVISIBILITY_Visible; | 1633 return FDE_CSSVISIBILITY_Visible; |
| 1605 case FDE_CSSPROPERTYVALUE_Hidden: | 1634 case FDE_CSSPROPERTYVALUE_Hidden: |
| 1606 return FDE_CSSVISIBILITY_Hidden; | 1635 return FDE_CSSVISIBILITY_Hidden; |
| 1607 case FDE_CSSPROPERTYVALUE_Collapse: | 1636 case FDE_CSSPROPERTYVALUE_Collapse: |
| 1608 return FDE_CSSVISIBILITY_Collapse; | 1637 return FDE_CSSVISIBILITY_Collapse; |
| 1609 default: | 1638 default: |
| 1610 return FDE_CSSVISIBILITY_Visible; | 1639 return FDE_CSSVISIBILITY_Visible; |
| 1611 } | 1640 } |
| 1612 } | 1641 } |
| 1642 |
| 1613 FDE_CSSWHITESPACE CFDE_CSSStyleSelector::ToWhiteSpace( | 1643 FDE_CSSWHITESPACE CFDE_CSSStyleSelector::ToWhiteSpace( |
| 1614 FDE_CSSPROPERTYVALUE eValue) { | 1644 FDE_CSSPROPERTYVALUE eValue) { |
| 1615 switch (eValue) { | 1645 switch (eValue) { |
| 1616 case FDE_CSSPROPERTYVALUE_Normal: | 1646 case FDE_CSSPROPERTYVALUE_Normal: |
| 1617 return FDE_CSSWHITESPACE_Normal; | 1647 return FDE_CSSWHITESPACE_Normal; |
| 1618 case FDE_CSSPROPERTYVALUE_Pre: | 1648 case FDE_CSSPROPERTYVALUE_Pre: |
| 1619 return FDE_CSSWHITESPACE_Pre; | 1649 return FDE_CSSWHITESPACE_Pre; |
| 1620 case FDE_CSSPROPERTYVALUE_Nowrap: | 1650 case FDE_CSSPROPERTYVALUE_Nowrap: |
| 1621 return FDE_CSSWHITESPACE_Nowrap; | 1651 return FDE_CSSWHITESPACE_Nowrap; |
| 1622 case FDE_CSSPROPERTYVALUE_PreWrap: | 1652 case FDE_CSSPROPERTYVALUE_PreWrap: |
| 1623 return FDE_CSSWHITESPACE_PreWrap; | 1653 return FDE_CSSWHITESPACE_PreWrap; |
| 1624 case FDE_CSSPROPERTYVALUE_PreLine: | 1654 case FDE_CSSPROPERTYVALUE_PreLine: |
| 1625 return FDE_CSSWHITESPACE_PreLine; | 1655 return FDE_CSSWHITESPACE_PreLine; |
| 1626 default: | 1656 default: |
| 1627 return FDE_CSSWHITESPACE_Normal; | 1657 return FDE_CSSWHITESPACE_Normal; |
| 1628 } | 1658 } |
| 1629 } | 1659 } |
| 1660 |
| 1630 uint32_t CFDE_CSSStyleSelector::ToTextDecoration(IFDE_CSSValueList* pValue) { | 1661 uint32_t CFDE_CSSStyleSelector::ToTextDecoration(IFDE_CSSValueList* pValue) { |
| 1631 uint32_t dwDecoration = 0; | 1662 uint32_t dwDecoration = 0; |
| 1632 for (int32_t i = pValue->CountValues() - 1; i >= 0; --i) { | 1663 for (int32_t i = pValue->CountValues() - 1; i >= 0; --i) { |
| 1633 IFDE_CSSPrimitiveValue* pPrimitive = | 1664 IFDE_CSSPrimitiveValue* pPrimitive = |
| 1634 static_cast<IFDE_CSSPrimitiveValue*>(pValue->GetValue(i)); | 1665 static_cast<IFDE_CSSPrimitiveValue*>(pValue->GetValue(i)); |
| 1635 if (pPrimitive->GetPrimitiveType() == FDE_CSSPRIMITIVETYPE_Enum) { | 1666 if (pPrimitive->GetPrimitiveType() == FDE_CSSPRIMITIVETYPE_Enum) { |
| 1636 switch (pPrimitive->GetEnum()) { | 1667 switch (pPrimitive->GetEnum()) { |
| 1637 case FDE_CSSPROPERTYVALUE_Underline: | 1668 case FDE_CSSPROPERTYVALUE_Underline: |
| 1638 dwDecoration |= FDE_CSSTEXTDECORATION_Underline; | 1669 dwDecoration |= FDE_CSSTEXTDECORATION_Underline; |
| 1639 break; | 1670 break; |
| 1640 case FDE_CSSPROPERTYVALUE_LineThrough: | 1671 case FDE_CSSPROPERTYVALUE_LineThrough: |
| 1641 dwDecoration |= FDE_CSSTEXTDECORATION_LineThrough; | 1672 dwDecoration |= FDE_CSSTEXTDECORATION_LineThrough; |
| 1642 break; | 1673 break; |
| 1643 case FDE_CSSPROPERTYVALUE_Overline: | 1674 case FDE_CSSPROPERTYVALUE_Overline: |
| 1644 dwDecoration |= FDE_CSSTEXTDECORATION_Overline; | 1675 dwDecoration |= FDE_CSSTEXTDECORATION_Overline; |
| 1645 break; | 1676 break; |
| 1646 case FDE_CSSPROPERTYVALUE_Blink: | 1677 case FDE_CSSPROPERTYVALUE_Blink: |
| 1647 dwDecoration |= FDE_CSSTEXTDECORATION_Blink; | 1678 dwDecoration |= FDE_CSSTEXTDECORATION_Blink; |
| 1648 break; | 1679 break; |
| 1649 case FDE_CSSPROPERTYVALUE_Double: | 1680 case FDE_CSSPROPERTYVALUE_Double: |
| 1650 dwDecoration |= FDE_CSSTEXTDECORATION_Double; | 1681 dwDecoration |= FDE_CSSTEXTDECORATION_Double; |
| 1651 break; | 1682 break; |
| 1652 default: | 1683 default: |
| 1653 break; | 1684 break; |
| 1654 } | 1685 } |
| 1655 } | 1686 } |
| 1656 } | 1687 } |
| 1657 return dwDecoration; | 1688 return dwDecoration; |
| 1658 } | 1689 } |
| 1690 |
| 1659 FDE_CSSTEXTTRANSFORM CFDE_CSSStyleSelector::ToTextTransform( | 1691 FDE_CSSTEXTTRANSFORM CFDE_CSSStyleSelector::ToTextTransform( |
| 1660 FDE_CSSPROPERTYVALUE eValue) { | 1692 FDE_CSSPROPERTYVALUE eValue) { |
| 1661 switch (eValue) { | 1693 switch (eValue) { |
| 1662 case FDE_CSSPROPERTYVALUE_None: | 1694 case FDE_CSSPROPERTYVALUE_None: |
| 1663 return FDE_CSSTEXTTRANSFORM_None; | 1695 return FDE_CSSTEXTTRANSFORM_None; |
| 1664 case FDE_CSSPROPERTYVALUE_Capitalize: | 1696 case FDE_CSSPROPERTYVALUE_Capitalize: |
| 1665 return FDE_CSSTEXTTRANSFORM_Capitalize; | 1697 return FDE_CSSTEXTTRANSFORM_Capitalize; |
| 1666 case FDE_CSSPROPERTYVALUE_Uppercase: | 1698 case FDE_CSSPROPERTYVALUE_Uppercase: |
| 1667 return FDE_CSSTEXTTRANSFORM_UpperCase; | 1699 return FDE_CSSTEXTTRANSFORM_UpperCase; |
| 1668 case FDE_CSSPROPERTYVALUE_Lowercase: | 1700 case FDE_CSSPROPERTYVALUE_Lowercase: |
| 1669 return FDE_CSSTEXTTRANSFORM_LowerCase; | 1701 return FDE_CSSTEXTTRANSFORM_LowerCase; |
| 1670 default: | 1702 default: |
| 1671 return FDE_CSSTEXTTRANSFORM_None; | 1703 return FDE_CSSTEXTTRANSFORM_None; |
| 1672 } | 1704 } |
| 1673 } | 1705 } |
| 1706 |
| 1674 FDE_CSSFONTVARIANT CFDE_CSSStyleSelector::ToFontVariant( | 1707 FDE_CSSFONTVARIANT CFDE_CSSStyleSelector::ToFontVariant( |
| 1675 FDE_CSSPROPERTYVALUE eValue) { | 1708 FDE_CSSPROPERTYVALUE eValue) { |
| 1676 return eValue == FDE_CSSPROPERTYVALUE_SmallCaps ? FDE_CSSFONTVARIANT_SmallCaps | 1709 return eValue == FDE_CSSPROPERTYVALUE_SmallCaps ? FDE_CSSFONTVARIANT_SmallCaps |
| 1677 : FDE_CSSFONTVARIANT_Normal; | 1710 : FDE_CSSFONTVARIANT_Normal; |
| 1678 } | 1711 } |
| 1679 | 1712 |
| 1680 CFDE_CSSComputedStyle::CFDE_CSSComputedStyle(IFX_MemoryAllocator* pAlloc) | 1713 CFDE_CSSComputedStyle::CFDE_CSSComputedStyle(IFX_MemoryAllocator* pAlloc) |
| 1681 : m_dwRefCount(1), m_pAllocator(pAlloc) {} | 1714 : m_dwRefCount(1), m_pAllocator(pAlloc) {} |
| 1682 | 1715 |
| 1683 CFDE_CSSComputedStyle::~CFDE_CSSComputedStyle() {} | 1716 CFDE_CSSComputedStyle::~CFDE_CSSComputedStyle() {} |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1899 m_MaxBoxSize.Set(FDE_CSSLENGTHUNIT_None); | 1932 m_MaxBoxSize.Set(FDE_CSSLENGTHUNIT_None); |
| 1900 m_eDisplay = FDE_CSSDISPLAY_Inline; | 1933 m_eDisplay = FDE_CSSDISPLAY_Inline; |
| 1901 m_fVerticalAlign = 0.0f; | 1934 m_fVerticalAlign = 0.0f; |
| 1902 m_ColumnCount.Set(FDE_CSSLENGTHUNIT_Auto); | 1935 m_ColumnCount.Set(FDE_CSSLENGTHUNIT_Auto); |
| 1903 m_ColumnGap.Set(FDE_CSSLENGTHUNIT_Normal); | 1936 m_ColumnGap.Set(FDE_CSSLENGTHUNIT_Normal); |
| 1904 m_bColumnRuleColorSame = TRUE; | 1937 m_bColumnRuleColorSame = TRUE; |
| 1905 m_ColumnWidth.Set(FDE_CSSLENGTHUNIT_Auto); | 1938 m_ColumnWidth.Set(FDE_CSSLENGTHUNIT_Auto); |
| 1906 m_ColumnRuleWidth.Set(FDE_CSSLENGTHUNIT_Auto); | 1939 m_ColumnRuleWidth.Set(FDE_CSSLENGTHUNIT_Auto); |
| 1907 m_eTextCombine = FDE_CSSTEXTCOMBINE_None; | 1940 m_eTextCombine = FDE_CSSTEXTCOMBINE_None; |
| 1908 } | 1941 } |
| OLD | NEW |