Index: fpdfsdk/src/fsdk_baseform.cpp |
diff --git a/fpdfsdk/src/fsdk_baseform.cpp b/fpdfsdk/src/fsdk_baseform.cpp |
index f2eb3978f38086822f0654395bc0fc23a5ab04ae..86c41dc04895334de10cf0747a088aca3465aada 100644 |
--- a/fpdfsdk/src/fsdk_baseform.cpp |
+++ b/fpdfsdk/src/fsdk_baseform.cpp |
@@ -1684,46 +1684,46 @@ void CPDFSDK_InterForm::UpdateField(CPDF_FormField* pFormField) { |
} |
} |
-void CPDFSDK_InterForm::OnKeyStrokeCommit(CPDF_FormField* pFormField, |
- CFX_WideString& csValue, |
- FX_BOOL& bRC) { |
+FX_BOOL CPDFSDK_InterForm::OnKeyStrokeCommit(CPDF_FormField* pFormField, |
+ const CFX_WideString& csValue) { |
CPDF_AAction aAction = pFormField->GetAdditionalAction(); |
- if (aAction && aAction.ActionExist(CPDF_AAction::KeyStroke)) { |
- CPDF_Action action = aAction.GetAction(CPDF_AAction::KeyStroke); |
- if (action) { |
- CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); |
- CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander(); |
- PDFSDK_FieldAction fa; |
- fa.bModifier = pEnv->FFI_IsCTRLKeyDown(0); |
- fa.bShift = pEnv->FFI_IsSHIFTKeyDown(0); |
- fa.sValue = csValue; |
- |
- pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::KeyStroke, |
- m_pDocument, pFormField, fa); |
- bRC = fa.bRC; |
- } |
- } |
-} |
+ if (!aAction || !aAction.ActionExist(CPDF_AAction::KeyStroke)) |
+ return TRUE; |
+ |
+ CPDF_Action action = aAction.GetAction(CPDF_AAction::KeyStroke); |
+ if (!action) |
+ return TRUE; |
-void CPDFSDK_InterForm::OnValidate(CPDF_FormField* pFormField, |
- CFX_WideString& csValue, |
- FX_BOOL& bRC) { |
+ CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); |
+ CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander(); |
+ PDFSDK_FieldAction fa; |
+ fa.bModifier = pEnv->FFI_IsCTRLKeyDown(0); |
+ fa.bShift = pEnv->FFI_IsSHIFTKeyDown(0); |
+ fa.sValue = csValue; |
+ pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::KeyStroke, |
+ m_pDocument, pFormField, fa); |
+ return fa.bRC; |
+} |
+ |
+FX_BOOL CPDFSDK_InterForm::OnValidate(CPDF_FormField* pFormField, |
+ const CFX_WideString& csValue) { |
CPDF_AAction aAction = pFormField->GetAdditionalAction(); |
- if (aAction && aAction.ActionExist(CPDF_AAction::Validate)) { |
- CPDF_Action action = aAction.GetAction(CPDF_AAction::Validate); |
- if (action) { |
- CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); |
- CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander(); |
- PDFSDK_FieldAction fa; |
- fa.bModifier = pEnv->FFI_IsCTRLKeyDown(0); |
- fa.bShift = pEnv->FFI_IsSHIFTKeyDown(0); |
- fa.sValue = csValue; |
- |
- pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::Validate, |
- m_pDocument, pFormField, fa); |
- bRC = fa.bRC; |
- } |
- } |
+ if (!aAction || !aAction.ActionExist(CPDF_AAction::Validate)) |
+ return TRUE; |
+ |
+ CPDF_Action action = aAction.GetAction(CPDF_AAction::Validate); |
+ if (!action) |
+ return TRUE; |
+ |
+ CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); |
+ CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander(); |
+ PDFSDK_FieldAction fa; |
+ fa.bModifier = pEnv->FFI_IsCTRLKeyDown(0); |
+ fa.bShift = pEnv->FFI_IsSHIFTKeyDown(0); |
+ fa.sValue = csValue; |
+ pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::Validate, |
+ m_pDocument, pFormField, fa); |
+ return fa.bRC; |
} |
FX_BOOL CPDFSDK_InterForm::DoAction_Hide(const CPDF_Action& action) { |
@@ -1949,64 +1949,52 @@ std::vector<CPDF_FormField*> CPDFSDK_InterForm::GetFieldFromObjects( |
return fields; |
} |
-int CPDFSDK_InterForm::BeforeValueChange(const CPDF_FormField* pField, |
- CFX_WideString& csValue) { |
- CPDF_FormField* pFormField = (CPDF_FormField*)pField; |
- int nType = pFormField->GetFieldType(); |
- if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD) { |
- FX_BOOL bRC = TRUE; |
- OnKeyStrokeCommit(pFormField, csValue, bRC); |
- if (bRC) { |
- OnValidate(pFormField, csValue, bRC); |
- return bRC ? 1 : -1; |
- } |
+int CPDFSDK_InterForm::BeforeValueChange(CPDF_FormField* pField, |
+ const CFX_WideString& csValue) { |
+ int nType = pField->GetFieldType(); |
+ if (nType != FIELDTYPE_COMBOBOX && nType != FIELDTYPE_TEXTFIELD) |
+ return 0; |
+ |
+ if (!OnKeyStrokeCommit(pField, csValue)) |
return -1; |
- } |
- return 0; |
+ |
+ if (!OnValidate(pField, csValue)) |
+ return -1; |
+ |
+ return 1; |
} |
-int CPDFSDK_InterForm::AfterValueChange(const CPDF_FormField* pField) { |
- CPDF_FormField* pFormField = (CPDF_FormField*)pField; |
- int nType = pFormField->GetFieldType(); |
+void CPDFSDK_InterForm::AfterValueChange(CPDF_FormField* pField) { |
+ int nType = pField->GetFieldType(); |
if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD) { |
- OnCalculate(pFormField); |
+ OnCalculate(pField); |
FX_BOOL bFormated = FALSE; |
- CFX_WideString sValue = OnFormat(pFormField, bFormated); |
- if (bFormated) |
- ResetFieldAppearance(pFormField, sValue.c_str(), TRUE); |
- else |
- ResetFieldAppearance(pFormField, NULL, TRUE); |
- UpdateField(pFormField); |
+ CFX_WideString sValue = OnFormat(pField, bFormated); |
+ ResetFieldAppearance(pField, bFormated ? sValue.c_str() : nullptr, TRUE); |
+ UpdateField(pField); |
} |
- return 0; |
} |
-int CPDFSDK_InterForm::BeforeSelectionChange(const CPDF_FormField* pField, |
- CFX_WideString& csValue) { |
- CPDF_FormField* pFormField = (CPDF_FormField*)pField; |
- if (pFormField->GetFieldType() != FIELDTYPE_LISTBOX) |
+int CPDFSDK_InterForm::BeforeSelectionChange(CPDF_FormField* pField, |
+ const CFX_WideString& csValue) { |
+ if (pField->GetFieldType() != FIELDTYPE_LISTBOX) |
return 0; |
- FX_BOOL bRC = TRUE; |
- OnKeyStrokeCommit(pFormField, csValue, bRC); |
- if (!bRC) |
+ if (!OnKeyStrokeCommit(pField, csValue)) |
return -1; |
- OnValidate(pFormField, csValue, bRC); |
- if (!bRC) |
+ if (!OnValidate(pField, csValue)) |
return -1; |
return 1; |
} |
-int CPDFSDK_InterForm::AfterSelectionChange(const CPDF_FormField* pField) { |
- CPDF_FormField* pFormField = (CPDF_FormField*)pField; |
- if (pFormField->GetFieldType() == FIELDTYPE_LISTBOX) { |
- OnCalculate(pFormField); |
- ResetFieldAppearance(pFormField, NULL, TRUE); |
- UpdateField(pFormField); |
+void CPDFSDK_InterForm::AfterSelectionChange(CPDF_FormField* pField) { |
+ if (pField->GetFieldType() == FIELDTYPE_LISTBOX) { |
+ OnCalculate(pField); |
+ ResetFieldAppearance(pField, NULL, TRUE); |
+ UpdateField(pField); |
} |
- return 0; |
} |
void CPDFSDK_InterForm::AfterCheckedStatusChange(CPDF_FormField* pField) { |
@@ -2017,22 +2005,20 @@ void CPDFSDK_InterForm::AfterCheckedStatusChange(CPDF_FormField* pField) { |
} |
} |
-int CPDFSDK_InterForm::BeforeFormReset(const CPDF_InterForm* pForm) { |
+int CPDFSDK_InterForm::BeforeFormReset(CPDF_InterForm* pForm) { |
return 0; |
} |
-int CPDFSDK_InterForm::AfterFormReset(const CPDF_InterForm* pForm) { |
+void CPDFSDK_InterForm::AfterFormReset(CPDF_InterForm* pForm) { |
OnCalculate(nullptr); |
- return 0; |
} |
-int CPDFSDK_InterForm::BeforeFormImportData(const CPDF_InterForm* pForm) { |
+int CPDFSDK_InterForm::BeforeFormImportData(CPDF_InterForm* pForm) { |
return 0; |
} |
-int CPDFSDK_InterForm::AfterFormImportData(const CPDF_InterForm* pForm) { |
+void CPDFSDK_InterForm::AfterFormImportData(CPDF_InterForm* pForm) { |
OnCalculate(nullptr); |
- return 0; |
} |
FX_BOOL CPDFSDK_InterForm::IsNeedHighLight(int nFieldType) { |