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

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

Powered by Google App Engine
This is Rietveld 408576698