summaryrefslogtreecommitdiff
path: root/xfa/fde/css/fde_cssdatatable.h
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-01-18 12:47:24 -0500
committerChromium commit bot <commit-bot@chromium.org>2017-01-18 18:06:19 +0000
commit19c209de418a10f7d5c157cdda38e9308bfa5503 (patch)
tree5c5428d219f74cd02f8d36adc4e33c2e1b97f81a /xfa/fde/css/fde_cssdatatable.h
parentbe591066c781850caf13d2b7a7070c6da4eda467 (diff)
downloadpdfium-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.h85
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,