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 FPDFSDK_CPDFSDK_BAANNOT_H_
8 #define FPDFSDK_CPDFSDK_BAANNOT_H_
9 
10 #include "core/fpdfdoc/cpdf_aaction.h"
11 #include "core/fpdfdoc/cpdf_action.h"
12 #include "core/fpdfdoc/cpdf_annot.h"
13 #include "core/fxcrt/fx_coordinates.h"
14 #include "core/fxcrt/fx_string.h"
15 #include "core/fxge/cfx_renderdevice.h"
16 #include "fpdfsdk/cpdfsdk_annot.h"
17 
18 class CFX_Matrix;
19 class CPDF_Dictionary;
20 class CPDF_RenderOptions;
21 class CPDFSDK_PageView;
22 
23 class CPDFSDK_BAAnnot : public CPDFSDK_Annot {
24  public:
25   CPDFSDK_BAAnnot(CPDF_Annot* pAnnot, CPDFSDK_PageView* pPageView);
26   ~CPDFSDK_BAAnnot() override;
27 
28   // CPDFSDK_Annot
29   CPDFSDK_BAAnnot* AsBAAnnot() override;
30   CPDF_Annot::Subtype GetAnnotSubtype() const override;
31   void SetRect(const CFX_FloatRect& rect) override;
32   CFX_FloatRect GetRect() const override;
33   CPDF_Annot* GetPDFAnnot() const override;
34   int GetLayoutOrder() const override;
35 
36   virtual CPDF_Action GetAAction(CPDF_AAction::AActionType eAAT);
37   virtual bool IsAppearanceValid();
38   virtual void DrawAppearance(CFX_RenderDevice* pDevice,
39                               const CFX_Matrix& mtUser2Device,
40                               CPDF_Annot::AppearanceMode mode,
41                               const CPDF_RenderOptions* pOptions);
42 
43   CPDF_Dictionary* GetAnnotDict() const;
44   CPDF_Annot* GetPDFPopupAnnot() const;
45 
46   void SetAnnotName(const WideString& sName);
47   WideString GetAnnotName() const;
48 
49   void SetFlags(uint32_t nFlags);
50   uint32_t GetFlags() const;
51 
52   void SetAppState(const ByteString& str);
53   ByteString GetAppState() const;
54 
55   void SetBorderWidth(int nWidth);
56   int GetBorderWidth() const;
57 
58   void SetBorderStyle(BorderStyle nStyle);
59   BorderStyle GetBorderStyle() const;
60 
61   bool IsVisible() const;
62 
63   CPDF_Action GetAction() const;
64 
65   CPDF_AAction GetAAction() const;
66 
67   void SetOpenState(bool bOpenState);
68 
69  protected:
70   CPDF_Dictionary* GetAPDict() const;
71 
72   UnownedPtr<CPDF_Annot> const m_pAnnot;
73 };
74 
75 #endif  // FPDFSDK_CPDFSDK_BAANNOT_H_
76