summaryrefslogtreecommitdiff
path: root/fpdfsdk/fpdfxfa
diff options
context:
space:
mode:
Diffstat (limited to 'fpdfsdk/fpdfxfa')
-rw-r--r--fpdfsdk/fpdfxfa/cpdfxfa_page.cpp12
-rw-r--r--fpdfsdk/fpdfxfa/cpdfxfa_page.h35
2 files changed, 30 insertions, 17 deletions
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp
index 7e2dedaf45..e4618e3bbe 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp
@@ -22,6 +22,18 @@ CPDFXFA_Page::CPDFXFA_Page(CPDFXFA_Context* pContext, int page_index)
CPDFXFA_Page::~CPDFXFA_Page() {}
+CPDF_Page* CPDFXFA_Page::AsPDFPage() {
+ return m_pPDFPage.Get();
+}
+
+CPDFXFA_Page* CPDFXFA_Page::AsXFAPage() {
+ return this;
+}
+
+CPDF_Document* CPDFXFA_Page::GetDocument() const {
+ return GetDocumentExtension()->GetPDFDoc();
+}
+
bool CPDFXFA_Page::LoadPDFPage() {
if (!m_pContext)
return false;
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_page.h b/fpdfsdk/fpdfxfa/cpdfxfa_page.h
index 2573b9cebd..b660869e68 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_page.h
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_page.h
@@ -10,6 +10,7 @@
#include <memory>
#include "core/fpdfapi/page/cpdf_page.h"
+#include "core/fpdfapi/page/ipdf_page.h"
#include "core/fpdfapi/parser/cpdf_document.h"
#include "core/fxcrt/fx_coordinates.h"
#include "core/fxcrt/fx_system.h"
@@ -21,36 +22,36 @@ class CPDF_Dictionary;
class CPDFXFA_Context;
class CXFA_FFPageView;
-class CPDFXFA_Page : public CPDF_Page::Extension {
+class CPDFXFA_Page : public IPDF_Page {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
+ // IPDF_Page:
+ CPDF_Page* AsPDFPage() override;
+ CPDFXFA_Page* AsXFAPage() override;
+ CPDF_Document* GetDocument() const override;
+ float GetPageWidth() const override;
+ float GetPageHeight() const override;
+ CFX_Matrix GetDisplayMatrix(const FX_RECT& rect, int iRotate) const override;
+ Optional<CFX_PointF> DeviceToPage(
+ const FX_RECT& rect,
+ int rotate,
+ const CFX_PointF& device_point) const override;
+ Optional<CFX_PointF> PageToDevice(
+ const FX_RECT& rect,
+ int rotate,
+ const CFX_PointF& page_point) const override;
+
bool LoadPage();
bool LoadPDFPage(CPDF_Dictionary* pageDict);
-
CPDF_Document::Extension* GetDocumentExtension() const;
-
int GetPageIndex() const { return m_iPageIndex; }
- CPDF_Page* GetPDFPage() const { return m_pPDFPage.Get(); }
CXFA_FFPageView* GetXFAPageView() const { return m_pXFAPageView; }
-
void SetXFAPageView(CXFA_FFPageView* pPageView) {
m_pXFAPageView = pPageView;
}
- float GetPageWidth() const;
- float GetPageHeight() const;
-
- Optional<CFX_PointF> DeviceToPage(const FX_RECT& rect,
- int rotate,
- const CFX_PointF& device_point) const;
- Optional<CFX_PointF> PageToDevice(const FX_RECT& rect,
- int rotate,
- const CFX_PointF& page_point) const;
-
- CFX_Matrix GetDisplayMatrix(const FX_RECT& rect, int iRotate) const;
-
protected:
// Refcounted class.
CPDFXFA_Page(CPDFXFA_Context* pContext, int page_index);