Index: fpdfsdk/cpdfsdk_pageview.cpp |
diff --git a/fpdfsdk/cpdfsdk_pageview.cpp b/fpdfsdk/cpdfsdk_pageview.cpp |
index c1424ece98b34e9b5d2f6d3e55bc1a64c40945fe..a5c60d6f68503da2c24737e2437691b4d064848f 100644 |
--- a/fpdfsdk/cpdfsdk_pageview.cpp |
+++ b/fpdfsdk/cpdfsdk_pageview.cpp |
@@ -29,10 +29,10 @@ |
#include "xfa/fxgraphics/cfx_graphics.h" |
#endif // PDF_ENABLE_XFA |
-CPDFSDK_PageView::CPDFSDK_PageView(CPDFSDK_Document* pSDKDoc, |
+CPDFSDK_PageView::CPDFSDK_PageView(CPDFSDK_FormFillEnvironment* pFormFillEnv, |
UnderlyingPageType* page) |
: m_page(page), |
- m_pSDKDoc(pSDKDoc), |
+ m_pFormFillEnv(pFormFillEnv), |
#ifndef PDF_ENABLE_XFA |
m_bOwnsPage(false), |
#endif // PDF_ENABLE_XFA |
@@ -42,7 +42,8 @@ CPDFSDK_PageView::CPDFSDK_PageView(CPDFSDK_Document* pSDKDoc, |
m_bValid(FALSE), |
m_bLocked(FALSE), |
m_bBeingDestroyed(false) { |
- CPDFSDK_InterForm* pInterForm = pSDKDoc->GetInterForm(); |
+ CPDFSDK_InterForm* pInterForm = |
+ pFormFillEnv->GetSDKDocument()->GetInterForm(); |
if (pInterForm) { |
CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm(); |
#ifdef PDF_ENABLE_XFA |
@@ -65,8 +66,8 @@ CPDFSDK_PageView::~CPDFSDK_PageView() { |
m_page->SetView(nullptr); |
#endif // PDF_ENABLE_XFA |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = |
+ m_pFormFillEnv->GetAnnotHandlerMgr(); |
for (CPDFSDK_Annot* pAnnot : m_SDKAnnotArray) |
pAnnotHandlerMgr->ReleaseAnnot(pAnnot); |
@@ -88,7 +89,6 @@ void CPDFSDK_PageView::PageView_OnDraw(CFX_RenderDevice* pDevice, |
CPDF_RenderOptions* pOptions) { |
#endif // PDF_ENABLE_XFA |
m_curMatrix = *pUser2Device; |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
#ifdef PDF_ENABLE_XFA |
CPDFXFA_Page* pPage = GetPDFXFAPage(); |
@@ -127,7 +127,8 @@ void CPDFSDK_PageView::PageView_OnDraw(CFX_RenderDevice* pDevice, |
// for pdf/static xfa. |
CPDFSDK_AnnotIterator annotIterator(this, true); |
while (CPDFSDK_Annot* pSDKAnnot = annotIterator.Next()) { |
- CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = |
+ m_pFormFillEnv->GetAnnotHandlerMgr(); |
pAnnotHandlerMgr->Annot_OnDraw(this, pSDKAnnot, pDevice, pUser2Device, |
pOptions->m_bDrawAnnots); |
} |
@@ -135,8 +136,7 @@ void CPDFSDK_PageView::PageView_OnDraw(CFX_RenderDevice* pDevice, |
CPDFSDK_Annot* CPDFSDK_PageView::GetFXAnnotAtPoint(FX_FLOAT pageX, |
FX_FLOAT pageY) { |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- CPDFSDK_AnnotHandlerMgr* pAnnotMgr = pEnv->GetAnnotHandlerMgr(); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotMgr = m_pFormFillEnv->GetAnnotHandlerMgr(); |
CPDFSDK_AnnotIterator annotIterator(this, false); |
while (CPDFSDK_Annot* pSDKAnnot = annotIterator.Next()) { |
CFX_FloatRect rc = pAnnotMgr->Annot_OnGetViewBBox(this, pSDKAnnot); |
@@ -151,8 +151,7 @@ CPDFSDK_Annot* CPDFSDK_PageView::GetFXAnnotAtPoint(FX_FLOAT pageX, |
CPDFSDK_Annot* CPDFSDK_PageView::GetFXWidgetAtPoint(FX_FLOAT pageX, |
FX_FLOAT pageY) { |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- CPDFSDK_AnnotHandlerMgr* pAnnotMgr = pEnv->GetAnnotHandlerMgr(); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotMgr = m_pFormFillEnv->GetAnnotHandlerMgr(); |
CPDFSDK_AnnotIterator annotIterator(this, false); |
while (CPDFSDK_Annot* pSDKAnnot = annotIterator.Next()) { |
bool bHitTest = pSDKAnnot->GetAnnotSubtype() == CPDF_Annot::Subtype::WIDGET; |
@@ -180,8 +179,7 @@ CPDFSDK_Annot* CPDFSDK_PageView::AddAnnot(CXFA_FFWidget* pPDFAnnot) { |
if (pSDKAnnot) |
return pSDKAnnot; |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- CPDFSDK_AnnotHandlerMgr* pAnnotHandler = pEnv->GetAnnotHandlerMgr(); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotHandler = m_pFormFillEnv->GetAnnotHandlerMgr(); |
pSDKAnnot = pAnnotHandler->NewAnnot(pPDFAnnot, this); |
if (!pSDKAnnot) |
return nullptr; |
@@ -199,9 +197,8 @@ FX_BOOL CPDFSDK_PageView::DeleteAnnot(CPDFSDK_Annot* pAnnot) { |
return FALSE; |
if (GetFocusAnnot() == pAnnot) |
- m_pSDKDoc->KillFocusAnnot(0); |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- CPDFSDK_AnnotHandlerMgr* pAnnotHandler = pEnv->GetAnnotHandlerMgr(); |
+ m_pFormFillEnv->GetSDKDocument()->KillFocusAnnot(0); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotHandler = m_pFormFillEnv->GetAnnotHandlerMgr(); |
if (pAnnotHandler) |
pAnnotHandler->ReleaseAnnot(pAnnot); |
@@ -259,19 +256,19 @@ FX_BOOL CPDFSDK_PageView::OnLButtonDown(const CFX_FloatPoint& point, |
uint32_t nFlag) { |
CPDFSDK_Annot::ObservedPtr pAnnot(GetFXWidgetAtPoint(point.x, point.y)); |
if (!pAnnot) { |
- m_pSDKDoc->KillFocusAnnot(nFlag); |
+ m_pFormFillEnv->GetSDKDocument()->KillFocusAnnot(nFlag); |
return FALSE; |
} |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = |
+ m_pFormFillEnv->GetAnnotHandlerMgr(); |
if (!pAnnotHandlerMgr->Annot_OnLButtonDown(this, &pAnnot, nFlag, point)) |
return FALSE; |
if (!pAnnot) |
return FALSE; |
- m_pSDKDoc->SetFocusAnnot(&pAnnot); |
+ m_pFormFillEnv->GetSDKDocument()->SetFocusAnnot(&pAnnot); |
return TRUE; |
} |
@@ -282,29 +279,29 @@ FX_BOOL CPDFSDK_PageView::OnRButtonDown(const CFX_FloatPoint& point, |
if (!pAnnot) |
return FALSE; |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = |
+ m_pFormFillEnv->GetAnnotHandlerMgr(); |
FX_BOOL ok = |
pAnnotHandlerMgr->Annot_OnRButtonDown(this, &pAnnot, nFlag, point); |
if (!pAnnot) |
return FALSE; |
if (ok) |
- m_pSDKDoc->SetFocusAnnot(&pAnnot); |
+ m_pFormFillEnv->GetSDKDocument()->SetFocusAnnot(&pAnnot); |
return TRUE; |
} |
FX_BOOL CPDFSDK_PageView::OnRButtonUp(const CFX_FloatPoint& point, |
uint32_t nFlag) { |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = |
+ m_pFormFillEnv->GetAnnotHandlerMgr(); |
CPDFSDK_Annot::ObservedPtr pFXAnnot(GetFXWidgetAtPoint(point.x, point.y)); |
if (!pFXAnnot) |
return FALSE; |
if (pAnnotHandlerMgr->Annot_OnRButtonUp(this, &pFXAnnot, nFlag, point)) |
- m_pSDKDoc->SetFocusAnnot(&pFXAnnot); |
+ m_pFormFillEnv->GetSDKDocument()->SetFocusAnnot(&pFXAnnot); |
return TRUE; |
} |
@@ -312,8 +309,8 @@ FX_BOOL CPDFSDK_PageView::OnRButtonUp(const CFX_FloatPoint& point, |
FX_BOOL CPDFSDK_PageView::OnLButtonUp(const CFX_FloatPoint& point, |
uint32_t nFlag) { |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = |
+ m_pFormFillEnv->GetAnnotHandlerMgr(); |
CPDFSDK_Annot::ObservedPtr pFXAnnot(GetFXWidgetAtPoint(point.x, point.y)); |
CPDFSDK_Annot::ObservedPtr pFocusAnnot(GetFocusAnnot()); |
if (pFocusAnnot && pFocusAnnot != pFXAnnot) { |
@@ -326,8 +323,8 @@ FX_BOOL CPDFSDK_PageView::OnLButtonUp(const CFX_FloatPoint& point, |
} |
FX_BOOL CPDFSDK_PageView::OnMouseMove(const CFX_FloatPoint& point, int nFlag) { |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = |
+ m_pFormFillEnv->GetAnnotHandlerMgr(); |
CPDFSDK_Annot::ObservedPtr pFXAnnot(GetFXAnnotAtPoint(point.x, point.y)); |
if (pFXAnnot) { |
if (m_pCaptureWidget && m_pCaptureWidget != pFXAnnot) { |
@@ -365,16 +362,16 @@ FX_BOOL CPDFSDK_PageView::OnMouseWheel(double deltaX, |
if (!pAnnot) |
return FALSE; |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = |
+ m_pFormFillEnv->GetAnnotHandlerMgr(); |
return pAnnotHandlerMgr->Annot_OnMouseWheel(this, &pAnnot, nFlag, (int)deltaY, |
point); |
} |
FX_BOOL CPDFSDK_PageView::OnChar(int nChar, uint32_t nFlag) { |
if (CPDFSDK_Annot* pAnnot = GetFocusAnnot()) { |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = |
+ m_pFormFillEnv->GetAnnotHandlerMgr(); |
return pAnnotHandlerMgr->Annot_OnChar(pAnnot, nChar, nFlag); |
} |
@@ -383,8 +380,8 @@ FX_BOOL CPDFSDK_PageView::OnChar(int nChar, uint32_t nFlag) { |
FX_BOOL CPDFSDK_PageView::OnKeyDown(int nKeyCode, int nFlag) { |
if (CPDFSDK_Annot* pAnnot = GetFocusAnnot()) { |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = |
+ m_pFormFillEnv->GetAnnotHandlerMgr(); |
return pAnnotHandlerMgr->Annot_OnKeyDown(pAnnot, nKeyCode, nFlag); |
} |
return FALSE; |
@@ -395,14 +392,15 @@ FX_BOOL CPDFSDK_PageView::OnKeyUp(int nKeyCode, int nFlag) { |
} |
void CPDFSDK_PageView::LoadFXAnnots() { |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); |
+ CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = |
+ m_pFormFillEnv->GetAnnotHandlerMgr(); |
SetLock(TRUE); |
#ifdef PDF_ENABLE_XFA |
CFX_RetainPtr<CPDFXFA_Page> protector(m_page); |
- if (m_pSDKDoc->GetXFADocument()->GetDocType() == DOCTYPE_DYNAMIC_XFA) { |
+ if (m_pFormFillEnv->GetSDKDocument()->GetXFADocument()->GetDocType() == |
+ DOCTYPE_DYNAMIC_XFA) { |
CXFA_FFPageView* pageView = m_page->GetXFAPageView(); |
std::unique_ptr<IXFA_WidgetIterator> pWidgetHander( |
pageView->CreateWidgetIterator( |
@@ -449,16 +447,14 @@ void CPDFSDK_PageView::LoadFXAnnots() { |
} |
void CPDFSDK_PageView::UpdateRects(const std::vector<CFX_FloatRect>& rects) { |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
for (const auto& rc : rects) |
- pEnv->Invalidate(m_page, rc.left, rc.top, rc.right, rc.bottom); |
+ m_pFormFillEnv->Invalidate(m_page, rc.left, rc.top, rc.right, rc.bottom); |
} |
void CPDFSDK_PageView::UpdateView(CPDFSDK_Annot* pAnnot) { |
CFX_FloatRect rcWindow = pAnnot->GetRect(); |
- CPDFSDK_FormFillEnvironment* pEnv = m_pSDKDoc->GetEnv(); |
- pEnv->Invalidate(m_page, rcWindow.left, rcWindow.top, rcWindow.right, |
- rcWindow.bottom); |
+ m_pFormFillEnv->Invalidate(m_page, rcWindow.left, rcWindow.top, |
+ rcWindow.right, rcWindow.bottom); |
} |
int CPDFSDK_PageView::GetPageIndex() const { |
@@ -502,12 +498,13 @@ bool CPDFSDK_PageView::IsValidSDKAnnot(const CPDFSDK_Annot* p) const { |
} |
CPDFSDK_Annot* CPDFSDK_PageView::GetFocusAnnot() { |
- CPDFSDK_Annot* pFocusAnnot = m_pSDKDoc->GetFocusAnnot(); |
+ CPDFSDK_Annot* pFocusAnnot = |
+ m_pFormFillEnv->GetSDKDocument()->GetFocusAnnot(); |
return IsValidSDKAnnot(pFocusAnnot) ? pFocusAnnot : nullptr; |
} |
int CPDFSDK_PageView::GetPageIndexForStaticPDF() const { |
CPDF_Dictionary* pDict = GetPDFPage()->m_pFormDict; |
- CPDF_Document* pDoc = m_pSDKDoc->GetPDFDocument(); |
+ CPDF_Document* pDoc = m_pFormFillEnv->GetSDKDocument()->GetPDFDocument(); |
return (pDoc && pDict) ? pDoc->GetPageIndex(pDict->GetObjNum()) : -1; |
} |