• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016 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_ANNOT_H_
8 #define FPDFSDK_CPDFSDK_ANNOT_H_
9 
10 #include "core/fpdfdoc/cpdf_aaction.h"
11 #include "core/fpdfdoc/cpdf_annot.h"
12 #include "core/fpdfdoc/cpdf_defaultappearance.h"
13 #include "core/fxcrt/cfx_observable.h"
14 #include "core/fxcrt/fx_basic.h"
15 #include "fpdfsdk/cfx_systemhandler.h"
16 #include "fpdfsdk/fsdk_common.h"
17 #include "fpdfsdk/fsdk_define.h"
18 
19 class CFX_Matrix;
20 class CFX_RenderDevice;
21 class CPDF_Page;
22 class CPDF_RenderOptions;
23 class CPDFSDK_PageView;
24 
25 class CPDFSDK_Annot : public CFX_Observable<CPDFSDK_Annot> {
26  public:
27   explicit CPDFSDK_Annot(CPDFSDK_PageView* pPageView);
28   virtual ~CPDFSDK_Annot();
29 
30 #ifdef PDF_ENABLE_XFA
31   virtual bool IsXFAField();
32   virtual CXFA_FFWidget* GetXFAWidget() const;
33 #endif  // PDF_ENABLE_XFA
34 
35   virtual FX_FLOAT GetMinWidth() const;
36   virtual FX_FLOAT GetMinHeight() const;
37   virtual int GetLayoutOrder() const;
38   virtual CPDF_Annot* GetPDFAnnot() const;
39   virtual CPDF_Annot::Subtype GetAnnotSubtype() const;
40   virtual bool IsSignatureWidget() const;
41   virtual CFX_FloatRect GetRect() const;
42 
43   virtual void SetRect(const CFX_FloatRect& rect);
44   virtual void Annot_OnDraw(CFX_RenderDevice* pDevice,
45                             CFX_Matrix* pUser2Device,
46                             CPDF_RenderOptions* pOptions);
47 
48   UnderlyingPageType* GetUnderlyingPage();
49   CPDF_Page* GetPDFPage();
50 #ifdef PDF_ENABLE_XFA
51   CPDFXFA_Page* GetPDFXFAPage();
52 #endif  // PDF_ENABLE_XFA
53 
54   void SetPage(CPDFSDK_PageView* pPageView);
GetPageView()55   CPDFSDK_PageView* GetPageView() const { return m_pPageView; }
56 
57   bool IsSelected();
58   void SetSelected(bool bSelected);
59 
60  protected:
61   CPDFSDK_PageView* m_pPageView;
62   bool m_bSelected;
63 };
64 
65 #endif  // FPDFSDK_CPDFSDK_ANNOT_H_
66