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();