summaryrefslogtreecommitdiff
path: root/xfa/src/fde/fde_object.h
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2016-03-09 15:33:14 -0500
committerDan Sinclair <dsinclair@chromium.org>2016-03-09 15:33:14 -0500
commit2e95951e06bd4d11459fb257c7c2b8fc881854e8 (patch)
tree742484ab5d944d9c2c930133cc5968d6c6a5678d /xfa/src/fde/fde_object.h
parentea2a252c40f95616eb0f03318222f0c32ef90eff (diff)
downloadpdfium-2e95951e06bd4d11459fb257c7c2b8fc881854e8.tar.xz
Cleanup the xfa/src/fdp directory.
This CL renames xfa/src/fdp to xfa/src/fde to better match all of the content (nothing mentions fdp other then the directory name). The inner src/ and include/ folders are collapsed up a level and xfa/src/fdp/src/fde is moved up to xfa/src/fde. Some of the header moves conflicted with existing headers. In that case, the existing header had the content moved into the .cpp file and we replaced the existing header with the one from include/. R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1784543002 .
Diffstat (limited to 'xfa/src/fde/fde_object.h')
-rw-r--r--xfa/src/fde/fde_object.h246
1 files changed, 246 insertions, 0 deletions
diff --git a/xfa/src/fde/fde_object.h b/xfa/src/fde/fde_object.h
new file mode 100644
index 0000000000..d9e5737fa0
--- /dev/null
+++ b/xfa/src/fde/fde_object.h
@@ -0,0 +1,246 @@
+// Copyright 2014 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_SRC_FDE_FDE_OBJECT_H_
+#define XFA_SRC_FDE_FDE_OBJECT_H_
+
+#include <cstdint>
+
+#include "core/include/fxge/fx_dib.h"
+#include "xfa/src/fde/fde_brush.h"
+#include "xfa/src/fde/fde_pen.h"
+#include "xfa/src/fgas/crt/fgas_memory.h"
+
+class CFDE_Pen : public IFDE_Pen, public CFX_Target {
+ public:
+ CFDE_Pen()
+ : m_Color(0),
+ m_iLineCap(0),
+ m_iLineJoin(0),
+ m_iDashStyle(0),
+ m_fDashPhase(0),
+ m_fMiterLimit(10),
+ m_bAutoRelease(FALSE),
+ m_pBrush(NULL) {}
+
+ ~CFDE_Pen() {
+ if (m_pBrush && m_bAutoRelease) {
+ m_pBrush->Release();
+ }
+ }
+ virtual void Release() { delete this; }
+
+ virtual int32_t GetType() const {
+ return m_pBrush ? m_pBrush->GetType() : FDE_PENTYPE_SolidColor;
+ }
+
+ virtual FX_ARGB GetColor() const { return m_Color; }
+ virtual void SetColor(FX_ARGB color) { m_Color = color; }
+ virtual IFDE_Brush* GetBrush() const { return m_pBrush; }
+ virtual void SetBrush(IFDE_Brush* pBrush, FX_BOOL bAutoRelease) {
+ m_bAutoRelease = bAutoRelease;
+ m_pBrush = pBrush;
+ if (m_pBrush && m_pBrush->GetType() == FDE_BRUSHTYPE_Solid) {
+ m_Color = ((IFDE_SolidBrush*)m_pBrush)->GetColor();
+ }
+ }
+ virtual int32_t GetLineCap() const { return m_iLineCap; }
+ virtual void SetLineCap(int32_t iLineCap) { m_iLineCap = iLineCap; }
+ virtual int32_t GetDashStyle() const { return m_iDashStyle; }
+ virtual void SetDashStyle(int32_t iDashStyle) { m_iDashStyle = iDashStyle; }
+ virtual FX_FLOAT GetDashPhase() const { return m_fDashPhase; }
+ virtual void SetDashPhase(FX_FLOAT fPhase) { m_fDashPhase = fPhase; }
+ virtual int32_t CountDashArray() const { return m_DashArray.GetSize(); }
+ virtual int32_t GetDashArray(CFX_FloatArray& dashArray) const {
+ dashArray.Copy(m_DashArray);
+ return dashArray.GetSize();
+ }
+ virtual void SetDashArray(const CFX_FloatArray& dashArray) {
+ m_DashArray.Copy(dashArray);
+ }
+ virtual int32_t GetLineJoin() const { return m_iLineJoin; }
+ virtual void SetLineJoin(int32_t iLineJoin) { m_iLineJoin = iLineJoin; }
+ virtual FX_FLOAT GetMiterLimit() const { return m_fMiterLimit; }
+ virtual void SetMiterLimit(FX_FLOAT fMiterLimit) {
+ m_fMiterLimit = fMiterLimit;
+ }
+ virtual int32_t CountCompoundPatterns() const {
+ return m_CompoundPatterns.GetSize();
+ }
+ virtual FX_BOOL GetCompoundPatterns(
+ CFDE_CompoundPatterns& compoundPatterns) const {
+ return compoundPatterns.Copy(m_CompoundPatterns), TRUE;
+ }
+ virtual FX_BOOL SetCompoundPatterns(
+ const CFDE_CompoundPatterns& compoundPatterns) {
+ return m_CompoundPatterns.Copy(compoundPatterns), TRUE;
+ }
+
+ FX_ARGB m_Color;
+ int32_t m_iLineCap;
+ int32_t m_iLineJoin;
+ int32_t m_iDashStyle;
+ FX_FLOAT m_fDashPhase;
+ FX_FLOAT m_fMiterLimit;
+ FX_BOOL m_bAutoRelease;
+ IFDE_Brush* m_pBrush;
+ CFX_FloatArray m_DashArray;
+ CFDE_CompoundPatterns m_CompoundPatterns;
+};
+class CFDE_SolidBrush : public IFDE_SolidBrush, public CFX_Target {
+ public:
+ CFDE_SolidBrush() : m_Color(0xFF000000) { m_Matrix.SetIdentity(); }
+
+ virtual void Release() { delete this; }
+ virtual int32_t GetType() const { return FDE_BRUSHTYPE_Solid; }
+ virtual const CFX_Matrix& GetMatrix() const { return m_Matrix; }
+ virtual void ResetMatrix() { m_Matrix.SetIdentity(); }
+ virtual void TranslateMatrix(FX_FLOAT dx, FX_FLOAT dy) {
+ m_Matrix.Translate(dx, dy);
+ }
+ virtual void RotateMatrix(FX_FLOAT fRadian) { m_Matrix.Rotate(fRadian); }
+ virtual void ScaleMatrix(FX_FLOAT sx, FX_FLOAT sy) { m_Matrix.Scale(sx, sy); }
+ virtual void ConcatMatrix(const CFX_Matrix& matrix) {
+ m_Matrix.Concat(matrix);
+ }
+ virtual void SetMatrix(const CFX_Matrix& matrix) { m_Matrix = matrix; }
+ virtual FX_ARGB GetColor() const { return m_Color; }
+ virtual void SetColor(FX_ARGB color) { m_Color = color; }
+
+ FX_ARGB m_Color;
+ CFX_Matrix m_Matrix;
+};
+class CFDE_HatchBrush : public IFDE_HatchBrush, public CFX_Target {
+ public:
+ CFDE_HatchBrush() : m_iStyle(-1), m_BackColor(0), m_ForeColor(0) {
+ m_Matrix.SetIdentity();
+ }
+
+ virtual void Release() { delete this; }
+ virtual int32_t GetType() const { return FDE_BRUSHTYPE_Hatch; }
+ virtual const CFX_Matrix& GetMatrix() const { return m_Matrix; }
+ virtual void ResetMatrix() { m_Matrix.SetIdentity(); }
+ virtual void TranslateMatrix(FX_FLOAT dx, FX_FLOAT dy) {
+ m_Matrix.Translate(dx, dy);
+ }
+ virtual void RotateMatrix(FX_FLOAT fRadian) { m_Matrix.Rotate(fRadian); }
+ virtual void ScaleMatrix(FX_FLOAT sx, FX_FLOAT sy) { m_Matrix.Scale(sx, sy); }
+ virtual void ConcatMatrix(const CFX_Matrix& matrix) {
+ m_Matrix.Concat(matrix);
+ }
+ virtual void SetMatrix(const CFX_Matrix& matrix) { m_Matrix = matrix; }
+ virtual FX_ARGB GetColor(FX_BOOL bForegroundColor) const {
+ return bForegroundColor ? m_ForeColor : m_BackColor;
+ }
+ virtual void SetColor(FX_ARGB color, FX_BOOL bForegroundColor) {
+ if (bForegroundColor) {
+ m_ForeColor = color;
+ } else {
+ m_BackColor = color;
+ }
+ }
+
+ virtual int32_t GetHatchStyle() const { return m_iStyle; }
+ virtual FX_BOOL SetHatchStyle(int32_t iHatchStyle) {
+ m_iStyle = iHatchStyle;
+ return m_iStyle >= FDE_HATCHSTYLE_Min && m_iStyle <= FDE_HATCHSTYLE_Max;
+ }
+ int32_t m_iStyle;
+ FX_ARGB m_BackColor;
+ FX_ARGB m_ForeColor;
+ CFX_Matrix m_Matrix;
+};
+class CFDE_TextureBrush : public IFDE_TextureBrush, public CFX_Target {
+ public:
+ CFDE_TextureBrush() : m_iWrap(0), m_pImage(NULL), m_bAutoRelease(FALSE) {
+ m_Matrix.SetIdentity();
+ }
+
+ virtual void Release() { delete this; }
+ virtual int32_t GetType() const { return FDE_BRUSHTYPE_Texture; }
+ virtual const CFX_Matrix& GetMatrix() const { return m_Matrix; }
+ virtual void ResetMatrix() { m_Matrix.SetIdentity(); }
+ virtual void TranslateMatrix(FX_FLOAT dx, FX_FLOAT dy) {
+ m_Matrix.Translate(dx, dy);
+ }
+ virtual void RotateMatrix(FX_FLOAT fRadian) { m_Matrix.Rotate(fRadian); }
+ virtual void ScaleMatrix(FX_FLOAT sx, FX_FLOAT sy) { m_Matrix.Scale(sx, sy); }
+ virtual void ConcatMatrix(const CFX_Matrix& matrix) {
+ m_Matrix.Concat(matrix);
+ }
+ virtual void SetMatrix(const CFX_Matrix& matrix) { m_Matrix = matrix; }
+ virtual IFDE_Image* GetImage() const { return m_pImage; }
+ virtual void SetImage(IFDE_Image* pImage, FX_BOOL bAutoRelease) {
+ m_pImage = pImage;
+ m_bAutoRelease = bAutoRelease;
+ }
+ virtual int32_t GetWrapMode() const { return m_iWrap; }
+ virtual void SetWrapMode(int32_t iWrapMode) { m_iWrap = iWrapMode; }
+ int32_t m_iWrap;
+ IFDE_Image* m_pImage;
+ FX_BOOL m_bAutoRelease;
+ CFX_Matrix m_Matrix;
+};
+class CFDE_LinearBrush : public IFDE_LinearGradientBrush, public CFX_Target {
+ public:
+ CFDE_LinearBrush() : m_EndColor(0), m_StartColor(0), m_iWrapMode(0) {
+ m_StartPoint.x = m_StartPoint.y = m_EndPoint.x = m_EndPoint.y = 0;
+ m_Matrix.SetIdentity();
+ }
+
+ virtual void Release() { delete this; }
+ virtual int32_t GetType() const { return FDE_BRUSHTYPE_LinearGradient; }
+ virtual const CFX_Matrix& GetMatrix() const { return m_Matrix; }
+ virtual void ResetMatrix() { m_Matrix.SetIdentity(); }
+ virtual void TranslateMatrix(FX_FLOAT dx, FX_FLOAT dy) {
+ m_Matrix.Translate(dx, dy);
+ }
+ virtual void RotateMatrix(FX_FLOAT fRadian) { m_Matrix.Rotate(fRadian); }
+ virtual void ScaleMatrix(FX_FLOAT sx, FX_FLOAT sy) { m_Matrix.Scale(sx, sy); }
+ virtual void ConcatMatrix(const CFX_Matrix& matrix) {
+ m_Matrix.Concat(matrix);
+ }
+ virtual void SetMatrix(const CFX_Matrix& matrix) { m_Matrix = matrix; }
+ virtual void GetLinearPoints(CFX_PointF& startingPoint,
+ CFX_PointF& endingPoint) const {
+ startingPoint = m_StartPoint;
+ endingPoint = m_EndPoint;
+ }
+ virtual void SetLinearPoints(const CFX_PointF& startingPoint,
+ const CFX_PointF& endingPoint) {
+ m_StartPoint = startingPoint;
+ m_EndPoint = endingPoint;
+ }
+ virtual void GetLinearColors(FX_ARGB& startingColor,
+ FX_ARGB& endingColor) const {
+ startingColor = m_StartColor;
+ endingColor = m_EndColor;
+ }
+ virtual void SetLinearColors(const FX_ARGB& startingColor,
+ const FX_ARGB& endingColor) {
+ m_StartColor = startingColor;
+ m_EndColor = endingColor;
+ }
+ virtual int32_t CountGradientColors() const { return m_GradColors.GetSize(); }
+ virtual FX_BOOL GetGradientColors(CFDE_GradientColors& colors) const {
+ return colors.Copy(m_GradColors), TRUE;
+ }
+ virtual FX_BOOL SetGradientColors(const CFDE_GradientColors& colors) {
+ return m_GradColors.Copy(colors), TRUE;
+ }
+
+ virtual int32_t GetWrapMode() const { return m_iWrapMode; }
+ virtual void SetWrapMode(int32_t iWrapMode) { m_iWrapMode = iWrapMode; }
+ CFX_PointF m_EndPoint;
+ CFX_PointF m_StartPoint;
+ FX_ARGB m_EndColor;
+ FX_ARGB m_StartColor;
+ CFDE_GradientColors m_GradColors;
+ int32_t m_iWrapMode;
+ CFX_Matrix m_Matrix;
+};
+
+#endif // XFA_SRC_FDE_FDE_OBJECT_H_