void CXFA_FFDocView::StopLayout() { CXFA_Node* pRootItem = ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form)); if (!pRootItem) { return; } CXFA_Node* pSubformNode = pRootItem->GetChild(0, XFA_ELEMENT_Subform); if (!pSubformNode) { return; } CXFA_Node* pPageSetNode = pSubformNode->GetFirstChildByClass(XFA_ELEMENT_PageSet); if (!pPageSetNode) { return; } RunCalculateWidgets(); RunValidate(); InitLayout(pPageSetNode); InitCalculate(pPageSetNode); InitValidate(pPageSetNode); ExecEventActivityByDeepFirst(pPageSetNode, XFA_EVENT_Ready, TRUE); ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready); ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_DocReady); RunCalculateWidgets(); RunValidate(); if (RunLayout()) { ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready); } m_CalculateAccs.RemoveAll(); if (m_pFocusAcc && !m_pFocusWidget) { SetFocusWidgetAcc(m_pFocusAcc); } m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_End; }
void CXFA_FFDocView::UpdateDocView() { if (IsUpdateLocked()) { return; } LockUpdate(); int32_t iNewAdds = m_NewAddedNodes.GetSize(); for (int32_t i = 0; i < iNewAdds; i++) { CXFA_Node* pNode = m_NewAddedNodes[i]; InitCalculate(pNode); InitValidate(pNode); ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Ready, TRUE, TRUE, nullptr); } m_NewAddedNodes.RemoveAll(); RunSubformIndexChange(); RunCalculateWidgets(); RunValidate(); ShowNullTestMsg(); if (RunLayout() && m_bLayoutEvent) { RunEventLayoutReady(); } m_bLayoutEvent = FALSE; m_CalculateAccs.RemoveAll(); RunInvalidate(); UnlockUpdate(); }