• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 _FDE_PEN
8 #define _FDE_PEN
9 class IFDE_Pen;
10 #define FDE_PENTYPE_Unknown FDE_BRUSHTYPE_Unknown
11 #define FDE_PENTYPE_SolidColor FDE_BRUSHTYPE_Solid
12 #define FDE_PENTYPE_HatchBrush FDE_BRUSHTYPE_Hatch
13 #define FDE_PENTYPE_TextureBrush FDE_BRUSHTYPE_Texture
14 #define FDE_PENTYPE_LinearGradient FDE_BRUSHTYPE_LinearGradient
15 #define FDE_PENTYPE_MAX FDE_BRUSHTYPE_MAX
16 #define FDE_DASHSTYLE_Solid 0
17 #define FDE_DASHSTYLE_Dash 1
18 #define FDE_DASHSTYLE_Dot 2
19 #define FDE_DASHSTYLE_DashDot 3
20 #define FDE_DASHSTYLE_DashDotDot 4
21 #define FDE_DASHSTYLE_Customized 5
22 #define FDE_LINEJOIN_Miter 0
23 #define FDE_LINEJOIN_Round 1
24 #define FDE_LINEJOIN_Bevel 2
25 #define FDE_LINECAP_Flat 0
26 #define FDE_LINECAP_Round 1
27 #define FDE_LINECAP_Square 2
28 typedef struct _FDE_COMPOUNDPATTERN {
29   FX_FLOAT pos;
30   FX_FLOAT width;
31 } FDE_COMPOUNDPATTERN, *FDE_LPCOMPOUNDPATTERN;
32 typedef FDE_COMPOUNDPATTERN const* FDE_LPCCOMPOUNDPATTERN;
33 typedef CFX_ArrayTemplate<FDE_COMPOUNDPATTERN> CFDE_CompoundPatterns;
34 
35 class IFDE_Pen {
36  public:
37   static IFDE_Pen* Create();
~IFDE_Pen()38   virtual ~IFDE_Pen() {}
39   virtual void Release() = 0;
40   virtual int32_t GetType() const = 0;
41   virtual FX_ARGB GetColor() const = 0;
42   virtual void SetColor(FX_ARGB color) = 0;
43   virtual IFDE_Brush* GetBrush() const = 0;
44   virtual void SetBrush(IFDE_Brush* pBrush, FX_BOOL bAutoRelease) = 0;
45   virtual int32_t GetLineCap() const = 0;
46   virtual void SetLineCap(int32_t iLineCap) = 0;
47   virtual int32_t GetDashStyle() const = 0;
48   virtual void SetDashStyle(int32_t iDashStyle) = 0;
49   virtual FX_FLOAT GetDashPhase() const = 0;
50   virtual void SetDashPhase(FX_FLOAT fPhase) = 0;
51   virtual int32_t CountDashArray() const = 0;
52   virtual int32_t GetDashArray(CFX_FloatArray& dashArray) const = 0;
53   virtual void SetDashArray(const CFX_FloatArray& dashArray) = 0;
54   virtual int32_t GetLineJoin() const = 0;
55   virtual void SetLineJoin(int32_t iLineJoin) = 0;
56   virtual FX_FLOAT GetMiterLimit() const = 0;
57   virtual void SetMiterLimit(FX_FLOAT fMiterLimit) = 0;
58   virtual int32_t CountCompoundPatterns() const = 0;
59   virtual FX_BOOL GetCompoundPatterns(
60       CFDE_CompoundPatterns& compoundPatterns) const = 0;
61   virtual FX_BOOL SetCompoundPatterns(
62       const CFDE_CompoundPatterns& compoundPatterns) = 0;
63 };
64 #endif
65