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