| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #ifndef FPDFSDK_FPDFXFA_INCLUDE_FPDFXFA_DOC_H_ | 7 #ifndef FPDFSDK_FPDFXFA_INCLUDE_FPDFXFA_DOC_H_ |
| 8 #define FPDFSDK_FPDFXFA_INCLUDE_FPDFXFA_DOC_H_ | 8 #define FPDFSDK_FPDFXFA_INCLUDE_FPDFXFA_DOC_H_ |
| 9 | 9 |
| 10 #include "xfa/fxfa/include/xfa_ffdoc.h" | 10 #include "xfa/fxfa/include/xfa_ffdoc.h" |
| 11 | 11 |
| 12 #include <memory> | 12 #include <memory> |
| 13 #include <vector> | 13 #include <vector> |
| 14 | 14 |
| 15 #include "public/fpdfview.h" | 15 #include "public/fpdfview.h" |
| 16 #include "xfa/fxfa/include/fxfa.h" | 16 #include "xfa/fxfa/include/fxfa.h" |
| 17 #include "xfa/fxfa/include/xfa_ffdochandler.h" | 17 #include "xfa/fxfa/include/xfa_ffdochandler.h" |
| 18 | 18 |
| 19 class CPDFXFA_App; | 19 class CPDFXFA_App; |
| 20 class CPDFXFA_Document; | 20 class CPDFXFA_Document; |
| 21 class CPDFXFA_Page; | 21 class CPDFXFA_Page; |
| 22 class CPDFSDK_Document; | 22 class CPDFSDK_Document; |
| 23 class CPDFDoc_Environment; | 23 class CPDFDoc_Environment; |
| 24 class IJS_Runtime; | 24 class IJS_Runtime; |
| 25 class IJS_Context; | 25 class IJS_Context; |
| 26 class CXFA_FFDocHandler; | 26 class CXFA_FFDocHandler; |
| 27 | 27 |
| 28 class CPDFXFA_Document : public IXFA_DocProvider { | 28 class CPDFXFA_Document : public IXFA_DocProvider { |
| 29 public: | 29 public: |
| 30 CPDFXFA_Document(CPDF_Document* pPDFDoc, CPDFXFA_App* pProvider); | 30 CPDFXFA_Document(std::unique_ptr<CPDF_Document> pPDFDoc, |
| 31 CPDFXFA_App* pProvider); |
| 31 ~CPDFXFA_Document() override; | 32 ~CPDFXFA_Document() override; |
| 32 | 33 |
| 33 FX_BOOL LoadXFADoc(); | 34 FX_BOOL LoadXFADoc(); |
| 34 CPDFXFA_App* GetApp() { return m_pApp; } | 35 CPDFXFA_App* GetApp() { return m_pApp; } |
| 35 CPDF_Document* GetPDFDoc() { return m_pPDFDoc; } | 36 CPDF_Document* GetPDFDoc() { return m_pPDFDoc.get(); } |
| 36 CXFA_FFDoc* GetXFADoc() { return m_pXFADoc.get(); } | 37 CXFA_FFDoc* GetXFADoc() { return m_pXFADoc.get(); } |
| 37 CXFA_FFDocView* GetXFADocView() { return m_pXFADocView; } | 38 CXFA_FFDocView* GetXFADocView() { return m_pXFADocView; } |
| 38 | 39 |
| 39 int GetPageCount(); | 40 int GetPageCount(); |
| 40 CPDFXFA_Page* GetPage(int page_index); | 41 CPDFXFA_Page* GetPage(int page_index); |
| 41 CPDFXFA_Page* GetPage(CXFA_FFPageView* pPage); | 42 CPDFXFA_Page* GetPage(CXFA_FFPageView* pPage); |
| 42 | 43 |
| 43 void DeletePage(int page_index); | 44 void DeletePage(int page_index); |
| 44 void RemovePage(CPDFXFA_Page* page); | 45 void RemovePage(CPDFXFA_Page* page); |
| 45 int GetDocType() { return m_iDocType; } | 46 int GetDocType() { return m_iDocType; } |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 | 194 |
| 194 void CloseXFADoc(CXFA_FFDocHandler* pDoc) { | 195 void CloseXFADoc(CXFA_FFDocHandler* pDoc) { |
| 195 if (pDoc) { | 196 if (pDoc) { |
| 196 m_pXFADoc->CloseDoc(); | 197 m_pXFADoc->CloseDoc(); |
| 197 m_pXFADoc.reset(); | 198 m_pXFADoc.reset(); |
| 198 m_pXFADocView = nullptr; | 199 m_pXFADocView = nullptr; |
| 199 } | 200 } |
| 200 } | 201 } |
| 201 | 202 |
| 202 int m_iDocType; | 203 int m_iDocType; |
| 203 CPDF_Document* m_pPDFDoc; | 204 |
| 205 // |m_pSDKDoc| has to be released before |m_pPDFDoc| since it needs to access |
| 206 // it to kill focused annotations. |
| 207 std::unique_ptr<CPDF_Document> m_pPDFDoc; |
| 204 std::unique_ptr<CPDFSDK_Document> m_pSDKDoc; | 208 std::unique_ptr<CPDFSDK_Document> m_pSDKDoc; |
| 205 std::unique_ptr<CXFA_FFDoc> m_pXFADoc; | 209 std::unique_ptr<CXFA_FFDoc> m_pXFADoc; |
| 206 CXFA_FFDocView* m_pXFADocView; // not owned. | 210 CXFA_FFDocView* m_pXFADocView; // not owned. |
| 207 CPDFXFA_App* const m_pApp; | 211 CPDFXFA_App* const m_pApp; |
| 208 IJS_Context* m_pJSContext; | 212 IJS_Context* m_pJSContext; |
| 209 CFX_ArrayTemplate<CPDFXFA_Page*> m_XFAPageList; | 213 CFX_ArrayTemplate<CPDFXFA_Page*> m_XFAPageList; |
| 210 LoadStatus m_nLoadStatus; | 214 LoadStatus m_nLoadStatus; |
| 211 int m_nPageCount; | 215 int m_nPageCount; |
| 212 }; | 216 }; |
| 213 | 217 |
| 214 #endif // FPDFSDK_FPDFXFA_INCLUDE_FPDFXFA_DOC_H_ | 218 #endif // FPDFSDK_FPDFXFA_INCLUDE_FPDFXFA_DOC_H_ |
| OLD | NEW |