Change CPDF_Action::ActionType to an enum class.

Then shorten ActionType to Type, as "CPDF_Action::ActionType" contains
"Action" twice. Rename the enum values to kFoo as well.

Bug: pdfium:547
Change-Id: I05b0f7cc73d1a3aa3a5d678042a4c4d9728e2f67
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/79295
Reviewed-by: Hui Yingst <nigi@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfdoc/cpdf_action.cpp b/core/fpdfdoc/cpdf_action.cpp
index deb9af8..9e21ad5 100644
--- a/core/fpdfdoc/cpdf_action.cpp
+++ b/core/fpdfdoc/cpdf_action.cpp
@@ -29,41 +29,41 @@
 
 CPDF_Action::~CPDF_Action() = default;
 
-CPDF_Action::ActionType CPDF_Action::GetType() const {
+CPDF_Action::Type CPDF_Action::GetType() const {
   if (!m_pDict)
-    return Unknown;
+    return Type::kUnknown;
 
   // Validate |m_pDict|. Type is optional, but must be valid if present.
   const CPDF_Object* pType = m_pDict->GetObjectFor("Type");
   if (pType) {
     const CPDF_Name* pName = pType->AsName();
     if (!pName || pName->GetString() != "Action")
-      return Unknown;
+      return Type::kUnknown;
   }
 
   ByteString csType = m_pDict->GetStringFor("S");
   if (csType.IsEmpty())
-    return Unknown;
+    return Type::kUnknown;
 
   for (int i = 0; g_sATypes[i]; ++i) {
     if (csType == g_sATypes[i])
-      return static_cast<ActionType>(i);
+      return static_cast<Type>(i);
   }
-  return Unknown;
+  return Type::kUnknown;
 }
 
 CPDF_Dest CPDF_Action::GetDest(CPDF_Document* pDoc) const {
-  ActionType type = GetType();
-  if (type != GoTo && type != GoToR && type != GoToE) {
+  Type type = GetType();
+  if (type != Type::kGoTo && type != Type::kGoToR && type != Type::kGoToE) {
     return CPDF_Dest(nullptr);
   }
   return CPDF_Dest::Create(pDoc, m_pDict->GetDirectObjectFor("D"));
 }
 
 WideString CPDF_Action::GetFilePath() const {
-  ActionType type = GetType();
-  if (type != GoToR && type != GoToE && type != Launch && type != SubmitForm &&
-      type != ImportData) {
+  Type type = GetType();
+  if (type != Type::kGoToR && type != Type::kGoToE && type != Type::kLaunch &&
+      type != Type::kSubmitForm && type != Type::kImportData) {
     return WideString();
   }
 
@@ -71,7 +71,7 @@
   if (pFile)
     return CPDF_FileSpec(pFile).GetFileName();
 
-  if (type != Launch)
+  if (type != Type::kLaunch)
     return WideString();
 
   const CPDF_Dictionary* pWinDict = m_pDict->GetDictFor("Win");
@@ -83,8 +83,7 @@
 }
 
 ByteString CPDF_Action::GetURI(const CPDF_Document* pDoc) const {
-  ActionType type = GetType();
-  if (type != URI)
+  if (GetType() != Type::kURI)
     return ByteString();
 
   ByteString csURI = m_pDict->GetStringFor("URI");
diff --git a/core/fpdfdoc/cpdf_action.h b/core/fpdfdoc/cpdf_action.h
index c7cc2d8..9646d59 100644
--- a/core/fpdfdoc/cpdf_action.h
+++ b/core/fpdfdoc/cpdf_action.h
@@ -20,26 +20,26 @@
 
 class CPDF_Action {
  public:
-  enum ActionType {
-    Unknown = 0,
-    GoTo,
-    GoToR,
-    GoToE,
-    Launch,
-    Thread,
-    URI,
-    Sound,
-    Movie,
-    Hide,
-    Named,
-    SubmitForm,
-    ResetForm,
-    ImportData,
-    JavaScript,
-    SetOCGState,
-    Rendition,
-    Trans,
-    GoTo3DView
+  enum class Type {
+    kUnknown = 0,
+    kGoTo,
+    kGoToR,
+    kGoToE,
+    kLaunch,
+    kThread,
+    kURI,
+    kSound,
+    kMovie,
+    kHide,
+    kNamed,
+    kSubmitForm,
+    kResetForm,
+    kImportData,
+    kJavaScript,
+    kSetOCGState,
+    kRendition,
+    kTrans,
+    kGoTo3DView
   };
 
   explicit CPDF_Action(const CPDF_Dictionary* pDict);
@@ -48,7 +48,7 @@
 
   const CPDF_Dictionary* GetDict() const { return m_pDict.Get(); }
 
-  ActionType GetType() const;
+  Type GetType() const;
   CPDF_Dest GetDest(CPDF_Document* pDoc) const;
   WideString GetFilePath() const;
   ByteString GetURI(const CPDF_Document* pDoc) const;
diff --git a/fpdfsdk/cpdfsdk_actionhandler.cpp b/fpdfsdk/cpdfsdk_actionhandler.cpp
index 0477b03..1bef33f 100644
--- a/fpdfsdk/cpdfsdk_actionhandler.cpp
+++ b/fpdfsdk/cpdfsdk_actionhandler.cpp
@@ -31,7 +31,7 @@
     const CPDF_Action& JsAction,
     WideString csJSName,
     CPDFSDK_FormFillEnvironment* pFormFillEnv) {
-  if (JsAction.GetType() == CPDF_Action::JavaScript) {
+  if (JsAction.GetType() == CPDF_Action::Type::kJavaScript) {
     WideString swJS = JsAction.GetJavaScript();
     if (!swJS.IsEmpty()) {
       RunDocumentOpenJavaScript(pFormFillEnv, csJSName, swJS);
@@ -50,7 +50,7 @@
     CPDFSDK_FieldAction* data) {
   DCHECK(pFormFillEnv);
   if (pFormFillEnv->IsJSPlatformPresent() &&
-      JsAction.GetType() == CPDF_Action::JavaScript) {
+      JsAction.GetType() == CPDF_Action::Type::kJavaScript) {
     WideString swJS = JsAction.GetJavaScript();
     if (!swJS.IsEmpty()) {
       RunFieldJavaScript(pFormFillEnv, pFormField, type, data, swJS);
@@ -71,10 +71,10 @@
     return false;
 
   switch (action.GetType()) {
-    case CPDF_Action::GoTo:
+    case CPDF_Action::Type::kGoTo:
       DoAction_GoTo(form_fill_env, action);
       return true;
-    case CPDF_Action::URI:
+    case CPDF_Action::Type::kURI:
       DoAction_URI(form_fill_env, action, modifiers);
       return true;
     default:
@@ -142,7 +142,7 @@
   visited->insert(pDict);
 
   DCHECK(pFormFillEnv);
-  if (action.GetType() == CPDF_Action::JavaScript) {
+  if (action.GetType() == CPDF_Action::Type::kJavaScript) {
     if (pFormFillEnv->IsJSPlatformPresent()) {
       WideString swJS = action.GetJavaScript();
       if (!swJS.IsEmpty())
@@ -174,7 +174,7 @@
   visited->insert(pDict);
 
   DCHECK(pFormFillEnv);
-  if (action.GetType() == CPDF_Action::JavaScript) {
+  if (action.GetType() == CPDF_Action::Type::kJavaScript) {
     if (pFormFillEnv->IsJSPlatformPresent()) {
       WideString swJS = action.GetJavaScript();
       if (!swJS.IsEmpty())
@@ -219,7 +219,7 @@
   visited->insert(pDict);
 
   DCHECK(pFormFillEnv);
-  if (action.GetType() == CPDF_Action::JavaScript) {
+  if (action.GetType() == CPDF_Action::Type::kJavaScript) {
     if (pFormFillEnv->IsJSPlatformPresent()) {
       WideString swJS = action.GetJavaScript();
       if (!swJS.IsEmpty()) {
@@ -250,40 +250,40 @@
   DCHECK(pFormFillEnv);
 
   switch (action.GetType()) {
-    case CPDF_Action::GoTo:
+    case CPDF_Action::Type::kGoTo:
       DoAction_GoTo(pFormFillEnv, action);
       break;
-    case CPDF_Action::URI:
+    case CPDF_Action::Type::kURI:
       if (CPDF_AAction::IsUserInput(type))
         DoAction_URI(pFormFillEnv, action, modifiers);
       break;
-    case CPDF_Action::Hide:
+    case CPDF_Action::Type::kHide:
       DoAction_Hide(action, pFormFillEnv);
       break;
-    case CPDF_Action::Named:
+    case CPDF_Action::Type::kNamed:
       DoAction_Named(pFormFillEnv, action);
       break;
-    case CPDF_Action::SubmitForm:
+    case CPDF_Action::Type::kSubmitForm:
       if (CPDF_AAction::IsUserInput(type))
         DoAction_SubmitForm(action, pFormFillEnv);
       break;
-    case CPDF_Action::ResetForm:
+    case CPDF_Action::Type::kResetForm:
       DoAction_ResetForm(action, pFormFillEnv);
       break;
-    case CPDF_Action::JavaScript:
+    case CPDF_Action::Type::kJavaScript:
       NOTREACHED();
       break;
-    case CPDF_Action::SetOCGState:
-    case CPDF_Action::Thread:
-    case CPDF_Action::Sound:
-    case CPDF_Action::Movie:
-    case CPDF_Action::Rendition:
-    case CPDF_Action::Trans:
-    case CPDF_Action::GoTo3DView:
-    case CPDF_Action::GoToR:
-    case CPDF_Action::GoToE:
-    case CPDF_Action::Launch:
-    case CPDF_Action::ImportData:
+    case CPDF_Action::Type::kSetOCGState:
+    case CPDF_Action::Type::kThread:
+    case CPDF_Action::Type::kSound:
+    case CPDF_Action::Type::kMovie:
+    case CPDF_Action::Type::kRendition:
+    case CPDF_Action::Type::kTrans:
+    case CPDF_Action::Type::kGoTo3DView:
+    case CPDF_Action::Type::kGoToR:
+    case CPDF_Action::Type::kGoToE:
+    case CPDF_Action::Type::kLaunch:
+    case CPDF_Action::Type::kImportData:
       // Unimplemented
       break;
     default:
diff --git a/fpdfsdk/cpdfsdk_widget.cpp b/fpdfsdk/cpdfsdk_widget.cpp
index e841971..c4269fd 100644
--- a/fpdfsdk/cpdfsdk_widget.cpp
+++ b/fpdfsdk/cpdfsdk_widget.cpp
@@ -827,7 +827,7 @@
 #endif  // PDF_ENABLE_XFA
 
   CPDF_Action action = GetAAction(type);
-  if (action.GetType() != CPDF_Action::Unknown) {
+  if (action.GetType() != CPDF_Action::Type::kUnknown) {
     pFormFillEnv->GetActionHandler()->DoAction_Field(action, type, pFormFillEnv,
                                                      GetFormField(), data);
   }
diff --git a/fpdfsdk/fpdf_doc.cpp b/fpdfsdk/fpdf_doc.cpp
index 551918f..78e0f6d 100644
--- a/fpdfsdk/fpdf_doc.cpp
+++ b/fpdfsdk/fpdf_doc.cpp
@@ -161,17 +161,16 @@
     return PDFACTION_UNSUPPORTED;
 
   CPDF_Action cAction(CPDFDictionaryFromFPDFAction(action));
-  CPDF_Action::ActionType type = cAction.GetType();
-  switch (type) {
-    case CPDF_Action::GoTo:
+  switch (cAction.GetType()) {
+    case CPDF_Action::Type::kGoTo:
       return PDFACTION_GOTO;
-    case CPDF_Action::GoToR:
+    case CPDF_Action::Type::kGoToR:
       return PDFACTION_REMOTEGOTO;
-    case CPDF_Action::GoToE:
+    case CPDF_Action::Type::kGoToE:
       return PDFACTION_EMBEDDEDGOTO;
-    case CPDF_Action::URI:
+    case CPDF_Action::Type::kURI:
       return PDFACTION_URI;
-    case CPDF_Action::Launch:
+    case CPDF_Action::Type::kLaunch:
       return PDFACTION_LAUNCH;
     default:
       return PDFACTION_UNSUPPORTED;
diff --git a/fpdfsdk/fpdf_javascript.cpp b/fpdfsdk/fpdf_javascript.cpp
index 0aaae81..44f4d59 100644
--- a/fpdfsdk/fpdf_javascript.cpp
+++ b/fpdfsdk/fpdf_javascript.cpp
@@ -45,7 +45,7 @@
 
   // Validate |obj|. Type is optional, but must be valid if present.
   CPDF_Action action(obj);
-  if (action.GetType() != CPDF_Action::JavaScript)
+  if (action.GetType() != CPDF_Action::Type::kJavaScript)
     return nullptr;
 
   Optional<WideString> script = action.MaybeGetJavaScript();