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_INCLUDE_FORMFILLER_FFL_LISTBOX_H_ 8 #define FPDFSDK_INCLUDE_FORMFILLER_FFL_LISTBOX_H_ 9 10 #include <set> 11 12 #include "FFL_FormFiller.h" 13 14 class CBA_FontMap; 15 16 class CFFL_ListBox : public CFFL_FormFiller { 17 public: 18 CFFL_ListBox(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pWidget); 19 ~CFFL_ListBox() override; 20 21 // CFFL_FormFiller 22 PWL_CREATEPARAM GetCreateParam() override; 23 CPWL_Wnd* NewPDFWindow(const PWL_CREATEPARAM& cp, 24 CPDFSDK_PageView* pPageView) override; 25 FX_BOOL OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags) override; 26 FX_BOOL IsDataChanged(CPDFSDK_PageView* pPageView) override; 27 void SaveData(CPDFSDK_PageView* pPageView) override; 28 void GetActionData(CPDFSDK_PageView* pPageView, 29 CPDF_AAction::AActionType type, 30 PDFSDK_FieldAction& fa) override; 31 void SetActionData(CPDFSDK_PageView* pPageView, 32 CPDF_AAction::AActionType type, 33 const PDFSDK_FieldAction& fa) override; 34 void SaveState(CPDFSDK_PageView* pPageView) override; 35 void RestoreState(CPDFSDK_PageView* pPageView) override; 36 CPWL_Wnd* ResetPDFWindow(CPDFSDK_PageView* pPageView, 37 FX_BOOL bRestoreValue) override; 38 39 private: 40 CBA_FontMap* m_pFontMap; 41 std::set<int> m_OriginSelections; 42 CFX_ArrayTemplate<int> m_State; 43 }; 44 45 #endif // FPDFSDK_INCLUDE_FORMFILLER_FFL_LISTBOX_H_ 46