Move XFA_ItemLayoutProcessorStages into CXFA_ItemLayoutProcessor.
Rename it to CXFA_ItemLayoutProcessor::Stage. Also rename the enum
values to kFoo.
Change-Id: I56686abd41db3e9ca39725055705277ae66f7cbe
Reviewed-on: https://pdfium-review.googlesource.com/c/50610
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/xfa/fxfa/layout/cxfa_itemlayoutprocessor.cpp b/xfa/fxfa/layout/cxfa_itemlayoutprocessor.cpp
index 27e8df2..7327010 100644
--- a/xfa/fxfa/layout/cxfa_itemlayoutprocessor.cpp
+++ b/xfa/fxfa/layout/cxfa_itemlayoutprocessor.cpp
@@ -390,7 +390,7 @@
return false;
}
-Optional<XFA_ItemLayoutProcessorStages> FindBreakNode(
+Optional<CXFA_ItemLayoutProcessor::Stage> FindBreakNode(
CXFA_Node* pContainerNode,
bool bBreakBefore,
CXFA_Node** pCurActionNode) {
@@ -405,14 +405,14 @@
break;
*pCurActionNode = pBreakNode;
- return XFA_ItemLayoutProcessorStages::BreakBefore;
+ return CXFA_ItemLayoutProcessor::Stage::kBreakBefore;
}
case XFA_Element::BreakAfter: {
if (bBreakBefore)
break;
*pCurActionNode = pBreakNode;
- return XFA_ItemLayoutProcessorStages::BreakAfter;
+ return CXFA_ItemLayoutProcessor::Stage::kBreakAfter;
}
case XFA_Element::Break:
if (pBreakNode->JSObject()->GetEnum(eAttributeType) ==
@@ -421,8 +421,8 @@
}
*pCurActionNode = pBreakNode;
- return bBreakBefore ? XFA_ItemLayoutProcessorStages::BreakBefore
- : XFA_ItemLayoutProcessorStages::BreakAfter;
+ return bBreakBefore ? CXFA_ItemLayoutProcessor::Stage::kBreakBefore
+ : CXFA_ItemLayoutProcessor::Stage::kBreakAfter;
default:
break;
}
@@ -801,7 +801,7 @@
pLayoutItem->m_pNextSibling = nullptr;
}
- if (m_nCurChildNodeStage != XFA_ItemLayoutProcessorStages::Done ||
+ if (m_nCurChildNodeStage != Stage::kDone ||
!ToContentLayoutItem(m_pOldLayoutItem)) {
return pLayoutItem;
}
@@ -829,20 +829,20 @@
m_nCurChildNodeStage, bUsePageBreak, GetFormNode(), &m_pCurChildNode);
}
-XFA_ItemLayoutProcessorStages CXFA_ItemLayoutProcessor::GotoNextContainerNode(
- XFA_ItemLayoutProcessorStages nCurStage,
+CXFA_ItemLayoutProcessor::Stage CXFA_ItemLayoutProcessor::GotoNextContainerNode(
+ Stage nCurStage,
bool bUsePageBreak,
CXFA_Node* pParentContainer,
CXFA_Node** pCurActionNode) {
CXFA_Node* pChildContainer = nullptr;
switch (nCurStage) {
- case XFA_ItemLayoutProcessorStages::BreakBefore:
- case XFA_ItemLayoutProcessorStages::BreakAfter: {
+ case Stage::kBreakBefore:
+ case Stage::kBreakAfter: {
pChildContainer = (*pCurActionNode)->GetParent();
break;
}
- case XFA_ItemLayoutProcessorStages::Keep:
- case XFA_ItemLayoutProcessorStages::Container:
+ case Stage::kKeep:
+ case Stage::kContainer:
pChildContainer = *pCurActionNode;
break;
default:
@@ -850,19 +850,19 @@
break;
}
- Optional<XFA_ItemLayoutProcessorStages> ret;
+ Optional<Stage> ret;
switch (nCurStage) {
- case XFA_ItemLayoutProcessorStages::Keep:
+ case Stage::kKeep:
ret = HandleKeep(pChildContainer->GetFirstChild(), pCurActionNode);
if (ret.has_value())
return ret.value();
goto CheckNextChildContainer;
- case XFA_ItemLayoutProcessorStages::None:
+ case Stage::kNone:
*pCurActionNode = nullptr;
FALLTHROUGH;
- case XFA_ItemLayoutProcessorStages::BookendLeader:
+ case Stage::kBookendLeader:
ret = HandleBookendLeader(pParentContainer, pCurActionNode);
if (ret.has_value())
return ret.value();
@@ -870,7 +870,7 @@
*pCurActionNode = nullptr;
FALLTHROUGH;
- case XFA_ItemLayoutProcessorStages::BreakBefore:
+ case Stage::kBreakBefore:
if (*pCurActionNode) {
CXFA_Node* pBreakBeforeNode = (*pCurActionNode)->GetNextSibling();
if (!m_bKeepBreakFinish) {
@@ -885,15 +885,15 @@
goto CheckNextChildContainer;
}
*pCurActionNode = pChildContainer;
- return XFA_ItemLayoutProcessorStages::Container;
+ return Stage::kContainer;
}
goto CheckNextChildContainer;
- case XFA_ItemLayoutProcessorStages::Container:
+ case Stage::kContainer:
*pCurActionNode = nullptr;
FALLTHROUGH;
- case XFA_ItemLayoutProcessorStages::BreakAfter:
+ case Stage::kBreakAfter:
ret = HandleBreakAfter(pChildContainer, pCurActionNode);
if (ret.has_value())
return ret.value();
@@ -924,14 +924,13 @@
return ret.value();
}
*pCurActionNode = pNextChildContainer;
- return m_bIsProcessKeep ? XFA_ItemLayoutProcessorStages::Keep
- : XFA_ItemLayoutProcessorStages::Container;
+ return m_bIsProcessKeep ? Stage::kKeep : Stage::kContainer;
}
NoMoreChildContainer : {
*pCurActionNode = nullptr;
FALLTHROUGH;
- case XFA_ItemLayoutProcessorStages::BookendTrailer:
+ case Stage::kBookendTrailer:
ret = HandleBookendTrailer(pParentContainer, pCurActionNode);
if (ret.has_value())
return ret.value();
@@ -939,11 +938,11 @@
FALLTHROUGH;
default:
*pCurActionNode = nullptr;
- return XFA_ItemLayoutProcessorStages::Done;
+ return Stage::kDone;
}
}
-Optional<XFA_ItemLayoutProcessorStages>
+Optional<CXFA_ItemLayoutProcessor::Stage>
CXFA_ItemLayoutProcessor::ProcessKeepNodesForCheckNext(
CXFA_Node** pCurActionNode,
CXFA_Node** pNextContainer,
@@ -974,7 +973,7 @@
return {};
}
- Optional<XFA_ItemLayoutProcessorStages> ret =
+ Optional<Stage> ret =
FindBreakNode((*pNextContainer)->GetFirstChild(), true, pCurActionNode);
if (!ret.has_value()) {
*pNextContainer = m_pKeepHeadNode;
@@ -985,14 +984,14 @@
return ret;
}
-Optional<XFA_ItemLayoutProcessorStages>
+Optional<CXFA_ItemLayoutProcessor::Stage>
CXFA_ItemLayoutProcessor::ProcessKeepNodesForBreakBefore(
CXFA_Node** pCurActionNode,
CXFA_Node* pContainerNode) {
if (m_pKeepTailNode == pContainerNode) {
*pCurActionNode = m_pKeepHeadNode;
ProcessKeepNodesEnd();
- return XFA_ItemLayoutProcessorStages::Container;
+ return Stage::kContainer;
}
CXFA_Node* pBreakAfterNode = pContainerNode->GetFirstChild();
@@ -1004,13 +1003,12 @@
CXFA_Node* pFormNode = pPageAreaLayoutItem->GetFormNode();
CXFA_Node* pCurChildNode = nullptr;
CXFA_LayoutItem* pBeforeItem = nullptr;
- for (XFA_ItemLayoutProcessorStages nCurChildNodeStage =
- GotoNextContainerNode(XFA_ItemLayoutProcessorStages::None, false,
- pFormNode, &pCurChildNode);
+ for (Stage nCurChildNodeStage = GotoNextContainerNode(
+ Stage::kNone, false, pFormNode, &pCurChildNode);
pCurChildNode;
nCurChildNodeStage = GotoNextContainerNode(nCurChildNodeStage, false,
pFormNode, &pCurChildNode)) {
- if (nCurChildNodeStage != XFA_ItemLayoutProcessorStages::Container)
+ if (nCurChildNodeStage != Stage::kContainer)
continue;
if (pCurChildNode->GetElementType() == XFA_Element::Variables)
continue;
@@ -1078,7 +1076,7 @@
int32_t iColIndex = 0;
for (; m_pCurChildNode; GotoNextContainerNodeSimple(false)) {
- if (m_nCurChildNodeStage != XFA_ItemLayoutProcessorStages::Container)
+ if (m_nCurChildNodeStage != Stage::kContainer)
continue;
if (m_pCurChildNode->GetElementType() == XFA_Element::Variables)
continue;
@@ -1216,7 +1214,7 @@
for (; m_pCurChildNode; GotoNextContainerNodeSimple(false)) {
layoutContext.m_fCurColumnWidth.reset();
- if (m_nCurChildNodeStage != XFA_ItemLayoutProcessorStages::Container)
+ if (m_nCurChildNodeStage != Stage::kContainer)
continue;
auto pProcessor = pdfium::MakeUnique<CXFA_ItemLayoutProcessor>(
@@ -1600,7 +1598,7 @@
float fContentCurRowY = 0;
CXFA_ContentLayoutItem* pLayoutChild = nullptr;
if (m_pLayoutItem) {
- if (m_nCurChildNodeStage != XFA_ItemLayoutProcessorStages::Done &&
+ if (m_nCurChildNodeStage != Stage::kDone &&
eFlowStrategy != XFA_AttributeValue::Tb) {
pLayoutChild = ToContentLayoutItem(m_pLayoutItem->m_pFirstChild);
for (CXFA_LayoutItem* pLayoutNext = pLayoutChild; pLayoutNext;
@@ -1639,20 +1637,19 @@
}
fContentCurRowY += InsertKeepLayoutItems();
- if (m_nCurChildNodeStage == XFA_ItemLayoutProcessorStages::None)
+ if (m_nCurChildNodeStage == Stage::kNone)
GotoNextContainerNodeSimple(true);
fContentCurRowY += InsertPendingItems(GetFormNode());
- if (m_pCurChildPreprocessor &&
- m_nCurChildNodeStage == XFA_ItemLayoutProcessorStages::Container) {
+ if (m_pCurChildPreprocessor && m_nCurChildNodeStage == Stage::kContainer) {
if (ExistContainerKeep(m_pCurChildPreprocessor->GetFormNode(), false)) {
m_pKeepHeadNode = m_pCurChildNode;
m_bIsProcessKeep = true;
- m_nCurChildNodeStage = XFA_ItemLayoutProcessorStages::Keep;
+ m_nCurChildNodeStage = Stage::kKeep;
}
}
- while (m_nCurChildNodeStage != XFA_ItemLayoutProcessorStages::Done) {
+ while (m_nCurChildNodeStage != Stage::kDone) {
float fContentCurRowHeight = 0;
float fContentCurRowAvailWidth = fContentWidthLimit;
m_fWidthLimite = fContentCurRowAvailWidth;
@@ -1720,10 +1717,10 @@
bool bAddedItemInRow = false;
fContentCurRowY += InsertPendingItems(GetFormNode());
switch (m_nCurChildNodeStage) {
- case XFA_ItemLayoutProcessorStages::Keep:
- case XFA_ItemLayoutProcessorStages::None:
+ case Stage::kKeep:
+ case Stage::kNone:
break;
- case XFA_ItemLayoutProcessorStages::BreakBefore: {
+ case Stage::kBreakBefore: {
for (auto* item : m_arrayKeepItems) {
m_pLayoutItem->RemoveChild(item);
fContentCalculatedHeight -= item->m_sSize.height;
@@ -1767,7 +1764,7 @@
bIsManualBreak = true;
goto SuspendAndCreateNewRow;
}
- case XFA_ItemLayoutProcessorStages::BreakAfter: {
+ case Stage::kBreakAfter: {
CXFA_Node* pLeaderNode = nullptr;
CXFA_Node* pTrailerNode = nullptr;
bool bCreatePage = false;
@@ -1818,12 +1815,12 @@
if (bCreatePage) {
bForceEndPage = true;
bIsManualBreak = true;
- if (m_nCurChildNodeStage == XFA_ItemLayoutProcessorStages::Done)
+ if (m_nCurChildNodeStage == Stage::kDone)
bBreakDone = true;
}
goto SuspendAndCreateNewRow;
}
- case XFA_ItemLayoutProcessorStages::BookendLeader: {
+ case Stage::kBookendLeader: {
CXFA_Node* pLeaderNode = nullptr;
if (m_pCurChildPreprocessor) {
pProcessor.reset(m_pCurChildPreprocessor);
@@ -1851,7 +1848,7 @@
}
break;
}
- case XFA_ItemLayoutProcessorStages::BookendTrailer: {
+ case Stage::kBookendTrailer: {
CXFA_Node* pTrailerNode = nullptr;
if (m_pCurChildPreprocessor) {
pProcessor.reset(m_pCurChildPreprocessor);
@@ -1878,7 +1875,7 @@
}
break;
}
- case XFA_ItemLayoutProcessorStages::Container: {
+ case Stage::kContainer: {
ASSERT(m_pCurChildNode->IsContainerNode());
if (m_pCurChildNode->GetElementType() == XFA_Element::Variables)
break;
@@ -1926,7 +1923,7 @@
}
break;
}
- case XFA_ItemLayoutProcessorStages::Done:
+ case Stage::kDone:
break;
default:
break;
@@ -1952,8 +1949,7 @@
}
bool bRetValue =
- m_nCurChildNodeStage == XFA_ItemLayoutProcessorStages::Done &&
- m_PendingNodes.empty();
+ m_nCurChildNodeStage == Stage::kDone && m_PendingNodes.empty();
if (bBreakDone)
bRetValue = false;
@@ -2175,18 +2171,18 @@
case XFA_AttributeValue::Rl_row:
default:
DoLayoutPositionedContainer(pContext);
- m_nCurChildNodeStage = XFA_ItemLayoutProcessorStages::Done;
+ m_nCurChildNodeStage = Stage::kDone;
return XFA_ItemLayoutProcessorResult::Done;
case XFA_AttributeValue::Table:
DoLayoutTableContainer(pLayoutNode);
- m_nCurChildNodeStage = XFA_ItemLayoutProcessorStages::Done;
+ m_nCurChildNodeStage = Stage::kDone;
return XFA_ItemLayoutProcessorResult::Done;
}
}
case XFA_Element::Draw:
case XFA_Element::Field:
DoLayoutField();
- m_nCurChildNodeStage = XFA_ItemLayoutProcessorStages::Done;
+ m_nCurChildNodeStage = Stage::kDone;
return XFA_ItemLayoutProcessorResult::Done;
case XFA_Element::ContentArea:
return XFA_ItemLayoutProcessorResult::Done;
@@ -2735,7 +2731,7 @@
return XFA_ItemLayoutProcessorResult::PageFullBreak;
}
-Optional<XFA_ItemLayoutProcessorStages> CXFA_ItemLayoutProcessor::HandleKeep(
+Optional<CXFA_ItemLayoutProcessor::Stage> CXFA_ItemLayoutProcessor::HandleKeep(
CXFA_Node* pBreakAfterNode,
CXFA_Node** pCurActionNode) {
if (m_bKeepBreakFinish)
@@ -2743,7 +2739,7 @@
return FindBreakNode(pBreakAfterNode, false, pCurActionNode);
}
-Optional<XFA_ItemLayoutProcessorStages>
+Optional<CXFA_ItemLayoutProcessor::Stage>
CXFA_ItemLayoutProcessor::HandleBookendLeader(CXFA_Node* pParentContainer,
CXFA_Node** pCurActionNode) {
for (CXFA_Node* pBookendNode = *pCurActionNode
@@ -2754,7 +2750,7 @@
case XFA_Element::Bookend:
case XFA_Element::Break:
*pCurActionNode = pBookendNode;
- return XFA_ItemLayoutProcessorStages::BookendLeader;
+ return Stage::kBookendLeader;
default:
break;
}
@@ -2762,7 +2758,7 @@
return {};
}
-Optional<XFA_ItemLayoutProcessorStages>
+Optional<CXFA_ItemLayoutProcessor::Stage>
CXFA_ItemLayoutProcessor::HandleBreakAfter(CXFA_Node* pChildContainer,
CXFA_Node** pCurActionNode) {
if (*pCurActionNode) {
@@ -2774,7 +2770,7 @@
return HandleKeep(pBreakAfterNode, pCurActionNode);
}
-Optional<XFA_ItemLayoutProcessorStages>
+Optional<CXFA_ItemLayoutProcessor::Stage>
CXFA_ItemLayoutProcessor::HandleBookendTrailer(CXFA_Node* pParentContainer,
CXFA_Node** pCurActionNode) {
for (CXFA_Node* pBookendNode = *pCurActionNode
@@ -2785,7 +2781,7 @@
case XFA_Element::Bookend:
case XFA_Element::Break:
*pCurActionNode = pBookendNode;
- return XFA_ItemLayoutProcessorStages::BookendTrailer;
+ return Stage::kBookendTrailer;
default:
break;
}
diff --git a/xfa/fxfa/layout/cxfa_itemlayoutprocessor.h b/xfa/fxfa/layout/cxfa_itemlayoutprocessor.h
index 019d1b1..53cd71d 100644
--- a/xfa/fxfa/layout/cxfa_itemlayoutprocessor.h
+++ b/xfa/fxfa/layout/cxfa_itemlayoutprocessor.h
@@ -35,19 +35,19 @@
ManualBreak,
};
-enum class XFA_ItemLayoutProcessorStages {
- None,
- BookendLeader,
- BreakBefore,
- Keep,
- Container,
- BreakAfter,
- BookendTrailer,
- Done,
-};
-
class CXFA_ItemLayoutProcessor {
public:
+ enum class Stage {
+ kNone,
+ kBookendLeader,
+ kBreakBefore,
+ kKeep,
+ kContainer,
+ kBreakAfter,
+ kBookendTrailer,
+ kDone,
+ };
+
CXFA_ItemLayoutProcessor(CXFA_Node* pNode, CXFA_LayoutPageMgr* pPageMgr);
~CXFA_ItemLayoutProcessor();
@@ -121,20 +121,17 @@
void DoLayoutField();
void GotoNextContainerNodeSimple(bool bUsePageBreak);
- XFA_ItemLayoutProcessorStages GotoNextContainerNode(
- XFA_ItemLayoutProcessorStages nCurStage,
- bool bUsePageBreak,
- CXFA_Node* pParentContainer,
- CXFA_Node** pCurActionNode);
+ Stage GotoNextContainerNode(Stage nCurStage,
+ bool bUsePageBreak,
+ CXFA_Node* pParentContainer,
+ CXFA_Node** pCurActionNode);
- Optional<XFA_ItemLayoutProcessorStages> ProcessKeepNodesForCheckNext(
- CXFA_Node** pCurActionNode,
- CXFA_Node** pNextContainer,
- bool* pLastKeepNode);
+ Optional<Stage> ProcessKeepNodesForCheckNext(CXFA_Node** pCurActionNode,
+ CXFA_Node** pNextContainer,
+ bool* pLastKeepNode);
- Optional<XFA_ItemLayoutProcessorStages> ProcessKeepNodesForBreakBefore(
- CXFA_Node** pCurActionNode,
- CXFA_Node* pContainerNode);
+ Optional<Stage> ProcessKeepNodesForBreakBefore(CXFA_Node** pCurActionNode,
+ CXFA_Node* pContainerNode);
CXFA_Node* GetSubformSetParent(CXFA_Node* pSubformSet);
@@ -165,18 +162,14 @@
CXFA_LayoutContext* pLayoutContext,
bool bNewRow);
- Optional<XFA_ItemLayoutProcessorStages> HandleKeep(
- CXFA_Node* pBreakAfterNode,
- CXFA_Node** pCurActionNode);
- Optional<XFA_ItemLayoutProcessorStages> HandleBookendLeader(
- CXFA_Node* pParentContainer,
- CXFA_Node** pCurActionNode);
- Optional<XFA_ItemLayoutProcessorStages> HandleBreakAfter(
- CXFA_Node* pChildContainer,
- CXFA_Node** pCurActionNode);
- Optional<XFA_ItemLayoutProcessorStages> HandleBookendTrailer(
- CXFA_Node* pParentContainer,
- CXFA_Node** pCurActionNode);
+ Optional<Stage> HandleKeep(CXFA_Node* pBreakAfterNode,
+ CXFA_Node** pCurActionNode);
+ Optional<Stage> HandleBookendLeader(CXFA_Node* pParentContainer,
+ CXFA_Node** pCurActionNode);
+ Optional<Stage> HandleBreakAfter(CXFA_Node* pChildContainer,
+ CXFA_Node** pCurActionNode);
+ Optional<Stage> HandleBookendTrailer(CXFA_Node* pParentContainer,
+ CXFA_Node** pCurActionNode);
void ProcessKeepNodesEnd();
CXFA_Node* m_pFormNode;
@@ -199,8 +192,7 @@
CXFA_Node* m_pKeepTailNode = nullptr;
CXFA_ContentLayoutItem* m_pOldLayoutItem = nullptr;
CXFA_ItemLayoutProcessor* m_pCurChildPreprocessor = nullptr;
- XFA_ItemLayoutProcessorStages m_nCurChildNodeStage =
- XFA_ItemLayoutProcessorStages::None;
+ Stage m_nCurChildNodeStage = Stage::kNone;
std::map<CXFA_Node*, int32_t> m_PendingNodesCount;
float m_fWidthLimite = 0;
bool m_bHasAvailHeight = true;