blob: abe23fe1b9c9ce0d09491289179c9a0334497712 [file] [log] [blame]
jaepark27362762016-08-11 13:10:39 -07001// 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 FPDFSDK_INCLUDE_CPDFSDK_BAANNOT_H_
8#define FPDFSDK_INCLUDE_CPDFSDK_BAANNOT_H_
9
10#include "core/fpdfdoc/include/cpdf_aaction.h"
11#include "core/fpdfdoc/include/cpdf_action.h"
12#include "core/fpdfdoc/include/cpdf_annot.h"
13#include "core/fpdfdoc/include/cpdf_defaultappearance.h"
14#include "core/fxcrt/include/fx_coordinates.h"
15#include "core/fxcrt/include/fx_string.h"
16#include "fpdfsdk/cfx_systemhandler.h"
17#include "fpdfsdk/include/cpdfsdk_annot.h"
18
19class CFX_Matrix;
20class CFX_RenderDevice;
21class CPDF_Dictionary;
22class CPDF_RenderOptions;
23class CPDFSDK_PageView;
24
25class CPDFSDK_BAAnnot : public CPDFSDK_Annot {
26 public:
27 CPDFSDK_BAAnnot(CPDF_Annot* pAnnot, CPDFSDK_PageView* pPageView);
28 ~CPDFSDK_BAAnnot() override;
29
30 // CPDFSDK_Annot
31 CFX_ByteString GetType() const override;
32 CFX_ByteString GetSubType() const override;
33 void SetRect(const CFX_FloatRect& rect) override;
34 CFX_FloatRect GetRect() const override;
35 CPDF_Annot* GetPDFAnnot() const override;
36 void Annot_OnDraw(CFX_RenderDevice* pDevice,
37 CFX_Matrix* pUser2Device,
38 CPDF_RenderOptions* pOptions) override;
39
40 CPDF_Dictionary* GetAnnotDict() const;
41
42 void SetContents(const CFX_WideString& sContents);
43 CFX_WideString GetContents() const;
44
45 void SetAnnotName(const CFX_WideString& sName);
46 CFX_WideString GetAnnotName() const;
47
48 void SetModifiedDate(const FX_SYSTEMTIME& st);
49 FX_SYSTEMTIME GetModifiedDate() const;
50
51 void SetFlags(uint32_t nFlags);
52 uint32_t GetFlags() const;
53
54 void SetAppState(const CFX_ByteString& str);
55 CFX_ByteString GetAppState() const;
56
57 void SetStructParent(int key);
58 int GetStructParent() const;
59
60 void SetBorderWidth(int nWidth);
61 int GetBorderWidth() const;
62
63 void SetBorderStyle(BorderStyle nStyle);
64 BorderStyle GetBorderStyle() const;
65
66 void SetColor(FX_COLORREF color);
67 void RemoveColor();
68 FX_BOOL GetColor(FX_COLORREF& color) const;
69
70 FX_BOOL IsVisible() const;
71
72 CPDF_Action GetAction() const;
73 void SetAction(const CPDF_Action& a);
74 void RemoveAction();
75
76 CPDF_AAction GetAAction() const;
77 void SetAAction(const CPDF_AAction& aa);
78 void RemoveAAction();
79
80 virtual CPDF_Action GetAAction(CPDF_AAction::AActionType eAAT);
81 virtual FX_BOOL IsAppearanceValid();
82 virtual FX_BOOL IsAppearanceValid(CPDF_Annot::AppearanceMode mode);
83 virtual void DrawAppearance(CFX_RenderDevice* pDevice,
84 const CFX_Matrix* pUser2Device,
85 CPDF_Annot::AppearanceMode mode,
86 const CPDF_RenderOptions* pOptions);
87
88 void DrawBorder(CFX_RenderDevice* pDevice,
89 const CFX_Matrix* pUser2Device,
90 const CPDF_RenderOptions* pOptions);
91
92 void ClearCachedAP();
93
94 void WriteAppearance(const CFX_ByteString& sAPType,
95 const CFX_FloatRect& rcBBox,
96 const CFX_Matrix& matrix,
97 const CFX_ByteString& sContents,
98 const CFX_ByteString& sAPState = "");
99
100 protected:
101 CPDF_Annot* m_pAnnot;
102};
103
104#endif // FPDFSDK_INCLUDE_CPDFSDK_BAANNOT_H_