diff options
author | dsinclair <dsinclair@chromium.org> | 2016-09-29 11:59:54 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-09-29 11:59:54 -0700 |
commit | 8a752ab21daa2dcd0314ab5e3908f8d6e7bba2b7 (patch) | |
tree | 32e57975bb7200fd406e655e96d07d103021d67f /core/fpdfapi/fpdf_page/cpdf_pageobjectholder.h | |
parent | 166bc16e15a5be72fe19da97504b4837967333ff (diff) | |
download | pdfium-8a752ab21daa2dcd0314ab5e3908f8d6e7bba2b7.tar.xz |
Move core/fpdfapi/fpdf_page/include to core/fpdfapi/fpdf_page
BUG=pdfium:611
Review-Url: https://codereview.chromium.org/2379033002
Diffstat (limited to 'core/fpdfapi/fpdf_page/cpdf_pageobjectholder.h')
-rw-r--r-- | core/fpdfapi/fpdf_page/cpdf_pageobjectholder.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/core/fpdfapi/fpdf_page/cpdf_pageobjectholder.h b/core/fpdfapi/fpdf_page/cpdf_pageobjectholder.h new file mode 100644 index 0000000000..36379bed15 --- /dev/null +++ b/core/fpdfapi/fpdf_page/cpdf_pageobjectholder.h @@ -0,0 +1,68 @@ +// Copyright 2016 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 CORE_FPDFAPI_FPDF_PAGE_CPDF_PAGEOBJECTHOLDER_H_ +#define CORE_FPDFAPI_FPDF_PAGE_CPDF_PAGEOBJECTHOLDER_H_ + +#include "core/fpdfapi/fpdf_page/cpdf_pageobjectlist.h" +#include "core/fxcrt/include/fx_coordinates.h" +#include "core/fxcrt/include/fx_system.h" + +class IFX_Pause; +class CPDF_Dictionary; +class CPDF_Stream; +class CPDF_Document; +class CPDF_ContentParser; + +#define PDFTRANS_GROUP 0x0100 +#define PDFTRANS_ISOLATED 0x0200 +#define PDFTRANS_KNOCKOUT 0x0400 + +class CPDF_PageObjectHolder { + public: + CPDF_PageObjectHolder(); + virtual ~CPDF_PageObjectHolder(); + + void ContinueParse(IFX_Pause* pPause); + bool IsParsed() const { return m_ParseState == CONTENT_PARSED; } + + CPDF_PageObjectList* GetPageObjectList() { return &m_PageObjectList; } + const CPDF_PageObjectList* GetPageObjectList() const { + return &m_PageObjectList; + } + + FX_BOOL BackgroundAlphaNeeded() const { return m_bBackgroundAlphaNeeded; } + void SetBackgroundAlphaNeeded(FX_BOOL needed) { + m_bBackgroundAlphaNeeded = needed; + } + + FX_BOOL HasImageMask() const { return m_bHasImageMask; } + void SetHasImageMask(FX_BOOL value) { m_bHasImageMask = value; } + + void Transform(const CFX_Matrix& matrix); + CFX_FloatRect CalcBoundingBox() const; + + CPDF_Dictionary* m_pFormDict; + CPDF_Stream* m_pFormStream; + CPDF_Document* m_pDocument; + CPDF_Dictionary* m_pPageResources; + CPDF_Dictionary* m_pResources; + CFX_FloatRect m_BBox; + int m_Transparency; + + protected: + enum ParseState { CONTENT_NOT_PARSED, CONTENT_PARSING, CONTENT_PARSED }; + + void LoadTransInfo(); + + FX_BOOL m_bBackgroundAlphaNeeded; + FX_BOOL m_bHasImageMask; + ParseState m_ParseState; + std::unique_ptr<CPDF_ContentParser> m_pParser; + CPDF_PageObjectList m_PageObjectList; +}; + +#endif // CORE_FPDFAPI_FPDF_PAGE_CPDF_PAGEOBJECTHOLDER_H_ |