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