Index: fpdfsdk/fpdfxfa/cpdfxfa_document.h |
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_document.h b/fpdfsdk/fpdfxfa/cpdfxfa_document.h |
index de997c16f3f0591afaf3e39ca020f605b6618185..00a9f255ff6b8b300d8d7015c4efa7c8225ca09a 100644 |
--- a/fpdfsdk/fpdfxfa/cpdfxfa_document.h |
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_document.h |
@@ -9,11 +9,11 @@ |
#include <memory> |
+#include "fpdfsdk/fpdfxfa/cpdfxfa_app.h" |
#include "fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.h" |
#include "xfa/fxfa/xfa_ffdoc.h" |
class CPDFSDK_FormFillEnvironment; |
-class CPDFXFA_App; |
class CPDFXFA_Page; |
class CXFA_FFDocHandler; |
class IJS_Runtime; |
@@ -29,8 +29,7 @@ enum LoadStatus { |
class CPDFXFA_Document { |
public: |
- CPDFXFA_Document(std::unique_ptr<CPDF_Document> pPDFDoc, |
- CPDFXFA_App* pProvider); |
+ CPDFXFA_Document(std::unique_ptr<CPDF_Document> pPDFDoc); |
~CPDFXFA_Document(); |
FX_BOOL LoadXFADoc(); |
@@ -38,11 +37,10 @@ class CPDFXFA_Document { |
CXFA_FFDoc* GetXFADoc() { return m_pXFADoc.get(); } |
CXFA_FFDocView* GetXFADocView() { return m_pXFADocView; } |
int GetDocType() const { return m_iDocType; } |
+ CPDFXFA_App* GetApp(); // Creates if needed. |
CPDFSDK_FormFillEnvironment* GetFormFillEnv() const { return m_pFormFillEnv; } |
- void SetFormFillEnv(CPDFSDK_FormFillEnvironment* pFormFillEnv) { |
- m_pFormFillEnv = pFormFillEnv; |
- } |
+ void SetFormFillEnv(CPDFSDK_FormFillEnvironment* pFormFillEnv); |
void DeletePage(int page_index); |
int GetPageCount() const; |
@@ -68,13 +66,7 @@ class CPDFXFA_Document { |
CFX_ArrayTemplate<CPDFXFA_Page*>* GetXFAPageList() { return &m_XFAPageList; } |
private: |
- void CloseXFADoc(CXFA_FFDocHandler* pDoc) { |
- if (pDoc) { |
- m_pXFADoc->CloseDoc(); |
- m_pXFADoc.reset(); |
- m_pXFADocView = nullptr; |
- } |
- } |
+ void CloseXFADoc(CXFA_FFDocHandler* pDoc); |
int m_iDocType; |
@@ -82,7 +74,7 @@ class CPDFXFA_Document { |
std::unique_ptr<CXFA_FFDoc> m_pXFADoc; |
CPDFSDK_FormFillEnvironment* m_pFormFillEnv; // not owned. |
CXFA_FFDocView* m_pXFADocView; // not owned. |
- CPDFXFA_App* const m_pApp; |
+ std::unique_ptr<CPDFXFA_App> m_pApp; |
CFX_ArrayTemplate<CPDFXFA_Page*> m_XFAPageList; |
LoadStatus m_nLoadStatus; |
int m_nPageCount; |