CXFA_Node* CXFA_FFWidgetHandler::CreateRadioButton(CXFA_Node* pParent, CXFA_Node* pBefore) const { CXFA_Node* pField = CreateField(XFA_ELEMENT_CheckButton, pParent, pBefore); CXFA_Node* pUi = pField->GetFirstChildByClass(XFA_ELEMENT_Ui); CXFA_Node* pWidget = pUi->GetFirstChildByClass(XFA_ELEMENT_CheckButton); pWidget->SetEnum(XFA_ATTRIBUTE_Shape, XFA_ATTRIBUTEENUM_Round); return pField; }
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; }
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; }
CXFA_Node* CXFA_FFDocView::GetRootSubform() { CXFA_Node* pFormPacketNode = ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form)); if (!pFormPacketNode) { return NULL; } return pFormPacketNode->GetFirstChildByClass(XFA_ELEMENT_Subform); }
void CScript_LayoutPseudoModel::Relayout(CFXJSE_Arguments* pArguments) { CXFA_Node* pRootNode = m_pDocument->GetRoot(); CXFA_Node* pFormRoot = pRootNode->GetFirstChildByClass(XFA_Element::Form); ASSERT(pFormRoot); CXFA_Node* pContentRootNode = pFormRoot->GetNodeItem(XFA_NODEITEM_FirstChild); CXFA_LayoutProcessor* pLayoutProcessor = m_pDocument->GetLayoutProcessor(); if (pContentRootNode) { pLayoutProcessor->AddChangedContainer(pContentRootNode); } pLayoutProcessor->SetForceReLayout(TRUE); }
XFA_ATTRIBUTEENUM CXFA_FFDocHandler::GetRestoreState(IXFA_Doc* hDoc) { CXFA_Document* pXFADoc = static_cast<CXFA_FFDoc*>(hDoc)->GetXFADoc(); if (!pXFADoc) { return XFA_ATTRIBUTEENUM_Unknown; } CXFA_Node* pForm = (CXFA_Node*)pXFADoc->GetXFANode(XFA_HASHCODE_Form); if (!pForm) { return XFA_ATTRIBUTEENUM_Unknown; } CXFA_Node* pSubForm = pForm->GetFirstChildByClass(XFA_ELEMENT_Subform); if (!pSubForm) { return XFA_ATTRIBUTEENUM_Unknown; } return pSubForm->GetEnum(XFA_ATTRIBUTE_RestoreState); }