| 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 #ifndef XFA_FDE_CSS_FDE_CSSSTYLESHEET_H_ | 7 #ifndef XFA_FDE_CSS_FDE_CSSSTYLESHEET_H_ |
| 8 #define XFA_FDE_CSS_FDE_CSSSTYLESHEET_H_ | 8 #define XFA_FDE_CSS_FDE_CSSSTYLESHEET_H_ |
| 9 | 9 |
| 10 #include "core/fxcrt/include/fx_ext.h" | 10 #include "core/fxcrt/include/fx_ext.h" |
| 11 #include "xfa/fde/css/fde_cssdeclaration.h" | 11 #include "xfa/fde/css/fde_cssdeclaration.h" |
| 12 | 12 |
| 13 class CFDE_CSSSelector : public IFDE_CSSSelector, public CFX_Target { | 13 class CFDE_CSSSyntaxParser; |
| 14 |
| 15 class CFDE_CSSSelector : public CFX_Target { |
| 14 public: | 16 public: |
| 15 CFDE_CSSSelector(FDE_CSSSELECTORTYPE eType, | 17 CFDE_CSSSelector(FDE_CSSSELECTORTYPE eType, |
| 16 const FX_WCHAR* psz, | 18 const FX_WCHAR* psz, |
| 17 int32_t iLen, | 19 int32_t iLen, |
| 18 bool bIgnoreCase) | 20 bool bIgnoreCase) |
| 19 : m_eType(eType), | 21 : m_eType(eType), |
| 20 m_dwHash(FX_HashCode_GetW(CFX_WideStringC(psz, iLen), bIgnoreCase)), | 22 m_dwHash(FX_HashCode_GetW(CFX_WideStringC(psz, iLen), bIgnoreCase)), |
| 21 m_pNext(nullptr) {} | 23 m_pNext(nullptr) {} |
| 22 virtual FDE_CSSSELECTORTYPE GetType() const { return m_eType; } | 24 virtual FDE_CSSSELECTORTYPE GetType() const { return m_eType; } |
| 23 | 25 |
| 24 virtual uint32_t GetNameHash() const { return m_dwHash; } | 26 virtual uint32_t GetNameHash() const { return m_dwHash; } |
| 25 | 27 |
| 26 virtual IFDE_CSSSelector* GetNextSelector() const { return m_pNext; } | 28 virtual CFDE_CSSSelector* GetNextSelector() const { return m_pNext; } |
| 27 static IFDE_CSSSelector* FromString(IFX_MEMAllocator* pStaticStore, | 29 static CFDE_CSSSelector* FromString(IFX_MEMAllocator* pStaticStore, |
| 28 const FX_WCHAR* psz, | 30 const FX_WCHAR* psz, |
| 29 int32_t iLen); | 31 int32_t iLen); |
| 30 void SetNext(IFDE_CSSSelector* pNext) { m_pNext = pNext; } | 32 void SetNext(CFDE_CSSSelector* pNext) { m_pNext = pNext; } |
| 31 | 33 |
| 32 protected: | 34 protected: |
| 33 static CFDE_CSSSelector* ParseSelector(IFX_MEMAllocator* pStaticStore, | 35 static CFDE_CSSSelector* ParseSelector(IFX_MEMAllocator* pStaticStore, |
| 34 const FX_WCHAR* psz, | 36 const FX_WCHAR* psz, |
| 35 int32_t& iOff, | 37 int32_t& iOff, |
| 36 int32_t iLen, | 38 int32_t iLen, |
| 37 FDE_CSSSELECTORTYPE eType); | 39 FDE_CSSSELECTORTYPE eType); |
| 38 void SetType(FDE_CSSSELECTORTYPE eType) { m_eType = eType; } | 40 void SetType(FDE_CSSSELECTORTYPE eType) { m_eType = eType; } |
| 39 FDE_CSSSELECTORTYPE m_eType; | 41 FDE_CSSSELECTORTYPE m_eType; |
| 40 uint32_t m_dwHash; | 42 uint32_t m_dwHash; |
| 41 IFDE_CSSSelector* m_pNext; | 43 CFDE_CSSSelector* m_pNext; |
| 42 }; | 44 }; |
| 43 typedef CFX_ArrayTemplate<IFDE_CSSSelector*> CFDE_CSSSelectorArray; | 45 typedef CFX_ArrayTemplate<CFDE_CSSSelector*> CFDE_CSSSelectorArray; |
| 44 | 46 |
| 45 class CFDE_CSSStyleRule : public IFDE_CSSStyleRule, public CFX_Target { | 47 class CFDE_CSSStyleRule : public IFDE_CSSStyleRule, public CFX_Target { |
| 46 public: | 48 public: |
| 47 CFDE_CSSStyleRule() : m_ppSelector(NULL), m_iSelectors(0) {} | 49 CFDE_CSSStyleRule() : m_ppSelector(NULL), m_iSelectors(0) {} |
| 48 virtual int32_t CountSelectorLists() const { return m_iSelectors; } | 50 int32_t CountSelectorLists() const override { return m_iSelectors; } |
| 49 virtual IFDE_CSSSelector* GetSelectorList(int32_t index) const { | 51 CFDE_CSSSelector* GetSelectorList(int32_t index) const override { |
| 50 return m_ppSelector[index]; | 52 return m_ppSelector[index]; |
| 51 } | 53 } |
| 52 | 54 |
| 53 virtual IFDE_CSSDeclaration* GetDeclaration() const { | 55 CFDE_CSSDeclaration* GetDeclaration() override { return &m_Declaration; } |
| 54 return (IFDE_CSSDeclaration*)&m_Declaration; | |
| 55 } | |
| 56 CFDE_CSSDeclaration& GetDeclImp() { return m_Declaration; } | 56 CFDE_CSSDeclaration& GetDeclImp() { return m_Declaration; } |
| 57 void SetSelector(IFX_MEMAllocator* pStaticStore, | 57 void SetSelector(IFX_MEMAllocator* pStaticStore, |
| 58 const CFDE_CSSSelectorArray& list); | 58 const CFDE_CSSSelectorArray& list); |
| 59 | 59 |
| 60 protected: | 60 protected: |
| 61 CFDE_CSSDeclaration m_Declaration; | 61 CFDE_CSSDeclaration m_Declaration; |
| 62 IFDE_CSSSelector** m_ppSelector; | 62 CFDE_CSSSelector** m_ppSelector; |
| 63 int32_t m_iSelectors; | 63 int32_t m_iSelectors; |
| 64 }; | 64 }; |
| 65 class CFDE_CSSMediaRule : public IFDE_CSSMediaRule, public CFX_Target { | 65 class CFDE_CSSMediaRule : public IFDE_CSSMediaRule, public CFX_Target { |
| 66 public: | 66 public: |
| 67 CFDE_CSSMediaRule(uint32_t dwMediaList) : m_dwMediaList(dwMediaList) {} | 67 CFDE_CSSMediaRule(uint32_t dwMediaList) : m_dwMediaList(dwMediaList) {} |
| 68 ~CFDE_CSSMediaRule(); | 68 ~CFDE_CSSMediaRule(); |
| 69 | 69 |
| 70 virtual uint32_t GetMediaList() const { return m_dwMediaList; } | 70 virtual uint32_t GetMediaList() const { return m_dwMediaList; } |
| 71 | 71 |
| 72 virtual int32_t CountRules() const { return m_RuleArray.GetSize(); } | 72 virtual int32_t CountRules() const { return m_RuleArray.GetSize(); } |
| 73 virtual IFDE_CSSRule* GetRule(int32_t index) { | 73 virtual IFDE_CSSRule* GetRule(int32_t index) { |
| 74 return m_RuleArray.GetAt(index); | 74 return m_RuleArray.GetAt(index); |
| 75 } | 75 } |
| 76 CFDE_CSSRuleArray& GetArray() { return m_RuleArray; } | 76 CFDE_CSSRuleArray& GetArray() { return m_RuleArray; } |
| 77 | 77 |
| 78 protected: | 78 protected: |
| 79 uint32_t m_dwMediaList; | 79 uint32_t m_dwMediaList; |
| 80 CFDE_CSSRuleArray m_RuleArray; | 80 CFDE_CSSRuleArray m_RuleArray; |
| 81 }; | 81 }; |
| 82 class CFDE_CSSFontFaceRule : public IFDE_CSSFontFaceRule, public CFX_Target { | 82 class CFDE_CSSFontFaceRule : public IFDE_CSSFontFaceRule, public CFX_Target { |
| 83 public: | 83 public: |
| 84 virtual IFDE_CSSDeclaration* GetDeclaration() const { | 84 CFDE_CSSDeclaration* GetDeclaration() override { return &m_Declaration; } |
| 85 return (IFDE_CSSDeclaration*)&m_Declaration; | |
| 86 } | |
| 87 CFDE_CSSDeclaration& GetDeclImp() { return m_Declaration; } | 85 CFDE_CSSDeclaration& GetDeclImp() { return m_Declaration; } |
| 88 | 86 |
| 89 protected: | 87 protected: |
| 90 CFDE_CSSDeclaration m_Declaration; | 88 CFDE_CSSDeclaration m_Declaration; |
| 91 }; | 89 }; |
| 92 #define FDE_CSSSWITCHDEFAULTS() \ | 90 #define FDE_CSSSWITCHDEFAULTS() \ |
| 93 case FDE_CSSSYNTAXSTATUS_EOS: \ | 91 case FDE_CSSSYNTAXSTATUS_EOS: \ |
| 94 return FDE_CSSSYNTAXSTATUS_EOS; \ | 92 return FDE_CSSSYNTAXSTATUS_EOS; \ |
| 95 case FDE_CSSSYNTAXSTATUS_Error: \ | 93 case FDE_CSSSYNTAXSTATUS_Error: \ |
| 96 default: \ | 94 default: \ |
| (...skipping 16 matching lines...) Expand all Loading... |
| 113 FX_BOOL LoadFromStream(const CFX_WideString& szUrl, | 111 FX_BOOL LoadFromStream(const CFX_WideString& szUrl, |
| 114 IFX_Stream* pStream, | 112 IFX_Stream* pStream, |
| 115 uint16_t wCodePage); | 113 uint16_t wCodePage); |
| 116 FX_BOOL LoadFromBuffer(const CFX_WideString& szUrl, | 114 FX_BOOL LoadFromBuffer(const CFX_WideString& szUrl, |
| 117 const FX_WCHAR* pBuffer, | 115 const FX_WCHAR* pBuffer, |
| 118 int32_t iBufSize, | 116 int32_t iBufSize, |
| 119 uint16_t wCodePage); | 117 uint16_t wCodePage); |
| 120 | 118 |
| 121 protected: | 119 protected: |
| 122 void Reset(); | 120 void Reset(); |
| 123 FX_BOOL LoadFromSyntax(IFDE_CSSSyntaxParser* pSyntax); | 121 FX_BOOL LoadFromSyntax(CFDE_CSSSyntaxParser* pSyntax); |
| 124 FDE_CSSSYNTAXSTATUS LoadStyleRule(IFDE_CSSSyntaxParser* pSyntax, | 122 FDE_CSSSYNTAXSTATUS LoadStyleRule(CFDE_CSSSyntaxParser* pSyntax, |
| 125 CFDE_CSSRuleArray& ruleArray); | 123 CFDE_CSSRuleArray& ruleArray); |
| 126 FDE_CSSSYNTAXSTATUS LoadImportRule(IFDE_CSSSyntaxParser* pSyntax); | 124 FDE_CSSSYNTAXSTATUS LoadImportRule(CFDE_CSSSyntaxParser* pSyntax); |
| 127 FDE_CSSSYNTAXSTATUS LoadPageRule(IFDE_CSSSyntaxParser* pSyntax); | 125 FDE_CSSSYNTAXSTATUS LoadPageRule(CFDE_CSSSyntaxParser* pSyntax); |
| 128 FDE_CSSSYNTAXSTATUS LoadMediaRule(IFDE_CSSSyntaxParser* pSyntax); | 126 FDE_CSSSYNTAXSTATUS LoadMediaRule(CFDE_CSSSyntaxParser* pSyntax); |
| 129 FDE_CSSSYNTAXSTATUS LoadFontFaceRule(IFDE_CSSSyntaxParser* pSyntax, | 127 FDE_CSSSYNTAXSTATUS LoadFontFaceRule(CFDE_CSSSyntaxParser* pSyntax, |
| 130 CFDE_CSSRuleArray& ruleArray); | 128 CFDE_CSSRuleArray& ruleArray); |
| 131 FDE_CSSSYNTAXSTATUS SkipRuleSet(IFDE_CSSSyntaxParser* pSyntax); | 129 FDE_CSSSYNTAXSTATUS SkipRuleSet(CFDE_CSSSyntaxParser* pSyntax); |
| 132 uint16_t m_wCodePage; | 130 uint16_t m_wCodePage; |
| 133 uint16_t m_wRefCount; | 131 uint16_t m_wRefCount; |
| 134 uint32_t m_dwMediaList; | 132 uint32_t m_dwMediaList; |
| 135 IFX_MEMAllocator* m_pAllocator; | 133 IFX_MEMAllocator* m_pAllocator; |
| 136 CFDE_CSSRuleArray m_RuleArray; | 134 CFDE_CSSRuleArray m_RuleArray; |
| 137 CFX_WideString m_szUrl; | 135 CFX_WideString m_szUrl; |
| 138 CFDE_CSSSelectorArray m_Selectors; | 136 CFDE_CSSSelectorArray m_Selectors; |
| 139 CFX_MapPtrToPtr m_StringCache; | 137 CFX_MapPtrToPtr m_StringCache; |
| 140 }; | 138 }; |
| 141 | 139 |
| 142 #endif // XFA_FDE_CSS_FDE_CSSSTYLESHEET_H_ | 140 #endif // XFA_FDE_CSS_FDE_CSSSTYLESHEET_H_ |
| OLD | NEW |