int32_t CXFA_LayoutProcessor::StartLayout(bool bForceRestart) { if (!bForceRestart && !IsNeedLayout()) return 100; m_pRootItemLayoutProcessor.reset(); m_nProgressCounter = 0; CXFA_Node* pFormPacketNode = ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form)); if (!pFormPacketNode) return -1; CXFA_Node* pFormRoot = pFormPacketNode->GetFirstChildByClass(XFA_Element::Subform); if (!pFormRoot) return -1; if (!m_pLayoutPageMgr) m_pLayoutPageMgr = pdfium::MakeUnique<CXFA_LayoutPageMgr>(this); if (!m_pLayoutPageMgr->InitLayoutPage(pFormRoot)) return -1; if (!m_pLayoutPageMgr->PrepareFirstPage(pFormRoot)) return -1; m_pRootItemLayoutProcessor = pdfium::MakeUnique<CXFA_ItemLayoutProcessor>( pFormRoot, m_pLayoutPageMgr.get()); m_nProgressCounter = 1; return 0; }
int32_t CXFA_LayoutProcessor::StartLayout(FX_BOOL bForceRestart) { if (!bForceRestart && !IsNeedLayout()) { return 100; } if (m_pRootItemLayoutProcessor) { delete m_pRootItemLayoutProcessor; m_pRootItemLayoutProcessor = NULL; } m_nProgressCounter = 0; CXFA_Node* pFormPacketNode = ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form)); if (!pFormPacketNode) { return -1; } CXFA_Node* pFormRoot = pFormPacketNode->GetFirstChildByClass(XFA_ELEMENT_Subform); if (!pFormRoot) { return -1; } if (!m_pLayoutPageMgr) { m_pLayoutPageMgr = new CXFA_LayoutPageMgr(this); } if (!m_pLayoutPageMgr->InitLayoutPage(pFormRoot)) { return -1; } if (!m_pLayoutPageMgr->PrepareFirstPage(pFormRoot)) { return -1; } m_pRootItemLayoutProcessor = new CXFA_ItemLayoutProcessor(pFormRoot, m_pLayoutPageMgr); m_nProgressCounter = 1; return 0; }