Change enum CPDF_IconFit::ScaleMethod to follow the style guide.

Along the way, convert it to an enum class and make improvements in
many of the places that interact with it.

Bug: pdfium:547
Change-Id: I3fda50af91a7047c476da2ab5553146c466c2bdd
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/70741
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
diff --git a/core/fpdfdoc/cpdf_iconfit.cpp b/core/fpdfdoc/cpdf_iconfit.cpp
index 55702a3..36e19da 100644
--- a/core/fpdfdoc/cpdf_iconfit.cpp
+++ b/core/fpdfdoc/cpdf_iconfit.cpp
@@ -24,16 +24,16 @@
 
 CPDF_IconFit::ScaleMethod CPDF_IconFit::GetScaleMethod() const {
   if (!m_pDict)
-    return Always;
+    return ScaleMethod::kAlways;
 
   ByteString csSW = m_pDict->GetStringFor("SW", "A");
   if (csSW == "B")
-    return Bigger;
+    return ScaleMethod::kBigger;
   if (csSW == "S")
-    return Smaller;
+    return ScaleMethod::kSmaller;
   if (csSW == "N")
-    return Never;
-  return Always;
+    return ScaleMethod::kNever;
+  return ScaleMethod::kAlways;
 }
 
 bool CPDF_IconFit::IsProportionalScale() const {
diff --git a/core/fpdfdoc/cpdf_iconfit.h b/core/fpdfdoc/cpdf_iconfit.h
index 86a4918..8840980 100644
--- a/core/fpdfdoc/cpdf_iconfit.h
+++ b/core/fpdfdoc/cpdf_iconfit.h
@@ -15,7 +15,7 @@
 
 class CPDF_IconFit {
  public:
-  enum ScaleMethod { Always = 0, Bigger, Smaller, Never };
+  enum class ScaleMethod { kAlways = 0, kBigger, kSmaller, kNever };
 
   explicit CPDF_IconFit(const CPDF_Dictionary* pDict);
   CPDF_IconFit(const CPDF_IconFit& that);
diff --git a/fpdfsdk/pwl/cpwl_icon.cpp b/fpdfsdk/pwl/cpwl_icon.cpp
index 67df09e..bade072 100644
--- a/fpdfsdk/pwl/cpwl_icon.cpp
+++ b/fpdfsdk/pwl/cpwl_icon.cpp
@@ -53,35 +53,35 @@
   CFX_SizeF image_size = GetImageSize();
   float fImageWidth = image_size.width;
   float fImageHeight = image_size.height;
-  int32_t nScaleMethod = m_pIconFit ? m_pIconFit->GetScaleMethod() : 0;
+  CPDF_IconFit::ScaleMethod scale_method =
+      m_pIconFit ? m_pIconFit->GetScaleMethod()
+                 : CPDF_IconFit::ScaleMethod::kAlways;
 
-  switch (nScaleMethod) {
-    default:
-    case 0:
+  switch (scale_method) {
+    case CPDF_IconFit::ScaleMethod::kAlways:
       fHScale = fPlateWidth / std::max(fImageWidth, 1.0f);
       fVScale = fPlateHeight / std::max(fImageHeight, 1.0f);
       break;
-    case 1:
+    case CPDF_IconFit::ScaleMethod::kBigger:
       if (fPlateWidth < fImageWidth)
         fHScale = fPlateWidth / std::max(fImageWidth, 1.0f);
       if (fPlateHeight < fImageHeight)
         fVScale = fPlateHeight / std::max(fImageHeight, 1.0f);
       break;
-    case 2:
+    case CPDF_IconFit::ScaleMethod::kSmaller:
       if (fPlateWidth > fImageWidth)
         fHScale = fPlateWidth / std::max(fImageWidth, 1.0f);
       if (fPlateHeight > fImageHeight)
         fVScale = fPlateHeight / std::max(fImageHeight, 1.0f);
       break;
-    case 3:
+    case CPDF_IconFit::ScaleMethod::kNever:
       break;
   }
 
-  float fMinScale;
   if (m_pIconFit && m_pIconFit->IsProportionalScale()) {
-    fMinScale = std::min(fHScale, fVScale);
-    fHScale = fMinScale;
-    fVScale = fMinScale;
+    float min_scale = std::min(fHScale, fVScale);
+    fHScale = min_scale;
+    fVScale = min_scale;
   }
   return {fHScale, fVScale};
 }
diff --git a/fxjs/cjs_field.cpp b/fxjs/cjs_field.cpp
index 8830dff..7483ee0 100644
--- a/fxjs/cjs_field.cpp
+++ b/fxjs/cjs_field.cpp
@@ -880,21 +880,19 @@
     return CJS_Result::Failure(JSMessage::kBadObjectError);
 
   CPDF_IconFit IconFit = pFormControl->GetIconFit();
-  int ScaleM = IconFit.GetScaleMethod();
-  switch (ScaleM) {
-    case CPDF_IconFit::Always:
+  CPDF_IconFit::ScaleMethod scale_method = IconFit.GetScaleMethod();
+  switch (scale_method) {
+    case CPDF_IconFit::ScaleMethod::kAlways:
+    case CPDF_IconFit::ScaleMethod::kBigger:
+    case CPDF_IconFit::ScaleMethod::kNever:
+    case CPDF_IconFit::ScaleMethod::kSmaller:
       return CJS_Result::Success(
-          pRuntime->NewNumber(static_cast<int32_t>(CPDF_IconFit::Always)));
-    case CPDF_IconFit::Bigger:
-      return CJS_Result::Success(
-          pRuntime->NewNumber(static_cast<int32_t>(CPDF_IconFit::Bigger)));
-    case CPDF_IconFit::Never:
-      return CJS_Result::Success(
-          pRuntime->NewNumber(static_cast<int32_t>(CPDF_IconFit::Never)));
-    case CPDF_IconFit::Smaller:
-      return CJS_Result::Success(
-          pRuntime->NewNumber(static_cast<int32_t>(CPDF_IconFit::Smaller)));
+          pRuntime->NewNumber(static_cast<int>(scale_method)));
   }
+
+  // Note this is deliberately not the default case for the switch statement
+  // above, so missing cases trigger compile time errors.
+  NOTREACHED();
   return CJS_Result::Success();
 }