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

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

Issue 2208423002: Use smart pointers for class owned pointers under xfa/fde (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: more fixes Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "xfa/fde/css/fde_cssstyleselector.h" 7 #include "xfa/fde/css/fde_cssstyleselector.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #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
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
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
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
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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698