Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Unified Diff: fpdfsdk/src/fsdk_mgr.cpp

Issue 1473503002: Introduce "underlying types" to abstract XFA differences. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: rebase past Jun's CL. Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: fpdfsdk/src/fsdk_mgr.cpp
diff --git a/fpdfsdk/src/fsdk_mgr.cpp b/fpdfsdk/src/fsdk_mgr.cpp
index aac1673346c801cc8815ce2acca833290675fefe..69432a4af10d10b5c3f7e5f3416455d1173d0344 100644
--- a/fpdfsdk/src/fsdk_mgr.cpp
+++ b/fpdfsdk/src/fsdk_mgr.cpp
@@ -95,12 +95,9 @@ void CFX_SystemHandler::SetCursor(int32_t nCursorType) {
}
void CFX_SystemHandler::InvalidateRect(FX_HWND hWnd, FX_RECT rect) {
- // g_pFormFillApp->FFI_Invalidate();
CPDFSDK_Annot* pSDKAnnot = (CPDFSDK_Annot*)hWnd;
- CPDFXFA_Page* pPage = NULL;
- CPDFSDK_PageView* pPageView = NULL;
- pPageView = pSDKAnnot->GetPageView();
- pPage = pSDKAnnot->GetPDFXFAPage();
+ CPDFSDK_PageView* pPageView = pSDKAnnot->GetPageView();
+ UnderlyingPageType* pPage = pSDKAnnot->GetUnderlyingPage();
if (!pPage || !pPageView)
return;
CPDF_Matrix page2device;
@@ -124,10 +121,8 @@ void CFX_SystemHandler::OutputSelectedRect(void* pFormFiller, CPDF_Rect& rect) {
CPDF_Point righttop = CPDF_Point(rect.right, rect.top);
CPDF_Point ptA = pFFL->PWLtoFFL(leftbottom);
CPDF_Point ptB = pFFL->PWLtoFFL(righttop);
-
CPDFSDK_Annot* pAnnot = pFFL->GetSDKAnnot();
- ASSERT(pAnnot);
- CPDFXFA_Page* pPage = pAnnot->GetPDFXFAPage();
+ UnderlyingPageType* pPage = pAnnot->GetUnderlyingPage();
ASSERT(pPage);
m_pEnv->FFI_OutputSelectedRect(pPage, ptA.x, ptB.y, ptB.x, ptA.y);
}
@@ -210,9 +205,9 @@ FX_SYSTEMTIME CFX_SystemHandler::GetLocalTime() {
return m_pEnv->FFI_GetLocalTime();
}
-CPDFDoc_Environment::CPDFDoc_Environment(CPDFXFA_Document* pDoc,
+CPDFDoc_Environment::CPDFDoc_Environment(UnderlyingDocumentType* pDoc,
FPDF_FORMFILLINFO* pFFinfo)
- : m_pInfo(pFFinfo), m_pSDKDoc(NULL), m_pXFADoc(pDoc) {
+ : m_pInfo(pFFinfo), m_pSDKDoc(NULL), m_pUnderlyingDoc(pDoc) {
m_pSysHandler.reset(new CFX_SystemHandler(this));
}
@@ -390,14 +385,13 @@ CFFL_IFormFiller* CPDFDoc_Environment::GetIFormFiller() {
return m_pIFormFiller.get();
}
-CPDFSDK_Document::CPDFSDK_Document(CPDFXFA_Document* pDoc,
+CPDFSDK_Document::CPDFSDK_Document(UnderlyingDocumentType* pDoc,
CPDFDoc_Environment* pEnv)
: m_pDoc(pDoc),
m_pFocusAnnot(nullptr),
m_pEnv(pEnv),
m_bChangeMask(FALSE),
- m_bBeingDestroyed(FALSE) {
-}
+ m_bBeingDestroyed(FALSE) {}
CPDFSDK_Document::~CPDFSDK_Document() {
m_bBeingDestroyed = TRUE;
@@ -410,29 +404,32 @@ CPDFSDK_Document::~CPDFSDK_Document() {
m_pageMap.clear();
}
-CPDFSDK_PageView* CPDFSDK_Document::GetPageView(CPDFXFA_Page* pPDFXFAPage,
- FX_BOOL ReNew) {
- auto it = m_pageMap.find(pPDFXFAPage);
+CPDFSDK_PageView* CPDFSDK_Document::GetPageView(
+ UnderlyingPageType* pUnderlyingPage,
+ FX_BOOL ReNew) {
+ auto it = m_pageMap.find(pUnderlyingPage);
if (it != m_pageMap.end())
return it->second;
if (!ReNew)
return nullptr;
- CPDFSDK_PageView* pPageView = new CPDFSDK_PageView(this, pPDFXFAPage);
- m_pageMap[pPDFXFAPage] = pPageView;
+ CPDFSDK_PageView* pPageView = new CPDFSDK_PageView(this, pUnderlyingPage);
+ m_pageMap[pUnderlyingPage] = pPageView;
// Delay to load all the annotations, to avoid endless loop.
pPageView->LoadFXAnnots();
return pPageView;
}
CPDFSDK_PageView* CPDFSDK_Document::GetCurrentView() {
- CPDFXFA_Page* pPage = (CPDFXFA_Page*)m_pEnv->FFI_GetCurrentPage(m_pDoc);
+ UnderlyingPageType* pPage =
+ UnderlyingFromFPDFPage(m_pEnv->FFI_GetCurrentPage(m_pDoc));
return pPage ? GetPageView(pPage, TRUE) : nullptr;
}
CPDFSDK_PageView* CPDFSDK_Document::GetPageView(int nIndex) {
- CPDFXFA_Page* pTempPage = (CPDFXFA_Page*)m_pEnv->FFI_GetPage(m_pDoc, nIndex);
+ UnderlyingPageType* pTempPage =
+ UnderlyingFromFPDFPage(m_pEnv->FFI_GetPage(m_pDoc, nIndex));
if (!pTempPage)
return nullptr;
@@ -441,8 +438,8 @@ CPDFSDK_PageView* CPDFSDK_Document::GetPageView(int nIndex) {
}
void CPDFSDK_Document::ProcJavascriptFun() {
- CPDFXFA_Document* pPDFDoc = GetDocument();
- CPDF_DocJSActions docJS(pPDFDoc->GetPDFDoc());
+ CPDF_Document* pPDFDoc = GetPDFDocument();
+ CPDF_DocJSActions docJS(pPDFDoc);
int iCount = docJS.CountJSActions();
if (iCount < 1)
return;
@@ -459,7 +456,7 @@ FX_BOOL CPDFSDK_Document::ProcOpenAction() {
if (!m_pDoc)
return FALSE;
- CPDF_Dictionary* pRoot = m_pDoc->GetPDFDoc()->GetRoot();
+ CPDF_Dictionary* pRoot = GetPDFDocument()->GetRoot();
if (!pRoot)
return FALSE;
@@ -484,12 +481,12 @@ FX_BOOL CPDFSDK_Document::ProcOpenAction() {
CPDF_OCContext* CPDFSDK_Document::GetOCContext() {
if (!m_pOccontent)
- m_pOccontent.reset(new CPDF_OCContext(m_pDoc->GetPDFDoc()));
+ m_pOccontent.reset(new CPDF_OCContext(GetPDFDocument()));
return m_pOccontent.get();
}
-void CPDFSDK_Document::ReMovePageView(CPDFXFA_Page* pPDFXFAPage) {
- auto it = m_pageMap.find(pPDFXFAPage);
+void CPDFSDK_Document::RemovePageView(UnderlyingPageType* pUnderlyingPage) {
+ auto it = m_pageMap.find(pUnderlyingPage);
if (it == m_pageMap.end())
return;
@@ -502,11 +499,8 @@ void CPDFSDK_Document::ReMovePageView(CPDFXFA_Page* pPDFXFAPage) {
m_pageMap.erase(it);
}
-CPDFXFA_Page* CPDFSDK_Document::GetPage(int nIndex) {
- CPDFXFA_Page* pTempPage = (CPDFXFA_Page*)m_pEnv->FFI_GetPage(m_pDoc, nIndex);
- if (!pTempPage)
- return NULL;
- return pTempPage;
+UnderlyingPageType* CPDFSDK_Document::GetPage(int nIndex) {
+ return UnderlyingFromFPDFPage(m_pEnv->FFI_GetPage(m_pDoc, nIndex));
}
CPDFSDK_InterForm* CPDFSDK_Document::GetInterForm() {
@@ -590,21 +584,6 @@ FX_BOOL CPDFSDK_Document::KillFocusAnnot(FX_UINT nFlag) {
return FALSE;
}
-FX_BOOL CPDFSDK_Document::DeletePages(int nStart, int nCount) {
- if (nStart < 0 || nStart >= GetPageCount() || nCount <= 0) {
- return FALSE;
- }
-
- CPDFXFA_Page* pTempPage = NULL;
- for (int i = nCount - 1; i >= 0; i--) {
- pTempPage = GetPage(nStart + i);
- if (pTempPage != NULL) {
- ReMovePageView(pTempPage);
- }
- }
- return TRUE;
-}
-
void CPDFSDK_Document::OnCloseDocument() {
KillFocusAnnot();
}
@@ -1011,7 +990,7 @@ void CPDFSDK_PageView::LoadFXAnnots() {
SetLock(TRUE);
m_page->AddRef();
- if (m_pSDKDoc->GetDocument()->GetDocType() == DOCTYPE_DYNIMIC_XFA) {
+ if (m_pSDKDoc->GetXFADocument()->GetDocType() == DOCTYPE_DYNIMIC_XFA) {
IXFA_PageView* pageView = NULL;
pageView = m_page->GetXFAPageView();
ASSERT(pageView != NULL);
@@ -1081,9 +1060,9 @@ void CPDFSDK_PageView::UpdateView(CPDFSDK_Annot* pAnnot) {
int CPDFSDK_PageView::GetPageIndex() {
if (m_page) {
CPDF_Dictionary* pDic = m_page->GetPDFPage()->m_pFormDict;
- CPDFXFA_Document* pDoc = m_pSDKDoc->GetDocument();
+ CPDF_Document* pDoc = m_pSDKDoc->GetPDFDocument();
if (pDoc && pDic) {
- return pDoc->GetPDFDoc()->GetPageIndex(pDic->GetObjNum());
+ return pDoc->GetPageIndex(pDic->GetObjNum());
}
}
return -1;

Powered by Google App Engine
This is Rietveld 408576698