1 // Copyright 2014 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #ifndef _FDE_ITERATOR_IMP 8 #define _FDE_ITERATOR_IMP 9 typedef struct _FDE_CANVASITEM : public CFX_Target { 10 IFDE_CanvasSet* pCanvas; 11 FDE_HVISUALOBJ hCanvas; 12 FX_POSITION hPos; 13 } FDE_CANVASITEM, *FDE_LPCANVASITEM; 14 class CFDE_VisualSetIterator : public IFDE_VisualSetIterator, 15 public CFX_Target { 16 public: 17 CFDE_VisualSetIterator(); 18 ~CFDE_VisualSetIterator(); Release()19 virtual void Release() { delete this; } 20 21 virtual FX_BOOL AttachCanvas(IFDE_CanvasSet* pCanvas); 22 virtual FX_BOOL FilterObjects(FX_DWORD dwObjects = 0xFFFFFFFF); 23 24 virtual void Reset(); 25 virtual FDE_HVISUALOBJ GetNext(IFDE_VisualSet*& pVisualSet, 26 FDE_HVISUALOBJ* phCanvasObj = NULL, 27 IFDE_CanvasSet** ppCanvasSet = NULL); 28 29 protected: 30 FX_DWORD m_dwFilter; 31 CFX_StackTemplate<FDE_CANVASITEM> m_CanvasStack; 32 }; 33 #endif 34