1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2017 The PDFium Authors 2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file. 4*3ac0a46fSAndroid Build Coastguard Worker 5*3ac0a46fSAndroid Build Coastguard Worker // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6*3ac0a46fSAndroid Build Coastguard Worker 7*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/cxfa_readynodeiterator.h" 8*3ac0a46fSAndroid Build Coastguard Worker 9*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/parser/cxfa_node.h" 10*3ac0a46fSAndroid Build Coastguard Worker CXFA_ReadyNodeIterator(CXFA_Node * pTravelRoot)11*3ac0a46fSAndroid Build Coastguard WorkerCXFA_ReadyNodeIterator::CXFA_ReadyNodeIterator(CXFA_Node* pTravelRoot) 12*3ac0a46fSAndroid Build Coastguard Worker : m_ContentIterator(pTravelRoot) {} 13*3ac0a46fSAndroid Build Coastguard Worker 14*3ac0a46fSAndroid Build Coastguard Worker CXFA_ReadyNodeIterator::~CXFA_ReadyNodeIterator() = default; 15*3ac0a46fSAndroid Build Coastguard Worker MoveToNext()16*3ac0a46fSAndroid Build Coastguard WorkerCXFA_Node* CXFA_ReadyNodeIterator::MoveToNext() { 17*3ac0a46fSAndroid Build Coastguard Worker CXFA_Node* pItem = m_pCurNode ? m_ContentIterator.MoveToNext() 18*3ac0a46fSAndroid Build Coastguard Worker : m_ContentIterator.GetCurrent(); 19*3ac0a46fSAndroid Build Coastguard Worker while (pItem) { 20*3ac0a46fSAndroid Build Coastguard Worker m_pCurNode = pItem->IsWidgetReady() ? pItem : nullptr; 21*3ac0a46fSAndroid Build Coastguard Worker if (m_pCurNode) 22*3ac0a46fSAndroid Build Coastguard Worker return m_pCurNode; 23*3ac0a46fSAndroid Build Coastguard Worker pItem = m_ContentIterator.MoveToNext(); 24*3ac0a46fSAndroid Build Coastguard Worker } 25*3ac0a46fSAndroid Build Coastguard Worker return nullptr; 26*3ac0a46fSAndroid Build Coastguard Worker } 27*3ac0a46fSAndroid Build Coastguard Worker SkipTree()28*3ac0a46fSAndroid Build Coastguard Workervoid CXFA_ReadyNodeIterator::SkipTree() { 29*3ac0a46fSAndroid Build Coastguard Worker m_ContentIterator.SkipChildrenAndMoveToNext(); 30*3ac0a46fSAndroid Build Coastguard Worker m_pCurNode = nullptr; 31*3ac0a46fSAndroid Build Coastguard Worker } 32