blob: 0f417383c2d8b53bb383e8ddd9c8680a27e6d3b9 [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
jaepark9ed91372016-08-26 16:16:10 -070031 CFX_ByteString GetAnnotSubtype() const override;
jaepark27362762016-08-11 13:10:39 -070032 void SetRect(const CFX_FloatRect& rect) override;
33 CFX_FloatRect GetRect() const override;
34 CPDF_Annot* GetPDFAnnot() const override;
35 void Annot_OnDraw(CFX_RenderDevice* pDevice,
36 CFX_Matrix* pUser2Device,
37 CPDF_RenderOptions* pOptions) override;
38
39 CPDF_Dictionary* GetAnnotDict() const;
jaepark35512aa2016-08-29 17:15:08 -070040 CPDF_Annot* GetPDFPopupAnnot() const;
jaepark27362762016-08-11 13:10:39 -070041
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
jaepark35512aa2016-08-29 17:15:08 -0700100 void SetOpenState(bool bState);
101
jaepark27362762016-08-11 13:10:39 -0700102 protected:
103 CPDF_Annot* m_pAnnot;
104};
105
106#endif // FPDFSDK_INCLUDE_CPDFSDK_BAANNOT_H_