| 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 |