From d9828fd1653f0334c4e9b027d708dbc3df8c838a Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Thu, 30 Mar 2017 10:58:49 -0400 Subject: Rename FDE files to match contents. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This CL renames files in xfa/fde to match the contents. The fde_object.h file is split apart into cfde_pen and cfde_brush. Change-Id: I953f102182caa6d87c5ee9b99bbeb01c34a01aa9 Reviewed-on: https://pdfium-review.googlesource.com/3371 Reviewed-by: Nicolás Peña Commit-Queue: dsinclair --- xfa/fde/cfde_visualsetiterator.cpp | 94 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 xfa/fde/cfde_visualsetiterator.cpp (limited to 'xfa/fde/cfde_visualsetiterator.cpp') diff --git a/xfa/fde/cfde_visualsetiterator.cpp b/xfa/fde/cfde_visualsetiterator.cpp new file mode 100644 index 0000000000..5fd84ede8a --- /dev/null +++ b/xfa/fde/cfde_visualsetiterator.cpp @@ -0,0 +1,94 @@ +// 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 + +#include "xfa/fde/cfde_visualsetiterator.h" + +#include "xfa/fde/cfde_txtedtpage.h" + +CFDE_VisualSetIterator::CFDE_VisualSetIterator() : m_dwFilter(0) {} + +CFDE_VisualSetIterator::~CFDE_VisualSetIterator() {} + +bool CFDE_VisualSetIterator::AttachCanvas(CFDE_TxtEdtPage* pCanvas) { + ASSERT(pCanvas); + m_CanvasStack = std::stack(); + + FDE_CANVASITEM canvas; + canvas.hCanvas = nullptr; + canvas.pCanvas = pCanvas; + canvas.pos = pCanvas->GetFirstPosition(); + if (canvas.pos == 0) + return false; + + m_CanvasStack.push(canvas); + return true; +} + +bool CFDE_VisualSetIterator::FilterObjects(uint32_t dwObjects) { + if (m_CanvasStack.empty()) + return false; + + while (m_CanvasStack.size() > 1) + m_CanvasStack.pop(); + + m_dwFilter = dwObjects; + + FDE_CANVASITEM* pCanvas = &m_CanvasStack.top(); + ASSERT(pCanvas && pCanvas->pCanvas); + + pCanvas->pos = pCanvas->pCanvas->GetFirstPosition(); + return pCanvas->pos != 0; +} + +void CFDE_VisualSetIterator::Reset() { + FilterObjects(m_dwFilter); +} + +FDE_TEXTEDITPIECE* CFDE_VisualSetIterator::GetNext( + IFDE_VisualSet*& pVisualSet, + FDE_TEXTEDITPIECE** phCanvasObj, + CFDE_TxtEdtPage** ppCanvasSet) { + while (!m_CanvasStack.empty()) { + FDE_CANVASITEM* pCanvas = &m_CanvasStack.top(); + if (pCanvas->pos == 0) { + if (m_CanvasStack.size() == 1) + break; + + m_CanvasStack.pop(); + continue; + } + do { + FDE_TEXTEDITPIECE* pObj = + pCanvas->pCanvas->GetNext(&pCanvas->pos, pVisualSet); + ASSERT(pObj); + + FDE_VISUALOBJTYPE eType = pVisualSet->GetType(); + if (eType == FDE_VISUALOBJ_Canvas) { + FDE_CANVASITEM canvas; + canvas.hCanvas = pObj; + canvas.pCanvas = static_cast(pVisualSet); + canvas.pos = canvas.pCanvas->GetFirstPosition(); + m_CanvasStack.push(canvas); + break; + } + uint32_t dwObj = (uint32_t)eType; + if ((m_dwFilter & dwObj) != 0) { + if (ppCanvasSet) + *ppCanvasSet = pCanvas->pCanvas; + if (phCanvasObj) + *phCanvasObj = pCanvas->hCanvas; + return pObj; + } + } while (pCanvas->pos != 0); + } + if (ppCanvasSet) + *ppCanvasSet = nullptr; + if (phCanvasObj) + *phCanvasObj = nullptr; + + pVisualSet = nullptr; + return nullptr; +} -- cgit v1.2.3