summaryrefslogtreecommitdiff
path: root/fpdfsdk/fpdfxfa
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2018-06-12 13:36:05 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-06-12 13:36:05 +0000
commit101535f463dda5766f99b66f383672d5898556fe (patch)
tree04ca2226b850756c67dd29444545f4b91682835c /fpdfsdk/fpdfxfa
parent755b0e5f71518488456e7cffc64fd7ba89692e68 (diff)
downloadpdfium-101535f463dda5766f99b66f383672d5898556fe.tar.xz
Rework "Make common page base class."
Re-landing of https://pdfium-review.googlesource.com/c/pdfium/+/32892 This time, however, we do not build on the previous CL which cached pages. This CL by itself should be OK but was reverted only because it was blocking earlier reverts. Change-Id: I067d5f07373eeac6cced5d0c113ea40e5f8dcd15 Reviewed-on: https://pdfium-review.googlesource.com/34910 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
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);