| Index: xfa/fxfa/app/xfa_ffdocview.cpp
|
| diff --git a/xfa/fxfa/app/xfa_ffdocview.cpp b/xfa/fxfa/app/xfa_ffdocview.cpp
|
| index c0b42412eabb8335a20f11561b6cd5613bfbe968..3609e55cbaf38782bba426cf8e689ac6883ae963 100644
|
| --- a/xfa/fxfa/app/xfa_ffdocview.cpp
|
| +++ b/xfa/fxfa/app/xfa_ffdocview.cpp
|
| @@ -56,7 +56,6 @@ CXFA_FFDocView::CXFA_FFDocView(CXFA_FFDoc* pDoc)
|
| m_pListFocusWidget(nullptr),
|
| m_bInLayoutStatus(FALSE),
|
| m_pDoc(pDoc),
|
| - m_pWidgetHandler(nullptr),
|
| m_pXFADocLayout(nullptr),
|
| m_pFocusAcc(nullptr),
|
| m_pFocusWidget(nullptr),
|
| @@ -66,13 +65,14 @@ CXFA_FFDocView::CXFA_FFDocView(CXFA_FFDoc* pDoc)
|
|
|
| CXFA_FFDocView::~CXFA_FFDocView() {
|
| DestroyDocView();
|
| - delete m_pWidgetHandler;
|
| }
|
|
|
| void CXFA_FFDocView::InitLayout(CXFA_Node* pNode) {
|
| RunBindItems();
|
| - ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Initialize);
|
| - ExecEventActivityByDeepFirst(pNode, XFA_EVENT_IndexChange);
|
| + ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Initialize, FALSE, TRUE,
|
| + nullptr);
|
| + ExecEventActivityByDeepFirst(pNode, XFA_EVENT_IndexChange, FALSE, TRUE,
|
| + nullptr);
|
| }
|
| int32_t CXFA_FFDocView::StartLayout(int32_t iStartPage) {
|
| m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_Start;
|
| @@ -91,7 +91,7 @@ int32_t CXFA_FFDocView::StartLayout(int32_t iStartPage) {
|
| InitLayout(pRootItem);
|
| InitCalculate(pRootItem);
|
| InitValidate(pRootItem);
|
| - ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, TRUE);
|
| + ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, TRUE, TRUE, nullptr);
|
| m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_Start;
|
| return iStatus;
|
| }
|
| @@ -124,13 +124,17 @@ void CXFA_FFDocView::StopLayout() {
|
| InitLayout(pPageSetNode);
|
| InitCalculate(pPageSetNode);
|
| InitValidate(pPageSetNode);
|
| - ExecEventActivityByDeepFirst(pPageSetNode, XFA_EVENT_Ready, TRUE);
|
| - ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready);
|
| - ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_DocReady);
|
| + ExecEventActivityByDeepFirst(pPageSetNode, XFA_EVENT_Ready, TRUE, TRUE,
|
| + nullptr);
|
| + ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, FALSE, TRUE,
|
| + nullptr);
|
| + ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_DocReady, FALSE, TRUE,
|
| + nullptr);
|
| RunCalculateWidgets();
|
| RunValidate();
|
| if (RunLayout()) {
|
| - ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready);
|
| + ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, FALSE, TRUE,
|
| + nullptr);
|
| }
|
| m_CalculateAccs.RemoveAll();
|
| if (m_pFocusAcc && !m_pFocusWidget) {
|
| @@ -177,7 +181,7 @@ void CXFA_FFDocView::UpdateDocView() {
|
| CXFA_Node* pNode = m_NewAddedNodes[i];
|
| InitCalculate(pNode);
|
| InitValidate(pNode);
|
| - ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Ready, TRUE);
|
| + ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Ready, TRUE, TRUE, nullptr);
|
| }
|
| m_NewAddedNodes.RemoveAll();
|
| RunSubformIndexChange();
|
| @@ -303,14 +307,15 @@ int32_t CXFA_FFDocView::ProcessWidgetEvent(CXFA_EventParam* pParam,
|
| }
|
| pNode = pRootItem->GetChild(0, XFA_Element::Subform);
|
| }
|
| - ExecEventActivityByDeepFirst(pNode, pParam->m_eType, pParam->m_bIsFormReady);
|
| + ExecEventActivityByDeepFirst(pNode, pParam->m_eType, pParam->m_bIsFormReady,
|
| + TRUE, nullptr);
|
| return XFA_EVENTERROR_Success;
|
| }
|
| CXFA_FFWidgetHandler* CXFA_FFDocView::GetWidgetHandler() {
|
| if (!m_pWidgetHandler) {
|
| - m_pWidgetHandler = new CXFA_FFWidgetHandler(this);
|
| + m_pWidgetHandler.reset(new CXFA_FFWidgetHandler(this));
|
| }
|
| - return m_pWidgetHandler;
|
| + return m_pWidgetHandler.get();
|
| }
|
|
|
| CXFA_WidgetAccIterator* CXFA_FFDocView::CreateWidgetAccIterator(
|
| @@ -607,7 +612,8 @@ void CXFA_FFDocView::RunDocClose() {
|
| if (!pRootItem) {
|
| return;
|
| }
|
| - ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_DocClose);
|
| + ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_DocClose, FALSE, TRUE,
|
| + nullptr);
|
| }
|
| void CXFA_FFDocView::DestroyDocView() {
|
| ClearInvalidateList();
|
| @@ -685,14 +691,15 @@ void CXFA_FFDocView::AddValidateWidget(CXFA_WidgetAcc* pWidget) {
|
| m_ValidateAccs.Add(pWidget);
|
| }
|
| FX_BOOL CXFA_FFDocView::InitCalculate(CXFA_Node* pNode) {
|
| - ExecEventActivityByDeepFirst(pNode, XFA_EVENT_InitCalculate);
|
| + ExecEventActivityByDeepFirst(pNode, XFA_EVENT_InitCalculate, FALSE, TRUE,
|
| + nullptr);
|
| return TRUE;
|
| }
|
| FX_BOOL CXFA_FFDocView::InitValidate(CXFA_Node* pNode) {
|
| if (!m_pDoc->GetDocProvider()->IsValidationsEnabled(m_pDoc)) {
|
| return FALSE;
|
| }
|
| - ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Validate);
|
| + ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Validate, FALSE, TRUE, nullptr);
|
| m_ValidateAccs.RemoveAll();
|
| return TRUE;
|
| }
|
| @@ -717,7 +724,8 @@ FX_BOOL CXFA_FFDocView::RunEventLayoutReady() {
|
| if (!pRootItem) {
|
| return FALSE;
|
| }
|
| - ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready);
|
| + ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, FALSE, TRUE,
|
| + nullptr);
|
| RunLayout();
|
| return TRUE;
|
| }
|
| @@ -803,21 +811,24 @@ CXFA_Node* CXFA_FFDocView::GetRootSubform() {
|
|
|
| CXFA_WidgetAccIterator::CXFA_WidgetAccIterator(CXFA_FFDocView* pDocView,
|
| CXFA_Node* pTravelRoot)
|
| - : m_ContentIterator(pTravelRoot) {
|
| - m_pDocView = pDocView;
|
| - m_pCurWidgetAcc = nullptr;
|
| -}
|
| + : m_ContentIterator(pTravelRoot),
|
| + m_pDocView(pDocView),
|
| + m_pCurWidgetAcc(nullptr) {}
|
| +
|
| CXFA_WidgetAccIterator::~CXFA_WidgetAccIterator() {}
|
| void CXFA_WidgetAccIterator::Reset() {
|
| m_pCurWidgetAcc = nullptr;
|
| m_ContentIterator.Reset();
|
| }
|
| +
|
| CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToFirst() {
|
| return nullptr;
|
| }
|
| +
|
| CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToLast() {
|
| return nullptr;
|
| }
|
| +
|
| CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToNext() {
|
| CXFA_Node* pItem = m_pCurWidgetAcc ? m_ContentIterator.MoveToNext()
|
| : m_ContentIterator.GetCurrent();
|
| @@ -829,15 +840,19 @@ CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToNext() {
|
| }
|
| return nullptr;
|
| }
|
| +
|
| CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToPrevious() {
|
| return nullptr;
|
| }
|
| +
|
| CXFA_WidgetAcc* CXFA_WidgetAccIterator::GetCurrentWidgetAcc() {
|
| return nullptr;
|
| }
|
| +
|
| FX_BOOL CXFA_WidgetAccIterator::SetCurrentWidgetAcc(CXFA_WidgetAcc* hWidget) {
|
| return FALSE;
|
| }
|
| +
|
| void CXFA_WidgetAccIterator::SkipTree() {
|
| m_ContentIterator.SkipChildrenAndMoveToNext();
|
| m_pCurWidgetAcc = nullptr;
|
|
|