Convert Before{Selection|Value}Change to return a bool

Both of these IPDF_FormNotify methods return {-1, 0, 1} but all
callsites only care about < 0 and >= 0. Convert to return a bool that
treats the 0 and 1 case as the same.

This also makse sense in terms of the API because false means validation
failure. The case where 0 was used was a place holder for we didn't try
for this field type, which also implicitly means validation passed.

Change-Id: I0950c678191b83caffd755d4a87b2f0efee71c89
Reviewed-on: https://pdfium-review.googlesource.com/28192
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
diff --git a/core/fpdfdoc/cpdf_formfield.cpp b/core/fpdfdoc/cpdf_formfield.cpp
index 686054f..679acd1 100644
--- a/core/fpdfdoc/cpdf_formfield.cpp
+++ b/core/fpdfdoc/cpdf_formfield.cpp
@@ -928,7 +928,7 @@
 bool CPDF_FormField::NotifyBeforeSelectionChange(const WideString& value) {
   if (!m_pForm->GetFormNotify())
     return true;
-  return m_pForm->GetFormNotify()->BeforeSelectionChange(this, value) >= 0;
+  return m_pForm->GetFormNotify()->BeforeSelectionChange(this, value);
 }
 
 void CPDF_FormField::NotifyAfterSelectionChange() {
@@ -940,7 +940,7 @@
 bool CPDF_FormField::NotifyBeforeValueChange(const WideString& value) {
   if (!m_pForm->GetFormNotify())
     return true;
-  return m_pForm->GetFormNotify()->BeforeValueChange(this, value) >= 0;
+  return m_pForm->GetFormNotify()->BeforeValueChange(this, value);
 }
 
 void CPDF_FormField::NotifyAfterValueChange() {
diff --git a/core/fpdfdoc/cpdf_interform.cpp b/core/fpdfdoc/cpdf_interform.cpp
index c8440ea..2fbc3aa 100644
--- a/core/fpdfdoc/cpdf_interform.cpp
+++ b/core/fpdfdoc/cpdf_interform.cpp
@@ -1203,11 +1203,11 @@
   FormFieldType fieldType = pField->GetFieldType();
   if (bNotify && m_pFormNotify) {
     if (fieldType == FormFieldType::kListBox) {
-      if (m_pFormNotify->BeforeSelectionChange(pField, csWValue) < 0)
+      if (!m_pFormNotify->BeforeSelectionChange(pField, csWValue))
         return;
     } else if (fieldType == FormFieldType::kComboBox ||
                fieldType == FormFieldType::kTextField) {
-      if (m_pFormNotify->BeforeValueChange(pField, csWValue) < 0)
+      if (!m_pFormNotify->BeforeValueChange(pField, csWValue))
         return;
     }
   }
diff --git a/core/fpdfdoc/ipdf_formnotify.h b/core/fpdfdoc/ipdf_formnotify.h
index 10a97a0..053ca12 100644
--- a/core/fpdfdoc/ipdf_formnotify.h
+++ b/core/fpdfdoc/ipdf_formnotify.h
@@ -16,12 +16,12 @@
  public:
   virtual ~IPDF_FormNotify() {}
 
-  virtual int BeforeValueChange(CPDF_FormField* pField,
-                                const WideString& csValue) = 0;
+  virtual bool BeforeValueChange(CPDF_FormField* pField,
+                                 const WideString& csValue) = 0;
   virtual void AfterValueChange(CPDF_FormField* pField) = 0;
 
-  virtual int BeforeSelectionChange(CPDF_FormField* pField,
-                                    const WideString& csValue) = 0;
+  virtual bool BeforeSelectionChange(CPDF_FormField* pField,
+                                     const WideString& csValue) = 0;
   virtual void AfterSelectionChange(CPDF_FormField* pField) = 0;
 
   virtual void AfterCheckedStatusChange(CPDF_FormField* pField) = 0;
diff --git a/fpdfsdk/cpdfsdk_interform.cpp b/fpdfsdk/cpdfsdk_interform.cpp
index 94c9b23..57f3a6e 100644
--- a/fpdfsdk/cpdfsdk_interform.cpp
+++ b/fpdfsdk/cpdfsdk_interform.cpp
@@ -622,16 +622,14 @@
   return fields;
 }
 
-int CPDFSDK_InterForm::BeforeValueChange(CPDF_FormField* pField,
-                                         const WideString& csValue) {
+bool CPDFSDK_InterForm::BeforeValueChange(CPDF_FormField* pField,
+                                          const WideString& csValue) {
   FormFieldType fieldType = pField->GetFieldType();
   if (!IsFormFieldTypeComboOrText(fieldType))
-    return 0;
+    return true;
   if (!OnKeyStrokeCommit(pField, csValue))
-    return -1;
-  if (!OnValidate(pField, csValue))
-    return -1;
-  return 1;
+    return false;
+  return OnValidate(pField, csValue);
 }
 
 void CPDFSDK_InterForm::AfterValueChange(CPDF_FormField* pField) {
@@ -650,15 +648,13 @@
   UpdateField(pField);
 }
 
-int CPDFSDK_InterForm::BeforeSelectionChange(CPDF_FormField* pField,
-                                             const WideString& csValue) {
+bool CPDFSDK_InterForm::BeforeSelectionChange(CPDF_FormField* pField,
+                                              const WideString& csValue) {
   if (pField->GetFieldType() != FormFieldType::kListBox)
-    return 0;
+    return true;
   if (!OnKeyStrokeCommit(pField, csValue))
-    return -1;
-  if (!OnValidate(pField, csValue))
-    return -1;
-  return 1;
+    return false;
+  return OnValidate(pField, csValue);
 }
 
 void CPDFSDK_InterForm::AfterSelectionChange(CPDF_FormField* pField) {
diff --git a/fpdfsdk/cpdfsdk_interform.h b/fpdfsdk/cpdfsdk_interform.h
index 893b601..58dc2d0 100644
--- a/fpdfsdk/cpdfsdk_interform.h
+++ b/fpdfsdk/cpdfsdk_interform.h
@@ -102,11 +102,11 @@
 
  private:
   // IPDF_FormNotify:
-  int BeforeValueChange(CPDF_FormField* pField,
-                        const WideString& csValue) override;
+  bool BeforeValueChange(CPDF_FormField* pField,
+                         const WideString& csValue) override;
   void AfterValueChange(CPDF_FormField* pField) override;
-  int BeforeSelectionChange(CPDF_FormField* pField,
-                            const WideString& csValue) override;
+  bool BeforeSelectionChange(CPDF_FormField* pField,
+                             const WideString& csValue) override;
   void AfterSelectionChange(CPDF_FormField* pField) override;
   void AfterCheckedStatusChange(CPDF_FormField* pField) override;
   void AfterFormReset(CPDF_InterForm* pForm) override;