FX_BOOL CXFA_FFDocView::ResetSingleWidgetAccData(CXFA_WidgetAcc* pWidgetAcc) { CXFA_Node* pNode = pWidgetAcc->GetNode(); XFA_Element eType = pNode->GetElementType(); if (eType != XFA_Element::Field && eType != XFA_Element::ExclGroup) { return FALSE; } pWidgetAcc->ResetData(); pWidgetAcc->UpdateUIDisplay(); if (CXFA_Validate validate = pWidgetAcc->GetValidate()) { AddValidateWidget(pWidgetAcc); validate.GetNode()->SetFlag(XFA_NodeFlag_NeedsInitApp, false); } return TRUE; }
void CXFA_FFDocView::RunCalculateRecursive(int32_t& iIndex) { while (iIndex < m_CalculateAccs.GetSize()) { CXFA_WidgetAcc* pCurAcc = (CXFA_WidgetAcc*)m_CalculateAccs[iIndex]; AddCalculateNodeNotify(pCurAcc->GetNode()); int32_t iRefCount = (int32_t)(uintptr_t)pCurAcc->GetNode()->GetUserData(XFA_CalcRefCount); iRefCount++; pCurAcc->GetNode()->SetUserData(XFA_CalcRefCount, (void*)(uintptr_t)iRefCount); if (iRefCount > 11) { break; } if ((pCurAcc->ProcessCalculate()) == XFA_EVENTERROR_Sucess) { AddValidateWidget(pCurAcc); } iIndex++; RunCalculateRecursive(iIndex); } }
FX_BOOL CXFA_FFDocView::ResetSingleWidgetAccData(CXFA_WidgetAcc* pWidgetAcc) { CXFA_Node* pNode = pWidgetAcc->GetNode(); XFA_ELEMENT eType = pNode->GetClassID(); if (eType != XFA_ELEMENT_Field && eType != XFA_ELEMENT_ExclGroup) { return FALSE; } FX_BOOL bNotify = IsStaticNotify(); pWidgetAcc->ResetData(); pWidgetAcc->UpdateUIDisplay(); if (bNotify) { pWidgetAcc->NotifyEvent(XFA_WIDGETEVENT_PostContentChanged, NULL, NULL, NULL); } if (CXFA_Validate validate = pWidgetAcc->GetValidate()) { AddValidateWidget(pWidgetAcc); validate.GetNode()->SetFlag(XFA_NODEFLAG_NeedsInitApp, TRUE, FALSE); } return TRUE; }