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

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

Issue 1944093002: Cleanup XFA-Specific memory allocators. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Dan's comments, remove more unused methods. Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fde/css/fde_cssdeclaration.h ('k') | xfa/fde/css/fde_cssstyleselector.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "xfa/fde/css/fde_cssdeclaration.h" 7 #include "xfa/fde/css/fde_cssdeclaration.h"
8 8
9 #include "core/fxcrt/include/fx_ext.h" 9 #include "core/fxcrt/include/fx_ext.h"
10 #include "xfa/fgas/crt/fgas_system.h" 10 #include "xfa/fgas/crt/fgas_system.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 return NULL; 69 return NULL;
70 } 70 }
71 FXSYS_wcsncpy(psz, pszValue, iValueLen); 71 FXSYS_wcsncpy(psz, pszValue, iValueLen);
72 psz[iValueLen] = '\0'; 72 psz[iValueLen] = '\0';
73 if (pCache) { 73 if (pCache) {
74 pCache->SetAt(pKey, psz); 74 pCache->SetAt(pKey, psz);
75 } 75 }
76 return psz; 76 return psz;
77 } 77 }
78 IFDE_CSSPrimitiveValue* CFDE_CSSDeclaration::NewNumberValue( 78 IFDE_CSSPrimitiveValue* CFDE_CSSDeclaration::NewNumberValue(
79 IFX_MEMAllocator* pStaticStore, 79 IFX_MemoryAllocator* pStaticStore,
80 FDE_CSSPRIMITIVETYPE eUnit, 80 FDE_CSSPRIMITIVETYPE eUnit,
81 FX_FLOAT fValue) const { 81 FX_FLOAT fValue) const {
82 static CFDE_CSSPrimitiveValue s_ZeroValue(FDE_CSSPRIMITIVETYPE_Number, 0.0f); 82 static CFDE_CSSPrimitiveValue s_ZeroValue(FDE_CSSPRIMITIVETYPE_Number, 0.0f);
83 if (eUnit == FDE_CSSPRIMITIVETYPE_Number && FXSYS_fabs(fValue) < 0.001f) { 83 if (eUnit == FDE_CSSPRIMITIVETYPE_Number && FXSYS_fabs(fValue) < 0.001f) {
84 return &s_ZeroValue; 84 return &s_ZeroValue;
85 } 85 }
86 return FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(eUnit, fValue); 86 return FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(eUnit, fValue);
87 } 87 }
88 inline IFDE_CSSPrimitiveValue* CFDE_CSSDeclaration::NewEnumValue( 88 inline IFDE_CSSPrimitiveValue* CFDE_CSSDeclaration::NewEnumValue(
89 IFX_MEMAllocator* pStaticStore, 89 IFX_MemoryAllocator* pStaticStore,
90 FDE_CSSPROPERTYVALUE eValue) const { 90 FDE_CSSPROPERTYVALUE eValue) const {
91 return FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(eValue); 91 return FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(eValue);
92 } 92 }
93 void CFDE_CSSDeclaration::AddPropertyHolder(IFX_MEMAllocator* pStaticStore, 93 void CFDE_CSSDeclaration::AddPropertyHolder(IFX_MemoryAllocator* pStaticStore,
94 FDE_CSSPROPERTY eProperty, 94 FDE_CSSPROPERTY eProperty,
95 IFDE_CSSValue* pValue, 95 IFDE_CSSValue* pValue,
96 FX_BOOL bImportant) { 96 FX_BOOL bImportant) {
97 FDE_CSSPropertyHolder* pHolder = 97 FDE_CSSPropertyHolder* pHolder =
98 FXTARGET_NewWith(pStaticStore) FDE_CSSPropertyHolder; 98 FXTARGET_NewWith(pStaticStore) FDE_CSSPropertyHolder;
99 pHolder->bImportant = bImportant; 99 pHolder->bImportant = bImportant;
100 pHolder->eProperty = eProperty; 100 pHolder->eProperty = eProperty;
101 pHolder->pValue = pValue; 101 pHolder->pValue = pValue;
102 pHolder->pNext = NULL; 102 pHolder->pNext = NULL;
103 if (m_pLastProperty == NULL) { 103 if (m_pLastProperty == NULL) {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 AddPropertyHolder(pArgs->pStaticStore, pArgs->pProperty->eName, 161 AddPropertyHolder(pArgs->pStaticStore, pArgs->pProperty->eName,
162 pCSSValue, bImportant); 162 pCSSValue, bImportant);
163 return TRUE; 163 return TRUE;
164 } 164 }
165 if (FDE_IsOnlyValue(dwType, g_ValueGuessOrder[i])) { 165 if (FDE_IsOnlyValue(dwType, g_ValueGuessOrder[i])) {
166 return FALSE; 166 return FALSE;
167 } 167 }
168 } 168 }
169 } break; 169 } break;
170 case FDE_CSSVALUETYPE_Shorthand: { 170 case FDE_CSSVALUETYPE_Shorthand: {
171 IFX_MEMAllocator* pStaticStore = pArgs->pStaticStore; 171 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
172 IFDE_CSSValue *pColor, *pStyle, *pWidth; 172 IFDE_CSSValue *pColor, *pStyle, *pWidth;
173 switch (pArgs->pProperty->eName) { 173 switch (pArgs->pProperty->eName) {
174 case FDE_CSSPROPERTY_Font: 174 case FDE_CSSPROPERTY_Font:
175 return ParseFontProperty(pArgs, pszValue, iValueLen, bImportant); 175 return ParseFontProperty(pArgs, pszValue, iValueLen, bImportant);
176 case FDE_CSSPROPERTY_Background: 176 case FDE_CSSPROPERTY_Background:
177 return ParseBackgroundProperty(pArgs, pszValue, iValueLen, 177 return ParseBackgroundProperty(pArgs, pszValue, iValueLen,
178 bImportant); 178 bImportant);
179 case FDE_CSSPROPERTY_ListStyle: 179 case FDE_CSSPROPERTY_ListStyle:
180 return ParseListStyleProperty(pArgs, pszValue, iValueLen, bImportant); 180 return ParseListStyleProperty(pArgs, pszValue, iValueLen, bImportant);
181 case FDE_CSSPROPERTY_Border: 181 case FDE_CSSPROPERTY_Border:
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 CFDE_CSSFunction* pFunction = FXTARGET_NewWith(pArgs->pStaticStore) 408 CFDE_CSSFunction* pFunction = FXTARGET_NewWith(pArgs->pStaticStore)
409 CFDE_CSSFunction(pszFuncName, pArgumentList); 409 CFDE_CSSFunction(pszFuncName, pArgumentList);
410 return FXTARGET_NewWith(pArgs->pStaticStore) 410 return FXTARGET_NewWith(pArgs->pStaticStore)
411 CFDE_CSSPrimitiveValue(pFunction); 411 CFDE_CSSPrimitiveValue(pFunction);
412 } 412 }
413 FX_BOOL CFDE_CSSDeclaration::ParseContentProperty( 413 FX_BOOL CFDE_CSSDeclaration::ParseContentProperty(
414 const FDE_CSSPROPERTYARGS* pArgs, 414 const FDE_CSSPROPERTYARGS* pArgs,
415 const FX_WCHAR* pszValue, 415 const FX_WCHAR* pszValue,
416 int32_t iValueLen, 416 int32_t iValueLen,
417 FX_BOOL bImportant) { 417 FX_BOOL bImportant) {
418 IFX_MEMAllocator* pStaticStore = (IFX_MEMAllocator*)pArgs->pStaticStore; 418 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
419 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 419 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
420 FDE_CSSPRIMITIVETYPE eType; 420 FDE_CSSPRIMITIVETYPE eType;
421 CFDE_CSSValueArray list; 421 CFDE_CSSValueArray list;
422 while (parser.NextValue(eType, pszValue, iValueLen)) { 422 while (parser.NextValue(eType, pszValue, iValueLen)) {
423 switch (eType) { 423 switch (eType) {
424 case FDE_CSSPRIMITIVETYPE_URI: 424 case FDE_CSSPRIMITIVETYPE_URI:
425 list.Add(FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue( 425 list.Add(FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(
426 eType, CopyToLocal(pArgs, pszValue, iValueLen))); 426 eType, CopyToLocal(pArgs, pszValue, iValueLen)));
427 break; 427 break;
428 case FDE_CSSPRIMITIVETYPE_Number: 428 case FDE_CSSPRIMITIVETYPE_Number:
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 FXTARGET_NewWith(pStaticStore) 472 FXTARGET_NewWith(pStaticStore)
473 CFDE_CSSValueList(pStaticStore, list), 473 CFDE_CSSValueList(pStaticStore, list),
474 bImportant); 474 bImportant);
475 return TRUE; 475 return TRUE;
476 } 476 }
477 FX_BOOL CFDE_CSSDeclaration::ParseCounterProperty( 477 FX_BOOL CFDE_CSSDeclaration::ParseCounterProperty(
478 const FDE_CSSPROPERTYARGS* pArgs, 478 const FDE_CSSPROPERTYARGS* pArgs,
479 const FX_WCHAR* pszValue, 479 const FX_WCHAR* pszValue,
480 int32_t iValueLen, 480 int32_t iValueLen,
481 FX_BOOL bImportant) { 481 FX_BOOL bImportant) {
482 IFX_MEMAllocator* pStaticStore = pArgs->pStaticStore; 482 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
483 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 483 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
484 CFDE_CSSValueArray list; 484 CFDE_CSSValueArray list;
485 CFDE_CSSValueArray listFull; 485 CFDE_CSSValueArray listFull;
486 FDE_CSSPRIMITIVETYPE eType; 486 FDE_CSSPRIMITIVETYPE eType;
487 while (parser.NextValue(eType, pszValue, iValueLen)) { 487 while (parser.NextValue(eType, pszValue, iValueLen)) {
488 switch (eType) { 488 switch (eType) {
489 case FDE_CSSPRIMITIVETYPE_Number: { 489 case FDE_CSSPRIMITIVETYPE_Number: {
490 FX_FLOAT fValue; 490 FX_FLOAT fValue;
491 if (FDE_ParseCSSNumber(pszValue, iValueLen, fValue, eType)) { 491 if (FDE_ParseCSSNumber(pszValue, iValueLen, fValue, eType)) {
492 if (list.GetSize() == 1) { 492 if (list.GetSize() == 1) {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 FXTARGET_NewWith(pStaticStore) 528 FXTARGET_NewWith(pStaticStore)
529 CFDE_CSSValueList(pStaticStore, listFull), 529 CFDE_CSSValueList(pStaticStore, listFull),
530 bImportant); 530 bImportant);
531 return TRUE; 531 return TRUE;
532 } 532 }
533 FX_BOOL CFDE_CSSDeclaration::ParseValueListProperty( 533 FX_BOOL CFDE_CSSDeclaration::ParseValueListProperty(
534 const FDE_CSSPROPERTYARGS* pArgs, 534 const FDE_CSSPROPERTYARGS* pArgs,
535 const FX_WCHAR* pszValue, 535 const FX_WCHAR* pszValue,
536 int32_t iValueLen, 536 int32_t iValueLen,
537 FX_BOOL bImportant) { 537 FX_BOOL bImportant) {
538 IFX_MEMAllocator* pStaticStore = pArgs->pStaticStore; 538 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
539 FX_WCHAR separator = 539 FX_WCHAR separator =
540 (pArgs->pProperty->eName == FDE_CSSPROPERTY_FontFamily) ? ',' : ' '; 540 (pArgs->pProperty->eName == FDE_CSSPROPERTY_FontFamily) ? ',' : ' ';
541 CFDE_CSSValueListParser parser(pszValue, iValueLen, separator); 541 CFDE_CSSValueListParser parser(pszValue, iValueLen, separator);
542 const uint32_t dwType = pArgs->pProperty->dwType; 542 const uint32_t dwType = pArgs->pProperty->dwType;
543 FDE_CSSPRIMITIVETYPE eType; 543 FDE_CSSPRIMITIVETYPE eType;
544 CFDE_CSSValueArray list; 544 CFDE_CSSValueArray list;
545 while (parser.NextValue(eType, pszValue, iValueLen)) { 545 while (parser.NextValue(eType, pszValue, iValueLen)) {
546 switch (eType) { 546 switch (eType) {
547 case FDE_CSSPRIMITIVETYPE_Number: 547 case FDE_CSSPRIMITIVETYPE_Number:
548 if (dwType & FDE_CSSVALUETYPE_MaybeNumber) { 548 if (dwType & FDE_CSSVALUETYPE_MaybeNumber) {
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 default: { 621 default: {
622 CFDE_CSSValueList* pList = 622 CFDE_CSSValueList* pList =
623 FXTARGET_NewWith(pStaticStore) CFDE_CSSValueList(pStaticStore, list); 623 FXTARGET_NewWith(pStaticStore) CFDE_CSSValueList(pStaticStore, list);
624 AddPropertyHolder(pStaticStore, pArgs->pProperty->eName, pList, 624 AddPropertyHolder(pStaticStore, pArgs->pProperty->eName, pList,
625 bImportant); 625 bImportant);
626 return TRUE; 626 return TRUE;
627 } break; 627 } break;
628 } 628 }
629 return FALSE; 629 return FALSE;
630 } 630 }
631 FX_BOOL CFDE_CSSDeclaration::Add4ValuesProperty(IFX_MEMAllocator* pStaticStore, 631 FX_BOOL CFDE_CSSDeclaration::Add4ValuesProperty(
632 const CFDE_CSSValueArray& list, 632 IFX_MemoryAllocator* pStaticStore,
633 FX_BOOL bImportant, 633 const CFDE_CSSValueArray& list,
634 FDE_CSSPROPERTY eLeft, 634 FX_BOOL bImportant,
635 FDE_CSSPROPERTY eTop, 635 FDE_CSSPROPERTY eLeft,
636 FDE_CSSPROPERTY eRight, 636 FDE_CSSPROPERTY eTop,
637 FDE_CSSPROPERTY eBottom) { 637 FDE_CSSPROPERTY eRight,
638 FDE_CSSPROPERTY eBottom) {
638 switch (list.GetSize()) { 639 switch (list.GetSize()) {
639 case 1: 640 case 1:
640 AddPropertyHolder(pStaticStore, eLeft, list[0], bImportant); 641 AddPropertyHolder(pStaticStore, eLeft, list[0], bImportant);
641 AddPropertyHolder(pStaticStore, eTop, list[0], bImportant); 642 AddPropertyHolder(pStaticStore, eTop, list[0], bImportant);
642 AddPropertyHolder(pStaticStore, eRight, list[0], bImportant); 643 AddPropertyHolder(pStaticStore, eRight, list[0], bImportant);
643 AddPropertyHolder(pStaticStore, eBottom, list[0], bImportant); 644 AddPropertyHolder(pStaticStore, eBottom, list[0], bImportant);
644 return TRUE; 645 return TRUE;
645 case 2: 646 case 2:
646 AddPropertyHolder(pStaticStore, eLeft, list[1], bImportant); 647 AddPropertyHolder(pStaticStore, eLeft, list[1], bImportant);
647 AddPropertyHolder(pStaticStore, eTop, list[0], bImportant); 648 AddPropertyHolder(pStaticStore, eTop, list[0], bImportant);
(...skipping 11 matching lines...) Expand all
659 AddPropertyHolder(pStaticStore, eTop, list[0], bImportant); 660 AddPropertyHolder(pStaticStore, eTop, list[0], bImportant);
660 AddPropertyHolder(pStaticStore, eRight, list[1], bImportant); 661 AddPropertyHolder(pStaticStore, eRight, list[1], bImportant);
661 AddPropertyHolder(pStaticStore, eBottom, list[2], bImportant); 662 AddPropertyHolder(pStaticStore, eBottom, list[2], bImportant);
662 return TRUE; 663 return TRUE;
663 default: 664 default:
664 break; 665 break;
665 } 666 }
666 return FALSE; 667 return FALSE;
667 } 668 }
668 FX_BOOL CFDE_CSSDeclaration::ParseBorderPropoerty( 669 FX_BOOL CFDE_CSSDeclaration::ParseBorderPropoerty(
669 IFX_MEMAllocator* pStaticStore, 670 IFX_MemoryAllocator* pStaticStore,
670 const FX_WCHAR* pszValue, 671 const FX_WCHAR* pszValue,
671 int32_t iValueLen, 672 int32_t iValueLen,
672 IFDE_CSSValue*& pColor, 673 IFDE_CSSValue*& pColor,
673 IFDE_CSSValue*& pStyle, 674 IFDE_CSSValue*& pStyle,
674 IFDE_CSSValue*& pWidth) const { 675 IFDE_CSSValue*& pWidth) const {
675 pColor = pStyle = pWidth = NULL; 676 pColor = pStyle = pWidth = NULL;
676 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 677 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
677 FDE_CSSPRIMITIVETYPE eType; 678 FDE_CSSPRIMITIVETYPE eType;
678 while (parser.NextValue(eType, pszValue, iValueLen)) { 679 while (parser.NextValue(eType, pszValue, iValueLen)) {
679 switch (eType) { 680 switch (eType) {
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 pColor = FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue((FX_ARGB)0); 750 pColor = FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue((FX_ARGB)0);
750 } 751 }
751 if (pStyle == NULL) { 752 if (pStyle == NULL) {
752 pStyle = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_None); 753 pStyle = NewEnumValue(pStaticStore, FDE_CSSPROPERTYVALUE_None);
753 } 754 }
754 if (pWidth == NULL) { 755 if (pWidth == NULL) {
755 pWidth = NewNumberValue(pStaticStore, FDE_CSSPRIMITIVETYPE_Number, 0.0f); 756 pWidth = NewNumberValue(pStaticStore, FDE_CSSPRIMITIVETYPE_Number, 0.0f);
756 } 757 }
757 return TRUE; 758 return TRUE;
758 } 759 }
759 void CFDE_CSSDeclaration::AddBorderProperty(IFX_MEMAllocator* pStaticStore, 760 void CFDE_CSSDeclaration::AddBorderProperty(IFX_MemoryAllocator* pStaticStore,
760 IFDE_CSSValue* pColor, 761 IFDE_CSSValue* pColor,
761 IFDE_CSSValue* pStyle, 762 IFDE_CSSValue* pStyle,
762 IFDE_CSSValue* pWidth, 763 IFDE_CSSValue* pWidth,
763 FX_BOOL bImportant, 764 FX_BOOL bImportant,
764 FDE_CSSPROPERTY eColor, 765 FDE_CSSPROPERTY eColor,
765 FDE_CSSPROPERTY eStyle, 766 FDE_CSSPROPERTY eStyle,
766 FDE_CSSPROPERTY eWidth) { 767 FDE_CSSPROPERTY eWidth) {
767 AddPropertyHolder(pStaticStore, eStyle, pStyle, bImportant); 768 AddPropertyHolder(pStaticStore, eStyle, pStyle, bImportant);
768 AddPropertyHolder(pStaticStore, eWidth, pWidth, bImportant); 769 AddPropertyHolder(pStaticStore, eWidth, pWidth, bImportant);
769 AddPropertyHolder(pStaticStore, eColor, pColor, bImportant); 770 AddPropertyHolder(pStaticStore, eColor, pColor, bImportant);
770 } 771 }
771 FX_BOOL CFDE_CSSDeclaration::ParseListStyleProperty( 772 FX_BOOL CFDE_CSSDeclaration::ParseListStyleProperty(
772 const FDE_CSSPROPERTYARGS* pArgs, 773 const FDE_CSSPROPERTYARGS* pArgs,
773 const FX_WCHAR* pszValue, 774 const FX_WCHAR* pszValue,
774 int32_t iValueLen, 775 int32_t iValueLen,
775 FX_BOOL bImportant) { 776 FX_BOOL bImportant) {
776 IFX_MEMAllocator* pStaticStore = pArgs->pStaticStore; 777 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
777 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 778 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
778 IFDE_CSSPrimitiveValue *pType = NULL, *pImage = NULL, *pPosition = NULL; 779 IFDE_CSSPrimitiveValue *pType = NULL, *pImage = NULL, *pPosition = NULL;
779 FDE_CSSPRIMITIVETYPE eType; 780 FDE_CSSPRIMITIVETYPE eType;
780 while (parser.NextValue(eType, pszValue, iValueLen)) { 781 while (parser.NextValue(eType, pszValue, iValueLen)) {
781 switch (eType) { 782 switch (eType) {
782 case FDE_CSSPRIMITIVETYPE_URI: 783 case FDE_CSSPRIMITIVETYPE_URI:
783 if (pImage == NULL) { 784 if (pImage == NULL) {
784 pImage = FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue( 785 pImage = FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(
785 eType, CopyToLocal(pArgs, pszValue, iValueLen)); 786 eType, CopyToLocal(pArgs, pszValue, iValueLen));
786 } 787 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
846 bImportant); 847 bImportant);
847 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ListStyleType, pType, 848 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ListStyleType, pType,
848 bImportant); 849 bImportant);
849 return TRUE; 850 return TRUE;
850 } 851 }
851 FX_BOOL CFDE_CSSDeclaration::ParseBackgroundProperty( 852 FX_BOOL CFDE_CSSDeclaration::ParseBackgroundProperty(
852 const FDE_CSSPROPERTYARGS* pArgs, 853 const FDE_CSSPROPERTYARGS* pArgs,
853 const FX_WCHAR* pszValue, 854 const FX_WCHAR* pszValue,
854 int32_t iValueLen, 855 int32_t iValueLen,
855 FX_BOOL bImportant) { 856 FX_BOOL bImportant) {
856 IFX_MEMAllocator* pStaticStore = pArgs->pStaticStore; 857 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
857 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 858 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
858 IFDE_CSSPrimitiveValue *pColor = NULL, *pImage = NULL, *pRepeat = NULL; 859 IFDE_CSSPrimitiveValue *pColor = NULL, *pImage = NULL, *pRepeat = NULL;
859 IFDE_CSSPrimitiveValue *pPosX = NULL, *pPosY = NULL, *pAttachment = NULL; 860 IFDE_CSSPrimitiveValue *pPosX = NULL, *pPosY = NULL, *pAttachment = NULL;
860 FDE_CSSPRIMITIVETYPE eType; 861 FDE_CSSPRIMITIVETYPE eType;
861 while (parser.NextValue(eType, pszValue, iValueLen)) { 862 while (parser.NextValue(eType, pszValue, iValueLen)) {
862 switch (eType) { 863 switch (eType) {
863 case FDE_CSSPRIMITIVETYPE_URI: 864 case FDE_CSSPRIMITIVETYPE_URI:
864 if (pImage == NULL) { 865 if (pImage == NULL) {
865 pImage = FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue( 866 pImage = FXTARGET_NewWith(pStaticStore) CFDE_CSSPrimitiveValue(
866 eType, CopyToLocal(pArgs, pszValue, iValueLen)); 867 eType, CopyToLocal(pArgs, pszValue, iValueLen));
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
985 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_BackgroundPosition, pPosList, 986 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_BackgroundPosition, pPosList,
986 bImportant); 987 bImportant);
987 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_BackgroundAttachment, 988 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_BackgroundAttachment,
988 pAttachment, bImportant); 989 pAttachment, bImportant);
989 return TRUE; 990 return TRUE;
990 } 991 }
991 FX_BOOL CFDE_CSSDeclaration::ParseFontProperty(const FDE_CSSPROPERTYARGS* pArgs, 992 FX_BOOL CFDE_CSSDeclaration::ParseFontProperty(const FDE_CSSPROPERTYARGS* pArgs,
992 const FX_WCHAR* pszValue, 993 const FX_WCHAR* pszValue,
993 int32_t iValueLen, 994 int32_t iValueLen,
994 FX_BOOL bImportant) { 995 FX_BOOL bImportant) {
995 IFX_MEMAllocator* pStaticStore = pArgs->pStaticStore; 996 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
996 CFDE_CSSValueListParser parser(pszValue, iValueLen, '/'); 997 CFDE_CSSValueListParser parser(pszValue, iValueLen, '/');
997 IFDE_CSSPrimitiveValue *pStyle = NULL, *pVariant = NULL, *pWeight = NULL; 998 IFDE_CSSPrimitiveValue *pStyle = NULL, *pVariant = NULL, *pWeight = NULL;
998 IFDE_CSSPrimitiveValue *pFontSize = NULL, *pLineHeight = NULL; 999 IFDE_CSSPrimitiveValue *pFontSize = NULL, *pLineHeight = NULL;
999 CFDE_CSSValueArray familyList; 1000 CFDE_CSSValueArray familyList;
1000 FDE_CSSPRIMITIVETYPE eType; 1001 FDE_CSSPRIMITIVETYPE eType;
1001 while (parser.NextValue(eType, pszValue, iValueLen)) { 1002 while (parser.NextValue(eType, pszValue, iValueLen)) {
1002 switch (eType) { 1003 switch (eType) {
1003 case FDE_CSSPRIMITIVETYPE_String: { 1004 case FDE_CSSPRIMITIVETYPE_String: {
1004 const FDE_CSSPROPERTYVALUETABLE* pValue = 1005 const FDE_CSSPROPERTYVALUETABLE* pValue =
1005 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 1006 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
1123 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_FontFamily, pList, 1124 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_FontFamily, pList,
1124 bImportant); 1125 bImportant);
1125 } 1126 }
1126 return TRUE; 1127 return TRUE;
1127 } 1128 }
1128 FX_BOOL CFDE_CSSDeclaration::ParseColumnRuleProperty( 1129 FX_BOOL CFDE_CSSDeclaration::ParseColumnRuleProperty(
1129 const FDE_CSSPROPERTYARGS* pArgs, 1130 const FDE_CSSPROPERTYARGS* pArgs,
1130 const FX_WCHAR* pszValue, 1131 const FX_WCHAR* pszValue,
1131 int32_t iValueLen, 1132 int32_t iValueLen,
1132 FX_BOOL bImportant) { 1133 FX_BOOL bImportant) {
1133 IFX_MEMAllocator* pStaticStore = pArgs->pStaticStore; 1134 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
1134 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 1135 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
1135 IFDE_CSSPrimitiveValue* pColumnRuleWidth = NULL; 1136 IFDE_CSSPrimitiveValue* pColumnRuleWidth = NULL;
1136 IFDE_CSSPrimitiveValue* pColumnRuleStyle = NULL; 1137 IFDE_CSSPrimitiveValue* pColumnRuleStyle = NULL;
1137 IFDE_CSSPrimitiveValue* pColumnRuleColor = NULL; 1138 IFDE_CSSPrimitiveValue* pColumnRuleColor = NULL;
1138 FDE_CSSPRIMITIVETYPE eType; 1139 FDE_CSSPRIMITIVETYPE eType;
1139 while (parser.NextValue(eType, pszValue, iValueLen)) { 1140 while (parser.NextValue(eType, pszValue, iValueLen)) {
1140 switch (eType) { 1141 switch (eType) {
1141 case FDE_CSSPRIMITIVETYPE_String: { 1142 case FDE_CSSPRIMITIVETYPE_String: {
1142 const FDE_CSSPROPERTYVALUETABLE* pValue = 1143 const FDE_CSSPROPERTYVALUETABLE* pValue =
1143 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 1144 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1221 pColumnRuleWidth, bImportant); 1222 pColumnRuleWidth, bImportant);
1222 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ColumnRuleColor, 1223 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ColumnRuleColor,
1223 pColumnRuleColor, bImportant); 1224 pColumnRuleColor, bImportant);
1224 return TRUE; 1225 return TRUE;
1225 } 1226 }
1226 FX_BOOL CFDE_CSSDeclaration::ParseTextEmphasisProperty( 1227 FX_BOOL CFDE_CSSDeclaration::ParseTextEmphasisProperty(
1227 FDE_CSSPROPERTYARGS* pArgs, 1228 FDE_CSSPROPERTYARGS* pArgs,
1228 const FX_WCHAR* pszValue, 1229 const FX_WCHAR* pszValue,
1229 int32_t iValueLen, 1230 int32_t iValueLen,
1230 FX_BOOL bImportant) { 1231 FX_BOOL bImportant) {
1231 IFX_MEMAllocator* pStaticStore = pArgs->pStaticStore; 1232 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
1232 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 1233 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
1233 CFDE_CSSValueArray arrEmphasisStyle; 1234 CFDE_CSSValueArray arrEmphasisStyle;
1234 FDE_CSSPRIMITIVETYPE eType; 1235 FDE_CSSPRIMITIVETYPE eType;
1235 IFDE_CSSPrimitiveValue* pEmphasisColor = NULL; 1236 IFDE_CSSPrimitiveValue* pEmphasisColor = NULL;
1236 while (parser.NextValue(eType, pszValue, iValueLen)) { 1237 while (parser.NextValue(eType, pszValue, iValueLen)) {
1237 switch (eType) { 1238 switch (eType) {
1238 case FDE_CSSPRIMITIVETYPE_String: { 1239 case FDE_CSSPRIMITIVETYPE_String: {
1239 const FDE_CSSPROPERTYVALUETABLE* pValue = 1240 const FDE_CSSPROPERTYVALUETABLE* pValue =
1240 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 1241 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
1241 if (pValue != NULL) { 1242 if (pValue != NULL) {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1274 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_TextEmphasisColor, 1275 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_TextEmphasisColor,
1275 pEmphasisColor, bImportant); 1276 pEmphasisColor, bImportant);
1276 } 1277 }
1277 return TRUE; 1278 return TRUE;
1278 } 1279 }
1279 FX_BOOL CFDE_CSSDeclaration::ParseColumnsProperty( 1280 FX_BOOL CFDE_CSSDeclaration::ParseColumnsProperty(
1280 const FDE_CSSPROPERTYARGS* pArgs, 1281 const FDE_CSSPROPERTYARGS* pArgs,
1281 const FX_WCHAR* pszValue, 1282 const FX_WCHAR* pszValue,
1282 int32_t iValueLen, 1283 int32_t iValueLen,
1283 FX_BOOL bImportant) { 1284 FX_BOOL bImportant) {
1284 IFX_MEMAllocator* pStaticStore = pArgs->pStaticStore; 1285 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
1285 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 1286 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
1286 IFDE_CSSPrimitiveValue* pColumnWidth = NULL; 1287 IFDE_CSSPrimitiveValue* pColumnWidth = NULL;
1287 IFDE_CSSPrimitiveValue* pColumnCount = NULL; 1288 IFDE_CSSPrimitiveValue* pColumnCount = NULL;
1288 FDE_CSSPRIMITIVETYPE eType; 1289 FDE_CSSPRIMITIVETYPE eType;
1289 while (parser.NextValue(eType, pszValue, iValueLen)) { 1290 while (parser.NextValue(eType, pszValue, iValueLen)) {
1290 switch (eType) { 1291 switch (eType) {
1291 case FDE_CSSPRIMITIVETYPE_String: { 1292 case FDE_CSSPRIMITIVETYPE_String: {
1292 const FDE_CSSPROPERTYVALUETABLE* pValue = 1293 const FDE_CSSPROPERTYVALUETABLE* pValue =
1293 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 1294 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
1294 if (pValue == NULL && pValue->eName == FDE_CSSPROPERTYVALUE_Auto) { 1295 if (pValue == NULL && pValue->eName == FDE_CSSPROPERTYVALUE_Auto) {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1327 bImportant); 1328 bImportant);
1328 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ColumnCount, pColumnCount, 1329 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_ColumnCount, pColumnCount,
1329 bImportant); 1330 bImportant);
1330 return TRUE; 1331 return TRUE;
1331 } 1332 }
1332 FX_BOOL CFDE_CSSDeclaration::ParseOverflowProperty( 1333 FX_BOOL CFDE_CSSDeclaration::ParseOverflowProperty(
1333 const FDE_CSSPROPERTYARGS* pArgs, 1334 const FDE_CSSPROPERTYARGS* pArgs,
1334 const FX_WCHAR* pszValue, 1335 const FX_WCHAR* pszValue,
1335 int32_t iValueLen, 1336 int32_t iValueLen,
1336 FX_BOOL bImportant) { 1337 FX_BOOL bImportant) {
1337 IFX_MEMAllocator* pStaticStore = pArgs->pStaticStore; 1338 IFX_MemoryAllocator* pStaticStore = pArgs->pStaticStore;
1338 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' '); 1339 CFDE_CSSValueListParser parser(pszValue, iValueLen, ' ');
1339 IFDE_CSSPrimitiveValue* pOverflowX = NULL; 1340 IFDE_CSSPrimitiveValue* pOverflowX = NULL;
1340 IFDE_CSSPrimitiveValue* pOverflowY = NULL; 1341 IFDE_CSSPrimitiveValue* pOverflowY = NULL;
1341 FDE_CSSPRIMITIVETYPE eType; 1342 FDE_CSSPRIMITIVETYPE eType;
1342 while (parser.NextValue(eType, pszValue, iValueLen)) { 1343 while (parser.NextValue(eType, pszValue, iValueLen)) {
1343 if (eType == FDE_CSSPRIMITIVETYPE_String) { 1344 if (eType == FDE_CSSPRIMITIVETYPE_String) {
1344 const FDE_CSSPROPERTYVALUETABLE* pValue = 1345 const FDE_CSSPROPERTYVALUETABLE* pValue =
1345 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen)); 1346 FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
1346 if (pValue != NULL) { 1347 if (pValue != NULL) {
1347 switch (pValue->eName) { 1348 switch (pValue->eName) {
(...skipping 21 matching lines...) Expand all
1369 return FALSE; 1370 return FALSE;
1370 } else if (pOverflowY == NULL) { 1371 } else if (pOverflowY == NULL) {
1371 pOverflowY = NewEnumValue(pStaticStore, pOverflowX->GetEnum()); 1372 pOverflowY = NewEnumValue(pStaticStore, pOverflowX->GetEnum());
1372 } 1373 }
1373 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_OverflowX, pOverflowX, 1374 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_OverflowX, pOverflowX,
1374 bImportant); 1375 bImportant);
1375 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_OverflowY, pOverflowY, 1376 AddPropertyHolder(pStaticStore, FDE_CSSPROPERTY_OverflowY, pOverflowY,
1376 bImportant); 1377 bImportant);
1377 return TRUE; 1378 return TRUE;
1378 } 1379 }
OLDNEW
« no previous file with comments | « xfa/fde/css/fde_cssdeclaration.h ('k') | xfa/fde/css/fde_cssstyleselector.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698