1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2014 The PDFium Authors 2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file. 4*3ac0a46fSAndroid Build Coastguard Worker 5*3ac0a46fSAndroid Build Coastguard Worker // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6*3ac0a46fSAndroid Build Coastguard Worker 7*3ac0a46fSAndroid Build Coastguard Worker #ifndef FPDFSDK_FORMFILLER_CFFL_TEXTFIELD_H_ 8*3ac0a46fSAndroid Build Coastguard Worker #define FPDFSDK_FORMFILLER_CFFL_TEXTFIELD_H_ 9*3ac0a46fSAndroid Build Coastguard Worker 10*3ac0a46fSAndroid Build Coastguard Worker #include <memory> 11*3ac0a46fSAndroid Build Coastguard Worker 12*3ac0a46fSAndroid Build Coastguard Worker #include "fpdfsdk/formfiller/cffl_textobject.h" 13*3ac0a46fSAndroid Build Coastguard Worker 14*3ac0a46fSAndroid Build Coastguard Worker class CPWL_Edit; 15*3ac0a46fSAndroid Build Coastguard Worker 16*3ac0a46fSAndroid Build Coastguard Worker struct FFL_TextFieldState { 17*3ac0a46fSAndroid Build Coastguard Worker int nStart = 0; 18*3ac0a46fSAndroid Build Coastguard Worker int nEnd = 0; 19*3ac0a46fSAndroid Build Coastguard Worker WideString sValue; 20*3ac0a46fSAndroid Build Coastguard Worker }; 21*3ac0a46fSAndroid Build Coastguard Worker 22*3ac0a46fSAndroid Build Coastguard Worker class CFFL_TextField final : public CFFL_TextObject { 23*3ac0a46fSAndroid Build Coastguard Worker public: 24*3ac0a46fSAndroid Build Coastguard Worker CFFL_TextField(CFFL_InteractiveFormFiller* pFormFiller, 25*3ac0a46fSAndroid Build Coastguard Worker CPDFSDK_Widget* pWidget); 26*3ac0a46fSAndroid Build Coastguard Worker ~CFFL_TextField() override; 27*3ac0a46fSAndroid Build Coastguard Worker 28*3ac0a46fSAndroid Build Coastguard Worker // CFFL_TextObject: 29*3ac0a46fSAndroid Build Coastguard Worker CPWL_Wnd::CreateParams GetCreateParam() override; 30*3ac0a46fSAndroid Build Coastguard Worker std::unique_ptr<CPWL_Wnd> NewPWLWindow( 31*3ac0a46fSAndroid Build Coastguard Worker const CPWL_Wnd::CreateParams& cp, 32*3ac0a46fSAndroid Build Coastguard Worker std::unique_ptr<IPWL_FillerNotify::PerWindowData> pAttachedData) override; 33*3ac0a46fSAndroid Build Coastguard Worker bool OnChar(CPDFSDK_Widget* pWidget, 34*3ac0a46fSAndroid Build Coastguard Worker uint32_t nChar, 35*3ac0a46fSAndroid Build Coastguard Worker Mask<FWL_EVENTFLAG> nFlags) override; 36*3ac0a46fSAndroid Build Coastguard Worker bool IsDataChanged(const CPDFSDK_PageView* pPageView) override; 37*3ac0a46fSAndroid Build Coastguard Worker void SaveData(const CPDFSDK_PageView* pPageView) override; 38*3ac0a46fSAndroid Build Coastguard Worker void GetActionData(const CPDFSDK_PageView* pPageView, 39*3ac0a46fSAndroid Build Coastguard Worker CPDF_AAction::AActionType type, 40*3ac0a46fSAndroid Build Coastguard Worker CFFL_FieldAction& fa) override; 41*3ac0a46fSAndroid Build Coastguard Worker void SetActionData(const CPDFSDK_PageView* pPageView, 42*3ac0a46fSAndroid Build Coastguard Worker CPDF_AAction::AActionType type, 43*3ac0a46fSAndroid Build Coastguard Worker const CFFL_FieldAction& fa) override; 44*3ac0a46fSAndroid Build Coastguard Worker void SavePWLWindowState(const CPDFSDK_PageView* pPageView) override; 45*3ac0a46fSAndroid Build Coastguard Worker void RecreatePWLWindowFromSavedState( 46*3ac0a46fSAndroid Build Coastguard Worker const CPDFSDK_PageView* pPageView) override; 47*3ac0a46fSAndroid Build Coastguard Worker #ifdef PDF_ENABLE_XFA 48*3ac0a46fSAndroid Build Coastguard Worker bool IsFieldFull(const CPDFSDK_PageView* pPageView) override; 49*3ac0a46fSAndroid Build Coastguard Worker #endif 50*3ac0a46fSAndroid Build Coastguard Worker 51*3ac0a46fSAndroid Build Coastguard Worker // CPWL_Wnd::ProviderIface: 52*3ac0a46fSAndroid Build Coastguard Worker void OnSetFocusForEdit(CPWL_Edit* pEdit) override; 53*3ac0a46fSAndroid Build Coastguard Worker 54*3ac0a46fSAndroid Build Coastguard Worker private: 55*3ac0a46fSAndroid Build Coastguard Worker CPWL_Edit* GetPWLEdit(const CPDFSDK_PageView* pPageView) const; 56*3ac0a46fSAndroid Build Coastguard Worker CPWL_Edit* CreateOrUpdatePWLEdit(const CPDFSDK_PageView* pPageView); 57*3ac0a46fSAndroid Build Coastguard Worker 58*3ac0a46fSAndroid Build Coastguard Worker FFL_TextFieldState m_State; 59*3ac0a46fSAndroid Build Coastguard Worker }; 60*3ac0a46fSAndroid Build Coastguard Worker 61*3ac0a46fSAndroid Build Coastguard Worker #endif // FPDFSDK_FORMFILLER_CFFL_TEXTFIELD_H_ 62