diff options
Diffstat (limited to 'xfa/fde/fde_iterator.h')
-rw-r--r-- | xfa/fde/fde_iterator.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/xfa/fde/fde_iterator.h b/xfa/fde/fde_iterator.h new file mode 100644 index 0000000000..6be6c4c0a5 --- /dev/null +++ b/xfa/fde/fde_iterator.h @@ -0,0 +1,39 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_FDE_FDE_ITERATOR_H_ +#define XFA_FDE_FDE_ITERATOR_H_ + +#include "xfa/fde/fde_visualset.h" +#include "xfa/fgas/crt/fgas_memory.h" + +struct FDE_CANVASITEM { + IFDE_CanvasSet* pCanvas; + FDE_HVISUALOBJ hCanvas; + FX_POSITION hPos; +}; + +class CFDE_VisualSetIterator : public IFDE_VisualSetIterator, + public CFX_Target { + public: + CFDE_VisualSetIterator(); + ~CFDE_VisualSetIterator(); + virtual void Release() { delete this; } + + virtual FX_BOOL AttachCanvas(IFDE_CanvasSet* pCanvas); + virtual FX_BOOL FilterObjects(FX_DWORD dwObjects = 0xFFFFFFFF); + + virtual void Reset(); + virtual FDE_HVISUALOBJ GetNext(IFDE_VisualSet*& pVisualSet, + FDE_HVISUALOBJ* phCanvasObj = NULL, + IFDE_CanvasSet** ppCanvasSet = NULL); + + protected: + FX_DWORD m_dwFilter; + CFX_StackTemplate<FDE_CANVASITEM> m_CanvasStack; +}; + +#endif // XFA_FDE_FDE_ITERATOR_H_ |