blob: e7ae2e15a2f9ca90de5dc99fb00beafe64eb509a [file] [log] [blame]
jaepark27362762016-08-11 13:10:39 -07001// 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_INCLUDE_CPDFSDK_ANNOT_H_
8#define FPDFSDK_INCLUDE_CPDFSDK_ANNOT_H_
9
10#include "core/fpdfdoc/include/cpdf_aaction.h"
11#include "core/fpdfdoc/include/cpdf_annot.h"
12#include "core/fpdfdoc/include/cpdf_defaultappearance.h"
tsepez7b68f612016-09-07 14:11:27 -070013#include "core/fxcrt/include/cfx_observable.h"
jaepark27362762016-08-11 13:10:39 -070014#include "core/fxcrt/include/fx_basic.h"
15#include "fpdfsdk/cfx_systemhandler.h"
16#include "fpdfsdk/include/fsdk_common.h"
17#include "fpdfsdk/include/fsdk_define.h"
18
19class CFX_Matrix;
20class CFX_RenderDevice;
21class CPDF_Page;
22class CPDF_RenderOptions;
23class CPDFSDK_PageView;
24
tsepez7b68f612016-09-07 14:11:27 -070025class CPDFSDK_Annot : public CFX_Observable<CPDFSDK_Annot> {
jaepark27362762016-08-11 13:10:39 -070026 public:
27 explicit CPDFSDK_Annot(CPDFSDK_PageView* pPageView);
28 virtual ~CPDFSDK_Annot();
29
30#ifdef PDF_ENABLE_XFA
31 virtual FX_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;
jaepark956553e2016-08-31 06:49:27 -070039 virtual CPDF_Annot::Subtype GetAnnotSubtype() const;
jaepark9ed91372016-08-26 16:16:10 -070040 virtual bool IsSignatureWidget() const;
jaepark27362762016-08-11 13:10:39 -070041 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);
55 CPDFSDK_PageView* GetPageView() const { return m_pPageView; }
56
jaepark27362762016-08-11 13:10:39 -070057 FX_BOOL IsSelected();
58 void SetSelected(FX_BOOL bSelected);
59
60 protected:
61 CPDFSDK_PageView* m_pPageView;
62 FX_BOOL m_bSelected;
jaepark27362762016-08-11 13:10:39 -070063};
64
65#endif // FPDFSDK_INCLUDE_CPDFSDK_ANNOT_H_