| // Copyright 2014 PDFium Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
| // #include "../../include/formfiller/FormFiller.h" | |
| #include "../../include/formfiller/FFL_FormFiller.h" | |
| #include "../../include/formfiller/FFL_Notify.h" | |
| // #include "../../include/formfiller/FFL_ComboBox.h" | |
| // #include "../../include/formfiller/FFL_Module.h" | |
| /* -------------------------------- CFFL_Notify ------------------------------ | |
| */ | |
| //#pragma warning(disable: 4800) | |
| CFFL_Notify::CFFL_Notify(CFFL_FormFiller* pFormFiller) | |
| : m_bDoActioning(FALSE), m_nNotifyFlag(0) { | |
| ASSERT(pFormFiller != NULL); | |
| } | |
| CFFL_Notify::~CFFL_Notify() {} | |
| void CFFL_Notify::BeforeNotify() { | |
| m_nNotifyFlag++; | |
| } | |
| void CFFL_Notify::AfterNotify() { | |
| m_nNotifyFlag--; | |
| } | |
| FX_BOOL CFFL_Notify::OnMouseUp(FX_BOOL& bExit) { | |
| BeforeNotify(); | |
| FX_BOOL bRet = | |
| FALSE; // DoAAction(CPDF_AAction::AActionType::ButtonUp, bExit); | |
| AfterNotify(); | |
| return bRet; | |
| } | |
| FX_BOOL CFFL_Notify::OnMouseDown(FX_BOOL& bExit) { | |
| BeforeNotify(); | |
| FX_BOOL bRet = | |
| FALSE; // DoAAction(CPDF_AAction::AActionType::ButtonDown, bExit); | |
| AfterNotify(); | |
| return bRet; | |
| } | |
| FX_BOOL CFFL_Notify::OnMouseEnter(FX_BOOL& bExit) { | |
| BeforeNotify(); | |
| FX_BOOL bRet = | |
| FALSE; // DoAAction(CPDF_AAction::AActionType::CursorEnter, bExit); | |
| AfterNotify(); | |
| return bRet; | |
| } | |
| FX_BOOL CFFL_Notify::OnMouseExit(FX_BOOL& bExit) { | |
| BeforeNotify(); | |
| FX_BOOL bRet = | |
| FALSE; // DoAAction(CPDF_AAction::AActionType::CursorExit, bExit); | |
| AfterNotify(); | |
| return bRet; | |
| } | |
| FX_BOOL CFFL_Notify::OnSetFocus(FX_BOOL& bExit) { | |
| BeforeNotify(); | |
| FX_BOOL bRet = | |
| FALSE; // DoAAction(CPDF_AAction::AActionType::GetFocus, bExit); | |
| AfterNotify(); | |
| return bRet; | |
| } | |
| FX_BOOL CFFL_Notify::OnKillFocus(FX_BOOL& bExit) { | |
| BeforeNotify(); | |
| FX_BOOL bRet = | |
| FALSE; // DoAAction(CPDF_AAction::AActionType::LoseFocus, bExit); | |
| AfterNotify(); | |
| return bRet; | |
| } | |
| FX_BOOL CFFL_Notify::OnCalculate() { | |
| return TRUE; | |
| } | |
| FX_BOOL CFFL_Notify::OnFormat(int iCommitKey) { | |
| return TRUE; | |
| } | |
| FX_BOOL CFFL_Notify::OnKeyStroke(CPDF_FormField* pFormField, | |
| int nCommitKey, | |
| CFX_WideString& strValue, | |
| CFX_WideString& strChange, | |
| const CFX_WideString& strChangeEx, | |
| FX_BOOL bKeyDown, | |
| FX_BOOL bModifier, | |
| FX_BOOL bShift, | |
| FX_BOOL bWillCommit, | |
| FX_BOOL bFieldFull, | |
| int& nSelStart, | |
| int& nSelEnd, | |
| FX_BOOL& bRC) { | |
| return TRUE; | |
| } | |
| FX_BOOL CFFL_Notify::OnValidate(CPDF_FormField* pFormField, | |
| CFX_WideString& strValue, | |
| CFX_WideString& strChange, | |
| const CFX_WideString& strChangeEx, | |
| FX_BOOL bKeyDown, | |
| FX_BOOL bModifier, | |
| FX_BOOL bShift, | |
| FX_BOOL& bRC) { | |
| return TRUE; | |
| } | |
| FX_BOOL CFFL_Notify::DoAAction(CPDF_AAction::AActionType eAAT, FX_BOOL& bExit) { | |
| if (m_bDoActioning) | |
| return FALSE; | |
| CPDF_Action action; | |
| if (!FindAAction(eAAT, action)) | |
| return FALSE; | |
| m_bDoActioning = TRUE; | |
| ExecuteActionTree(eAAT, action, bExit); | |
| m_bDoActioning = FALSE; | |
| return TRUE; | |
| } | |
| FX_BOOL CFFL_Notify::ExecuteActionTree(CPDF_AAction::AActionType eAAT, | |
| CPDF_Action& action, | |
| FX_BOOL& bExit) { | |
| if (!ExecuteAction(eAAT, action, bExit)) | |
| return FALSE; | |
| if (bExit) | |
| return TRUE; | |
| for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) { | |
| CPDF_Action subaction = action.GetSubAction(i); | |
| if (!ExecuteActionTree(eAAT, subaction, bExit)) | |
| return FALSE; | |
| if (bExit) | |
| break; | |
| } | |
| return TRUE; | |
| } | |
| FX_BOOL CFFL_Notify::FindAAction(CPDF_AAction::AActionType eAAT, | |
| CPDF_Action& action) { | |
| return FALSE; | |
| } | |
| FX_BOOL CFFL_Notify::FindAAction(CPDF_AAction aaction, | |
| CPDF_AAction::AActionType eAAT, | |
| CPDF_Action& action) { | |
| CPDF_Action MyAction; | |
| if (aaction.ActionExist(eAAT)) { | |
| MyAction = aaction.GetAction(eAAT); | |
| } else | |
| return FALSE; | |
| if (MyAction.GetType() == CPDF_Action::Unknown) | |
| return FALSE; | |
| action = MyAction; | |
| return TRUE; | |
| } | |
| FX_BOOL CFFL_Notify::ExecuteAction(CPDF_AAction::AActionType eAAT, | |
| CPDF_Action& action, | |
| FX_BOOL& bExit) { | |
| return FALSE; | |
| } | |
| //#pragma warning(default: 4800) |