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

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

Issue 2031873003: Get rid of NULLs in xfa/ (Closed) Base URL: https://pdfium.googlesource.com/pdfium@nullptr_fpdfsdk
Patch Set: Created 4 years, 6 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_cssdatatable.cpp ('k') | xfa/fde/css/fde_cssstyleselector.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_cssdeclaration.h" 7 #include "xfa/fde/css/fde_cssdeclaration.h"
8 8
9 #include "core/fxcrt/include/fx_ext.h" 9 #include "core/fxcrt/include/fx_ext.h"
10 #include "xfa/fgas/crt/fgas_system.h" 10 #include "xfa/fgas/crt/fgas_system.h"
11 11
12 IFDE_CSSValue* CFDE_CSSDeclaration::GetProperty(FDE_CSSPROPERTY eProperty, 12 IFDE_CSSValue* CFDE_CSSDeclaration::GetProperty(FDE_CSSPROPERTY eProperty,
13 FX_BOOL& bImportant) const { 13 FX_BOOL& bImportant) const {
14 for (const FDE_CSSPropertyHolder* pHolder = m_pFirstProperty; pHolder; 14 for (const FDE_CSSPropertyHolder* pHolder = m_pFirstProperty; pHolder;
15 pHolder = pHolder->pNext) { 15 pHolder = pHolder->pNext) {
16 if (pHolder->eProperty == eProperty) { 16 if (pHolder->eProperty == eProperty) {
17 bImportant = pHolder->bImportant; 17 bImportant = pHolder->bImportant;
18 return pHolder->pValue; 18 return pHolder->pValue;
19 } 19 }
20 } 20 }
21 return NULL; 21 return nullptr;
22 } 22 }
23 FX_POSITION CFDE_CSSDeclaration::GetStartPosition() const { 23 FX_POSITION CFDE_CSSDeclaration::GetStartPosition() const {
24 return (FX_POSITION)m_pFirstProperty; 24 return (FX_POSITION)m_pFirstProperty;
25 } 25 }
26 void CFDE_CSSDeclaration::GetNextProperty(FX_POSITION& pos, 26 void CFDE_CSSDeclaration::GetNextProperty(FX_POSITION& pos,
27 FDE_CSSPROPERTY& eProperty, 27 FDE_CSSPROPERTY& eProperty,
28 IFDE_CSSValue*& pValue, 28 IFDE_CSSValue*& pValue,
29 FX_BOOL& bImportant) const { 29 FX_BOOL& bImportant) const {
30 const FDE_CSSPropertyHolder* pHolder = (const FDE_CSSPropertyHolder*)pos; 30 const FDE_CSSPropertyHolder* pHolder = (const FDE_CSSPropertyHolder*)pos;
31 ASSERT(pHolder != NULL);
32 bImportant = pHolder->bImportant; 31 bImportant = pHolder->bImportant;
33 eProperty = (FDE_CSSPROPERTY)pHolder->eProperty; 32 eProperty = (FDE_CSSPROPERTY)pHolder->eProperty;
34 pValue = pHolder->pValue; 33 pValue = pHolder->pValue;
35 pos = (FX_POSITION)pHolder->pNext; 34 pos = (FX_POSITION)pHolder->pNext;
36 } 35 }
37 FX_POSITION CFDE_CSSDeclaration::GetStartCustom() const { 36 FX_POSITION CFDE_CSSDeclaration::GetStartCustom() const {
38 return (FX_POSITION)m_pFirstCustom; 37 return (FX_POSITION)m_pFirstCustom;
39 } 38 }
40 void CFDE_CSSDeclaration::GetNextCustom(FX_POSITION& pos, 39 void CFDE_CSSDeclaration::GetNextCustom(FX_POSITION& pos,
41 CFX_WideString& wsName, 40 CFX_WideString& wsName,
42 CFX_WideString& wsValue) const { 41 CFX_WideString& wsValue) const {
43 const FDE_CSSCustomProperty* pProperty = (const FDE_CSSCustomProperty*)pos; 42 const FDE_CSSCustomProperty* pProperty = (const FDE_CSSCustomProperty*)pos;
44 if (pProperty == NULL) { 43 if (!pProperty)
45 return; 44 return;
46 } 45
47 wsName = pProperty->pwsName; 46 wsName = pProperty->pwsName;
48 wsValue = pProperty->pwsValue; 47 wsValue = pProperty->pwsValue;
49 pos = (FX_POSITION)pProperty->pNext; 48 pos = (FX_POSITION)pProperty->pNext;
50 } 49 }
51 const FX_WCHAR* CFDE_CSSDeclaration::CopyToLocal( 50 const FX_WCHAR* CFDE_CSSDeclaration::CopyToLocal(
52 const FDE_CSSPROPERTYARGS* pArgs, 51 const FDE_CSSPROPERTYARGS* pArgs,
53 const FX_WCHAR* pszValue, 52 const FX_WCHAR* pszValue,
54 int32_t iValueLen) { 53 int32_t iValueLen) {
55 ASSERT(iValueLen > 0); 54 ASSERT(iValueLen > 0);
56 std::unordered_map<uint32_t, FX_WCHAR*>* pCache = pArgs->pStringCache; 55 std::unordered_map<uint32_t, FX_WCHAR*>* pCache = pArgs->pStringCache;
(...skipping 30 matching lines...) Expand all
87 } 86 }
88 void CFDE_CSSDeclaration::AddPropertyHolder(IFX_MemoryAllocator* pStaticStore, 87 void CFDE_CSSDeclaration::AddPropertyHolder(IFX_MemoryAllocator* pStaticStore,
89 FDE_CSSPROPERTY eProperty, 88 FDE_CSSPROPERTY eProperty,
90 IFDE_CSSValue* pValue, 89 IFDE_CSSValue* pValue,
91 FX_BOOL bImportant) { 90 FX_BOOL bImportant) {
92 FDE_CSSPropertyHolder* pHolder = 91 FDE_CSSPropertyHolder* pHolder =
93 FXTARGET_NewWith(pStaticStore) FDE_CSSPropertyHolder; 92 FXTARGET_NewWith(pStaticStore) FDE_CSSPropertyHolder;
94 pHolder->bImportant = bImportant; 93 pHolder->bImportant = bImportant;
95 pHolder->eProperty = eProperty; 94 pHolder->eProperty = eProperty;
96 pHolder->pValue = pValue; 95 pHolder->pValue = pValue;
97 pHolder->pNext = NULL; 96 pHolder->pNext = nullptr;
98 if (m_pLastProperty == NULL) { 97 if (m_pLastProperty)
99 m_pLastProperty = m_pFirstProperty = pHolder;
100 } else {
101 m_pLastProperty->pNext = pHolder; 98 m_pLastProperty->pNext = pHolder;
102 m_pLastProperty = pHolder; 99 else
103 } 100 m_pFirstProperty = pHolder;
101 m_pLastProperty = pHolder;
104 } 102 }
105 FX_BOOL CFDE_CSSDeclaration::AddProperty(const FDE_CSSPROPERTYARGS* pArgs, 103 FX_BOOL CFDE_CSSDeclaration::AddProperty(const FDE_CSSPROPERTYARGS* pArgs,
106 const FX_WCHAR* pszValue, 104 const FX_WCHAR* pszValue,
107 int32_t iValueLen) { 105 int32_t iValueLen) {
108 ASSERT(iValueLen > 0); 106 ASSERT(iValueLen > 0);
109 FX_BOOL bImportant = FALSE; 107 FX_BOOL bImportant = FALSE;
110 if (iValueLen >= 10 && pszValue[iValueLen - 10] == '!' && 108 if (iValueLen >= 10 && pszValue[iValueLen - 10] == '!' &&
111 FX_wcsnicmp(L"important", pszValue + iValueLen - 9, 9) == 0) { 109 FX_wcsnicmp(L"important", pszValue + iValueLen - 9, 9) == 0) {
112 if ((iValueLen -= 10) == 0) { 110 if ((iValueLen -= 10) == 0) {
113 return FALSE; 111 return FALSE;
114 } 112 }
115 bImportant = TRUE; 113 bImportant = TRUE;
116 } 114 }
117 const uint32_t dwType = pArgs->pProperty->dwType; 115 const uint32_t dwType = pArgs->pProperty->dwType;
118 switch (dwType & 0x0F) { 116 switch (dwType & 0x0F) {
119 case FDE_CSSVALUETYPE_Primitive: { 117 case FDE_CSSVALUETYPE_Primitive: {
120 static const uint32_t g_ValueGuessOrder[] = { 118 static const uint32_t g_ValueGuessOrder[] = {
121 FDE_CSSVALUETYPE_MaybeNumber, FDE_CSSVALUETYPE_MaybeEnum, 119 FDE_CSSVALUETYPE_MaybeNumber, FDE_CSSVALUETYPE_MaybeEnum,
122 FDE_CSSVALUETYPE_MaybeColor, FDE_CSSVALUETYPE_MaybeURI, 120 FDE_CSSVALUETYPE_MaybeColor, FDE_CSSVALUETYPE_MaybeURI,
123 FDE_CSSVALUETYPE_MaybeFunction, FDE_CSSVALUETYPE_MaybeString, 121 FDE_CSSVALUETYPE_MaybeFunction, FDE_CSSVALUETYPE_MaybeString,
124 }; 122 };
125 static const int32_t g_ValueGuessCount = 123 static const int32_t g_ValueGuessCount =
126 sizeof(g_ValueGuessOrder) / sizeof(uint32_t); 124 sizeof(g_ValueGuessOrder) / sizeof(uint32_t);
127 for (int32_t i = 0; i < g_ValueGuessCount; ++i) { 125 for (int32_t i = 0; i < g_ValueGuessCount; ++i) {
128 const uint32_t dwMatch = dwType & g_ValueGuessOrder[i]; 126 const uint32_t dwMatch = dwType & g_ValueGuessOrder[i];
129 if (dwMatch == 0) { 127 if (dwMatch == 0) {
130 continue; 128 continue;
131 } 129 }
132 IFDE_CSSValue* pCSSValue = NULL; 130 IFDE_CSSValue* pCSSValue = nullptr;
133 switch (dwMatch) { 131 switch (dwMatch) {
134 case FDE_CSSVALUETYPE_MaybeFunction: 132 case FDE_CSSVALUETYPE_MaybeFunction:
135 pCSSValue = ParseFunction(pArgs, pszValue, iValueLen); 133 pCSSValue = ParseFunction(pArgs, pszValue, iValueLen);
136 break; 134 break;
137 case FDE_CSSVALUETYPE_MaybeNumber: 135 case FDE_CSSVALUETYPE_MaybeNumber:
138 pCSSValue = ParseNumber(pArgs, pszValue, iValueLen); 136 pCSSValue = ParseNumber(pArgs, pszValue, iValueLen);
139 break; 137 break;
140 case FDE_CSSVALUETYPE_MaybeEnum: 138 case FDE_CSSVALUETYPE_MaybeEnum:
141 pCSSValue = ParseEnum(pArgs, pszValue, iValueLen); 139 pCSSValue = ParseEnum(pArgs, pszValue, iValueLen);
142 break; 140 break;
143 case FDE_CSSVALUETYPE_MaybeColor: 141 case FDE_CSSVALUETYPE_MaybeColor:
144 pCSSValue = ParseColor(pArgs, pszValue, iValueLen); 142 pCSSValue = ParseColor(pArgs, pszValue, iValueLen);
145 break; 143 break;
146 case FDE_CSSVALUETYPE_MaybeURI: 144 case FDE_CSSVALUETYPE_MaybeURI:
147 pCSSValue = ParseURI(pArgs, pszValue, iValueLen); 145 pCSSValue = ParseURI(pArgs, pszValue, iValueLen);
148 break; 146 break;
149 case FDE_CSSVALUETYPE_MaybeString: 147 case FDE_CSSVALUETYPE_MaybeString:
150 pCSSValue = ParseString(pArgs, pszValue, iValueLen); 148 pCSSValue = ParseString(pArgs, pszValue, iValueLen);
151 break; 149 break;
152 default: 150 default:
153 break; 151 break;
154 } 152 }
155 if (pCSSValue != NULL) { 153 if (pCSSValue) {
156 AddPropertyHolder(pArgs->pStaticStore, pArgs->pProperty->eName, 154 AddPropertyHolder(pArgs->pStaticStore, pArgs->pProperty->eName,
157 pCSSValue, bImportant); 155 pCSSValue, bImportant);
158 return TRUE; 156 return TRUE;
159 } 157 }
160 if (FDE_IsOnlyValue(dwType, g_ValueGuessOrder[i])) { 158 if (FDE_IsOnlyValue(dwType, g_ValueGuessOrder[i])) {
161 return FALSE; 159 return FALSE;
162 } 160 }
163 } 161 }
164 } break; 162 } break;
165 case FDE_CSSVALUETYPE_Shorthand: { 163 case FDE_CSSVALUETYPE_Shorthand: {
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 } 260 }
263 FX_BOOL CFDE_CSSDeclaration::AddProperty(const FDE_CSSPROPERTYARGS* pArgs, 261 FX_BOOL CFDE_CSSDeclaration::AddProperty(const FDE_CSSPROPERTYARGS* pArgs,
264 const FX_WCHAR* pszName, 262 const FX_WCHAR* pszName,
265 int32_t iNameLen, 263 int32_t iNameLen,
266 const FX_WCHAR* pszValue, 264 const FX_WCHAR* pszValue,
267 int32_t iValueLen) { 265 int32_t iValueLen) {
268 FDE_CSSCustomProperty* pProperty = 266 FDE_CSSCustomProperty* pProperty =
269 FXTARGET_NewWith(pArgs->pStaticStore) FDE_CSSCustomProperty; 267 FXTARGET_NewWith(pArgs->pStaticStore) FDE_CSSCustomProperty;
270 pProperty->pwsName = CopyToLocal(pArgs, pszName, iNameLen); 268 pProperty->pwsName = CopyToLocal(pArgs, pszName, iNameLen);
271 pProperty->pwsValue = CopyToLocal(pArgs, pszValue, iValueLen); 269 pProperty->pwsValue = CopyToLocal(pArgs, pszValue, iValueLen);
272 pProperty->pNext = NULL; 270 pProperty->pNext = nullptr;
273 if (m_pLastCustom == NULL) { 271 if (m_pLastCustom)
274 m_pLastCustom = m_pFirstCustom = pProperty;
275 } else {
276 m_pLastCustom->pNext = pProperty; 272 m_pLastCustom->pNext = pProperty;
277 m_pLastCustom = pProperty; 273 else
278 } 274 m_pFirstCustom = pProperty;
275 m_pLastCustom = pProperty;
279 return TRUE; 276 return TRUE;
280 } 277 }
281 IFDE_CSSValue* CFDE_CSSDeclaration::ParseNumber( 278 IFDE_CSSValue* CFDE_CSSDeclaration::ParseNumber(
282 const FDE_CSSPROPERTYARGS* pArgs, 279 const FDE_CSSPROPERTYARGS* pArgs,
283 const FX_WCHAR* pszValue, 280 const FX_WCHAR* pszValue,
284 int32_t iValueLen) { 281 int32_t iValueLen) {
285 FX_FLOAT fValue; 282 FX_FLOAT fValue;
286 FDE_CSSPRIMITIVETYPE eUnit; 283 FDE_CSSPRIMITIVETYPE eUnit;
287 if (!FDE_ParseCSSNumber(pszValue, iValueLen, fValue, eUnit)) { 284 if (!FDE_ParseCSSNumber(pszValue, iValueLen, fValue, eUnit)) {
288 return NULL; 285 return nullptr;
289 } 286 }
290 return NewNumberValue(pArgs->pStaticStore, eUnit, fValue); 287 return NewNumberValue(pArgs->pStaticStore, eUnit, fValue);
291 } 288 }
292 IFDE_CSSValue* CFDE_CSSDeclaration::ParseEnum(const FDE_CSSPROPERTYARGS* pArgs, 289 IFDE_CSSValue* CFDE_CSSDeclaration::ParseEnum(const FDE_CSSPROPERTYARGS* pArgs,
293 const FX_WCHAR* pszValue, 290 const FX_WCHAR* pszValue,
294 int32_t iValueLen) { 291 int32_t iValueLen) {
295 const FDE_CSSPROPERTYVALUETABLE* pValue = 292 const FDE_CSSPROPERTYVALUETABLE* pValue =
296 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 293 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
297 return pValue ? NewEnumValue(pArgs->pStaticStore, pValue->eName) : NULL; 294 return pValue ? NewEnumValue(pArgs->pStaticStore, pValue->eName) : nullptr;
298 } 295 }
299 IFDE_CSSValue* CFDE_CSSDeclaration::ParseColor(const FDE_CSSPROPERTYARGS* pArgs, 296 IFDE_CSSValue* CFDE_CSSDeclaration::ParseColor(const FDE_CSSPROPERTYARGS* pArgs,
300 const FX_WCHAR* pszValue, 297 const FX_WCHAR* pszValue,
301 int32_t iValueLen) { 298 int32_t iValueLen) {
302 FX_ARGB dwColor; 299 FX_ARGB dwColor;
303 if (!FDE_ParseCSSColor(pszValue, iValueLen, dwColor)) { 300 if (!FDE_ParseCSSColor(pszValue, iValueLen, dwColor)) {
304 return NULL; 301 return nullptr;
305 } 302 }
306 return FXTARGET_NewWith(pArgs->pStaticStore) CFDE_CSSPrimitiveValue(dwColor); 303 return FXTARGET_NewWith(pArgs->pStaticStore) CFDE_CSSPrimitiveValue(dwColor);
307 } 304 }
308 IFDE_CSSValue* CFDE_CSSDeclaration::ParseURI(const FDE_CSSPROPERTYARGS* pArgs, 305 IFDE_CSSValue* CFDE_CSSDeclaration::ParseURI(const FDE_CSSPROPERTYARGS* pArgs,
309 const FX_WCHAR* pszValue, 306 const FX_WCHAR* pszValue,
310 int32_t iValueLen) { 307 int32_t iValueLen) {
311 int32_t iOffset; 308 int32_t iOffset;
312 if (!FDE_ParseCSSURI(pszValue, iValueLen, iOffset, iValueLen)) { 309 if (!FDE_ParseCSSURI(pszValue, iValueLen, iOffset, iValueLen)) {
313 return NULL; 310 return nullptr;
314 } 311 }
315 if (iValueLen <= 0) { 312 if (iValueLen <= 0) {
316 return NULL; 313 return nullptr;
317 } 314 }
318 pszValue = CopyToLocal(pArgs, pszValue + iOffset, iValueLen); 315 pszValue = CopyToLocal(pArgs, pszValue + iOffset, iValueLen);
319 return pszValue 316 return pszValue
320 ? FXTARGET_NewWith(pArgs->pStaticStore) 317 ? FXTARGET_NewWith(pArgs->pStaticStore)
321 CFDE_CSSPrimitiveValue(FDE_CSSPRIMITIVETYPE_URI, pszValue) 318 CFDE_CSSPrimitiveValue(FDE_CSSPRIMITIVETYPE_URI, pszValue)
322 : NULL; 319 : nullptr;
323 } 320 }
324 IFDE_CSSValue* CFDE_CSSDeclaration::ParseString( 321 IFDE_CSSValue* CFDE_CSSDeclaration::ParseString(
325 const FDE_CSSPROPERTYARGS* pArgs, 322 const FDE_CSSPROPERTYARGS* pArgs,
326 const FX_WCHAR* pszValue, 323 const FX_WCHAR* pszValue,
327 int32_t iValueLen) { 324 int32_t iValueLen) {
328 int32_t iOffset; 325 int32_t iOffset;
329 if (!FDE_ParseCSSString(pszValue, iValueLen, iOffset, iValueLen)) { 326 if (!FDE_ParseCSSString(pszValue, iValueLen, iOffset, iValueLen)) {
330 return NULL; 327 return nullptr;
331 } 328 }
332 if (iValueLen <= 0) { 329 if (iValueLen <= 0) {
333 return NULL; 330 return nullptr;
334 } 331 }
335 pszValue = CopyToLocal(pArgs, pszValue + iOffset, iValueLen); 332 pszValue = CopyToLocal(pArgs, pszValue + iOffset, iValueLen);
336 return pszValue 333 return pszValue
337 ? FXTARGET_NewWith(pArgs->pStaticStore) 334 ? FXTARGET_NewWith(pArgs->pStaticStore)
338 CFDE_CSSPrimitiveValue(FDE_CSSPRIMITIVETYPE_String, pszValue) 335 CFDE_CSSPrimitiveValue(FDE_CSSPRIMITIVETYPE_String, pszValue)
339 : NULL; 336 : nullptr;
340 } 337 }
341 IFDE_CSSValue* CFDE_CSSDeclaration::ParseFunction( 338 IFDE_CSSValue* CFDE_CSSDeclaration::ParseFunction(
342 const FDE_CSSPROPERTYARGS* pArgs, 339 const FDE_CSSPROPERTYARGS* pArgs,
343 const FX_WCHAR* pszValue, 340 const FX_WCHAR* pszValue,
344 int32_t iValueLen) { 341 int32_t iValueLen) {
345 if (pszValue[iValueLen - 1] != ')') { 342 if (pszValue[iValueLen - 1] != ')') {
346 return NULL; 343 return nullptr;
347 } 344 }
348 int32_t iStartBracket = 0; 345 int32_t iStartBracket = 0;
349 while (pszValue[iStartBracket] != '(') { 346 while (pszValue[iStartBracket] != '(') {
350 if (iStartBracket < iValueLen) { 347 if (iStartBracket < iValueLen) {
351 iStartBracket++; 348 iStartBracket++;
352 } else { 349 } else {
353 return NULL; 350 return nullptr;
354 } 351 }
355 } 352 }
356 if (iStartBracket == 0) { 353 if (iStartBracket == 0) {
357 return NULL; 354 return nullptr;
358 } 355 }
359 const FX_WCHAR* pszFuncName = CopyToLocal(pArgs, pszValue, iStartBracket); 356 const FX_WCHAR* pszFuncName = CopyToLocal(pArgs, pszValue, iStartBracket);
360 pszValue += (iStartBracket + 1); 357 pszValue += (iStartBracket + 1);
361 iValueLen -= (iStartBracket + 2); 358 iValueLen -= (iStartBracket + 2);
362 CFDE_CSSValueArray argumentArr; 359 CFDE_CSSValueArray argumentArr;
363 CFDE_CSSValueListParser parser(pszValue, iValueLen, ','); 360 CFDE_CSSValueListParser parser(pszValue, iValueLen, ',');
364 FDE_CSSPRIMITIVETYPE ePrimitiveType; 361 FDE_CSSPRIMITIVETYPE ePrimitiveType;
365 while (parser.NextValue(ePrimitiveType, pszValue, iValueLen)) { 362 while (parser.NextValue(ePrimitiveType, pszValue, iValueLen)) {
366 switch (ePrimitiveType) { 363 switch (ePrimitiveType) {
367 case FDE_CSSPRIMITIVETYPE_String: { 364 case FDE_CSSPRIMITIVETYPE_String: {
368 const FDE_CSSPROPERTYVALUETABLE* pPropertyValue = 365 const FDE_CSSPROPERTYVALUETABLE* pPropertyValue =
369 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 366 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
370 if (pPropertyValue != NULL) { 367 if (pPropertyValue) {
371 argumentArr.Add( 368 argumentArr.Add(
372 NewEnumValue(pArgs->pStaticStore, pPropertyValue->eName)); 369 NewEnumValue(pArgs->pStaticStore, pPropertyValue->eName));
373 continue; 370 continue;
374 } 371 }
375 IFDE_CSSValue* pFunctionValue = 372 IFDE_CSSValue* pFunctionValue =
376 ParseFunction(pArgs, pszValue, iValueLen); 373 ParseFunction(pArgs, pszValue, iValueLen);
377 if (pFunctionValue != NULL) { 374 if (pFunctionValue) {
378 argumentArr.Add(pFunctionValue); 375 argumentArr.Add(pFunctionValue);
379 continue; 376 continue;
380 } 377 }
381 argumentArr.Add(FXTARGET_NewWith(pArgs->pStaticStore) 378 argumentArr.Add(FXTARGET_NewWith(pArgs->pStaticStore)
382 CFDE_CSSPrimitiveValue( 379 CFDE_CSSPrimitiveValue(
383 FDE_CSSPRIMITIVETYPE_String, 380 FDE_CSSPRIMITIVETYPE_String,
384 CopyToLocal(pArgs, pszValue, iValueLen))); 381 CopyToLocal(pArgs, pszValue, iValueLen)));
385 } break; 382 } break;
386 case FDE_CSSPRIMITIVETYPE_Number: { 383 case FDE_CSSPRIMITIVETYPE_Number: {
387 FX_FLOAT fValue; 384 FX_FLOAT fValue;
(...skipping 30 matching lines...) Expand all
418 switch (eType) { 415 switch (eType) {
419 case FDE_CSSPRIMITIVETYPE_URI: 416 case FDE_CSSPRIMITIVETYPE_URI:
420 list.Add(FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue( 417 list.Add(FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(
421 eType, CopyToLocal(pArgs, pszValue, iValueLen))); 418 eType, CopyToLocal(pArgs, pszValue, iValueLen)));
422 break; 419 break;
423 case FDE_CSSPRIMITIVETYPE_Number: 420 case FDE_CSSPRIMITIVETYPE_Number:
424 return FALSE; 421 return FALSE;
425 case FDE_CSSPRIMITIVETYPE_String: { 422 case FDE_CSSPRIMITIVETYPE_String: {
426 const FDE_CSSPROPERTYVALUETABLE* pValue = 423 const FDE_CSSPROPERTYVALUETABLE* pValue =
427 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 424 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
428 if (pValue != NULL) { 425 if (pValue) {
429 switch (pValue->eName) { 426 switch (pValue->eName) {
430 case FDE_CSSPROPERTYVALUE_Normal: 427 case FDE_CSSPROPERTYVALUE_Normal:
431 case FDE_CSSPROPERTYVALUE_None: { 428 case FDE_CSSPROPERTYVALUE_None: {
432 if (list.GetSize() == 0) { 429 if (list.GetSize() == 0) {
433 list.Add(NewEnumValue(pStaticStore, pValue->eName)); 430 list.Add(NewEnumValue(pStaticStore, pValue->eName));
434 } else { 431 } else {
435 return FALSE; 432 return FALSE;
436 } 433 }
437 } break; 434 } break;
438 case FDE_CSSPROPERTYVALUE_OpenQuote: 435 case FDE_CSSPROPERTYVALUE_OpenQuote:
439 case FDE_CSSPROPERTYVALUE_CloseQuote: 436 case FDE_CSSPROPERTYVALUE_CloseQuote:
440 case FDE_CSSPROPERTYVALUE_NoOpenQuote: 437 case FDE_CSSPROPERTYVALUE_NoOpenQuote:
441 case FDE_CSSPROPERTYVALUE_NoCloseQuote: 438 case FDE_CSSPROPERTYVALUE_NoCloseQuote:
442 list.Add(NewEnumValue(pStaticStore, pValue->eName)); 439 list.Add(NewEnumValue(pStaticStore, pValue->eName));
443 break; 440 break;
444 default: 441 default:
445 return FALSE; 442 return FALSE;
446 } 443 }
447 continue; 444 continue;
448 } 445 }
449 IFDE_CSSValue* pFunction = ParseFunction(pArgs, pszValue, iValueLen); 446 IFDE_CSSValue* pFunction = ParseFunction(pArgs, pszValue, iValueLen);
450 if (pFunction != NULL) { 447 if (pFunction) {
451 list.Add(pFunction); 448 list.Add(pFunction);
452 continue; 449 continue;
453 } 450 }
454 list.Add(FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue( 451 list.Add(FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(
455 eType, CopyToLocal(pArgs, pszValue, iValueLen))); 452 eType, CopyToLocal(pArgs, pszValue, iValueLen)));
456 } break; 453 } break;
457 case FDE_CSSPRIMITIVETYPE_RGB: 454 case FDE_CSSPRIMITIVETYPE_RGB:
458 return FALSE; 455 return FALSE;
459 default: 456 default:
460 break; 457 break;
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 if (FDE_ParseCSSColor(pszValue, iValueLen, dwColor)) { 550 if (FDE_ParseCSSColor(pszValue, iValueLen, dwColor)) {
554 list.Add(FXTARGET_NewWith(pStaticStore) 551 list.Add(FXTARGET_NewWith(pStaticStore)
555 CFDE_CSSPrimitiveValue(dwColor)); 552 CFDE_CSSPrimitiveValue(dwColor));
556 continue; 553 continue;
557 } 554 }
558 } 555 }
559 if (dwType & FDE_CSSVALUETYPE_MaybeEnum) { 556 if (dwType & FDE_CSSVALUETYPE_MaybeEnum) {
560 const FDE_CSSPROPERTYVALUETABLE* pValue = 557 const FDE_CSSPROPERTYVALUETABLE* pValue =
561 FDE_GetCSSPropertyValueByName( 558 FDE_GetCSSPropertyValueByName(
562 CFX_WideStringC(pszValue, iValueLen)); 559 CFX_WideStringC(pszValue, iValueLen));
563 if (pValue != NULL) { 560 if (pValue) {
564 list.Add(NewEnumValue(pStaticStore, pValue->eName)); 561 list.Add(NewEnumValue(pStaticStore, pValue->eName));
565 continue; 562 continue;
566 } 563 }
567 } 564 }
568 if (dwType & FDE_CSSVALUETYPE_MaybeString) { 565 if (dwType & FDE_CSSVALUETYPE_MaybeString) {
569 pszValue = CopyToLocal(pArgs, pszValue, iValueLen); 566 pszValue = CopyToLocal(pArgs, pszValue, iValueLen);
570 list.Add(FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue( 567 list.Add(FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(
571 FDE_CSSPRIMITIVETYPE_String, pszValue)); 568 FDE_CSSPRIMITIVETYPE_String, pszValue));
572 } 569 }
573 break; 570 break;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 } 658 }
662 return FALSE; 659 return FALSE;
663 } 660 }
664 FX_BOOL CFDE_CSSDeclaration::ParseBorderPropoerty( 661 FX_BOOL CFDE_CSSDeclaration::ParseBorderPropoerty(
665 IFX_MemoryAllocator* pStaticStore, 662 IFX_MemoryAllocator* pStaticStore,
666 const FX_WCHAR* pszValue, 663 const FX_WCHAR* pszValue,
667 int32_t iValueLen, 664 int32_t iValueLen,
668 IFDE_CSSValue*& pColor, 665 IFDE_CSSValue*& pColor,
669 IFDE_CSSValue*& pStyle, 666 IFDE_CSSValue*& pStyle,
670 IFDE_CSSValue*& pWidth) const { 667 IFDE_CSSValue*& pWidth) const {
671 pColor = pStyle = pWidth = NULL; 668 pColor = pStyle = pWidth = nullptr;
672 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 669 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
673 FDE_CSSPRIMITIVETYPE eType; 670 FDE_CSSPRIMITIVETYPE eType;
674 while (parser.NextValue(eType, pszValue, iValueLen)) { 671 while (parser.NextValue(eType, pszValue, iValueLen)) {
675 switch (eType) { 672 switch (eType) {
676 case FDE_CSSPRIMITIVETYPE_Number: 673 case FDE_CSSPRIMITIVETYPE_Number:
677 if (pWidth == NULL) { 674 if (!pWidth) {
678 FX_FLOAT fValue; 675 FX_FLOAT fValue;
679 if (FDE_ParseCSSNumber(pszValue, iValueLen, fValue, eType)) { 676 if (FDE_ParseCSSNumber(pszValue, iValueLen, fValue, eType)) {
680 pWidth = NewNumberValue(pStaticStore, eType, fValue); 677 pWidth = NewNumberValue(pStaticStore, eType, fValue);
681 } 678 }
682 } 679 }
683 break; 680 break;
684 case FDE_CSSPRIMITIVETYPE_RGB: 681 case FDE_CSSPRIMITIVETYPE_RGB:
685 if (pColor == NULL) { 682 if (!pColor) {
686 FX_ARGB dwColor; 683 FX_ARGB dwColor;
687 if (FDE_ParseCSSColor(pszValue, iValueLen, dwColor)) { 684 if (FDE_ParseCSSColor(pszValue, iValueLen, dwColor)) {
688 pColor = 685 pColor =
689 FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(dwColor); 686 FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(dwColor);
690 } 687 }
691 } 688 }
692 break; 689 break;
693 case FDE_CSSPRIMITIVETYPE_String: { 690 case FDE_CSSPRIMITIVETYPE_String: {
694 const FDE_CSSCOLORTABLE* pColorItem = 691 const FDE_CSSCOLORTABLE* pColorItem =
695 FDE_GetCSSColorByName(CFX_WideStringC(pszValue, iValueLen)); 692 FDE_GetCSSColorByName(CFX_WideStringC(pszValue, iValueLen));
696 if (pColorItem != NULL) { 693 if (pColorItem) {
697 if (pColor == NULL) { 694 if (!pColor) {
698 pColor = FXTARGET_NewWith(pStaticStore) 695 pColor = FXTARGET_NewWith(pStaticStore)
699 CFDE_CSSPrimitiveValue(pColorItem->dwValue); 696 CFDE_CSSPrimitiveValue(pColorItem->dwValue);
700 } 697 }
701 continue; 698 continue;
702 } 699 }
703 const FDE_CSSPROPERTYVALUETABLE* pValue = 700 const FDE_CSSPROPERTYVALUETABLE* pValue =
704 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 701 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
705 if (pValue == NULL) { 702 if (!pValue)
706 continue; 703 continue;
707 } 704
708 switch (pValue->eName) { 705 switch (pValue->eName) {
709 case FDE_CSSPROPERTYVALUE_Transparent: 706 case FDE_CSSPROPERTYVALUE_Transparent:
710 if (pColor == NULL) { 707 if (!pColor) {
711 pColor = FXTARGET_NewWith(pStaticStore) 708 pColor = FXTARGET_NewWith(pStaticStore)
712 CFDE_CSSPrimitiveValue((FX_ARGB)0); 709 CFDE_CSSPrimitiveValue((FX_ARGB)0);
713 } 710 }
714 break; 711 break;
715 case FDE_CSSPROPERTYVALUE_Thin: 712 case FDE_CSSPROPERTYVALUE_Thin:
716 case FDE_CSSPROPERTYVALUE_Thick: 713 case FDE_CSSPROPERTYVALUE_Thick:
717 case FDE_CSSPROPERTYVALUE_Medium: 714 case FDE_CSSPROPERTYVALUE_Medium:
718 if (pWidth == NULL) { 715 if (!pWidth)
719 pWidth = NewEnumValue(pStaticStore, pValue->eName); 716 pWidth = NewEnumValue(pStaticStore, pValue->eName);
720 }
721 break; 717 break;
722 case FDE_CSSPROPERTYVALUE_None: 718 case FDE_CSSPROPERTYVALUE_None:
723 case FDE_CSSPROPERTYVALUE_Hidden: 719 case FDE_CSSPROPERTYVALUE_Hidden:
724 case FDE_CSSPROPERTYVALUE_Dotted: 720 case FDE_CSSPROPERTYVALUE_Dotted:
725 case FDE_CSSPROPERTYVALUE_Dashed: 721 case FDE_CSSPROPERTYVALUE_Dashed:
726 case FDE_CSSPROPERTYVALUE_Solid: 722 case FDE_CSSPROPERTYVALUE_Solid:
727 case FDE_CSSPROPERTYVALUE_Double: 723 case FDE_CSSPROPERTYVALUE_Double:
728 case FDE_CSSPROPERTYVALUE_Groove: 724 case FDE_CSSPROPERTYVALUE_Groove:
729 case FDE_CSSPROPERTYVALUE_Ridge: 725 case FDE_CSSPROPERTYVALUE_Ridge:
730 case FDE_CSSPROPERTYVALUE_Inset: 726 case FDE_CSSPROPERTYVALUE_Inset:
731 case FDE_CSSPROPERTYVALUE_Outset: 727 case FDE_CSSPROPERTYVALUE_Outset:
732 if (pStyle == NULL) { 728 if (!pStyle)
733 pStyle = NewEnumValue(pStaticStore, pValue->eName); 729 pStyle = NewEnumValue(pStaticStore, pValue->eName);
734 }
735 break; 730 break;
736 default: 731 default:
737 break; 732 break;
738 } 733 }
739 }; break; 734 }; break;
740 default: 735 default:
741 break; 736 break;
742 } 737 }
743 } 738 }
744 if (pColor == NULL) { 739 if (!pColor)
745 pColor = FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue((FX_ARGB)0); 740 pColor = FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue((FX_ARGB)0);
746 } 741 if (!pStyle)
747 if (pStyle == NULL) {
748 pStyle = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_None); 742 pStyle = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_None);
749 } 743 if (!pWidth)
750 if (pWidth == NULL) {
751 pWidth = NewNumberValue(pStaticStore, FDE_CSSPRIMITIVETYPE_Number, 0.0f); 744 pWidth = NewNumberValue(pStaticStore, FDE_CSSPRIMITIVETYPE_Number, 0.0f);
752 }
753 return TRUE; 745 return TRUE;
754 } 746 }
755 void CFDE_CSSDeclaration::AddBorderProperty(IFX_MemoryAllocator* pStaticStore, 747 void CFDE_CSSDeclaration::AddBorderProperty(IFX_MemoryAllocator* pStaticStore,
756 IFDE_CSSValue* pColor, 748 IFDE_CSSValue* pColor,
757 IFDE_CSSValue* pStyle, 749 IFDE_CSSValue* pStyle,
758 IFDE_CSSValue* pWidth, 750 IFDE_CSSValue* pWidth,
759 FX_BOOL bImportant, 751 FX_BOOL bImportant,
760 FDE_CSSPROPERTY eColor, 752 FDE_CSSPROPERTY eColor,
761 FDE_CSSPROPERTY eStyle, 753 FDE_CSSPROPERTY eStyle,
762 FDE_CSSPROPERTY eWidth) { 754 FDE_CSSPROPERTY eWidth) {
763 AddPropertyHolder(pStaticStore, eStyle, pStyle, bImportant); 755 AddPropertyHolder(pStaticStore, eStyle, pStyle, bImportant);
764 AddPropertyHolder(pStaticStore, eWidth, pWidth, bImportant); 756 AddPropertyHolder(pStaticStore, eWidth, pWidth, bImportant);
765 AddPropertyHolder(pStaticStore, eColor, pColor, bImportant); 757 AddPropertyHolder(pStaticStore, eColor, pColor, bImportant);
766 } 758 }
767 FX_BOOL CFDE_CSSDeclaration::ParseListStyleProperty( 759 FX_BOOL CFDE_CSSDeclaration::ParseListStyleProperty(
768 const FDE_CSSPROPERTYARGS* pArgs, 760 const FDE_CSSPROPERTYARGS* pArgs,
769 const FX_WCHAR* pszValue, 761 const FX_WCHAR* pszValue,
770 int32_t iValueLen, 762 int32_t iValueLen,
771 FX_BOOL bImportant) { 763 FX_BOOL bImportant) {
772 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore; 764 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
773 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 765 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
774 IFDE_CSSPrimitiveValue *pType = NULL, *pImage = NULL, *pPosition = NULL; 766 IFDE_CSSPrimitiveValue *pType = nullptr, *pImage = nullptr,
767 *pPosition = nullptr;
775 FDE_CSSPRIMITIVETYPE eType; 768 FDE_CSSPRIMITIVETYPE eType;
776 while (parser.NextValue(eType, pszValue, iValueLen)) { 769 while (parser.NextValue(eType, pszValue, iValueLen)) {
777 switch (eType) { 770 switch (eType) {
778 case FDE_CSSPRIMITIVETYPE_URI: 771 case FDE_CSSPRIMITIVETYPE_URI:
779 if (pImage == NULL) { 772 if (!pImage) {
780 pImage = FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue( 773 pImage = FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(
781 eType, CopyToLocal(pArgs, pszValue, iValueLen)); 774 eType, CopyToLocal(pArgs, pszValue, iValueLen));
782 } 775 }
783 break; 776 break;
784 case FDE_CSSPRIMITIVETYPE_String: { 777 case FDE_CSSPRIMITIVETYPE_String: {
785 const FDE_CSSPROPERTYVALUETABLE* pValue = 778 const FDE_CSSPROPERTYVALUETABLE* pValue =
786 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 779 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
787 if (pValue == NULL) { 780 if (!pValue)
788 break; 781 break;
789 } 782
790 switch (pValue->eName) { 783 switch (pValue->eName) {
791 case FDE_CSSPROPERTYVALUE_None: 784 case FDE_CSSPROPERTYVALUE_None:
792 if (pImage == NULL) { 785 if (!pImage)
793 pImage = NewEnumValue(pStaticStore, pValue->eName); 786 pImage = NewEnumValue(pStaticStore, pValue->eName);
794 } else if (pType == NULL) { 787 else if (!pType)
795 pImage = NewEnumValue(pStaticStore, pValue->eName); 788 pImage = NewEnumValue(pStaticStore, pValue->eName);
796 }
797 break; 789 break;
798 case FDE_CSSPROPERTYVALUE_Inside: 790 case FDE_CSSPROPERTYVALUE_Inside:
799 case FDE_CSSPROPERTYVALUE_Outside: 791 case FDE_CSSPROPERTYVALUE_Outside:
800 if (pPosition == NULL) { 792 if (!pPosition)
801 pPosition = NewEnumValue(pStaticStore, pValue->eName); 793 pPosition = NewEnumValue(pStaticStore, pValue->eName);
802 }
803 break; 794 break;
804 case FDE_CSSPROPERTYVALUE_Disc: 795 case FDE_CSSPROPERTYVALUE_Disc:
805 case FDE_CSSPROPERTYVALUE_Circle: 796 case FDE_CSSPROPERTYVALUE_Circle:
806 case FDE_CSSPROPERTYVALUE_Square: 797 case FDE_CSSPROPERTYVALUE_Square:
807 case FDE_CSSPROPERTYVALUE_Decimal: 798 case FDE_CSSPROPERTYVALUE_Decimal:
808 case FDE_CSSPROPERTYVALUE_DecimalLeadingZero: 799 case FDE_CSSPROPERTYVALUE_DecimalLeadingZero:
809 case FDE_CSSPROPERTYVALUE_LowerRoman: 800 case FDE_CSSPROPERTYVALUE_LowerRoman:
810 case FDE_CSSPROPERTYVALUE_UpperRoman: 801 case FDE_CSSPROPERTYVALUE_UpperRoman:
811 case FDE_CSSPROPERTYVALUE_LowerGreek: 802 case FDE_CSSPROPERTYVALUE_LowerGreek:
812 case FDE_CSSPROPERTYVALUE_LowerLatin: 803 case FDE_CSSPROPERTYVALUE_LowerLatin:
813 case FDE_CSSPROPERTYVALUE_UpperLatin: 804 case FDE_CSSPROPERTYVALUE_UpperLatin:
814 case FDE_CSSPROPERTYVALUE_Armenian: 805 case FDE_CSSPROPERTYVALUE_Armenian:
815 case FDE_CSSPROPERTYVALUE_Georgian: 806 case FDE_CSSPROPERTYVALUE_Georgian:
816 case FDE_CSSPROPERTYVALUE_LowerAlpha: 807 case FDE_CSSPROPERTYVALUE_LowerAlpha:
817 case FDE_CSSPROPERTYVALUE_UpperAlpha: 808 case FDE_CSSPROPERTYVALUE_UpperAlpha:
818 if (pType == NULL) { 809 if (!pType)
819 pType = NewEnumValue(pStaticStore, pValue->eName); 810 pType = NewEnumValue(pStaticStore, pValue->eName);
820 }
821 break; 811 break;
822 default: 812 default:
823 break; 813 break;
824 } 814 }
825 }; break; 815 }; break;
826 default: 816 default:
827 break; 817 break;
828 } 818 }
829 } 819 }
830 if (pPosition == NULL) { 820 if (!pPosition)
831 pPosition = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Outside); 821 pPosition = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Outside);
832 } 822 if (!pImage)
833 if (pImage == NULL) {
834 pImage = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_None); 823 pImage = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_None);
835 } 824 if (!pType)
836 if (pType == NULL) {
837 pType = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_None); 825 pType = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_None);
838 }
839 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ListStylePosition, pPosition, 826 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ListStylePosition, pPosition,
840 bImportant); 827 bImportant);
841 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ListStyleImage, pImage, 828 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ListStyleImage, pImage,
842 bImportant); 829 bImportant);
843 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ListStyleType, pType, 830 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ListStyleType, pType,
844 bImportant); 831 bImportant);
845 return TRUE; 832 return TRUE;
846 } 833 }
847 FX_BOOL CFDE_CSSDeclaration::ParseBackgroundProperty( 834 FX_BOOL CFDE_CSSDeclaration::ParseBackgroundProperty(
848 const FDE_CSSPROPERTYARGS* pArgs, 835 const FDE_CSSPROPERTYARGS* pArgs,
849 const FX_WCHAR* pszValue, 836 const FX_WCHAR* pszValue,
850 int32_t iValueLen, 837 int32_t iValueLen,
851 FX_BOOL bImportant) { 838 FX_BOOL bImportant) {
852 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore; 839 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
853 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 840 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
854 IFDE_CSSPrimitiveValue *pColor = NULL, *pImage = NULL, *pRepeat = NULL; 841 IFDE_CSSPrimitiveValue *pColor = nullptr, *pImage = nullptr,
855 IFDE_CSSPrimitiveValue *pPosX = NULL, *pPosY = NULL, *pAttachment = NULL; 842 *pRepeat = nullptr;
843 IFDE_CSSPrimitiveValue *pPosX = nullptr, *pPosY = nullptr,
844 *pAttachment = nullptr;
856 FDE_CSSPRIMITIVETYPE eType; 845 FDE_CSSPRIMITIVETYPE eType;
857 while (parser.NextValue(eType, pszValue, iValueLen)) { 846 while (parser.NextValue(eType, pszValue, iValueLen)) {
858 switch (eType) { 847 switch (eType) {
859 case FDE_CSSPRIMITIVETYPE_URI: 848 case FDE_CSSPRIMITIVETYPE_URI:
860 if (pImage == NULL) { 849 if (!pImage) {
861 pImage = FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue( 850 pImage = FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(
862 eType, CopyToLocal(pArgs, pszValue, iValueLen)); 851 eType, CopyToLocal(pArgs, pszValue, iValueLen));
863 } 852 }
864 break; 853 break;
865 case FDE_CSSPRIMITIVETYPE_Number: { 854 case FDE_CSSPRIMITIVETYPE_Number: {
866 FX_FLOAT fValue; 855 FX_FLOAT fValue;
867 if (!FDE_ParseCSSNumber(pszValue, iValueLen, fValue, eType)) { 856 if (!FDE_ParseCSSNumber(pszValue, iValueLen, fValue, eType)) {
868 break; 857 break;
869 } 858 }
870 if (pPosX == NULL) { 859 if (!pPosX)
871 pPosX = NewNumberValue(pStaticStore, eType, fValue); 860 pPosX = NewNumberValue(pStaticStore, eType, fValue);
872 } else if (pPosY == NULL) { 861 else if (!pPosY)
873 pPosY = NewNumberValue(pStaticStore, eType, fValue); 862 pPosY = NewNumberValue(pStaticStore, eType, fValue);
874 }
875 } break; 863 } break;
876 case FDE_CSSPRIMITIVETYPE_String: { 864 case FDE_CSSPRIMITIVETYPE_String: {
877 const FDE_CSSPROPERTYVALUETABLE* pValue = 865 const FDE_CSSPROPERTYVALUETABLE* pValue =
878 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 866 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
879 if (pValue != NULL) { 867 if (pValue) {
880 switch (pValue->eName) { 868 switch (pValue->eName) {
881 case FDE_CSSPROPERTYVALUE_None: 869 case FDE_CSSPROPERTYVALUE_None:
882 if (pImage == NULL) { 870 if (!pImage)
883 pImage = NewEnumValue(pStaticStore, pValue->eName); 871 pImage = NewEnumValue(pStaticStore, pValue->eName);
884 }
885 break; 872 break;
886 case FDE_CSSPROPERTYVALUE_Transparent: 873 case FDE_CSSPROPERTYVALUE_Transparent:
887 if (pColor == NULL) { 874 if (!pColor) {
888 pColor = FXTARGET_NewWith(pStaticStore) 875 pColor = FXTARGET_NewWith(pStaticStore)
889 CFDE_CSSPrimitiveValue((FX_ARGB)0); 876 CFDE_CSSPrimitiveValue((FX_ARGB)0);
890 } 877 }
891 break; 878 break;
892 case FDE_CSSPROPERTYVALUE_Fixed: 879 case FDE_CSSPROPERTYVALUE_Fixed:
893 case FDE_CSSPROPERTYVALUE_Scroll: 880 case FDE_CSSPROPERTYVALUE_Scroll:
894 if (pAttachment == NULL) { 881 if (!pAttachment)
895 pAttachment = NewEnumValue(pStaticStore, pValue->eName); 882 pAttachment = NewEnumValue(pStaticStore, pValue->eName);
896 }
897 break; 883 break;
898 case FDE_CSSPROPERTYVALUE_Repeat: 884 case FDE_CSSPROPERTYVALUE_Repeat:
899 case FDE_CSSPROPERTYVALUE_RepeatX: 885 case FDE_CSSPROPERTYVALUE_RepeatX:
900 case FDE_CSSPROPERTYVALUE_RepeatY: 886 case FDE_CSSPROPERTYVALUE_RepeatY:
901 case FDE_CSSPROPERTYVALUE_NoRepeat: 887 case FDE_CSSPROPERTYVALUE_NoRepeat:
902 if (pRepeat == NULL) { 888 if (!pRepeat)
903 pRepeat = NewEnumValue(pStaticStore, pValue->eName); 889 pRepeat = NewEnumValue(pStaticStore, pValue->eName);
904 }
905 break; 890 break;
906 case FDE_CSSPROPERTYVALUE_Left: 891 case FDE_CSSPROPERTYVALUE_Left:
907 case FDE_CSSPROPERTYVALUE_Right: 892 case FDE_CSSPROPERTYVALUE_Right:
908 if (pPosX == NULL) { 893 if (!pPosX)
909 pPosX = NewEnumValue(pStaticStore, pValue->eName); 894 pPosX = NewEnumValue(pStaticStore, pValue->eName);
910 }
911 break; 895 break;
912 case FDE_CSSPROPERTYVALUE_Top: 896 case FDE_CSSPROPERTYVALUE_Top:
913 case FDE_CSSPROPERTYVALUE_Bottom: 897 case FDE_CSSPROPERTYVALUE_Bottom:
914 if (pPosY == NULL) { 898 if (!pPosY)
915 pPosX = NewEnumValue(pStaticStore, pValue->eName); 899 pPosX = NewEnumValue(pStaticStore, pValue->eName);
916 }
917 break; 900 break;
918 case FDE_CSSPROPERTYVALUE_Center: 901 case FDE_CSSPROPERTYVALUE_Center:
919 if (pPosX == NULL) { 902 if (!pPosX)
920 pPosX = NewEnumValue(pStaticStore, pValue->eName); 903 pPosX = NewEnumValue(pStaticStore, pValue->eName);
921 } else if (pPosY == NULL) { 904 else if (!pPosY)
922 pPosX = NewEnumValue(pStaticStore, pValue->eName); 905 pPosX = NewEnumValue(pStaticStore, pValue->eName);
923 }
924 break; 906 break;
925 default: 907 default:
926 break; 908 break;
927 } 909 }
928 break; 910 break;
929 } 911 }
930 const FDE_CSSCOLORTABLE* pColorItem = 912 const FDE_CSSCOLORTABLE* pColorItem =
931 FDE_GetCSSColorByName(CFX_WideStringC(pszValue, iValueLen)); 913 FDE_GetCSSColorByName(CFX_WideStringC(pszValue, iValueLen));
932 if (pColorItem != NULL) { 914 if (pColorItem) {
933 if (pColor == NULL) { 915 if (!pColor) {
934 pColor = FXTARGET_NewWith(pStaticStore) 916 pColor = FXTARGET_NewWith(pStaticStore)
935 CFDE_CSSPrimitiveValue(pColorItem->dwValue); 917 CFDE_CSSPrimitiveValue(pColorItem->dwValue);
936 } 918 }
937 } 919 }
938 } break; 920 } break;
939 case FDE_CSSPRIMITIVETYPE_RGB: 921 case FDE_CSSPRIMITIVETYPE_RGB:
940 if (pColor == NULL) { 922 if (!pColor) {
941 FX_ARGB dwColor; 923 FX_ARGB dwColor;
942 if (FDE_ParseCSSColor(pszValue, iValueLen, dwColor)) { 924 if (FDE_ParseCSSColor(pszValue, iValueLen, dwColor)) {
943 pColor = 925 pColor =
944 FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(dwColor); 926 FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(dwColor);
945 } 927 }
946 } 928 }
947 break; 929 break;
948 default: 930 default:
949 break; 931 break;
950 } 932 }
951 } 933 }
952 if (pColor == NULL) { 934 if (!pColor) {
953 pColor = FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue((FX_ARGB)0); 935 pColor = FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue((FX_ARGB)0);
954 } 936 }
955 if (pImage == NULL) { 937 if (!pImage)
956 pImage = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_None); 938 pImage = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_None);
957 } 939
958 if (pRepeat == NULL) { 940 if (!pRepeat)
959 pRepeat = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Repeat); 941 pRepeat = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Repeat);
960 } 942
961 if (pAttachment == NULL) { 943 if (!pAttachment)
962 pAttachment = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Scroll); 944 pAttachment = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Scroll);
963 } 945
964 if (pPosX == NULL) { 946 if (!pPosX) {
965 pPosX = NewNumberValue(pStaticStore, FDE_CSSPRIMITIVETYPE_Number, 0.0f); 947 pPosX = NewNumberValue(pStaticStore, FDE_CSSPRIMITIVETYPE_Number, 0.0f);
966 pPosY = NewNumberValue(pStaticStore, FDE_CSSPRIMITIVETYPE_Number, 0.0f); 948 pPosY = NewNumberValue(pStaticStore, FDE_CSSPRIMITIVETYPE_Number, 0.0f);
967 } else if (pPosY == NULL) { 949 } else if (!pPosY) {
968 pPosY = NewNumberValue(pStaticStore, FDE_CSSPRIMITIVETYPE_Number, 0.0f); 950 pPosY = NewNumberValue(pStaticStore, FDE_CSSPRIMITIVETYPE_Number, 0.0f);
969 } 951 }
970 CFDE_CSSValueArray position; 952 CFDE_CSSValueArray position;
971 position.Add(pPosX); 953 position.Add(pPosX);
972 position.Add(pPosY); 954 position.Add(pPosY);
973 CFDE_CSSValueList* pPosList = 955 CFDE_CSSValueList* pPosList =
974 FXTARGET_NewWith(pStaticStore) CFDE_CSSValueList(pStaticStore, position); 956 FXTARGET_NewWith(pStaticStore) CFDE_CSSValueList(pStaticStore, position);
975 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_BackgroundColor, pColor, 957 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_BackgroundColor, pColor,
976 bImportant); 958 bImportant);
977 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_BackgroundImage, pImage, 959 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_BackgroundImage, pImage,
978 bImportant); 960 bImportant);
979 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_BackgroundRepeat, pRepeat, 961 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_BackgroundRepeat, pRepeat,
980 bImportant); 962 bImportant);
981 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_BackgroundPosition, pPosList, 963 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_BackgroundPosition, pPosList,
982 bImportant); 964 bImportant);
983 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_BackgroundAttachment, 965 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_BackgroundAttachment,
984 pAttachment, bImportant); 966 pAttachment, bImportant);
985 return TRUE; 967 return TRUE;
986 } 968 }
987 FX_BOOL CFDE_CSSDeclaration::ParseFontProperty(const FDE_CSSPROPERTYARGS* pArgs, 969 FX_BOOL CFDE_CSSDeclaration::ParseFontProperty(const FDE_CSSPROPERTYARGS* pArgs,
988 const FX_WCHAR* pszValue, 970 const FX_WCHAR* pszValue,
989 int32_t iValueLen, 971 int32_t iValueLen,
990 FX_BOOL bImportant) { 972 FX_BOOL bImportant) {
991 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore; 973 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
992 CFDE_CSSValueListParser parser(pszValue, iValueLen, '/'); 974 CFDE_CSSValueListParser parser(pszValue, iValueLen, '/');
993 IFDE_CSSPrimitiveValue *pStyle = NULL, *pVariant = NULL, *pWeight = NULL; 975 IFDE_CSSPrimitiveValue *pStyle = nullptr, *pVariant = nullptr,
994 IFDE_CSSPrimitiveValue *pFontSize = NULL, *pLineHeight = NULL; 976 *pWeight = nullptr;
977 IFDE_CSSPrimitiveValue *pFontSize = nullptr, *pLineHeight = nullptr;
995 CFDE_CSSValueArray familyList; 978 CFDE_CSSValueArray familyList;
996 FDE_CSSPRIMITIVETYPE eType; 979 FDE_CSSPRIMITIVETYPE eType;
997 while (parser.NextValue(eType, pszValue, iValueLen)) { 980 while (parser.NextValue(eType, pszValue, iValueLen)) {
998 switch (eType) { 981 switch (eType) {
999 case FDE_CSSPRIMITIVETYPE_String: { 982 case FDE_CSSPRIMITIVETYPE_String: {
1000 const FDE_CSSPROPERTYVALUETABLE* pValue = 983 const FDE_CSSPROPERTYVALUETABLE* pValue =
1001 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 984 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
1002 if (pValue != NULL) { 985 if (pValue) {
1003 switch (pValue->eName) { 986 switch (pValue->eName) {
1004 case FDE_CSSPROPERTYVALUE_XxSmall: 987 case FDE_CSSPROPERTYVALUE_XxSmall:
1005 case FDE_CSSPROPERTYVALUE_XSmall: 988 case FDE_CSSPROPERTYVALUE_XSmall:
1006 case FDE_CSSPROPERTYVALUE_Small: 989 case FDE_CSSPROPERTYVALUE_Small:
1007 case FDE_CSSPROPERTYVALUE_Medium: 990 case FDE_CSSPROPERTYVALUE_Medium:
1008 case FDE_CSSPROPERTYVALUE_Large: 991 case FDE_CSSPROPERTYVALUE_Large:
1009 case FDE_CSSPROPERTYVALUE_XLarge: 992 case FDE_CSSPROPERTYVALUE_XLarge:
1010 case FDE_CSSPROPERTYVALUE_XxLarge: 993 case FDE_CSSPROPERTYVALUE_XxLarge:
1011 case FDE_CSSPROPERTYVALUE_Smaller: 994 case FDE_CSSPROPERTYVALUE_Smaller:
1012 case FDE_CSSPROPERTYVALUE_Larger: 995 case FDE_CSSPROPERTYVALUE_Larger:
1013 if (pFontSize == NULL) { 996 if (!pFontSize)
1014 pFontSize = NewEnumValue(pStaticStore, pValue->eName); 997 pFontSize = NewEnumValue(pStaticStore, pValue->eName);
1015 }
1016 continue; 998 continue;
1017 case FDE_CSSPROPERTYVALUE_Bold: 999 case FDE_CSSPROPERTYVALUE_Bold:
1018 case FDE_CSSPROPERTYVALUE_Bolder: 1000 case FDE_CSSPROPERTYVALUE_Bolder:
1019 case FDE_CSSPROPERTYVALUE_Lighter: 1001 case FDE_CSSPROPERTYVALUE_Lighter:
1020 if (pWeight == NULL) { 1002 if (!pWeight)
1021 pWeight = NewEnumValue(pStaticStore, pValue->eName); 1003 pWeight = NewEnumValue(pStaticStore, pValue->eName);
1022 }
1023 continue; 1004 continue;
1024 case FDE_CSSPROPERTYVALUE_Italic: 1005 case FDE_CSSPROPERTYVALUE_Italic:
1025 case FDE_CSSPROPERTYVALUE_Oblique: 1006 case FDE_CSSPROPERTYVALUE_Oblique:
1026 if (pStyle == NULL) { 1007 if (!pStyle)
1027 pStyle = NewEnumValue(pStaticStore, pValue->eName); 1008 pStyle = NewEnumValue(pStaticStore, pValue->eName);
1028 }
1029 continue; 1009 continue;
1030 case FDE_CSSPROPERTYVALUE_SmallCaps: 1010 case FDE_CSSPROPERTYVALUE_SmallCaps:
1031 if (pVariant == NULL) { 1011 if (!pVariant)
1032 pVariant = NewEnumValue(pStaticStore, pValue->eName); 1012 pVariant = NewEnumValue(pStaticStore, pValue->eName);
1033 }
1034 continue; 1013 continue;
1035 case FDE_CSSPROPERTYVALUE_Normal: 1014 case FDE_CSSPROPERTYVALUE_Normal:
1036 if (pStyle == NULL) { 1015 if (!pStyle)
1037 pStyle = NewEnumValue(pStaticStore, pValue->eName); 1016 pStyle = NewEnumValue(pStaticStore, pValue->eName);
1038 } else if (pVariant == NULL) { 1017 else if (!pVariant)
1039 pVariant = NewEnumValue(pStaticStore, pValue->eName); 1018 pVariant = NewEnumValue(pStaticStore, pValue->eName);
1040 } else if (pWeight == NULL) { 1019 else if (!pWeight)
1041 pWeight = NewEnumValue(pStaticStore, pValue->eName); 1020 pWeight = NewEnumValue(pStaticStore, pValue->eName);
1042 } else if (pFontSize == NULL) { 1021 else if (!pFontSize)
1043 pFontSize = NewEnumValue(pStaticStore, pValue->eName); 1022 pFontSize = NewEnumValue(pStaticStore, pValue->eName);
1044 } else if (pLineHeight == NULL) { 1023 else if (!pLineHeight)
1045 pLineHeight = NewEnumValue(pStaticStore, pValue->eName); 1024 pLineHeight = NewEnumValue(pStaticStore, pValue->eName);
1046 }
1047 continue; 1025 continue;
1048 default: 1026 default:
1049 break; 1027 break;
1050 } 1028 }
1051 } 1029 }
1052 if (pFontSize != NULL) { 1030 if (pFontSize) {
1053 familyList.Add(FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue( 1031 familyList.Add(FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(
1054 eType, CopyToLocal(pArgs, pszValue, iValueLen))); 1032 eType, CopyToLocal(pArgs, pszValue, iValueLen)));
1055 } 1033 }
1056 parser.m_Separator = ','; 1034 parser.m_Separator = ',';
1057 } break; 1035 } break;
1058 case FDE_CSSPRIMITIVETYPE_Number: { 1036 case FDE_CSSPRIMITIVETYPE_Number: {
1059 FX_FLOAT fValue; 1037 FX_FLOAT fValue;
1060 if (!FDE_ParseCSSNumber(pszValue, iValueLen, fValue, eType)) { 1038 if (!FDE_ParseCSSNumber(pszValue, iValueLen, fValue, eType)) {
1061 break; 1039 break;
1062 } 1040 }
1063 if (eType == FDE_CSSPRIMITIVETYPE_Number) { 1041 if (eType == FDE_CSSPRIMITIVETYPE_Number) {
1064 switch ((int32_t)fValue) { 1042 switch ((int32_t)fValue) {
1065 case 100: 1043 case 100:
1066 case 200: 1044 case 200:
1067 case 300: 1045 case 300:
1068 case 400: 1046 case 400:
1069 case 500: 1047 case 500:
1070 case 600: 1048 case 600:
1071 case 700: 1049 case 700:
1072 case 800: 1050 case 800:
1073 case 900: 1051 case 900:
1074 if (pWeight == NULL) { 1052 if (!pWeight) {
1075 pWeight = NewNumberValue(pStaticStore, 1053 pWeight = NewNumberValue(pStaticStore,
1076 FDE_CSSPRIMITIVETYPE_Number, fValue); 1054 FDE_CSSPRIMITIVETYPE_Number, fValue);
1077 } 1055 }
1078 continue; 1056 continue;
1079 } 1057 }
1080 } 1058 }
1081 if (pFontSize == NULL) { 1059 if (!pFontSize)
1082 pFontSize = NewNumberValue(pStaticStore, eType, fValue); 1060 pFontSize = NewNumberValue(pStaticStore, eType, fValue);
1083 } else if (pLineHeight == NULL) { 1061 else if (!pLineHeight)
1084 pLineHeight = NewNumberValue(pStaticStore, eType, fValue); 1062 pLineHeight = NewNumberValue(pStaticStore, eType, fValue);
1085 }
1086 } break; 1063 } break;
1087 default: 1064 default:
1088 break; 1065 break;
1089 } 1066 }
1090 } 1067 }
1091 if (pStyle == NULL) { 1068 if (!pStyle)
1092 pStyle = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Normal); 1069 pStyle = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Normal);
1093 } 1070 if (!pVariant)
1094 if (pVariant == NULL) {
1095 pVariant = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Normal); 1071 pVariant = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Normal);
1096 } 1072 if (!pWeight)
1097 if (pWeight == NULL) {
1098 pWeight = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Normal); 1073 pWeight = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Normal);
1099 } 1074 if (!pFontSize)
1100 if (pFontSize == NULL) {
1101 pFontSize = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Medium); 1075 pFontSize = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Medium);
1102 } 1076 if (!pLineHeight)
1103 if (pLineHeight == NULL) {
1104 pLineHeight = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Normal); 1077 pLineHeight = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Normal);
1105 } 1078
1106 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_FontStyle, pStyle, 1079 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_FontStyle, pStyle,
1107 bImportant); 1080 bImportant);
1108 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_FontVariant, pVariant, 1081 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_FontVariant, pVariant,
1109 bImportant); 1082 bImportant);
1110 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_FontWeight, pWeight, 1083 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_FontWeight, pWeight,
1111 bImportant); 1084 bImportant);
1112 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_FontSize, pFontSize, 1085 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_FontSize, pFontSize,
1113 bImportant); 1086 bImportant);
1114 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_LineHeight, pLineHeight, 1087 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_LineHeight, pLineHeight,
1115 bImportant); 1088 bImportant);
1116 if (familyList.GetSize() > 0) { 1089 if (familyList.GetSize() > 0) {
1117 CFDE_CSSValueList* pList = FXTARGET_NewWith(pStaticStore) 1090 CFDE_CSSValueList* pList = FXTARGET_NewWith(pStaticStore)
1118 CFDE_CSSValueList(pStaticStore, familyList); 1091 CFDE_CSSValueList(pStaticStore, familyList);
1119 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_FontFamily, pList, 1092 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_FontFamily, pList,
1120 bImportant); 1093 bImportant);
1121 } 1094 }
1122 return TRUE; 1095 return TRUE;
1123 } 1096 }
1124 FX_BOOL CFDE_CSSDeclaration::ParseColumnRuleProperty( 1097 FX_BOOL CFDE_CSSDeclaration::ParseColumnRuleProperty(
1125 const FDE_CSSPROPERTYARGS* pArgs, 1098 const FDE_CSSPROPERTYARGS* pArgs,
1126 const FX_WCHAR* pszValue, 1099 const FX_WCHAR* pszValue,
1127 int32_t iValueLen, 1100 int32_t iValueLen,
1128 FX_BOOL bImportant) { 1101 FX_BOOL bImportant) {
1129 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore; 1102 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
1130 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 1103 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
1131 IFDE_CSSPrimitiveValue* pColumnRuleWidth = NULL; 1104 IFDE_CSSPrimitiveValue* pColumnRuleWidth = nullptr;
1132 IFDE_CSSPrimitiveValue* pColumnRuleStyle = NULL; 1105 IFDE_CSSPrimitiveValue* pColumnRuleStyle = nullptr;
1133 IFDE_CSSPrimitiveValue* pColumnRuleColor = NULL; 1106 IFDE_CSSPrimitiveValue* pColumnRuleColor = nullptr;
1134 FDE_CSSPRIMITIVETYPE eType; 1107 FDE_CSSPRIMITIVETYPE eType;
1135 while (parser.NextValue(eType, pszValue, iValueLen)) { 1108 while (parser.NextValue(eType, pszValue, iValueLen)) {
1136 switch (eType) { 1109 switch (eType) {
1137 case FDE_CSSPRIMITIVETYPE_String: { 1110 case FDE_CSSPRIMITIVETYPE_String: {
1138 const FDE_CSSPROPERTYVALUETABLE* pValue = 1111 const FDE_CSSPROPERTYVALUETABLE* pValue =
1139 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 1112 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
1140 if (pValue != NULL) { 1113 if (pValue) {
1141 switch (pValue->eName) { 1114 switch (pValue->eName) {
1142 case FDE_CSSPROPERTYVALUE_None: 1115 case FDE_CSSPROPERTYVALUE_None:
1143 case FDE_CSSPROPERTYVALUE_Hidden: 1116 case FDE_CSSPROPERTYVALUE_Hidden:
1144 case FDE_CSSPROPERTYVALUE_Dotted: 1117 case FDE_CSSPROPERTYVALUE_Dotted:
1145 case FDE_CSSPROPERTYVALUE_Dashed: 1118 case FDE_CSSPROPERTYVALUE_Dashed:
1146 case FDE_CSSPROPERTYVALUE_Solid: 1119 case FDE_CSSPROPERTYVALUE_Solid:
1147 case FDE_CSSPROPERTYVALUE_Double: 1120 case FDE_CSSPROPERTYVALUE_Double:
1148 case FDE_CSSPROPERTYVALUE_Groove: 1121 case FDE_CSSPROPERTYVALUE_Groove:
1149 case FDE_CSSPROPERTYVALUE_Ridge: 1122 case FDE_CSSPROPERTYVALUE_Ridge:
1150 case FDE_CSSPROPERTYVALUE_Inset: 1123 case FDE_CSSPROPERTYVALUE_Inset:
1151 case FDE_CSSPROPERTYVALUE_Outset: 1124 case FDE_CSSPROPERTYVALUE_Outset:
1152 if (pColumnRuleStyle == NULL) { 1125 if (!pColumnRuleStyle)
1153 pColumnRuleStyle = NewEnumValue(pStaticStore, pValue->eName); 1126 pColumnRuleStyle = NewEnumValue(pStaticStore, pValue->eName);
1154 }
1155 break; 1127 break;
1156 case FDE_CSSPROPERTYVALUE_Transparent: 1128 case FDE_CSSPROPERTYVALUE_Transparent:
1157 if (pColumnRuleColor == NULL) { 1129 if (!pColumnRuleColor)
1158 pColumnRuleColor = NewEnumValue(pStaticStore, pValue->eName); 1130 pColumnRuleColor = NewEnumValue(pStaticStore, pValue->eName);
1159 }
1160 break; 1131 break;
1161 case FDE_CSSPROPERTYVALUE_Thin: 1132 case FDE_CSSPROPERTYVALUE_Thin:
1162 case FDE_CSSPROPERTYVALUE_Medium: 1133 case FDE_CSSPROPERTYVALUE_Medium:
1163 case FDE_CSSPROPERTYVALUE_Thick: 1134 case FDE_CSSPROPERTYVALUE_Thick:
1164 if (pColumnRuleWidth == NULL) { 1135 if (!pColumnRuleWidth)
1165 pColumnRuleWidth = NewEnumValue(pStaticStore, pValue->eName); 1136 pColumnRuleWidth = NewEnumValue(pStaticStore, pValue->eName);
1166 }
1167 break; 1137 break;
1168 default: 1138 default:
1169 break; 1139 break;
1170 } 1140 }
1171 continue; 1141 continue;
1172 } 1142 }
1173 FX_ARGB dwColor; 1143 FX_ARGB dwColor;
1174 if (FDE_ParseCSSColor(pszValue, iValueLen, dwColor) && 1144 if (FDE_ParseCSSColor(pszValue, iValueLen, dwColor) &&
1175 pColumnRuleColor == NULL) { 1145 !pColumnRuleColor) {
1176 pColumnRuleColor = FXTARGET_NewWith(pStaticStore) 1146 pColumnRuleColor = FXTARGET_NewWith(pStaticStore)
1177 CFDE_CSSPrimitiveValue((FX_ARGB)dwColor); 1147 CFDE_CSSPrimitiveValue((FX_ARGB)dwColor);
1178 continue; 1148 continue;
1179 } 1149 }
1180 } break; 1150 } break;
1181 case FDE_CSSPRIMITIVETYPE_Number: { 1151 case FDE_CSSPRIMITIVETYPE_Number: {
1182 FX_FLOAT fValue; 1152 FX_FLOAT fValue;
1183 if (FDE_ParseCSSNumber(pszValue, iValueLen, fValue, eType) && 1153 if (FDE_ParseCSSNumber(pszValue, iValueLen, fValue, eType) &&
1184 pColumnRuleWidth == NULL) { 1154 !pColumnRuleWidth) {
1185 pColumnRuleWidth = NewNumberValue(pStaticStore, eType, fValue); 1155 pColumnRuleWidth = NewNumberValue(pStaticStore, eType, fValue);
1186 } 1156 }
1187 } break; 1157 } break;
1188 case FDE_CSSPRIMITIVETYPE_RGB: { 1158 case FDE_CSSPRIMITIVETYPE_RGB: {
1189 FX_ARGB dwColor; 1159 FX_ARGB dwColor;
1190 if (pColumnRuleColor == NULL && 1160 if (!pColumnRuleColor &&
1191 FDE_ParseCSSColor(pszValue, iValueLen, dwColor)) { 1161 FDE_ParseCSSColor(pszValue, iValueLen, dwColor)) {
1192 pColumnRuleColor = FXTARGET_NewWith(pStaticStore) 1162 pColumnRuleColor = FXTARGET_NewWith(pStaticStore)
1193 CFDE_CSSPrimitiveValue((FX_ARGB)dwColor); 1163 CFDE_CSSPrimitiveValue((FX_ARGB)dwColor);
1194 } 1164 }
1195 } break; 1165 } break;
1196 default: 1166 default:
1197 break; 1167 break;
1198 } 1168 }
1199 } 1169 }
1200 if (pColumnRuleColor == NULL && pColumnRuleStyle == NULL && 1170 if (!pColumnRuleColor && !pColumnRuleStyle && !pColumnRuleWidth)
1201 pColumnRuleWidth == NULL) {
1202 return FALSE; 1171 return FALSE;
1203 } 1172
1204 if (pColumnRuleStyle == NULL) { 1173 if (!pColumnRuleStyle)
1205 pColumnRuleStyle = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_None); 1174 pColumnRuleStyle = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_None);
1206 } 1175 if (!pColumnRuleWidth)
1207 if (pColumnRuleWidth == NULL) {
1208 pColumnRuleWidth = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Medium); 1176 pColumnRuleWidth = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Medium);
1209 } 1177 if (!pColumnRuleColor) {
1210 if (pColumnRuleColor == NULL) {
1211 pColumnRuleColor = 1178 pColumnRuleColor =
1212 FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue((FX_ARGB)0); 1179 FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue((FX_ARGB)0);
1213 } 1180 }
1214 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ColumnRuleStyle, 1181 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ColumnRuleStyle,
1215 pColumnRuleStyle, bImportant); 1182 pColumnRuleStyle, bImportant);
1216 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ColumnRuleWidth, 1183 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ColumnRuleWidth,
1217 pColumnRuleWidth, bImportant); 1184 pColumnRuleWidth, bImportant);
1218 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ColumnRuleColor, 1185 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ColumnRuleColor,
1219 pColumnRuleColor, bImportant); 1186 pColumnRuleColor, bImportant);
1220 return TRUE; 1187 return TRUE;
1221 } 1188 }
1222 FX_BOOL CFDE_CSSDeclaration::ParseTextEmphasisProperty( 1189 FX_BOOL CFDE_CSSDeclaration::ParseTextEmphasisProperty(
1223 FDE_CSSPROPERTYARGS* pArgs, 1190 FDE_CSSPROPERTYARGS* pArgs,
1224 const FX_WCHAR* pszValue, 1191 const FX_WCHAR* pszValue,
1225 int32_t iValueLen, 1192 int32_t iValueLen,
1226 FX_BOOL bImportant) { 1193 FX_BOOL bImportant) {
1227 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore; 1194 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
1228 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 1195 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
1229 CFDE_CSSValueArray arrEmphasisStyle; 1196 CFDE_CSSValueArray arrEmphasisStyle;
1230 FDE_CSSPRIMITIVETYPE eType; 1197 FDE_CSSPRIMITIVETYPE eType;
1231 IFDE_CSSPrimitiveValue* pEmphasisColor = NULL; 1198 IFDE_CSSPrimitiveValue* pEmphasisColor = nullptr;
1232 while (parser.NextValue(eType, pszValue, iValueLen)) { 1199 while (parser.NextValue(eType, pszValue, iValueLen)) {
1233 switch (eType) { 1200 switch (eType) {
1234 case FDE_CSSPRIMITIVETYPE_String: { 1201 case FDE_CSSPRIMITIVETYPE_String: {
1235 const FDE_CSSPROPERTYVALUETABLE* pValue = 1202 const FDE_CSSPROPERTYVALUETABLE* pValue =
1236 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 1203 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
1237 if (pValue != NULL) { 1204 if (pValue) {
1238 arrEmphasisStyle.Add(NewEnumValue(pStaticStore, pValue->eName)); 1205 arrEmphasisStyle.Add(NewEnumValue(pStaticStore, pValue->eName));
1239 continue; 1206 continue;
1240 } 1207 }
1241 FX_ARGB dwColor; 1208 FX_ARGB dwColor;
1242 if (FDE_ParseCSSColor(pszValue, iValueLen, dwColor)) { 1209 if (FDE_ParseCSSColor(pszValue, iValueLen, dwColor)) {
1243 pEmphasisColor = 1210 pEmphasisColor =
1244 FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(dwColor); 1211 FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(dwColor);
1245 continue; 1212 continue;
1246 } 1213 }
1247 pszValue = CopyToLocal(pArgs, pszValue, iValueLen); 1214 pszValue = CopyToLocal(pArgs, pszValue, iValueLen);
(...skipping 11 matching lines...) Expand all
1259 default: 1226 default:
1260 break; 1227 break;
1261 } 1228 }
1262 } 1229 }
1263 if (arrEmphasisStyle.GetSize() != 0) { 1230 if (arrEmphasisStyle.GetSize() != 0) {
1264 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_TextEmphasisStyle, 1231 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_TextEmphasisStyle,
1265 FXTARGET_NewWith(pStaticStore) 1232 FXTARGET_NewWith(pStaticStore)
1266 CFDE_CSSValueList(pStaticStore, arrEmphasisStyle), 1233 CFDE_CSSValueList(pStaticStore, arrEmphasisStyle),
1267 bImportant); 1234 bImportant);
1268 } 1235 }
1269 if (pEmphasisColor != NULL) { 1236 if (pEmphasisColor) {
1270 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_TextEmphasisColor, 1237 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_TextEmphasisColor,
1271 pEmphasisColor, bImportant); 1238 pEmphasisColor, bImportant);
1272 } 1239 }
1273 return TRUE; 1240 return TRUE;
1274 } 1241 }
1275 FX_BOOL CFDE_CSSDeclaration::ParseColumnsProperty( 1242 FX_BOOL CFDE_CSSDeclaration::ParseColumnsProperty(
1276 const FDE_CSSPROPERTYARGS* pArgs, 1243 const FDE_CSSPROPERTYARGS* pArgs,
1277 const FX_WCHAR* pszValue, 1244 const FX_WCHAR* pszValue,
1278 int32_t iValueLen, 1245 int32_t iValueLen,
1279 FX_BOOL bImportant) { 1246 FX_BOOL bImportant) {
1280 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore; 1247 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
1281 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 1248 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
1282 IFDE_CSSPrimitiveValue* pColumnWidth = NULL; 1249 IFDE_CSSPrimitiveValue* pColumnWidth = nullptr;
1283 IFDE_CSSPrimitiveValue* pColumnCount = NULL; 1250 IFDE_CSSPrimitiveValue* pColumnCount = nullptr;
1284 FDE_CSSPRIMITIVETYPE eType; 1251 FDE_CSSPRIMITIVETYPE eType;
1285 while (parser.NextValue(eType, pszValue, iValueLen)) { 1252 while (parser.NextValue(eType, pszValue, iValueLen)) {
1286 switch (eType) { 1253 switch (eType) {
1287 case FDE_CSSPRIMITIVETYPE_String: { 1254 case FDE_CSSPRIMITIVETYPE_String: {
1288 const FDE_CSSPROPERTYVALUETABLE* pValue = 1255 const FDE_CSSPROPERTYVALUETABLE* pValue =
1289 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 1256 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
1290 if (pValue == NULL && pValue->eName == FDE_CSSPROPERTYVALUE_Auto) { 1257 if (!pValue && pValue->eName == FDE_CSSPROPERTYVALUE_Auto) {
1291 pColumnWidth = NewEnumValue(pStaticStore, pValue->eName); 1258 pColumnWidth = NewEnumValue(pStaticStore, pValue->eName);
1292 } 1259 }
1293 } break; 1260 } break;
1294 case FDE_CSSPRIMITIVETYPE_Number: { 1261 case FDE_CSSPRIMITIVETYPE_Number: {
1295 FX_FLOAT fValue; 1262 FX_FLOAT fValue;
1296 if (FDE_ParseCSSNumber(pszValue, iValueLen, fValue, eType)) { 1263 if (FDE_ParseCSSNumber(pszValue, iValueLen, fValue, eType)) {
1297 switch (eType) { 1264 switch (eType) {
1298 case FDE_CSSPRIMITIVETYPE_Number: 1265 case FDE_CSSPRIMITIVETYPE_Number:
1299 if (pColumnCount == NULL) { 1266 if (!pColumnCount)
1300 pColumnCount = NewNumberValue(pStaticStore, eType, fValue); 1267 pColumnCount = NewNumberValue(pStaticStore, eType, fValue);
1301 }
1302 break; 1268 break;
1303 default: 1269 default:
1304 if (pColumnWidth == NULL) { 1270 if (!pColumnWidth)
1305 pColumnWidth = NewNumberValue(pStaticStore, eType, fValue); 1271 pColumnWidth = NewNumberValue(pStaticStore, eType, fValue);
1306 }
1307 break; 1272 break;
1308 } 1273 }
1309 } 1274 }
1310 } break; 1275 } break;
1311 default: 1276 default:
1312 break; 1277 break;
1313 } 1278 }
1314 } 1279 }
1315 if (pColumnWidth == NULL && pColumnCount == NULL) { 1280 if (!pColumnWidth && !pColumnCount)
1316 return FALSE; 1281 return FALSE;
1317 } else if (pColumnWidth == NULL) { 1282
1283 if (!pColumnWidth)
1318 pColumnWidth = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Auto); 1284 pColumnWidth = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Auto);
1319 } else if (pColumnCount == NULL) { 1285 else if (!pColumnCount)
1320 pColumnCount = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Auto); 1286 pColumnCount = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_Auto);
1321 } 1287
1322 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ColumnWidth, pColumnWidth, 1288 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ColumnWidth, pColumnWidth,
1323 bImportant); 1289 bImportant);
1324 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ColumnCount, pColumnCount, 1290 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ColumnCount, pColumnCount,
1325 bImportant); 1291 bImportant);
1326 return TRUE; 1292 return TRUE;
1327 } 1293 }
1328 FX_BOOL CFDE_CSSDeclaration::ParseOverflowProperty( 1294 FX_BOOL CFDE_CSSDeclaration::ParseOverflowProperty(
1329 const FDE_CSSPROPERTYARGS* pArgs, 1295 const FDE_CSSPROPERTYARGS* pArgs,
1330 const FX_WCHAR* pszValue, 1296 const FX_WCHAR* pszValue,
1331 int32_t iValueLen, 1297 int32_t iValueLen,
1332 FX_BOOL bImportant) { 1298 FX_BOOL bImportant) {
1333 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore; 1299 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
1334 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 1300 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
1335 IFDE_CSSPrimitiveValue* pOverflowX = NULL; 1301 IFDE_CSSPrimitiveValue* pOverflowX = nullptr;
1336 IFDE_CSSPrimitiveValue* pOverflowY = NULL; 1302 IFDE_CSSPrimitiveValue* pOverflowY = nullptr;
1337 FDE_CSSPRIMITIVETYPE eType; 1303 FDE_CSSPRIMITIVETYPE eType;
1338 while (parser.NextValue(eType, pszValue, iValueLen)) { 1304 while (parser.NextValue(eType, pszValue, iValueLen)) {
1339 if (eType == FDE_CSSPRIMITIVETYPE_String) { 1305 if (eType == FDE_CSSPRIMITIVETYPE_String) {
1340 const FDE_CSSPROPERTYVALUETABLE* pValue = 1306 const FDE_CSSPROPERTYVALUETABLE* pValue =
1341 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 1307 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
1342 if (pValue != NULL) { 1308 if (pValue) {
1343 switch (pValue->eName) { 1309 switch (pValue->eName) {
1344 case FDE_CSSOVERFLOW_Visible: 1310 case FDE_CSSOVERFLOW_Visible:
1345 case FDE_CSSOVERFLOW_Hidden: 1311 case FDE_CSSOVERFLOW_Hidden:
1346 case FDE_CSSOVERFLOW_Scroll: 1312 case FDE_CSSOVERFLOW_Scroll:
1347 case FDE_CSSOVERFLOW_Auto: 1313 case FDE_CSSOVERFLOW_Auto:
1348 case FDE_CSSOVERFLOW_NoDisplay: 1314 case FDE_CSSOVERFLOW_NoDisplay:
1349 case FDE_CSSOVERFLOW_NoContent: 1315 case FDE_CSSOVERFLOW_NoContent:
1350 if (pOverflowX != NULL && pOverflowY != NULL) { 1316 if (pOverflowX && pOverflowY)
1351 return FALSE; 1317 return FALSE;
1352 } else if (pOverflowX == NULL) { 1318 if (!pOverflowX) {
1353 pOverflowX = NewEnumValue(pStaticStore, pValue->eName); 1319 pOverflowX = NewEnumValue(pStaticStore, pValue->eName);
1354 } else if (pOverflowY == NULL) { 1320 } else if (!pOverflowY) {
1355 pOverflowY = NewEnumValue(pStaticStore, pValue->eName); 1321 pOverflowY = NewEnumValue(pStaticStore, pValue->eName);
1356 } 1322 }
1357 break; 1323 break;
1358 default: 1324 default:
1359 break; 1325 break;
1360 } 1326 }
1361 } 1327 }
1362 } 1328 }
1363 } 1329 }
1364 if (pOverflowX == NULL && pOverflowY == NULL) { 1330 if (!pOverflowX && !pOverflowY)
1365 return FALSE; 1331 return FALSE;
1366 } else if (pOverflowY == NULL) { 1332
1333 if (!pOverflowY)
1367 pOverflowY = NewEnumValue(pStaticStore, pOverflowX->GetEnum()); 1334 pOverflowY = NewEnumValue(pStaticStore, pOverflowX->GetEnum());
1368 } 1335
1369 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_OverflowX, pOverflowX, 1336 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_OverflowX, pOverflowX,
1370 bImportant); 1337 bImportant);
1371 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_OverflowY, pOverflowY, 1338 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_OverflowY, pOverflowY,
1372 bImportant); 1339 bImportant);
1373 return TRUE; 1340 return TRUE;
1374 } 1341 }
OLDNEW
« no previous file with comments | « xfa/fde/css/fde_cssdatatable.cpp ('k') | xfa/fde/css/fde_cssstyleselector.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698