| 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> |
| 11 | 11 |
| 12 #include "core/fxge/include/fx_dib.h" | 12 #include "core/fxge/include/fx_dib.h" |
| 13 #include "xfa/fde/fde_brush.h" | |
| 14 #include "xfa/fde/fde_pen.h" | |
| 15 #include "xfa/fgas/crt/fgas_memory.h" | 13 #include "xfa/fgas/crt/fgas_memory.h" |
| 16 | 14 |
| 17 class CFDE_Pen : public IFDE_Pen, public CFX_Target { | 15 class CFDE_Brush : public CFX_Target { |
| 18 public: | 16 public: |
| 19 CFDE_Pen() | 17 CFDE_Brush() : m_Color(0xFF000000) {} |
| 20 : m_Color(0), | |
| 21 m_iLineCap(0), | |
| 22 m_iLineJoin(0), | |
| 23 m_iDashStyle(0), | |
| 24 m_fDashPhase(0), | |
| 25 m_fMiterLimit(10), | |
| 26 m_bAutoRelease(FALSE), | |
| 27 m_pBrush(NULL) {} | |
| 28 | 18 |
| 29 ~CFDE_Pen() { | 19 FX_ARGB GetColor() const { return m_Color; } |
| 30 if (m_pBrush && m_bAutoRelease) { | 20 void SetColor(FX_ARGB color) { m_Color = color; } |
| 31 m_pBrush->Release(); | |
| 32 } | |
| 33 } | |
| 34 virtual void Release() { delete this; } | |
| 35 | 21 |
| 36 virtual int32_t GetType() const { | 22 private: |
| 37 return m_pBrush ? m_pBrush->GetType() : FDE_PENTYPE_SolidColor; | |
| 38 } | |
| 39 | |
| 40 virtual FX_ARGB GetColor() const { return m_Color; } | |
| 41 virtual void SetColor(FX_ARGB color) { m_Color = color; } | |
| 42 virtual IFDE_Brush* GetBrush() const { return m_pBrush; } | |
| 43 virtual void SetBrush(IFDE_Brush* pBrush, FX_BOOL bAutoRelease) { | |
| 44 m_bAutoRelease = bAutoRelease; | |
| 45 m_pBrush = pBrush; | |
| 46 if (m_pBrush && m_pBrush->GetType() == FDE_BRUSHTYPE_Solid) { | |
| 47 m_Color = ((IFDE_SolidBrush*)m_pBrush)->GetColor(); | |
| 48 } | |
| 49 } | |
| 50 virtual int32_t GetLineCap() const { return m_iLineCap; } | |
| 51 virtual void SetLineCap(int32_t iLineCap) { m_iLineCap = iLineCap; } | |
| 52 virtual int32_t GetDashStyle() const { return m_iDashStyle; } | |
| 53 virtual void SetDashStyle(int32_t iDashStyle) { m_iDashStyle = iDashStyle; } | |
| 54 virtual FX_FLOAT GetDashPhase() const { return m_fDashPhase; } | |
| 55 virtual void SetDashPhase(FX_FLOAT fPhase) { m_fDashPhase = fPhase; } | |
| 56 virtual int32_t CountDashArray() const { return m_DashArray.GetSize(); } | |
| 57 virtual int32_t GetDashArray(CFX_FloatArray& dashArray) const { | |
| 58 dashArray.Copy(m_DashArray); | |
| 59 return dashArray.GetSize(); | |
| 60 } | |
| 61 virtual void SetDashArray(const CFX_FloatArray& dashArray) { | |
| 62 m_DashArray.Copy(dashArray); | |
| 63 } | |
| 64 virtual int32_t GetLineJoin() const { return m_iLineJoin; } | |
| 65 virtual void SetLineJoin(int32_t iLineJoin) { m_iLineJoin = iLineJoin; } | |
| 66 virtual FX_FLOAT GetMiterLimit() const { return m_fMiterLimit; } | |
| 67 virtual void SetMiterLimit(FX_FLOAT fMiterLimit) { | |
| 68 m_fMiterLimit = fMiterLimit; | |
| 69 } | |
| 70 virtual int32_t CountCompoundPatterns() const { | |
| 71 return m_CompoundPatterns.GetSize(); | |
| 72 } | |
| 73 virtual FX_BOOL GetCompoundPatterns( | |
| 74 CFDE_CompoundPatterns& compoundPatterns) const { | |
| 75 return compoundPatterns.Copy(m_CompoundPatterns), TRUE; | |
| 76 } | |
| 77 virtual FX_BOOL SetCompoundPatterns( | |
| 78 const CFDE_CompoundPatterns& compoundPatterns) { | |
| 79 return m_CompoundPatterns.Copy(compoundPatterns), TRUE; | |
| 80 } | |
| 81 | |
| 82 FX_ARGB m_Color; | 23 FX_ARGB m_Color; |
| 83 int32_t m_iLineCap; | |
| 84 int32_t m_iLineJoin; | |
| 85 int32_t m_iDashStyle; | |
| 86 FX_FLOAT m_fDashPhase; | |
| 87 FX_FLOAT m_fMiterLimit; | |
| 88 FX_BOOL m_bAutoRelease; | |
| 89 IFDE_Brush* m_pBrush; | |
| 90 CFX_FloatArray m_DashArray; | |
| 91 CFDE_CompoundPatterns m_CompoundPatterns; | |
| 92 }; | 24 }; |
| 93 | 25 |
| 94 class CFDE_SolidBrush : public IFDE_SolidBrush, public CFX_Target { | 26 class CFDE_Pen : public CFX_Target { |
| 95 public: | 27 public: |
| 96 CFDE_SolidBrush() : m_Color(0xFF000000) { m_Matrix.SetIdentity(); } | 28 CFDE_Pen() : m_Color(0) {} |
| 29 ~CFDE_Pen() {} |
| 97 | 30 |
| 98 virtual void Release() { delete this; } | 31 FX_ARGB GetColor() const { return m_Color; } |
| 99 virtual int32_t GetType() const { return FDE_BRUSHTYPE_Solid; } | 32 void SetColor(FX_ARGB color) { m_Color = color; } |
| 100 virtual const CFX_Matrix& GetMatrix() const { return m_Matrix; } | |
| 101 virtual void ResetMatrix() { m_Matrix.SetIdentity(); } | |
| 102 virtual void TranslateMatrix(FX_FLOAT dx, FX_FLOAT dy) { | |
| 103 m_Matrix.Translate(dx, dy); | |
| 104 } | |
| 105 virtual void RotateMatrix(FX_FLOAT fRadian) { m_Matrix.Rotate(fRadian); } | |
| 106 virtual void ScaleMatrix(FX_FLOAT sx, FX_FLOAT sy) { m_Matrix.Scale(sx, sy); } | |
| 107 virtual void ConcatMatrix(const CFX_Matrix& matrix) { | |
| 108 m_Matrix.Concat(matrix); | |
| 109 } | |
| 110 virtual void SetMatrix(const CFX_Matrix& matrix) { m_Matrix = matrix; } | |
| 111 virtual FX_ARGB GetColor() const { return m_Color; } | |
| 112 virtual void SetColor(FX_ARGB color) { m_Color = color; } | |
| 113 | 33 |
| 34 private: |
| 114 FX_ARGB m_Color; | 35 FX_ARGB m_Color; |
| 115 CFX_Matrix m_Matrix; | |
| 116 }; | 36 }; |
| 117 | 37 |
| 118 #endif // XFA_FDE_FDE_OBJECT_H_ | 38 #endif // XFA_FDE_FDE_OBJECT_H_ |
| OLD | NEW |