DLLEXPORT FPDF_FORMHANDLE STDCALL FPDFDOC_InitFormFillEnvironment(FPDF_DOCUMENT document, FPDF_FORMFILLINFO* formInfo) { #ifdef PDF_ENABLE_XFA const int kRequiredVersion = 2; #else // PDF_ENABLE_XFA const int kRequiredVersion = 1; #endif // PDF_ENABLE_XFA if (!formInfo || formInfo->version != kRequiredVersion) return nullptr; UnderlyingDocumentType* pDocument = UnderlyingFromFPDFDocument(document); if (!pDocument) return nullptr; CPDFDoc_Environment* pEnv = new CPDFDoc_Environment(pDocument, formInfo); #ifdef PDF_ENABLE_XFA pEnv->SetSDKDocument(pDocument->GetSDKDocument(pEnv)); CPDFXFA_App* pApp = CPDFXFA_App::GetInstance(); pApp->AddFormFillEnv(pEnv); #else // PDF_ENABLE_XFA pEnv->SetSDKDocument(new CPDFSDK_Document(pDocument, pEnv)); #endif // PDF_ENABLE_XFA return pEnv; }
FX_BOOL Document::mailForm(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError) { ASSERT(m_pDocument != NULL); if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) return FALSE; int iLength = params.size(); FX_BOOL bUI = iLength > 0 ? params[0].ToBool() : TRUE; CFX_WideString cTo = iLength > 1 ? params[1].ToCFXWideString() : L""; CFX_WideString cCc = iLength > 2 ? params[2].ToCFXWideString() : L""; CFX_WideString cBcc = iLength > 3 ? params[3].ToCFXWideString() : L""; CFX_WideString cSubject = iLength > 4 ? params[4].ToCFXWideString() : L""; CFX_WideString cMsg = iLength > 5 ? params[5].ToCFXWideString() : L""; CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)m_pDocument->GetInterForm(); ASSERT(pInterForm != NULL); CFX_ByteTextBuf textBuf; if (!pInterForm->ExportFormToFDFTextBuf(textBuf)) return FALSE; CJS_Context* pContext = (CJS_Context*)cc; ASSERT(pContext != NULL); CPDFDoc_Environment* pEnv = pContext->GetReaderApp(); ASSERT(pEnv != NULL); CJS_Runtime* pRuntime = pContext->GetJSRuntime(); ASSERT(pRuntime != NULL); pRuntime->BeginBlock(); pEnv->JS_docmailForm(textBuf.GetBuffer(), textBuf.GetLength(), bUI, cTo.c_str(), cSubject.c_str(), cCc.c_str(), cBcc.c_str(), cMsg.c_str()); pRuntime->EndBlock(); return TRUE; }
FX_BOOL CPDFSDK_PageView::OnMouseMove(const CPDF_Point& point, int nFlag) { CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); if (CPDFSDK_Annot* pFXAnnot = GetFXWidgetAtPoint(point.x, point.y)) { if (m_CaptureWidget && m_CaptureWidget != pFXAnnot) { m_bExitWidget = TRUE; m_bEnterWidget = FALSE; pAnnotHandlerMgr->Annot_OnMouseExit(this, m_CaptureWidget, nFlag); } m_CaptureWidget = (CPDFSDK_Widget*)pFXAnnot; m_bOnWidget = TRUE; if (!m_bEnterWidget) { m_bEnterWidget = TRUE; m_bExitWidget = FALSE; pAnnotHandlerMgr->Annot_OnMouseEnter(this, pFXAnnot, nFlag); } pAnnotHandlerMgr->Annot_OnMouseMove(this, pFXAnnot, nFlag, point); return TRUE; } if (m_bOnWidget) { m_bOnWidget = FALSE; m_bExitWidget = TRUE; m_bEnterWidget = FALSE; if (m_CaptureWidget) { pAnnotHandlerMgr->Annot_OnMouseExit(this, m_CaptureWidget, nFlag); m_CaptureWidget = NULL; } } return FALSE; }
FX_BOOL Document::pageNum(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { ASSERT(m_pDocument != NULL); if (vp.IsGetting()) { if (CPDFSDK_PageView* pPageView = m_pDocument->GetCurrentView()) { vp << pPageView->GetPageIndex(); } } else { int iPageCount = m_pDocument->GetPageCount(); int iPageNum = 0; vp >> iPageNum; CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); if (iPageNum >= 0 && iPageNum < iPageCount) { pEnv->JS_docgotoPage(iPageNum); } else if (iPageNum >= iPageCount) { pEnv->JS_docgotoPage(iPageCount-1); } else if (iPageNum < 0) { pEnv->JS_docgotoPage(0); } } return TRUE; }
FX_BOOL app::activeDocs(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { if (!vp.IsGetting()) return FALSE; CJS_Context* pContext = (CJS_Context *)cc; CPDFDoc_Environment* pApp = pContext->GetReaderApp(); CJS_Runtime* pRuntime = pContext->GetJSRuntime(); CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument(); CJS_Array aDocs(pRuntime->GetIsolate()); if (CPDFSDK_Document* pDoc = pApp->GetSDKDocument()) { CJS_Document* pJSDocument = NULL; if (pDoc == pCurDoc) { JSFXObject pObj = JS_GetThisObj(*pRuntime); if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"Document")) pJSDocument = (CJS_Document*)JS_GetPrivate(pRuntime->GetIsolate(),pObj); } else { JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID(*pRuntime,L"Document")); pJSDocument = (CJS_Document*)JS_GetPrivate(pRuntime->GetIsolate(),pObj); ASSERT(pJSDocument != NULL); } aDocs.SetElement(0,CJS_Value(pRuntime->GetIsolate(),pJSDocument)); } if (aDocs.GetLength() > 0) vp << aDocs; else vp.SetNull(); return TRUE; }
IFX_FileRead* CPDFXFA_App::DownloadURL(const CFX_WideStringC& wsURL) { CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0); if (pEnv) { return pEnv->FFI_DownloadFromURL(wsURL.GetPtr()); } return NULL; }
void CPDFSDK_ActionHandler::DoAction_GoTo(CPDFSDK_Document* pDocument, const CPDF_Action& action) { ASSERT(action); CPDF_Document* pPDFDocument = pDocument->GetPDFDocument(); ASSERT(pPDFDocument); CPDF_Dest MyDest = action.GetDest(pPDFDocument); int nPageIndex = MyDest.GetPageIndex(pPDFDocument); int nFitType = MyDest.GetZoomMode(); const CPDF_Array* pMyArray = ToArray(MyDest.GetObject()); float* pPosAry = nullptr; int sizeOfAry = 0; if (pMyArray) { pPosAry = new float[pMyArray->GetCount()]; int j = 0; for (int i = 2; i < (int)pMyArray->GetCount(); i++) { pPosAry[j++] = pMyArray->GetFloat(i); } sizeOfAry = j; } CPDFDoc_Environment* pApp = pDocument->GetEnv(); pApp->FFI_DoGoToAction(nPageIndex, nFitType, pPosAry, sizeOfAry); delete[] pPosAry; }
int32_t CPDFXFA_App::GetCurDocumentInBatch() { CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0); if (pEnv) { return pEnv->FFI_GetCurDocument(); } return 0; }
FX_BOOL CPDFSDK_ActionHandler::ExecuteDocumentPageAction( const CPDF_Action& action, CPDF_AAction::AActionType type, CPDFSDK_Document* pDocument, std::set<CPDF_Dictionary*>* visited) { CPDF_Dictionary* pDict = action.GetDict(); if (pdfium::ContainsKey(*visited, pDict)) return FALSE; visited->insert(pDict); CPDFDoc_Environment* pEnv = pDocument->GetEnv(); ASSERT(pEnv); if (action.GetType() == CPDF_Action::JavaScript) { if (pEnv->IsJSInitiated()) { CFX_WideString swJS = action.GetJavaScript(); if (!swJS.IsEmpty()) { RunDocumentPageJavaScript(pDocument, type, swJS); } } } else { DoAction_NoJs(action, pDocument); } if (!IsValidDocView(pDocument)) return FALSE; for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) { CPDF_Action subaction = action.GetSubAction(i); if (!ExecuteDocumentPageAction(subaction, type, pDocument, visited)) return FALSE; } return TRUE; }
void CPDFSDK_ActionHandler::DoAction_GoTo(CPDFSDK_Document* pDocument, /*CReader_DocView* pDocView,*/ const CPDF_Action& action) { ASSERT(pDocument != NULL); // ASSERT(pDocView != NULL); ASSERT(action != NULL); CPDF_Document* pPDFDocument = pDocument->GetDocument(); ASSERT(pPDFDocument != NULL); CPDFDoc_Environment* pApp = pDocument->GetEnv(); ASSERT(pApp != NULL); CPDF_Dest MyDest = action.GetDest(pPDFDocument); int nPageIndex = MyDest.GetPageIndex(pPDFDocument); int nFitType = MyDest.GetZoomMode(); const CPDF_Array * pMyArray = (CPDF_Array*)MyDest.m_pObj; float* pPosAry = NULL; int sizeOfAry = 0; if (pMyArray != NULL) { pPosAry = new float[pMyArray->GetCount()]; int j = 0; for (int i = 2; i < (int)pMyArray->GetCount(); i++) { pPosAry[j++] = pMyArray->GetFloat(i); } sizeOfAry = j; } pApp->FFI_DoGoToAction(nPageIndex, nFitType, pPosAry, sizeOfAry); if(pPosAry) delete[] pPosAry; }
FX_BOOL app::calculate(OBJ_PROP_PARAMS) { if (vp.IsSetting()) { bool bVP; vp >> bVP; m_bCalculate = (FX_BOOL)bVP; CJS_Context* pContext = (CJS_Context*)cc; ASSERT(pContext != NULL); CPDFDoc_Environment* pApp = pContext->GetReaderApp(); ASSERT(pApp != NULL); CJS_Runtime* pRuntime = pContext->GetJSRuntime(); ASSERT(pRuntime != NULL); CJS_Array aDocs(pRuntime->GetIsolate()); // int iNumDocs = pApp->CountDocuments(); // // for (int iIndex = 0;iIndex < iNumDocs; iIndex++) // { if (CPDFSDK_Document* pDoc = pApp->GetCurrentDoc()) { CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDoc->GetInterForm(); ASSERT(pInterForm != NULL); pInterForm->EnableCalculate((FX_BOOL)m_bCalculate); } // } }
void CPDFSDK_PageView::LoadFXAnnots() { CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); FX_BOOL enableAPUpdate = CPDF_InterForm::UpdatingAPEnabled(); //Disable the default AP construction. CPDF_InterForm::EnableUpdateAP(FALSE); m_pAnnotList = new CPDF_AnnotList(m_page); CPDF_InterForm::EnableUpdateAP(enableAPUpdate); int nCount = m_pAnnotList->Count(); SetLock(TRUE); for(int i=0; i<nCount; i++) { CPDF_Annot* pPDFAnnot = m_pAnnotList->GetAt(i); CPDF_Document * pDoc = GetPDFDocument(); CheckUnSupportAnnot(pDoc, pPDFAnnot); CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); ASSERT(pAnnotHandlerMgr != NULL); if(pAnnotHandlerMgr) { CPDFSDK_Annot* pAnnot = pAnnotHandlerMgr->NewAnnot(pPDFAnnot, this); if(!pAnnot) continue; m_fxAnnotArray.Add(pAnnot); pAnnotHandlerMgr->Annot_OnLoad(pAnnot); } } SetLock(FALSE); }
CPDFSDK_PageView::~CPDFSDK_PageView() { CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); int nAnnotCount = m_fxAnnotArray.GetSize(); for (int i=0; i<nAnnotCount; i++) { CPDFSDK_Annot* pAnnot = (CPDFSDK_Annot*)m_fxAnnotArray.GetAt(i); //if there is a focused annot on the page, we should kill the focus first. if(pAnnot == m_pSDKDoc->GetFocusAnnot()) KillFocusAnnot(); CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); ASSERT(pAnnotHandlerMgr); pAnnotHandlerMgr->ReleaseAnnot(pAnnot); } m_fxAnnotArray.RemoveAll(); delete m_pAnnotList; m_pAnnotList = NULL; m_page->RemovePrivateData((void*)m_page); if(m_bTakeOverPage) { delete m_page; } }
CPDFSDK_Annot* CPDFSDK_PageView::AddAnnot(CPDF_Annot * pPDFAnnot) { CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); ASSERT(pEnv); CPDFSDK_AnnotHandlerMgr * pAnnotHandler= pEnv->GetAnnotHandlerMgr(); CPDFSDK_Annot* pSDKAnnot =NULL; if(pAnnotHandler) { pSDKAnnot = pAnnotHandler->NewAnnot(pPDFAnnot, this); } if(!pSDKAnnot) return NULL; m_fxAnnotArray.Add(pSDKAnnot); if(pAnnotHandler) { pAnnotHandler->Annot_OnCreate(pSDKAnnot); } return pSDKAnnot; }
void CPDFSDK_PageView::UpdateView(CPDFSDK_Annot* pAnnot) { CPDF_Rect rcWindow = pAnnot->GetRect(); CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); pEnv->FFI_Invalidate( m_page, rcWindow.left, rcWindow.top, rcWindow.right, rcWindow.bottom); }
void CPDFSDK_PageView::UpdateRects(CFX_RectArray& rects) { for (int i = 0; i < rects.GetSize(); i++) { CPDF_Rect rc = rects.GetAt(i); CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); pEnv->FFI_Invalidate(m_page, rc.left, rc.top, rc.right, rc.bottom); } }
FX_BOOL CPDFSDK_ActionHandler::ExecuteDocumentOpenAction( const CPDF_Action& action, CPDFSDK_Document* pDocument, CFX_PtrList& list) { CPDF_Dictionary* pDict = action.GetDict(); if (list.Find(pDict)) return FALSE; list.AddTail(pDict); CPDFDoc_Environment* pEnv = pDocument->GetEnv(); ASSERT(pEnv); if (action.GetType() == CPDF_Action::JavaScript) { if (pEnv->IsJSInitiated()) { CFX_WideString swJS = action.GetJavaScript(); if (!swJS.IsEmpty()) { RunDocumentOpenJavaScript(pDocument, L"", swJS); } } } else { DoAction_NoJs(action, pDocument); } for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) { CPDF_Action subaction = action.GetSubAction(i); if (!ExecuteDocumentOpenAction(subaction, pDocument, list)) return FALSE; } return TRUE; }
DLLEXPORT void STDCALL FORM_DoPageAAction(FPDF_PAGE page, FPDF_FORMHANDLE hHandle, int aaType) { if (!hHandle) return; CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetSDKDocument(); UnderlyingPageType* pPage = UnderlyingFromFPDFPage(page); CPDF_Page* pPDFPage = CPDFPageFromFPDFPage(page); if (!pPDFPage) return; if (pSDKDoc->GetPageView(pPage, FALSE)) { CPDFDoc_Environment* pEnv = pSDKDoc->GetEnv(); CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander(); CPDF_Dictionary* pPageDict = pPDFPage->m_pFormDict; CPDF_AAction aa(pPageDict->GetDictBy("AA")); if (FPDFPAGE_AACTION_OPEN == aaType) { if (aa.ActionExist(CPDF_AAction::OpenPage)) { CPDF_Action action = aa.GetAction(CPDF_AAction::OpenPage); pActionHandler->DoAction_Page(action, CPDF_AAction::OpenPage, pSDKDoc); } } else { if (aa.ActionExist(CPDF_AAction::ClosePage)) { CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage); pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, pSDKDoc); } } } }
void CPDFSDK_ActionHandler::DoAction_URI(CPDFSDK_Document* pDocument, const CPDF_Action& action) { ASSERT(action); CPDFDoc_Environment* pApp = pDocument->GetEnv(); CFX_ByteString sURI = action.GetURI(pDocument->GetPDFDocument()); pApp->FFI_DoURIAction(sURI.c_str()); }
FX_BOOL CPDFSDK_PageView::OnKeyDown(int nKeyCode, int nFlag) { if (CPDFSDK_Annot* pAnnot = GetFocusAnnot()) { CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); return pAnnotHandlerMgr->Annot_OnKeyDown(pAnnot, nKeyCode, nFlag); } return FALSE; }
FX_BOOL CPDFXFA_App::PutRequestURL(const CFX_WideString& wsURL, const CFX_WideString& wsData, const CFX_WideString& wsEncode) { CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0); return pEnv && pEnv->FFI_PutRequestURL(wsURL.c_str(), wsData.c_str(), wsEncode.c_str()); }
void CJS_Object::Alert(CJS_Context* pContext, const FX_WCHAR* swMsg) { ASSERT(pContext != NULL); if (pContext->IsMsgBoxEnabled()) { CPDFDoc_Environment* pApp = pContext->GetReaderApp(); if (pApp) pApp->JS_appAlert(swMsg, NULL, 0, 3); } }
FX_BOOL CPDFSDK_PageView::OnChar(int nChar, FX_UINT nFlag) { if (CPDFSDK_Annot* pAnnot = GetFocusAnnot()) { CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); return pAnnotHandlerMgr->Annot_OnChar(pAnnot, nChar, nFlag); } return FALSE; }
FX_BOOL app::activeDocs(OBJ_PROP_PARAMS) { if (vp.IsGetting()) { CJS_Context* pContext = (CJS_Context *)cc; ASSERT(pContext != NULL); CPDFDoc_Environment* pApp = pContext->GetReaderApp(); ASSERT(pApp != NULL); CJS_Runtime* pRuntime = pContext->GetJSRuntime(); ASSERT(pRuntime != NULL); CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument(); CJS_Array aDocs(pRuntime->GetIsolate()); // int iNumDocs = pApp->CountDocuments(); // for(int iIndex = 0; iIndex<iNumDocs; iIndex++) // { CPDFSDK_Document* pDoc = pApp->GetCurrentDoc(); if (pDoc) { CJS_Document * pJSDocument = NULL; if (pDoc == pCurDoc) { JSFXObject pObj = JS_GetThisObj(*pRuntime); if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"Document")) { pJSDocument = (CJS_Document*)JS_GetPrivate(pRuntime->GetIsolate(),pObj); } } else { JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDefnID(*pRuntime,L"Document")); pJSDocument = (CJS_Document*)JS_GetPrivate(pRuntime->GetIsolate(),pObj); ASSERT(pJSDocument != NULL); // pDocument->AttachDoc(pDoc); } aDocs.SetElement(0,CJS_Value(pRuntime->GetIsolate(),pJSDocument)); } // } if (aDocs.GetLength() > 0) vp << aDocs; else vp.SetNull(); return TRUE; } return FALSE; }
FX_BOOL CPDFXFA_App::PutRequestURL(const CFX_WideStringC& wsURL, const CFX_WideStringC& wsData, const CFX_WideStringC& wsEncode) { CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0); if (pEnv) { return pEnv->FFI_PutRequestURL(wsURL.GetPtr(), wsData.GetPtr(), wsEncode.GetPtr()); } return FALSE; }
FX_BOOL CPDFSDK_ActionHandler::ExecuteBookMark(const CPDF_Action& action, CPDFSDK_Document* pDocument, /*CReader_DocView* pDocView,*/ CPDF_Bookmark* pBookmark, CFX_PtrList& list) { ASSERT(pDocument != NULL); if (list.Find((CPDF_Dictionary*)action)) return FALSE; list.AddTail((CPDF_Dictionary*)action); CPDFDoc_Environment* pEnv = pDocument->GetEnv(); ASSERT(pEnv); if (action.GetType() == CPDF_Action::JavaScript) { if(pEnv->IsJSInitiated()) { CFX_WideString swJS = action.GetJavaScript(); if (!swJS.IsEmpty()) { IFXJS_Runtime* pRuntime = pDocument->GetJsRuntime(); ASSERT(pRuntime != NULL); pRuntime->SetReaderDocument(pDocument); IFXJS_Context* pContext = pRuntime->NewContext(); ASSERT(pContext != NULL); pContext->OnBookmark_MouseUp(pBookmark); CFX_WideString csInfo; FX_BOOL bRet = pContext->RunScript(swJS, csInfo); if (!bRet) { //CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo); } pRuntime->ReleaseContext(pContext); } } } else { DoAction_NoJs(action, pDocument/*, pDocView*/); } // if (!IsValidDocView(pDocument, pDocView)) // return FALSE; for (FX_INT32 i=0,sz=action.GetSubActionsCount(); i<sz; i++) { CPDF_Action subaction = action.GetSubAction(i); if (!ExecuteBookMark(subaction, pDocument,/* pDocView,*/ pBookmark, list)) return FALSE; } return TRUE; }
void CPDFSDK_ActionHandler::DoAction_URI(CPDFSDK_Document* pDocument, const CPDF_Action& action) { ASSERT(pDocument != NULL); ASSERT(action != NULL); CPDFDoc_Environment* pApp = pDocument->GetEnv(); ASSERT(pApp != NULL); CFX_ByteString sURI = action.GetURI(pDocument->GetDocument()); pApp->FFI_DoURIAction(FX_LPCSTR(sURI)); }
void CPDFSDK_PageView::PageView_OnDraw(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, CPDF_RenderOptions* pOptions) { m_curMatrix = *pUser2Device; CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); CPDFSDK_AnnotIterator annotIterator(this, true); while (CPDFSDK_Annot* pSDKAnnot = annotIterator.Next()) { CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); pAnnotHandlerMgr->Annot_OnDraw(this, pSDKAnnot, pDevice, pUser2Device, 0); } }
FX_BOOL CPDFSDK_PageView::OnMouseWheel(double deltaX, double deltaY,const CPDF_Point& point, int nFlag) { if(CPDFSDK_Annot* pAnnot = GetFXWidgetAtPoint(point.x, point.y)) { CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = pEnv->GetAnnotHandlerMgr(); ASSERT(pAnnotHandlerMgr); return pAnnotHandlerMgr->Annot_OnMouseWheel(this, pAnnot, nFlag, (int)deltaY, point); } return FALSE; }
CPDFSDK_Annot* CPDFSDK_PageView::AddAnnot(CPDF_Annot* pPDFAnnot) { CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); ASSERT(pEnv); CPDFSDK_AnnotHandlerMgr* pAnnotHandler = pEnv->GetAnnotHandlerMgr(); CPDFSDK_Annot* pSDKAnnot = pAnnotHandler->NewAnnot(pPDFAnnot, this); if (!pSDKAnnot) return nullptr; m_fxAnnotArray.push_back(pSDKAnnot); pAnnotHandler->Annot_OnCreate(pSDKAnnot); return pSDKAnnot; }