summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/page')
-rw-r--r--core/fpdfapi/page/cpdf_page.cpp4
-rw-r--r--core/fpdfapi/page/cpdf_page.h8
2 files changed, 11 insertions, 1 deletions
diff --git a/core/fpdfapi/page/cpdf_page.cpp b/core/fpdfapi/page/cpdf_page.cpp
index d679766273..eee6673650 100644
--- a/core/fpdfapi/page/cpdf_page.cpp
+++ b/core/fpdfapi/page/cpdf_page.cpp
@@ -22,7 +22,9 @@
CPDF_Page::CPDF_Page(CPDF_Document* pDocument,
CPDF_Dictionary* pPageDict,
bool bPageCache)
- : CPDF_PageObjectHolder(pDocument, pPageDict), m_PageSize(100, 100) {
+ : CPDF_PageObjectHolder(pDocument, pPageDict),
+ m_PageSize(100, 100),
+ m_pPDFDocument(pDocument) {
if (bPageCache)
m_pPageRender = pdfium::MakeUnique<CPDF_PageRenderCache>(this);
if (!pPageDict)
diff --git a/core/fpdfapi/page/cpdf_page.h b/core/fpdfapi/page/cpdf_page.h
index 0f401ea9b9..4e8172db17 100644
--- a/core/fpdfapi/page/cpdf_page.h
+++ b/core/fpdfapi/page/cpdf_page.h
@@ -12,6 +12,8 @@
#include "core/fpdfapi/page/cpdf_pageobjectholder.h"
#include "core/fxcrt/fx_coordinates.h"
#include "core/fxcrt/fx_system.h"
+#include "core/fxcrt/retain_ptr.h"
+#include "core/fxcrt/unowned_ptr.h"
#include "third_party/base/optional.h"
class CPDF_Dictionary;
@@ -23,6 +25,7 @@ class CPDF_PageRenderContext;
class CPDF_Page : public CPDF_PageObjectHolder {
public:
class View {}; // Caller implements as desired, empty here due to layering.
+ class Extension : public Retainable {}; // XFA page parent class, layering.
CPDF_Page(CPDF_Document* pDocument,
CPDF_Dictionary* pPageDict,
@@ -56,8 +59,11 @@ class CPDF_Page : public CPDF_PageObjectHolder {
}
void SetRenderContext(std::unique_ptr<CPDF_PageRenderContext> pContext);
+ void* GetPDFDocument() const { return m_pPDFDocument.Get(); }
View* GetView() const { return m_pView; }
void SetView(View* pView) { m_pView = pView; }
+ Extension* GetPageExtension() const { return m_pPageExtension.Get(); }
+ void SetPageExtension(Extension* pExt) { m_pPageExtension = pExt; }
private:
void StartParse();
@@ -68,6 +74,8 @@ class CPDF_Page : public CPDF_PageObjectHolder {
CFX_SizeF m_PageSize;
CFX_Matrix m_PageMatrix;
View* m_pView = nullptr;
+ UnownedPtr<Extension> m_pPageExtension;
+ UnownedPtr<CPDF_Document> m_pPDFDocument;
std::unique_ptr<CPDF_PageRenderCache> m_pPageRender;
std::unique_ptr<CPDF_PageRenderContext> m_pRenderContext;
};