Make LineCap and LineJoin enum classes

-- validate public arguments against public constants.

Change-Id: Ibfc16a08f01815b6e1efe73f669d1714436926e5
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/84410
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fpdfsdk/fpdf_editpage.cpp b/fpdfsdk/fpdf_editpage.cpp
index 49671c4..32bddf1 100644
--- a/fpdfsdk/fpdf_editpage.cpp
+++ b/fpdfsdk/fpdf_editpage.cpp
@@ -849,7 +849,7 @@
 FPDF_EXPORT int FPDF_CALLCONV
 FPDFPageObj_GetLineJoin(FPDF_PAGEOBJECT page_object) {
   auto* pPageObj = CPDFPageObjectFromFPDFPageObject(page_object);
-  return pPageObj ? pPageObj->m_GraphState.GetLineJoin() : -1;
+  return pPageObj ? static_cast<int>(pPageObj->m_GraphState.GetLineJoin()) : -1;
 }
 
 FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
@@ -858,11 +858,7 @@
   if (!pPageObj)
     return false;
 
-  constexpr int kLineJoinMiter =
-      static_cast<int>(CFX_GraphStateData::LineJoin::LineJoinMiter);
-  constexpr int kLineJoinBevel =
-      static_cast<int>(CFX_GraphStateData::LineJoin::LineJoinBevel);
-  if (line_join < kLineJoinMiter || line_join > kLineJoinBevel)
+  if (line_join < FPDF_LINEJOIN_MITER || line_join > FPDF_LINEJOIN_BEVEL)
     return false;
 
   pPageObj->m_GraphState.SetLineJoin(
@@ -874,7 +870,7 @@
 FPDF_EXPORT int FPDF_CALLCONV
 FPDFPageObj_GetLineCap(FPDF_PAGEOBJECT page_object) {
   auto* pPageObj = CPDFPageObjectFromFPDFPageObject(page_object);
-  return pPageObj ? pPageObj->m_GraphState.GetLineCap() : -1;
+  return pPageObj ? static_cast<int>(pPageObj->m_GraphState.GetLineCap()) : -1;
 }
 
 FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
@@ -883,13 +879,10 @@
   if (!pPageObj)
     return false;
 
-  constexpr int kLineCapButt =
-      static_cast<int>(CFX_GraphStateData::LineCap::LineCapButt);
-  constexpr int kLineCapSquare =
-      static_cast<int>(CFX_GraphStateData::LineCap::LineCapSquare);
-  if (line_cap < kLineCapButt || line_cap > kLineCapSquare)
+  if (line_cap < FPDF_LINECAP_BUTT ||
+      line_cap > FPDF_LINECAP_PROJECTING_SQUARE) {
     return false;
-
+  }
   pPageObj->m_GraphState.SetLineCap(
       static_cast<CFX_GraphStateData::LineCap>(line_cap));
   pPageObj->SetDirty(true);