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_FDE_OBJECT_H_ | 7 #ifndef XFA_FDE_FDE_OBJECT_H_ |
8 #define XFA_FDE_FDE_OBJECT_H_ | 8 #define XFA_FDE_FDE_OBJECT_H_ |
9 | 9 |
10 #include <cstdint> | 10 #include <cstdint> |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 int32_t m_iLineCap; | 83 int32_t m_iLineCap; |
84 int32_t m_iLineJoin; | 84 int32_t m_iLineJoin; |
85 int32_t m_iDashStyle; | 85 int32_t m_iDashStyle; |
86 FX_FLOAT m_fDashPhase; | 86 FX_FLOAT m_fDashPhase; |
87 FX_FLOAT m_fMiterLimit; | 87 FX_FLOAT m_fMiterLimit; |
88 FX_BOOL m_bAutoRelease; | 88 FX_BOOL m_bAutoRelease; |
89 IFDE_Brush* m_pBrush; | 89 IFDE_Brush* m_pBrush; |
90 CFX_FloatArray m_DashArray; | 90 CFX_FloatArray m_DashArray; |
91 CFDE_CompoundPatterns m_CompoundPatterns; | 91 CFDE_CompoundPatterns m_CompoundPatterns; |
92 }; | 92 }; |
| 93 |
93 class CFDE_SolidBrush : public IFDE_SolidBrush, public CFX_Target { | 94 class CFDE_SolidBrush : public IFDE_SolidBrush, public CFX_Target { |
94 public: | 95 public: |
95 CFDE_SolidBrush() : m_Color(0xFF000000) { m_Matrix.SetIdentity(); } | 96 CFDE_SolidBrush() : m_Color(0xFF000000) { m_Matrix.SetIdentity(); } |
96 | 97 |
97 virtual void Release() { delete this; } | 98 virtual void Release() { delete this; } |
98 virtual int32_t GetType() const { return FDE_BRUSHTYPE_Solid; } | 99 virtual int32_t GetType() const { return FDE_BRUSHTYPE_Solid; } |
99 virtual const CFX_Matrix& GetMatrix() const { return m_Matrix; } | 100 virtual const CFX_Matrix& GetMatrix() const { return m_Matrix; } |
100 virtual void ResetMatrix() { m_Matrix.SetIdentity(); } | 101 virtual void ResetMatrix() { m_Matrix.SetIdentity(); } |
101 virtual void TranslateMatrix(FX_FLOAT dx, FX_FLOAT dy) { | 102 virtual void TranslateMatrix(FX_FLOAT dx, FX_FLOAT dy) { |
102 m_Matrix.Translate(dx, dy); | 103 m_Matrix.Translate(dx, dy); |
103 } | 104 } |
104 virtual void RotateMatrix(FX_FLOAT fRadian) { m_Matrix.Rotate(fRadian); } | 105 virtual void RotateMatrix(FX_FLOAT fRadian) { m_Matrix.Rotate(fRadian); } |
105 virtual void ScaleMatrix(FX_FLOAT sx, FX_FLOAT sy) { m_Matrix.Scale(sx, sy); } | 106 virtual void ScaleMatrix(FX_FLOAT sx, FX_FLOAT sy) { m_Matrix.Scale(sx, sy); } |
106 virtual void ConcatMatrix(const CFX_Matrix& matrix) { | 107 virtual void ConcatMatrix(const CFX_Matrix& matrix) { |
107 m_Matrix.Concat(matrix); | 108 m_Matrix.Concat(matrix); |
108 } | 109 } |
109 virtual void SetMatrix(const CFX_Matrix& matrix) { m_Matrix = matrix; } | 110 virtual void SetMatrix(const CFX_Matrix& matrix) { m_Matrix = matrix; } |
110 virtual FX_ARGB GetColor() const { return m_Color; } | 111 virtual FX_ARGB GetColor() const { return m_Color; } |
111 virtual void SetColor(FX_ARGB color) { m_Color = color; } | 112 virtual void SetColor(FX_ARGB color) { m_Color = color; } |
112 | 113 |
113 FX_ARGB m_Color; | 114 FX_ARGB m_Color; |
114 CFX_Matrix m_Matrix; | 115 CFX_Matrix m_Matrix; |
115 }; | 116 }; |
116 class CFDE_HatchBrush : public IFDE_HatchBrush, public CFX_Target { | |
117 public: | |
118 CFDE_HatchBrush() : m_iStyle(-1), m_BackColor(0), m_ForeColor(0) { | |
119 m_Matrix.SetIdentity(); | |
120 } | |
121 | |
122 virtual void Release() { delete this; } | |
123 virtual int32_t GetType() const { return FDE_BRUSHTYPE_Hatch; } | |
124 virtual const CFX_Matrix& GetMatrix() const { return m_Matrix; } | |
125 virtual void ResetMatrix() { m_Matrix.SetIdentity(); } | |
126 virtual void TranslateMatrix(FX_FLOAT dx, FX_FLOAT dy) { | |
127 m_Matrix.Translate(dx, dy); | |
128 } | |
129 virtual void RotateMatrix(FX_FLOAT fRadian) { m_Matrix.Rotate(fRadian); } | |
130 virtual void ScaleMatrix(FX_FLOAT sx, FX_FLOAT sy) { m_Matrix.Scale(sx, sy); } | |
131 virtual void ConcatMatrix(const CFX_Matrix& matrix) { | |
132 m_Matrix.Concat(matrix); | |
133 } | |
134 virtual void SetMatrix(const CFX_Matrix& matrix) { m_Matrix = matrix; } | |
135 virtual FX_ARGB GetColor(FX_BOOL bForegroundColor) const { | |
136 return bForegroundColor ? m_ForeColor : m_BackColor; | |
137 } | |
138 virtual void SetColor(FX_ARGB color, FX_BOOL bForegroundColor) { | |
139 if (bForegroundColor) { | |
140 m_ForeColor = color; | |
141 } else { | |
142 m_BackColor = color; | |
143 } | |
144 } | |
145 | |
146 virtual int32_t GetHatchStyle() const { return m_iStyle; } | |
147 virtual FX_BOOL SetHatchStyle(int32_t iHatchStyle) { | |
148 m_iStyle = iHatchStyle; | |
149 return m_iStyle >= FDE_HATCHSTYLE_Min && m_iStyle <= FDE_HATCHSTYLE_Max; | |
150 } | |
151 int32_t m_iStyle; | |
152 FX_ARGB m_BackColor; | |
153 FX_ARGB m_ForeColor; | |
154 CFX_Matrix m_Matrix; | |
155 }; | |
156 class CFDE_TextureBrush : public IFDE_TextureBrush, public CFX_Target { | |
157 public: | |
158 CFDE_TextureBrush() : m_iWrap(0), m_pImage(NULL), m_bAutoRelease(FALSE) { | |
159 m_Matrix.SetIdentity(); | |
160 } | |
161 | |
162 virtual void Release() { delete this; } | |
163 virtual int32_t GetType() const { return FDE_BRUSHTYPE_Texture; } | |
164 virtual const CFX_Matrix& GetMatrix() const { return m_Matrix; } | |
165 virtual void ResetMatrix() { m_Matrix.SetIdentity(); } | |
166 virtual void TranslateMatrix(FX_FLOAT dx, FX_FLOAT dy) { | |
167 m_Matrix.Translate(dx, dy); | |
168 } | |
169 virtual void RotateMatrix(FX_FLOAT fRadian) { m_Matrix.Rotate(fRadian); } | |
170 virtual void ScaleMatrix(FX_FLOAT sx, FX_FLOAT sy) { m_Matrix.Scale(sx, sy); } | |
171 virtual void ConcatMatrix(const CFX_Matrix& matrix) { | |
172 m_Matrix.Concat(matrix); | |
173 } | |
174 virtual void SetMatrix(const CFX_Matrix& matrix) { m_Matrix = matrix; } | |
175 virtual IFDE_Image* GetImage() const { return m_pImage; } | |
176 virtual void SetImage(IFDE_Image* pImage, FX_BOOL bAutoRelease) { | |
177 m_pImage = pImage; | |
178 m_bAutoRelease = bAutoRelease; | |
179 } | |
180 virtual int32_t GetWrapMode() const { return m_iWrap; } | |
181 virtual void SetWrapMode(int32_t iWrapMode) { m_iWrap = iWrapMode; } | |
182 int32_t m_iWrap; | |
183 IFDE_Image* m_pImage; | |
184 FX_BOOL m_bAutoRelease; | |
185 CFX_Matrix m_Matrix; | |
186 }; | |
187 class CFDE_LinearBrush : public IFDE_LinearGradientBrush, public CFX_Target { | |
188 public: | |
189 CFDE_LinearBrush() : m_EndColor(0), m_StartColor(0), m_iWrapMode(0) { | |
190 m_StartPoint.x = m_StartPoint.y = m_EndPoint.x = m_EndPoint.y = 0; | |
191 m_Matrix.SetIdentity(); | |
192 } | |
193 | |
194 virtual void Release() { delete this; } | |
195 virtual int32_t GetType() const { return FDE_BRUSHTYPE_LinearGradient; } | |
196 virtual const CFX_Matrix& GetMatrix() const { return m_Matrix; } | |
197 virtual void ResetMatrix() { m_Matrix.SetIdentity(); } | |
198 virtual void TranslateMatrix(FX_FLOAT dx, FX_FLOAT dy) { | |
199 m_Matrix.Translate(dx, dy); | |
200 } | |
201 virtual void RotateMatrix(FX_FLOAT fRadian) { m_Matrix.Rotate(fRadian); } | |
202 virtual void ScaleMatrix(FX_FLOAT sx, FX_FLOAT sy) { m_Matrix.Scale(sx, sy); } | |
203 virtual void ConcatMatrix(const CFX_Matrix& matrix) { | |
204 m_Matrix.Concat(matrix); | |
205 } | |
206 virtual void SetMatrix(const CFX_Matrix& matrix) { m_Matrix = matrix; } | |
207 virtual void GetLinearPoints(CFX_PointF& startingPoint, | |
208 CFX_PointF& endingPoint) const { | |
209 startingPoint = m_StartPoint; | |
210 endingPoint = m_EndPoint; | |
211 } | |
212 virtual void SetLinearPoints(const CFX_PointF& startingPoint, | |
213 const CFX_PointF& endingPoint) { | |
214 m_StartPoint = startingPoint; | |
215 m_EndPoint = endingPoint; | |
216 } | |
217 virtual void GetLinearColors(FX_ARGB& startingColor, | |
218 FX_ARGB& endingColor) const { | |
219 startingColor = m_StartColor; | |
220 endingColor = m_EndColor; | |
221 } | |
222 virtual void SetLinearColors(const FX_ARGB& startingColor, | |
223 const FX_ARGB& endingColor) { | |
224 m_StartColor = startingColor; | |
225 m_EndColor = endingColor; | |
226 } | |
227 virtual int32_t CountGradientColors() const { return m_GradColors.GetSize(); } | |
228 virtual FX_BOOL GetGradientColors(CFDE_GradientColors& colors) const { | |
229 return colors.Copy(m_GradColors), TRUE; | |
230 } | |
231 virtual FX_BOOL SetGradientColors(const CFDE_GradientColors& colors) { | |
232 return m_GradColors.Copy(colors), TRUE; | |
233 } | |
234 | |
235 virtual int32_t GetWrapMode() const { return m_iWrapMode; } | |
236 virtual void SetWrapMode(int32_t iWrapMode) { m_iWrapMode = iWrapMode; } | |
237 CFX_PointF m_EndPoint; | |
238 CFX_PointF m_StartPoint; | |
239 FX_ARGB m_EndColor; | |
240 FX_ARGB m_StartColor; | |
241 CFDE_GradientColors m_GradColors; | |
242 int32_t m_iWrapMode; | |
243 CFX_Matrix m_Matrix; | |
244 }; | |
245 | 117 |
246 #endif // XFA_FDE_FDE_OBJECT_H_ | 118 #endif // XFA_FDE_FDE_OBJECT_H_ |
OLD | NEW |