OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "xfa/fde/css/fde_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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |