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

Side by Side Diff: xfa/src/fde/css/fde_cssstylesheet.h

Issue 1803723002: Move xfa/src up to xfa/. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase to master Created 4 years, 9 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/src/fde/css/fde_cssstyleselector.cpp ('k') | xfa/src/fde/css/fde_cssstylesheet.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7 #ifndef XFA_SRC_FDE_CSS_FDE_CSSSTYLESHEET_H_
8 #define XFA_SRC_FDE_CSS_FDE_CSSSTYLESHEET_H_
9
10 #include "core/include/fxcrt/fx_ext.h"
11 #include "xfa/src/fde/css/fde_cssdeclaration.h"
12
13 class CFDE_CSSSelector : public IFDE_CSSSelector, public CFX_Target {
14 public:
15 CFDE_CSSSelector(FDE_CSSSELECTORTYPE eType,
16 const FX_WCHAR* psz,
17 int32_t iLen,
18 FX_BOOL bIgnoreCase)
19 : m_eType(eType),
20 m_dwHash(FX_HashCode_String_GetW(psz, iLen, bIgnoreCase)),
21 m_pNext(NULL) {}
22 virtual FDE_CSSSELECTORTYPE GetType() const { return m_eType; }
23
24 virtual FX_DWORD GetNameHash() const { return m_dwHash; }
25
26 virtual IFDE_CSSSelector* GetNextSelector() const { return m_pNext; }
27 static IFDE_CSSSelector* FromString(IFX_MEMAllocator* pStaticStore,
28 const FX_WCHAR* psz,
29 int32_t iLen);
30 void SetNext(IFDE_CSSSelector* pNext) { m_pNext = pNext; }
31
32 protected:
33 static CFDE_CSSSelector* ParseSelector(IFX_MEMAllocator* pStaticStore,
34 const FX_WCHAR* psz,
35 int32_t& iOff,
36 int32_t iLen,
37 FDE_CSSSELECTORTYPE eType);
38 void SetType(FDE_CSSSELECTORTYPE eType) { m_eType = eType; }
39 FDE_CSSSELECTORTYPE m_eType;
40 FX_DWORD m_dwHash;
41 IFDE_CSSSelector* m_pNext;
42 };
43 typedef CFX_ArrayTemplate<IFDE_CSSSelector*> CFDE_CSSSelectorArray;
44 class CFDE_CSSStyleRule : public IFDE_CSSStyleRule, public CFX_Target {
45 public:
46 CFDE_CSSStyleRule() : m_ppSelector(NULL), m_iSelectors(0) {}
47 virtual int32_t CountSelectorLists() const { return m_iSelectors; }
48 virtual IFDE_CSSSelector* GetSelectorList(int32_t index) const {
49 return m_ppSelector[index];
50 }
51
52 virtual IFDE_CSSDeclaration* GetDeclaration() const {
53 return (IFDE_CSSDeclaration*)&m_Declaration;
54 }
55 CFDE_CSSDeclaration& GetDeclImp() { return m_Declaration; }
56 void SetSelector(IFX_MEMAllocator* pStaticStore,
57 const CFDE_CSSSelectorArray& list);
58
59 protected:
60 CFDE_CSSDeclaration m_Declaration;
61 IFDE_CSSSelector** m_ppSelector;
62 int32_t m_iSelectors;
63 };
64 class CFDE_CSSMediaRule : public IFDE_CSSMediaRule, public CFX_Target {
65 public:
66 CFDE_CSSMediaRule(FX_DWORD dwMediaList) : m_dwMediaList(dwMediaList) {}
67 ~CFDE_CSSMediaRule();
68
69 virtual FX_DWORD GetMediaList() const { return m_dwMediaList; }
70
71 virtual int32_t CountRules() const { return m_RuleArray.GetSize(); }
72 virtual IFDE_CSSRule* GetRule(int32_t index) {
73 return m_RuleArray.GetAt(index);
74 }
75 CFDE_CSSRuleArray& GetArray() { return m_RuleArray; }
76
77 protected:
78 FX_DWORD m_dwMediaList;
79 CFDE_CSSRuleArray m_RuleArray;
80 };
81 class CFDE_CSSFontFaceRule : public IFDE_CSSFontFaceRule, public CFX_Target {
82 public:
83 virtual IFDE_CSSDeclaration* GetDeclaration() const {
84 return (IFDE_CSSDeclaration*)&m_Declaration;
85 }
86 CFDE_CSSDeclaration& GetDeclImp() { return m_Declaration; }
87
88 protected:
89 CFDE_CSSDeclaration m_Declaration;
90 };
91 #define FDE_CSSSWITCHDEFAULTS() \
92 case FDE_CSSSYNTAXSTATUS_EOS: \
93 return FDE_CSSSYNTAXSTATUS_EOS; \
94 case FDE_CSSSYNTAXSTATUS_Error: \
95 default: \
96 return FDE_CSSSYNTAXSTATUS_Error;
97 class CFDE_CSSStyleSheet : public IFDE_CSSStyleSheet, public CFX_Target {
98 public:
99 CFDE_CSSStyleSheet(FX_DWORD dwMediaList);
100 ~CFDE_CSSStyleSheet();
101 virtual FX_DWORD AddRef();
102 virtual FX_DWORD Release();
103
104 virtual FX_BOOL GetUrl(CFX_WideString& szUrl) {
105 szUrl = m_szUrl;
106 return szUrl.GetLength() > 0;
107 }
108 virtual FX_DWORD GetMediaList() const { return m_dwMediaList; }
109 virtual FX_WORD GetCodePage() const { return m_wCodePage; }
110 virtual int32_t CountRules() const;
111 virtual IFDE_CSSRule* GetRule(int32_t index);
112 FX_BOOL LoadFromStream(const CFX_WideString& szUrl,
113 IFX_Stream* pStream,
114 FX_WORD wCodePage);
115 FX_BOOL LoadFromBuffer(const CFX_WideString& szUrl,
116 const FX_WCHAR* pBuffer,
117 int32_t iBufSize,
118 FX_WORD wCodePage);
119
120 protected:
121 void Reset();
122 FX_BOOL LoadFromSyntax(IFDE_CSSSyntaxParser* pSyntax);
123 FDE_CSSSYNTAXSTATUS LoadStyleRule(IFDE_CSSSyntaxParser* pSyntax,
124 CFDE_CSSRuleArray& ruleArray);
125 FDE_CSSSYNTAXSTATUS LoadImportRule(IFDE_CSSSyntaxParser* pSyntax);
126 FDE_CSSSYNTAXSTATUS LoadPageRule(IFDE_CSSSyntaxParser* pSyntax);
127 FDE_CSSSYNTAXSTATUS LoadMediaRule(IFDE_CSSSyntaxParser* pSyntax);
128 FDE_CSSSYNTAXSTATUS LoadFontFaceRule(IFDE_CSSSyntaxParser* pSyntax,
129 CFDE_CSSRuleArray& ruleArray);
130 FDE_CSSSYNTAXSTATUS SkipRuleSet(IFDE_CSSSyntaxParser* pSyntax);
131 FX_WORD m_wCodePage;
132 FX_WORD m_wRefCount;
133 FX_DWORD m_dwMediaList;
134 IFX_MEMAllocator* m_pAllocator;
135 CFDE_CSSRuleArray m_RuleArray;
136 CFX_WideString m_szUrl;
137 CFDE_CSSSelectorArray m_Selectors;
138 CFX_MapPtrToPtr m_StringCache;
139 };
140
141 #endif // XFA_SRC_FDE_CSS_FDE_CSSSTYLESHEET_H_
OLDNEW
« no previous file with comments | « xfa/src/fde/css/fde_cssstyleselector.cpp ('k') | xfa/src/fde/css/fde_cssstylesheet.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698