diff options
-rw-r--r-- | core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp | 2 | ||||
-rw-r--r-- | fpdfsdk/include/formfiller/FFL_ComboBox.h | 69 | ||||
-rw-r--r-- | fpdfsdk/include/formfiller/FFL_FormFiller.h | 31 | ||||
-rw-r--r-- | fpdfsdk/include/formfiller/FFL_IFormFiller.h | 51 | ||||
-rw-r--r-- | fpdfsdk/include/formfiller/FFL_TextField.h | 66 | ||||
-rw-r--r-- | fpdfsdk/include/fsdk_baseform.h | 25 | ||||
-rw-r--r-- | fpdfsdk/src/formfiller/FFL_ComboBox.cpp | 18 | ||||
-rw-r--r-- | fpdfsdk/src/formfiller/FFL_FormFiller.cpp | 26 | ||||
-rw-r--r-- | fpdfsdk/src/formfiller/FFL_IFormFiller.cpp | 42 | ||||
-rw-r--r-- | fpdfsdk/src/formfiller/FFL_TextField.cpp | 13 |
10 files changed, 135 insertions, 208 deletions
diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp index c07806c994..cc6c9e9d56 100644 --- a/core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp +++ b/core/src/fpdfapi/fpdf_page/fpdf_page_colors.cpp @@ -512,7 +512,7 @@ class CPDF_LabCS : public CPDF_ColorSpace { int pixels, int image_width, int image_height, - FX_BOOL bTransMask = FALSE) const; + FX_BOOL bTransMask = FALSE) const override; FX_FLOAT m_WhitePoint[3]; FX_FLOAT m_BlackPoint[3]; diff --git a/fpdfsdk/include/formfiller/FFL_ComboBox.h b/fpdfsdk/include/formfiller/FFL_ComboBox.h index 5be7198918..5bfbc12a8e 100644 --- a/fpdfsdk/include/formfiller/FFL_ComboBox.h +++ b/fpdfsdk/include/formfiller/FFL_ComboBox.h @@ -25,49 +25,40 @@ class CFFL_ComboBox : public CFFL_FormFiller, public IPWL_Edit_Notify { public: CFFL_ComboBox(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pWidget); - virtual ~CFFL_ComboBox(); - - virtual PWL_CREATEPARAM GetCreateParam(); - virtual CPWL_Wnd* NewPDFWindow(const PWL_CREATEPARAM& cp, - CPDFSDK_PageView* pPageView); - - virtual FX_BOOL OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags); - - virtual FX_BOOL IsDataChanged(CPDFSDK_PageView* pPageView); - virtual void SaveData(CPDFSDK_PageView* pPageView); - - virtual void GetActionData(CPDFSDK_PageView* pPageView, - CPDF_AAction::AActionType type, - PDFSDK_FieldAction& fa); - virtual void SetActionData(CPDFSDK_PageView* pPageView, - CPDF_AAction::AActionType type, - const PDFSDK_FieldAction& fa); - virtual FX_BOOL IsActionDataChanged(CPDF_AAction::AActionType type, - const PDFSDK_FieldAction& faOld, - const PDFSDK_FieldAction& faNew); - virtual void SaveState(CPDFSDK_PageView* pPageView); - virtual void RestoreState(CPDFSDK_PageView* pPageView); - - virtual CPWL_Wnd* ResetPDFWindow(CPDFSDK_PageView* pPageView, - FX_BOOL bRestoreValue); - virtual void OnKeyStroke(FX_BOOL bKeyDown, FX_UINT nFlag); - - public: - virtual void OnSetFocus(CPWL_Wnd* pWnd); - virtual void OnKillFocus(CPWL_Wnd* pWnd); - - public: - virtual void OnAddUndo(CPWL_Edit* pEdit); - - public: - virtual FX_BOOL CanCopy(CPDFSDK_Document* pDocument); - virtual FX_BOOL CanCut(CPDFSDK_Document* pDocument); - virtual FX_BOOL CanPaste(CPDFSDK_Document* pDocument); + ~CFFL_ComboBox() override; + + // CFFL_FormFiller: + PWL_CREATEPARAM GetCreateParam() override; + CPWL_Wnd* NewPDFWindow(const PWL_CREATEPARAM& cp, + CPDFSDK_PageView* pPageView) override; + FX_BOOL OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags) override; + FX_BOOL IsDataChanged(CPDFSDK_PageView* pPageView) override; + void SaveData(CPDFSDK_PageView* pPageView) override; + void GetActionData(CPDFSDK_PageView* pPageView, + CPDF_AAction::AActionType type, + PDFSDK_FieldAction& fa) override; + void SetActionData(CPDFSDK_PageView* pPageView, + CPDF_AAction::AActionType type, + const PDFSDK_FieldAction& fa) override; + FX_BOOL IsActionDataChanged(CPDF_AAction::AActionType type, + const PDFSDK_FieldAction& faOld, + const PDFSDK_FieldAction& faNew) override; + void SaveState(CPDFSDK_PageView* pPageView) override; + void RestoreState(CPDFSDK_PageView* pPageView) override; + CPWL_Wnd* ResetPDFWindow(CPDFSDK_PageView* pPageView, + FX_BOOL bRestoreValue) override; + void OnKeyStroke(FX_BOOL bKeyDown, FX_DWORD nFlag) override; + + // IPWL_FocusHandler: + void OnSetFocus(CPWL_Wnd* pWnd) override; + void OnKillFocus(CPWL_Wnd* pWnd) override; + + // IPWL_Edit_Notify: + void OnAddUndo(CPWL_Edit* pEdit) override; private: CFX_WideString GetSelectExportText(); - private: CBA_FontMap* m_pFontMap; FFL_ComboBoxState m_State; }; diff --git a/fpdfsdk/include/formfiller/FFL_FormFiller.h b/fpdfsdk/include/formfiller/FFL_FormFiller.h index 64c813671a..87fb7acec5 100644 --- a/fpdfsdk/include/formfiller/FFL_FormFiller.h +++ b/fpdfsdk/include/formfiller/FFL_FormFiller.h @@ -10,18 +10,16 @@ #include "FFL_IFormFiller.h" #include "FFL_CBA_Fontmap.h" -class CPDFSDK_Annot; -class CFFL_FormFiller; -class CFFL_Notify; class CPDFDoc_Environment; -class CPDFSDK_PageView; +class CPDFSDK_Annot; class CPDFSDK_Document; +class CPDFSDK_PageView; class CPDFSDK_Widget; class CFFL_FormFiller : public IPWL_Provider, public CPWL_TimerHandler { public: CFFL_FormFiller(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pAnnot); - virtual ~CFFL_FormFiller(); + ~CFFL_FormFiller() override; virtual FX_RECT GetViewBBox(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot); @@ -78,23 +76,16 @@ class CFFL_FormFiller : public IPWL_Provider, public CPWL_TimerHandler { FX_UINT nFlags); virtual FX_BOOL OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags); - virtual FX_BOOL OnSetFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag); - virtual FX_BOOL OnKillFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag); - - virtual FX_BOOL CanCopy(CPDFSDK_Document* pDocument); - virtual FX_BOOL CanCut(CPDFSDK_Document* pDocument); - virtual FX_BOOL CanPaste(CPDFSDK_Document* pDocument); - - virtual void DoCopy(CPDFSDK_Document* pDocument); - virtual void DoCut(CPDFSDK_Document* pDocument); - virtual void DoPaste(CPDFSDK_Document* pDocument); + FX_BOOL SetFocusForAnnot(CPDFSDK_Annot* pAnnot, FX_UINT nFlag); + FX_BOOL KillFocusForAnnot(CPDFSDK_Annot* pAnnot, FX_UINT nFlag); // CPWL_TimerHandler - virtual void TimerProc(); - virtual IFX_SystemHandler* GetSystemHandler() const; + void TimerProc() override; + IFX_SystemHandler* GetSystemHandler() const override; - virtual CPDF_Matrix GetWindowMatrix(void* pAttachedData); - virtual CFX_WideString LoadPopupMenuString(int nIndex); + // IPWL_Provider + CPDF_Matrix GetWindowMatrix(void* pAttachedData) override; + CFX_WideString LoadPopupMenuString(int nIndex) override; virtual void GetActionData(CPDFSDK_PageView* pPageView, CPDF_AAction::AActionType type, @@ -112,7 +103,7 @@ class CFFL_FormFiller : public IPWL_Provider, public CPWL_TimerHandler { virtual CPWL_Wnd* ResetPDFWindow(CPDFSDK_PageView* pPageView, FX_BOOL bRestoreValue); - virtual void OnKeyStroke(FX_BOOL bKeyDown); + virtual void OnKeyStroke(FX_BOOL bKeyDown, FX_DWORD nFlag); CPDF_Matrix GetCurMatrix(); diff --git a/fpdfsdk/include/formfiller/FFL_IFormFiller.h b/fpdfsdk/include/formfiller/FFL_IFormFiller.h index 3acdb237d0..8421774bcb 100644 --- a/fpdfsdk/include/formfiller/FFL_IFormFiller.h +++ b/fpdfsdk/include/formfiller/FFL_IFormFiller.h @@ -16,8 +16,8 @@ class CFFL_PrivateData; class CFFL_IFormFiller : public IPWL_Filler_Notify { public: - CFFL_IFormFiller(CPDFDoc_Environment* pApp); - virtual ~CFFL_IFormFiller(); + explicit CFFL_IFormFiller(CPDFDoc_Environment* pApp); + ~CFFL_IFormFiller() override; virtual FX_BOOL Annot_HitTest(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot, @@ -25,10 +25,10 @@ class CFFL_IFormFiller : public IPWL_Filler_Notify { virtual FX_RECT GetViewBBox(CPDFSDK_PageView* pPageView, CPDFSDK_Annot* pAnnot); virtual void OnDraw(CPDFSDK_PageView* pPageView, - /*HDC hDC,*/ CPDFSDK_Annot* pAnnot, + CPDFSDK_Annot* pAnnot, CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, - /*const CRect& rcWindow,*/ FX_DWORD dwFlags); + FX_DWORD dwFlags); virtual void OnCreate(CPDFSDK_Annot* pAnnot); virtual void OnLoad(CPDFSDK_Annot* pAnnot); @@ -79,27 +79,6 @@ class CFFL_IFormFiller : public IPWL_Filler_Notify { virtual FX_BOOL OnSetFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag); virtual FX_BOOL OnKillFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag); - virtual void QueryWherePopup(void* pPrivateData, - FX_FLOAT fPopupMin, - FX_FLOAT fPopupMax, - int32_t& nRet, - FX_FLOAT& fPopupRet); - virtual void OnBeforeKeyStroke(FX_BOOL bEditOrList, - void* pPrivateData, - int32_t nKeyCode, - CFX_WideString& strChange, - const CFX_WideString& strChangeEx, - int nSelStart, - int nSelEnd, - FX_BOOL bKeyDown, - FX_BOOL& bRC, - FX_BOOL& bExit, - FX_DWORD nFlag); - virtual void OnAfterKeyStroke(FX_BOOL bEditOrList, - void* pPrivateData, - FX_BOOL& bExit, - FX_DWORD nFlag); - CFFL_FormFiller* GetFormFiller(CPDFSDK_Annot* pAnnot, FX_BOOL bRegister); void RemoveFormFiller(CPDFSDK_Annot* pAnnot); @@ -137,6 +116,28 @@ class CFFL_IFormFiller : public IPWL_Filler_Notify { private: using CFFL_Widget2Filler = std::map<CPDFSDK_Annot*, CFFL_FormFiller*>; + // IPWL_Filler_Notify: + void QueryWherePopup(void* pPrivateData, + FX_FLOAT fPopupMin, + FX_FLOAT fPopupMax, + int32_t& nRet, + FX_FLOAT& fPopupRet) override; + void OnBeforeKeyStroke(FX_BOOL bEditOrList, + void* pPrivateData, + int32_t nKeyCode, + CFX_WideString& strChange, + const CFX_WideString& strChangeEx, + int nSelStart, + int nSelEnd, + FX_BOOL bKeyDown, + FX_BOOL& bRC, + FX_BOOL& bExit, + FX_DWORD nFlag) override; + void OnAfterKeyStroke(FX_BOOL bEditOrList, + void* pPrivateData, + FX_BOOL& bExit, + FX_DWORD nFlag) override; + void UnRegisterFormFiller(CPDFSDK_Annot* pAnnot); CPDFDoc_Environment* m_pApp; diff --git a/fpdfsdk/include/formfiller/FFL_TextField.h b/fpdfsdk/include/formfiller/FFL_TextField.h index 65da9257ac..057825a4e1 100644 --- a/fpdfsdk/include/formfiller/FFL_TextField.h +++ b/fpdfsdk/include/formfiller/FFL_TextField.h @@ -26,43 +26,35 @@ class CFFL_TextField : public CFFL_FormFiller, public IPWL_Edit_Notify { public: CFFL_TextField(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pAnnot); - virtual ~CFFL_TextField(); - - virtual PWL_CREATEPARAM GetCreateParam(); - virtual CPWL_Wnd* NewPDFWindow(const PWL_CREATEPARAM& cp, - CPDFSDK_PageView* pPageView); - - virtual FX_BOOL OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags); - - virtual FX_BOOL IsDataChanged(CPDFSDK_PageView* pPageView); - virtual void SaveData(CPDFSDK_PageView* pPageView); - - virtual void GetActionData(CPDFSDK_PageView* pPageView, - CPDF_AAction::AActionType type, - PDFSDK_FieldAction& fa); - virtual void SetActionData(CPDFSDK_PageView* pPageView, - CPDF_AAction::AActionType type, - const PDFSDK_FieldAction& fa); - virtual FX_BOOL IsActionDataChanged(CPDF_AAction::AActionType type, - const PDFSDK_FieldAction& faOld, - const PDFSDK_FieldAction& faNew); - virtual void SaveState(CPDFSDK_PageView* pPageView); - virtual void RestoreState(CPDFSDK_PageView* pPageView); - - virtual CPWL_Wnd* ResetPDFWindow(CPDFSDK_PageView* pPageView, - FX_BOOL bRestoreValue); - - public: - virtual void OnSetFocus(CPWL_Wnd* pWnd); - virtual void OnKillFocus(CPWL_Wnd* pWnd); - - public: - virtual void OnAddUndo(CPWL_Edit* pEdit); - - public: - virtual FX_BOOL CanCopy(CPDFSDK_Document* pDocument); - virtual FX_BOOL CanCut(CPDFSDK_Document* pDocument); - virtual FX_BOOL CanPaste(CPDFSDK_Document* pDocument); + ~CFFL_TextField() override; + + // CFFL_FormFiller: + PWL_CREATEPARAM GetCreateParam() override; + CPWL_Wnd* NewPDFWindow(const PWL_CREATEPARAM& cp, + CPDFSDK_PageView* pPageView) override; + FX_BOOL OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags) override; + FX_BOOL IsDataChanged(CPDFSDK_PageView* pPageView) override; + void SaveData(CPDFSDK_PageView* pPageView) override; + void GetActionData(CPDFSDK_PageView* pPageView, + CPDF_AAction::AActionType type, + PDFSDK_FieldAction& fa) override; + void SetActionData(CPDFSDK_PageView* pPageView, + CPDF_AAction::AActionType type, + const PDFSDK_FieldAction& fa) override; + FX_BOOL IsActionDataChanged(CPDF_AAction::AActionType type, + const PDFSDK_FieldAction& faOld, + const PDFSDK_FieldAction& faNew) override; + void SaveState(CPDFSDK_PageView* pPageView) override; + void RestoreState(CPDFSDK_PageView* pPageView) override; + CPWL_Wnd* ResetPDFWindow(CPDFSDK_PageView* pPageView, + FX_BOOL bRestoreValue) override; + + // IPWL_FocusHandler: + void OnSetFocus(CPWL_Wnd* pWnd) override; + void OnKillFocus(CPWL_Wnd* pWnd) override; + + // IPWL_Edit_Notify: + void OnAddUndo(CPWL_Edit* pEdit) override; private: CBA_FontMap* m_pFontMap; diff --git a/fpdfsdk/include/fsdk_baseform.h b/fpdfsdk/include/fsdk_baseform.h index 7b69e5d7fa..bb3e7cd653 100644 --- a/fpdfsdk/include/fsdk_baseform.h +++ b/fpdfsdk/include/fsdk_baseform.h @@ -231,18 +231,19 @@ class CPDFSDK_InterForm : public CPDF_FormNotify { CFX_WideString GetTemporaryFileName(const CFX_WideString& sFileExt); private: - virtual int BeforeValueChange(const CPDF_FormField* pField, - CFX_WideString& csValue); - virtual int AfterValueChange(const CPDF_FormField* pField); - virtual int BeforeSelectionChange(const CPDF_FormField* pField, - CFX_WideString& csValue); - virtual int AfterSelectionChange(const CPDF_FormField* pField); - virtual int AfterCheckedStatusChange(const CPDF_FormField* pField, - const CFX_ByteArray& statusArray); - virtual int BeforeFormReset(const CPDF_InterForm* pForm); - virtual int AfterFormReset(const CPDF_InterForm* pForm); - virtual int BeforeFormImportData(const CPDF_InterForm* pForm); - virtual int AfterFormImportData(const CPDF_InterForm* pForm); + // CPDF_FormNotify + int BeforeValueChange(const CPDF_FormField* pField, + CFX_WideString& csValue) override; + int AfterValueChange(const CPDF_FormField* pField) override; + int BeforeSelectionChange(const CPDF_FormField* pField, + CFX_WideString& csValue) override; + int AfterSelectionChange(const CPDF_FormField* pField) override; + int AfterCheckedStatusChange(const CPDF_FormField* pField, + const CFX_ByteArray& statusArray) override; + int BeforeFormReset(const CPDF_InterForm* pForm) override; + int AfterFormReset(const CPDF_InterForm* pForm) override; + int BeforeFormImportData(const CPDF_InterForm* pForm) override; + int AfterFormImportData(const CPDF_InterForm* pForm) override; FX_BOOL FDFToURLEncodedData(CFX_WideString csFDFFile, CFX_WideString csTxtFile); diff --git a/fpdfsdk/src/formfiller/FFL_ComboBox.cpp b/fpdfsdk/src/formfiller/FFL_ComboBox.cpp index b49726d5ab..29352216ab 100644 --- a/fpdfsdk/src/formfiller/FFL_ComboBox.cpp +++ b/fpdfsdk/src/formfiller/FFL_ComboBox.cpp @@ -300,24 +300,6 @@ void CFFL_ComboBox::OnKillFocus(CPWL_Wnd* pWnd) { ASSERT(m_pApp != NULL); } -FX_BOOL CFFL_ComboBox::CanCopy(CPDFSDK_Document* pDocument) { - ASSERT(pDocument != NULL); - - return FALSE; -} - -FX_BOOL CFFL_ComboBox::CanCut(CPDFSDK_Document* pDocument) { - ASSERT(pDocument != NULL); - - return FALSE; -} - -FX_BOOL CFFL_ComboBox::CanPaste(CPDFSDK_Document* pDocument) { - ASSERT(pDocument != NULL); - - return FALSE; -} - void CFFL_ComboBox::OnAddUndo(CPWL_Edit* pEdit) { ASSERT(pEdit != NULL); } diff --git a/fpdfsdk/src/formfiller/FFL_FormFiller.cpp b/fpdfsdk/src/formfiller/FFL_FormFiller.cpp index 4fb7542091..80e1b0e887 100644 --- a/fpdfsdk/src/formfiller/FFL_FormFiller.cpp +++ b/fpdfsdk/src/formfiller/FFL_FormFiller.cpp @@ -242,7 +242,8 @@ FX_BOOL CFFL_FormFiller::OnChar(CPDFSDK_Annot* pAnnot, return FALSE; } -FX_BOOL CFFL_FormFiller::OnSetFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag) { +FX_BOOL CFFL_FormFiller::SetFocusForAnnot(CPDFSDK_Annot* pAnnot, + FX_UINT nFlag) { CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot; CPDF_Page* pPage = pWidget->GetPDFPage(); CPDFSDK_Document* pDoc = m_pApp->GetSDKDocument(); @@ -256,7 +257,8 @@ FX_BOOL CFFL_FormFiller::OnSetFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag) { return TRUE; } -FX_BOOL CFFL_FormFiller::OnKillFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag) { +FX_BOOL CFFL_FormFiller::KillFocusForAnnot(CPDFSDK_Annot* pAnnot, + FX_UINT nFlag) { if (!IsValid()) return TRUE; @@ -597,7 +599,7 @@ IFX_SystemHandler* CFFL_FormFiller::GetSystemHandler() const { return m_pApp->GetSysHandler(); } -void CFFL_FormFiller::OnKeyStroke(FX_BOOL bKeyDown) {} +void CFFL_FormFiller::OnKeyStroke(FX_BOOL bKeyDown, FX_DWORD nFlag) {} void CFFL_FormFiller::EscapeFiller(CPDFSDK_PageView* pPageView, FX_BOOL bDestroyPDFWindow) { @@ -610,24 +612,6 @@ void CFFL_FormFiller::EscapeFiller(CPDFSDK_PageView* pPageView, DestroyPDFWindow(pPageView); } -FX_BOOL CFFL_FormFiller::CanCopy(CPDFSDK_Document* pDocument) { - return FALSE; -} - -FX_BOOL CFFL_FormFiller::CanCut(CPDFSDK_Document* pDocument) { - return FALSE; -} - -FX_BOOL CFFL_FormFiller::CanPaste(CPDFSDK_Document* pDocument) { - return FALSE; -} - -void CFFL_FormFiller::DoCopy(CPDFSDK_Document* pDocument) {} - -void CFFL_FormFiller::DoCut(CPDFSDK_Document* pDocument) {} - -void CFFL_FormFiller::DoPaste(CPDFSDK_Document* pDocument) {} - void CFFL_FormFiller::InvalidateRect(double left, double top, double right, diff --git a/fpdfsdk/src/formfiller/FFL_IFormFiller.cpp b/fpdfsdk/src/formfiller/FFL_IFormFiller.cpp index ad573470bd..f8f8c6a943 100644 --- a/fpdfsdk/src/formfiller/FFL_IFormFiller.cpp +++ b/fpdfsdk/src/formfiller/FFL_IFormFiller.cpp @@ -459,7 +459,7 @@ FX_BOOL CFFL_IFormFiller::OnSetFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag) { } if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, TRUE)) - return pFormFiller->OnSetFocus(pAnnot, nFlag); + return pFormFiller->SetFocusForAnnot(pAnnot, nFlag); return TRUE; } @@ -470,28 +470,28 @@ FX_BOOL CFFL_IFormFiller::OnKillFocus(CPDFSDK_Annot* pAnnot, FX_UINT nFlag) { ASSERT(pAnnot->GetPDFAnnot()->GetSubType() == "Widget"); if (CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, FALSE)) { - if (pFormFiller->OnKillFocus(pAnnot, nFlag)) { - if (!m_bNotifying) { - CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot; - if (pWidget->GetAAction(CPDF_AAction::LoseFocus)) { - m_bNotifying = TRUE; - pWidget->ClearAppModified(); + if (!pFormFiller->KillFocusForAnnot(pAnnot, nFlag)) + return FALSE; - CPDFSDK_PageView* pPageView = pWidget->GetPageView(); - ASSERT(pPageView != NULL); + if (!m_bNotifying) { + CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot; + if (pWidget->GetAAction(CPDF_AAction::LoseFocus)) { + m_bNotifying = TRUE; + pWidget->ClearAppModified(); - PDFSDK_FieldAction fa; - fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag); - fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag); + CPDFSDK_PageView* pPageView = pWidget->GetPageView(); + ASSERT(pPageView != NULL); - pFormFiller->GetActionData(pPageView, CPDF_AAction::LoseFocus, fa); + PDFSDK_FieldAction fa; + fa.bModifier = m_pApp->FFI_IsCTRLKeyDown(nFlag); + fa.bShift = m_pApp->FFI_IsSHIFTKeyDown(nFlag); - pWidget->OnAAction(CPDF_AAction::LoseFocus, fa, pPageView); - m_bNotifying = FALSE; - } + pFormFiller->GetActionData(pPageView, CPDF_AAction::LoseFocus, fa); + + pWidget->OnAAction(CPDF_AAction::LoseFocus, fa, pPageView); + m_bNotifying = FALSE; } - } else - return FALSE; + } } return TRUE; @@ -898,13 +898,11 @@ void CFFL_IFormFiller::OnAfterKeyStroke(FX_BOOL bEditOrList, void* pPrivateData, FX_BOOL& bExit, FX_DWORD nFlag) { - ASSERT(pPrivateData != NULL); CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData; - ASSERT(pData->pWidget != NULL); + ASSERT(pData->pWidget); CFFL_FormFiller* pFormFiller = GetFormFiller(pData->pWidget, FALSE); - ASSERT(pFormFiller != NULL); if (!bEditOrList) - pFormFiller->OnKeyStroke(bExit); + pFormFiller->OnKeyStroke(bExit, nFlag); } diff --git a/fpdfsdk/src/formfiller/FFL_TextField.cpp b/fpdfsdk/src/formfiller/FFL_TextField.cpp index 2acf6b8fda..b95ac9356f 100644 --- a/fpdfsdk/src/formfiller/FFL_TextField.cpp +++ b/fpdfsdk/src/formfiller/FFL_TextField.cpp @@ -287,22 +287,9 @@ void CFFL_TextField::OnSetFocus(CPWL_Wnd* pWnd) { nCharacters, TRUE); pEdit->SetEditNotify(this); - // pUndo->BeginEdit(pDocument); } } void CFFL_TextField::OnKillFocus(CPWL_Wnd* pWnd) {} -FX_BOOL CFFL_TextField::CanCopy(CPDFSDK_Document* pDocument) { - return FALSE; -} - -FX_BOOL CFFL_TextField::CanCut(CPDFSDK_Document* pDocument) { - return FALSE; -} - -FX_BOOL CFFL_TextField::CanPaste(CPDFSDK_Document* pDocument) { - return FALSE; -} - void CFFL_TextField::OnAddUndo(CPWL_Edit* pEdit) {} |