diff options
Diffstat (limited to 'xfa/fxfa/cxfa_ffdoc.h')
-rw-r--r-- | xfa/fxfa/cxfa_ffdoc.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/xfa/fxfa/cxfa_ffdoc.h b/xfa/fxfa/cxfa_ffdoc.h new file mode 100644 index 0000000000..1d46387a5e --- /dev/null +++ b/xfa/fxfa/cxfa_ffdoc.h @@ -0,0 +1,73 @@ +// 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_FXFA_CXFA_FFDOC_H_ +#define XFA_FXFA_CXFA_FFDOC_H_ + +#include <map> +#include <memory> + +#include "xfa/fxfa/fxfa.h" +#include "xfa/fxfa/parser/cxfa_document.h" +#include "xfa/fxfa/parser/cxfa_document_parser.h" + +class CXFA_ChecksumContext; +class CXFA_FFApp; +class CXFA_FFNotify; +class CXFA_FFDocView; + +struct FX_IMAGEDIB_AND_DPI { + CFX_DIBSource* pDibSource; + int32_t iImageXDpi; + int32_t iImageYDpi; +}; + +class CXFA_FFDoc { + public: + CXFA_FFDoc(CXFA_FFApp* pApp, IXFA_DocEnvironment* pDocEnvironment); + ~CXFA_FFDoc(); + + IXFA_DocEnvironment* GetDocEnvironment() const { return m_pDocEnvironment; } + XFA_DocType GetDocType() const { return m_dwDocType; } + + int32_t StartLoad(); + int32_t DoLoad(IFX_Pause* pPause = nullptr); + void StopLoad(); + + CXFA_FFDocView* CreateDocView(); + + bool OpenDoc(const CFX_RetainPtr<IFX_SeekableReadStream>& pStream); + bool OpenDoc(CPDF_Document* pPDFDoc); + bool CloseDoc(); + + CXFA_Document* GetXFADoc() { return m_pDocumentParser->GetDocument(); } + CXFA_FFApp* GetApp() { return m_pApp; } + CXFA_FFDocView* GetDocView(CXFA_LayoutProcessor* pLayout); + CXFA_FFDocView* GetDocView(); + CPDF_Document* GetPDFDoc(); + CFX_DIBitmap* GetPDFNamedImage(const CFX_WideStringC& wsName, + int32_t& iImageXDpi, + int32_t& iImageYDpi); + + bool SavePackage(XFA_HashCode code, + const CFX_RetainPtr<IFX_SeekableWriteStream>& pFile, + CXFA_ChecksumContext* pCSContext); + bool ImportData(const CFX_RetainPtr<IFX_SeekableReadStream>& pStream, + bool bXDP = true); + + private: + IXFA_DocEnvironment* const m_pDocEnvironment; + std::unique_ptr<CXFA_DocumentParser> m_pDocumentParser; + CFX_RetainPtr<IFX_SeekableReadStream> m_pStream; + CXFA_FFApp* m_pApp; + std::unique_ptr<CXFA_FFNotify> m_pNotify; + CPDF_Document* m_pPDFDoc; + std::map<uint32_t, FX_IMAGEDIB_AND_DPI> m_HashToDibDpiMap; + std::unique_ptr<CXFA_FFDocView> m_DocView; + XFA_DocType m_dwDocType; +}; + +#endif // XFA_FXFA_CXFA_FFDOC_H_ |