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 _FFL_COMBOBOX_H_ 8 #define _FFL_COMBOBOX_H_ 9 10 struct FFL_ComboBoxState 11 { 12 int nIndex; 13 int nStart; 14 int nEnd; 15 CFX_WideString sValue; 16 }; 17 class CBA_FontMap; 18 19 class CFFL_ComboBox : public CFFL_FormFiller, public IPWL_FocusHandler, public IPWL_Edit_Notify 20 { 21 public: 22 CFFL_ComboBox(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pWidget); 23 virtual ~CFFL_ComboBox(); 24 25 virtual PWL_CREATEPARAM GetCreateParam(); 26 virtual CPWL_Wnd* NewPDFWindow(const PWL_CREATEPARAM& cp, CPDFSDK_PageView* pPageView); 27 28 29 virtual FX_BOOL OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags); 30 31 virtual FX_BOOL IsDataChanged(CPDFSDK_PageView* pPageView); 32 virtual void SaveData(CPDFSDK_PageView* pPageView); 33 34 virtual void GetActionData(CPDFSDK_PageView* pPageView, CPDF_AAction::AActionType type, PDFSDK_FieldAction& fa); 35 virtual void SetActionData(CPDFSDK_PageView* pPageView, CPDF_AAction::AActionType type, const PDFSDK_FieldAction& fa); 36 virtual FX_BOOL IsActionDataChanged(CPDF_AAction::AActionType type, const PDFSDK_FieldAction& faOld, const PDFSDK_FieldAction& faNew); 37 virtual void SaveState(CPDFSDK_PageView* pPageView); 38 virtual void RestoreState(CPDFSDK_PageView* pPageView); 39 40 virtual CPWL_Wnd* ResetPDFWindow(CPDFSDK_PageView* pPageView, FX_BOOL bRestoreValue); 41 virtual void OnKeyStroke(FX_BOOL bKeyDown, FX_UINT nFlag); 42 43 public: 44 virtual void OnSetFocus(CPWL_Wnd* pWnd); 45 virtual void OnKillFocus(CPWL_Wnd* pWnd); 46 47 public: 48 virtual void OnAddUndo(CPWL_Edit* pEdit); 49 50 public: 51 virtual FX_BOOL CanCopy(CPDFSDK_Document* pDocument); 52 virtual FX_BOOL CanCut(CPDFSDK_Document* pDocument); 53 virtual FX_BOOL CanPaste(CPDFSDK_Document* pDocument); 54 55 virtual void DoCopy(CPDFSDK_Document* pDocument); 56 virtual void DoCut(CPDFSDK_Document* pDocument); 57 virtual void DoPaste(CPDFSDK_Document* pDocument); 58 59 private: 60 CFX_WideString GetSelectExportText(); 61 62 private: 63 CBA_FontMap* m_pFontMap; 64 FFL_ComboBoxState m_State; 65 //CFFL_IM_BOX m_IMBox; 66 }; 67 68 #endif //_FFL_COMBOBOX_H_ 69 70