Make XFA_DOCVIEW_LAYOUTSTATUS a nested enum class.
Fix comparisons along the way, and then remove unused values.
Change-Id: Ic8ff600007e3d7e5402486c9e253cc3d060f382f
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/84250
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/xfa/fxfa/cxfa_ffdocview.cpp b/xfa/fxfa/cxfa_ffdocview.cpp
index 65b1173..3b1ec7c 100644
--- a/xfa/fxfa/cxfa_ffdocview.cpp
+++ b/xfa/fxfa/cxfa_ffdocview.cpp
@@ -83,7 +83,7 @@
}
int32_t CXFA_FFDocView::StartLayout() {
- m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_Start;
+ m_iStatus = LayoutStatus::kStart;
m_pDoc->GetXFADoc()->DoProtoMerge();
m_pDoc->GetXFADoc()->DoDataMerge();
@@ -101,7 +101,7 @@
InitValidate(pRootItem);
ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, true, true);
- m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_Start;
+ m_iStatus = LayoutStatus::kStart;
return iStatus;
}
@@ -110,7 +110,7 @@
if (iStatus != 100)
return iStatus;
- m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_Doing;
+ m_iStatus = LayoutStatus::kDoing;
return iStatus;
}
@@ -151,7 +151,7 @@
if (m_pFocusNode && !m_pFocusWidget)
SetFocusNode(m_pFocusNode);
- m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_End;
+ m_iStatus = LayoutStatus::kEnd;
}
void CXFA_FFDocView::ShowNullTestMsg() {
@@ -338,7 +338,7 @@
return;
m_pFocusNode = node;
- if (m_iStatus != XFA_DOCVIEW_LAYOUTSTATUS_End)
+ if (m_iStatus != LayoutStatus::kEnd)
return;
m_pDoc->SetFocusWidget(m_pFocusWidget);
@@ -689,7 +689,7 @@
}
void CXFA_FFDocView::SetChangeMark() {
- if (m_iStatus < XFA_DOCVIEW_LAYOUTSTATUS_End)
+ if (m_iStatus != LayoutStatus::kEnd)
return;
m_pDoc->SetChangeMark();
diff --git a/xfa/fxfa/cxfa_ffdocview.h b/xfa/fxfa/cxfa_ffdocview.h
index 6eb69cb..2be701d 100644
--- a/xfa/fxfa/cxfa_ffdocview.h
+++ b/xfa/fxfa/cxfa_ffdocview.h
@@ -28,25 +28,10 @@
extern const XFA_AttributeValue kXFAEventActivity[];
-enum XFA_DOCVIEW_LAYOUTSTATUS {
- XFA_DOCVIEW_LAYOUTSTATUS_None,
- XFA_DOCVIEW_LAYOUTSTATUS_Start,
- XFA_DOCVIEW_LAYOUTSTATUS_FormInitialize,
- XFA_DOCVIEW_LAYOUTSTATUS_FormInitCalculate,
- XFA_DOCVIEW_LAYOUTSTATUS_FormInitValidate,
- XFA_DOCVIEW_LAYOUTSTATUS_FormFormReady,
- XFA_DOCVIEW_LAYOUTSTATUS_Doing,
- XFA_DOCVIEW_LAYOUTSTATUS_PagesetInitialize,
- XFA_DOCVIEW_LAYOUTSTATUS_PagesetInitCalculate,
- XFA_DOCVIEW_LAYOUTSTATUS_PagesetInitValidate,
- XFA_DOCVIEW_LAYOUTSTATUS_PagesetFormReady,
- XFA_DOCVIEW_LAYOUTSTATUS_LayoutReady,
- XFA_DOCVIEW_LAYOUTSTATUS_DocReady,
- XFA_DOCVIEW_LAYOUTSTATUS_End
-};
-
class CXFA_FFDocView : public cppgc::GarbageCollected<CXFA_FFDocView> {
public:
+ enum class LayoutStatus : uint8_t { kNone, kStart, kDoing, kEnd };
+
CONSTRUCT_VIA_MAKE_GARBAGE_COLLECTED;
~CXFA_FFDocView();
@@ -56,7 +41,7 @@
int32_t StartLayout();
int32_t DoLayout();
void StopLayout();
- int32_t GetLayoutStatus() const { return m_iStatus; }
+ LayoutStatus GetLayoutStatus() const { return m_iStatus; }
void UpdateDocView();
void UpdateUIDisplay(CXFA_Node* pNode, CXFA_FFWidget* pExcept);
@@ -131,7 +116,7 @@
std::list<cppgc::Member<CXFA_BindItems>> m_BindItems;
std::list<cppgc::Member<CXFA_Node>> m_NewAddedNodes;
std::list<cppgc::Member<CXFA_Node>> m_IndexChangedSubforms;
- XFA_DOCVIEW_LAYOUTSTATUS m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_None;
+ LayoutStatus m_iStatus = LayoutStatus::kNone;
int32_t m_iLock = 0;
};
diff --git a/xfa/fxfa/cxfa_ffnotify.cpp b/xfa/fxfa/cxfa_ffnotify.cpp
index ce5dc49..5ed56f4 100644
--- a/xfa/fxfa/cxfa_ffnotify.cpp
+++ b/xfa/fxfa/cxfa_ffnotify.cpp
@@ -296,9 +296,10 @@
pDocView->ResetNode(pNode);
}
-int32_t CXFA_FFNotify::GetLayoutStatus() {
+CXFA_FFDocView::LayoutStatus CXFA_FFNotify::GetLayoutStatus() {
CXFA_FFDocView* pDocView = m_pDoc->GetDocView();
- return pDocView ? pDocView->GetLayoutStatus() : 0;
+ return pDocView ? pDocView->GetLayoutStatus()
+ : CXFA_FFDocView::LayoutStatus::kNone;
}
void CXFA_FFNotify::RunNodeInitialize(CXFA_Node* pNode) {
@@ -362,7 +363,7 @@
CXFA_FFDocView* pDocView = m_pDoc->GetDocView();
if (!pDocView)
return;
- if (pDocView->GetLayoutStatus() < XFA_DOCVIEW_LAYOUTSTATUS_End)
+ if (pDocView->GetLayoutStatus() != CXFA_FFDocView::LayoutStatus::kEnd)
return;
CXFA_FFWidget* pWidget = m_pDoc->GetDocView()->GetWidgetForNode(pSender);
@@ -450,7 +451,7 @@
bool bLayoutReady =
!(pDocView->m_bInLayoutStatus) &&
- (pDocView->GetLayoutStatus() == XFA_DOCVIEW_LAYOUTSTATUS_End);
+ (pDocView->GetLayoutStatus() == CXFA_FFDocView::LayoutStatus::kEnd);
if (bLayoutReady)
m_pDoc->SetChangeMark();
}
@@ -462,7 +463,7 @@
bool bLayoutReady =
!(pDocView->m_bInLayoutStatus) &&
- (pDocView->GetLayoutStatus() == XFA_DOCVIEW_LAYOUTSTATUS_End);
+ (pDocView->GetLayoutStatus() == CXFA_FFDocView::LayoutStatus::kEnd);
if (bLayoutReady)
m_pDoc->SetChangeMark();
}
@@ -491,7 +492,7 @@
pWidget->SetPageView(pNewPageView);
m_pDoc->WidgetPostAdd(pWidget);
}
- if (pDocView->GetLayoutStatus() != XFA_DOCVIEW_LAYOUTSTATUS_End ||
+ if (pDocView->GetLayoutStatus() != CXFA_FFDocView::LayoutStatus::kEnd ||
!(dwStatus & XFA_WidgetStatus::kVisible)) {
return;
}
diff --git a/xfa/fxfa/cxfa_ffnotify.h b/xfa/fxfa/cxfa_ffnotify.h
index e92016a..bf5cf31 100644
--- a/xfa/fxfa/cxfa_ffnotify.h
+++ b/xfa/fxfa/cxfa_ffnotify.h
@@ -15,6 +15,7 @@
#include "xfa/fxfa/cxfa_eventparam.h"
#include "xfa/fxfa/cxfa_ffapp.h"
#include "xfa/fxfa/cxfa_ffdoc.h"
+#include "xfa/fxfa/cxfa_ffdocview.h"
#include "xfa/fxfa/parser/cxfa_document.h"
class CXFA_FFWidgetHandler;
@@ -73,7 +74,7 @@
CXFA_FFWidgetHandler* GetWidgetHandler();
void OpenDropDownList(CXFA_Node* pNode);
void ResetData(CXFA_Node* pNode);
- int32_t GetLayoutStatus();
+ CXFA_FFDocView::LayoutStatus GetLayoutStatus();
void RunNodeInitialize(CXFA_Node* pNode);
void RunSubformIndexChange(CXFA_Node* pSubformNode);
CXFA_Node* GetFocusWidgetNode();
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 6a77c33..fa3048c 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -2659,8 +2659,10 @@
if (!validate)
return XFA_EventError::kNotExist;
- bool bInitDoc = validate->NeedsInitApp();
- bool bStatus = pDocView->GetLayoutStatus() < XFA_DOCVIEW_LAYOUTSTATUS_End;
+ const bool bInitDoc = validate->NeedsInitApp();
+ const bool bStatus =
+ pDocView->GetLayoutStatus() != CXFA_FFDocView::LayoutStatus::kEnd;
+
XFA_EventError iFormat = XFA_EventError::kNotExist;
XFA_EventError iRet = XFA_EventError::kNotExist;
CXFA_Script* script = validate->GetScriptIfExists();