summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page/cpdf_page.h
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 /core/fpdfapi/page/cpdf_page.h
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 'core/fpdfapi/page/cpdf_page.h')
-rw-r--r--core/fpdfapi/page/cpdf_page.h38
1 files changed, 18 insertions, 20 deletions
diff --git a/core/fpdfapi/page/cpdf_page.h b/core/fpdfapi/page/cpdf_page.h
index 1d0186181a..44bb6d8798 100644
--- a/core/fpdfapi/page/cpdf_page.h
+++ b/core/fpdfapi/page/cpdf_page.h
@@ -10,6 +10,7 @@
#include <memory>
#include "core/fpdfapi/page/cpdf_pageobjectholder.h"
+#include "core/fpdfapi/page/ipdf_page.h"
#include "core/fxcrt/fx_coordinates.h"
#include "core/fxcrt/fx_system.h"
#include "core/fxcrt/retain_ptr.h"
@@ -22,45 +23,43 @@ class CPDF_Object;
class CPDF_PageRenderCache;
class CPDF_PageRenderContext;
-class CPDF_Page : public Retainable, public CPDF_PageObjectHolder {
+class CPDF_Page : public IPDF_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.
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;
+
// CPDF_PageObjectHolder:
bool IsPage() const override;
void ParseContent();
-
- 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;
-
- float GetPageWidth() const { return m_PageSize.width; }
- float GetPageHeight() const { return m_PageSize.height; }
const CFX_SizeF& GetPageSize() const { return m_PageSize; }
-
int GetPageRotation() const;
CPDF_PageRenderCache* GetRenderCache() const { return m_pPageRender.get(); }
-
CPDF_PageRenderContext* GetRenderContext() const {
return m_pRenderContext.get();
}
void SetRenderContext(std::unique_ptr<CPDF_PageRenderContext> pContext);
-
CPDF_Document* GetPDFDocument() const { return m_pPDFDocument.Get(); }
View* GetView() const { return m_pView.Get(); }
void SetView(View* pView) { m_pView = pView; }
- Extension* GetPageExtension() const { return m_pPageExtension.Get(); }
- void SetPageExtension(Extension* pExt) { m_pPageExtension = pExt; }
private:
CPDF_Page(CPDF_Document* pDocument,
@@ -74,7 +73,6 @@ class CPDF_Page : public Retainable, public CPDF_PageObjectHolder {
CFX_SizeF m_PageSize;
CFX_Matrix m_PageMatrix;
UnownedPtr<CPDF_Document> m_pPDFDocument;
- UnownedPtr<Extension> m_pPageExtension;
std::unique_ptr<CPDF_PageRenderCache> m_pPageRender;
std::unique_ptr<CPDF_PageRenderContext> m_pRenderContext;
UnownedPtr<View> m_pView;