diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2017-01-18 12:47:24 -0500 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-01-18 18:06:19 +0000 |
commit | 19c209de418a10f7d5c157cdda38e9308bfa5503 (patch) | |
tree | 5c5428d219f74cd02f8d36adc4e33c2e1b97f81a /xfa/fde/css/fde_cssdatatable.h | |
parent | be591066c781850caf13d2b7a7070c6da4eda467 (diff) | |
download | pdfium-19c209de418a10f7d5c157cdda38e9308bfa5503.tar.xz |
Split CFDE_CSSPrimitiveValue apart
This CL splits the CFDE_CSSPrimitiveValue class into individual classes per
value type. This moves the numeric itypes out of the FDE_CSSPrimitiveType
list and creates a new CFDE_CSSNumberType list.
Change-Id: I6f55e9e3509de7ff1e82dcf018a1f1c472565e54
Reviewed-on: https://pdfium-review.googlesource.com/2250
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'xfa/fde/css/fde_cssdatatable.h')
-rw-r--r-- | xfa/fde/css/fde_cssdatatable.h | 85 |
1 files changed, 3 insertions, 82 deletions
diff --git a/xfa/fde/css/fde_cssdatatable.h b/xfa/fde/css/fde_cssdatatable.h index 0b14ffc101..f2cc2b45d4 100644 --- a/xfa/fde/css/fde_cssdatatable.h +++ b/xfa/fde/css/fde_cssdatatable.h @@ -11,89 +11,10 @@ #include <vector> #include "core/fxcrt/fx_system.h" +#include "xfa/fde/css/cfde_cssnumbervalue.h" #include "xfa/fde/css/cfde_cssvalue.h" #include "xfa/fde/css/fde_css.h" -class CFDE_CSSFunction; - -class CFDE_CSSPrimitiveValue : public CFDE_CSSValue { - public: - explicit CFDE_CSSPrimitiveValue(FX_ARGB color); - explicit CFDE_CSSPrimitiveValue(FDE_CSSPropertyValue eValue); - explicit CFDE_CSSPrimitiveValue(std::unique_ptr<CFDE_CSSFunction> pFunction); - CFDE_CSSPrimitiveValue(FDE_CSSPrimitiveType eType, FX_FLOAT fValue); - CFDE_CSSPrimitiveValue(FDE_CSSPrimitiveType eType, const FX_WCHAR* pValue); - CFDE_CSSPrimitiveValue(const CFDE_CSSPrimitiveValue& src); - ~CFDE_CSSPrimitiveValue() override; - - FDE_CSSPrimitiveType GetPrimitiveType() const; - FX_ARGB GetRGBColor() const; - FX_FLOAT GetFloat() const; - const FX_WCHAR* GetString(int32_t& iLength) const; - FDE_CSSPropertyValue GetEnum() const; - const FX_WCHAR* GetFuncName() const; - int32_t CountArgs() const; - CFDE_CSSValue* GetArgs(int32_t index) const; - - FDE_CSSPrimitiveType m_eType; - union { - FX_ARGB m_dwColor; - FX_FLOAT m_fNumber; - const FX_WCHAR* m_pString; - FDE_CSSPropertyValue m_eEnum; - }; - std::unique_ptr<CFDE_CSSFunction> m_pFunction; -}; - -class CFDE_CSSValueList : public CFDE_CSSValue { - public: - explicit CFDE_CSSValueList(std::vector<CFX_RetainPtr<CFDE_CSSValue>>& list); - ~CFDE_CSSValueList() override; - - int32_t CountValues() const; - CFDE_CSSValue* GetValue(int32_t index) const; - - protected: - std::vector<CFX_RetainPtr<CFDE_CSSValue>> m_ppList; -}; - -class CFDE_CSSValueListParser { - public: - CFDE_CSSValueListParser(const FX_WCHAR* psz, int32_t iLen, FX_WCHAR separator) - : m_Separator(separator), m_pCur(psz), m_pEnd(psz + iLen) { - ASSERT(psz && iLen > 0); - } - bool NextValue(FDE_CSSPrimitiveType& eType, - const FX_WCHAR*& pStart, - int32_t& iLength); - FX_WCHAR m_Separator; - - protected: - int32_t SkipTo(FX_WCHAR wch, - bool bWSSeparator = false, - bool bBrContinue = false); - - const FX_WCHAR* m_pCur; - const FX_WCHAR* m_pEnd; -}; - -class CFDE_CSSFunction { - public: - CFDE_CSSFunction(const FX_WCHAR* pszFuncName, - CFX_RetainPtr<CFDE_CSSValueList> pArgList); - ~CFDE_CSSFunction(); - - int32_t CountArgs() const { return m_pArgList->CountValues(); } - CFDE_CSSValue* GetArgs(int32_t index) const { - return m_pArgList->GetValue(index); - } - const FX_WCHAR* GetFuncName() const { return m_pszFuncName; } - - protected: - CFX_RetainPtr<CFDE_CSSValueList> m_pArgList; - const FX_WCHAR* m_pszFuncName; -}; - #define FDE_IsOnlyValue(type, enum) \ (((type) & ~(enum)) == FDE_CSSVALUETYPE_Primitive) @@ -129,7 +50,7 @@ const FDE_CSSMEDIATYPETABLE* FDE_GetCSSMediaTypeByName( struct FDE_CSSLengthUnitTable { uint16_t wHash; - FDE_CSSPrimitiveType wValue; + FDE_CSSNumberType wValue; }; const FDE_CSSLengthUnitTable* FDE_GetCSSLengthUnitByName( @@ -153,7 +74,7 @@ const FDE_CSSPseudoTable* FDE_GetCSSPseudoByEnum(FDE_CSSPseudo ePseudo); bool FDE_ParseCSSNumber(const FX_WCHAR* pszValue, int32_t iValueLen, FX_FLOAT& fValue, - FDE_CSSPrimitiveType& eUnit); + FDE_CSSNumberType& eUnit); bool FDE_ParseCSSString(const FX_WCHAR* pszValue, int32_t iValueLen, int32_t* iOffset, |