14d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Copyright 2016 PDFium Authors. All rights reserved. 24d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 34d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// found in the LICENSE file. 44d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 54d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 64d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 74d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#ifndef FPDFSDK_CPDFSDK_FORMFILLENVIRONMENT_H_ 84d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#define FPDFSDK_CPDFSDK_FORMFILLENVIRONMENT_H_ 94d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include <map> 114d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include <memory> 124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include <vector> 134d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fpdfapi/page/cpdf_page.h" 154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fpdfapi/parser/cpdf_document.h" 164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fpdfdoc/cpdf_occontext.h" 174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fxcrt/cfx_observable.h" 184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "fpdfsdk/cfx_systemhandler.h" 194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "fpdfsdk/cpdfsdk_annot.h" 204d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "fpdfsdk/fsdk_define.h" 214d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "public/fpdf_formfill.h" 224d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "public/fpdf_fwlevent.h" 234d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 244d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CFFL_InteractiveFormFiller; 254d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CFX_SystemHandler; 264d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CPDFSDK_ActionHandler; 274d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CPDFSDK_AnnotHandlerMgr; 284d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CPDFSDK_InterForm; 294d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CPDFSDK_PageView; 304d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass IJS_Runtime; 314d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 324d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CPDFSDK_FormFillEnvironment 334d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann : public CFX_Observable<CPDFSDK_FormFillEnvironment> { 344d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann public: 354d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDFSDK_FormFillEnvironment(UnderlyingDocumentType* pDoc, 364d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_FORMFILLINFO* pFFinfo); 374d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann ~CPDFSDK_FormFillEnvironment(); 384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDFSDK_PageView* GetPageView(UnderlyingPageType* pPage, bool renew); 404d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDFSDK_PageView* GetPageView(int nIndex); 414d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDFSDK_PageView* GetCurrentView(); 424d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void RemovePageView(UnderlyingPageType* pPage); 434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void UpdateAllViews(CPDFSDK_PageView* pSender, CPDFSDK_Annot* pAnnot); 444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDFSDK_Annot* GetFocusAnnot() { return m_pFocusAnnot.Get(); } 464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool SetFocusAnnot(CPDFSDK_Annot::ObservedPtr* pAnnot); 474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool KillFocusAnnot(uint32_t nFlag); 484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void ClearAllFocusedAnnots(); 494d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 504d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool ExtractPages(const std::vector<uint16_t>& arrExtraPages, 514d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDF_Document* pDstDoc); 524d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool InsertPages(int nInsertAt, 534d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const CPDF_Document* pSrcDoc, 544d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const std::vector<uint16_t>& arrSrcPages); 554d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool ReplacePages(int nPage, 564d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const CPDF_Document* pSrcDoc, 574d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const std::vector<uint16_t>& arrSrcPages); 584d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 594d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int GetPageCount() { return m_pUnderlyingDoc->GetPageCount(); } 604d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetPermissions(int nFlag); 614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 624d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool GetChangeMark() const { return m_bChangeMask; } 634d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SetChangeMark() { m_bChangeMask = true; } 644d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void ClearChangeMark() { m_bChangeMask = false; } 654d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 664d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann UnderlyingPageType* GetPage(int nIndex); 674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void ProcJavascriptFun(); 694d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool ProcOpenAction(); 704d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 7133357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann void Invalidate(FPDF_PAGE page, const FX_RECT& rect); 7233357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann void OutputSelectedRect(FPDF_PAGE page, const CFX_FloatRect& rect); 734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 744d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SetCursor(int nCursorType); 754d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int SetTimer(int uElapse, TimerCallback lpTimerFunc); 764d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void KillTimer(int nTimerID); 774d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FX_SYSTEMTIME GetLocalTime() const; 784d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 794d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void OnChange(); 804d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsSHIFTKeyDown(uint32_t nFlag) const; 814d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsCTRLKeyDown(uint32_t nFlag) const; 824d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsALTKeyDown(uint32_t nFlag) const; 834d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 844d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_PAGE GetPage(FPDF_DOCUMENT document, int nPageIndex); 854d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_PAGE GetCurrentPage(FPDF_DOCUMENT document); 864d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 874d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void ExecuteNamedAction(const FX_CHAR* namedAction); 884d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void OnSetFieldInputFocus(FPDF_WIDESTRING focusText, 894d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_DWORD nTextLen, 904d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bFocus); 914d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void DoURIAction(const FX_CHAR* bsURI); 924d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void DoGoToAction(int nPageIndex, 934d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int zoomMode, 944d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann float* fPosArray, 954d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int sizeOfArray); 964d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 974d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann UnderlyingDocumentType* GetUnderlyingDocument() const { 984d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann return m_pUnderlyingDoc; 994d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann } 1004d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1014d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#ifdef PDF_ENABLE_XFA 1024d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDF_Document* GetPDFDocument() const { 1034d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann return m_pUnderlyingDoc ? m_pUnderlyingDoc->GetPDFDoc() : nullptr; 1044d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann } 1054d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1064d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDFXFA_Context* GetXFAContext() const { return m_pUnderlyingDoc; } 1074d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void ResetXFADocument() { m_pUnderlyingDoc = nullptr; } 1084d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1094d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int GetPageViewCount() const { return m_PageMap.size(); } 1104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1114d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void DisplayCaret(FPDF_PAGE page, 1124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_BOOL bVisible, 1134d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann double left, 1144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann double top, 1154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann double right, 1164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann double bottom); 1174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int GetCurrentPageIndex(FPDF_DOCUMENT document); 1184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SetCurrentPage(FPDF_DOCUMENT document, int iCurPage); 1194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1204d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // TODO(dsinclair): This should probably change to PDFium? 1214d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_WideString FFI_GetAppName() const { return CFX_WideString(L"Acrobat"); } 1224d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1234d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_WideString GetPlatform(); 1244d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void GotoURL(FPDF_DOCUMENT document, const CFX_WideStringC& wsURL); 1254d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void GetPageViewRect(FPDF_PAGE page, FS_RECTF& dstRect); 1264d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool PopupMenu(FPDF_PAGE page, 1274d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_WIDGET hWidget, 1284d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int menuFlag, 1294d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_PointF pt); 1304d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1314d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void Alert(FPDF_WIDESTRING Msg, FPDF_WIDESTRING Title, int Type, int Icon); 1324d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void EmailTo(FPDF_FILEHANDLER* fileHandler, 1334d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_WIDESTRING pTo, 1344d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_WIDESTRING pSubject, 1354d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_WIDESTRING pCC, 1364d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_WIDESTRING pBcc, 1374d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_WIDESTRING pMsg); 1384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void UploadTo(FPDF_FILEHANDLER* fileHandler, 1394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int fileFlag, 1404d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_WIDESTRING uploadTo); 1414d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_FILEHANDLER* OpenFile(int fileType, 1424d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_WIDESTRING wsURL, 1434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const char* mode); 1444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_RetainPtr<IFX_SeekableReadStream> DownloadFromURL(const FX_WCHAR* url); 1454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_WideString PostRequestURL(const FX_WCHAR* wsURL, 1464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* wsData, 1474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* wsContentType, 1484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* wsEncode, 1494d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* wsHeader); 1504d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_BOOL PutRequestURL(const FX_WCHAR* wsURL, 1514d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* wsData, 1524d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* wsEncode); 1534d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_WideString GetLanguage(); 1544d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1554d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void PageEvent(int iPageCount, uint32_t dwEventType) const; 1564d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#else // PDF_ENABLE_XFA 1574d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDF_Document* GetPDFDocument() const { return m_pUnderlyingDoc; } 1584d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif // PDF_ENABLE_XFA 1594d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1604d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int JS_appAlert(const FX_WCHAR* Msg, 1614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* Title, 1624d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann uint32_t Type, 1634d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann uint32_t Icon); 1644d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int JS_appResponse(const FX_WCHAR* Question, 1654d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* Title, 1664d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* Default, 1674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* cLabel, 1684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_BOOL bPassword, 1694d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void* response, 1704d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int length); 1714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void JS_appBeep(int nType); 1724d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_WideString JS_fieldBrowse(); 1734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_WideString JS_docGetFilePath(); 1744d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void JS_docSubmitForm(void* formData, int length, const FX_WCHAR* URL); 1754d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void JS_docmailForm(void* mailData, 1764d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int length, 1774d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_BOOL bUI, 1784d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* To, 1794d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* Subject, 1804d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* CC, 1814d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* BCC, 1824d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const FX_WCHAR* Msg); 1834d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void JS_docprint(FPDF_BOOL bUI, 1844d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int nStart, 1854d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int nEnd, 1864d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_BOOL bSilent, 1874d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_BOOL bShrinkToFit, 1884d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_BOOL bPrintAsImage, 1894d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_BOOL bReverse, 1904d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_BOOL bAnnotations); 1914d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void JS_docgotoPage(int nPageNum); 1924d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1934d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsJSInitiated() const { return m_pInfo && m_pInfo->m_pJsPlatform; } 1944d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_ByteString GetAppName() const { return ""; } 1954d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_SystemHandler* GetSysHandler() const { return m_pSysHandler.get(); } 1964d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_FORMFILLINFO* GetFormFillInfo() const { return m_pInfo; } 1974d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1984d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // Creates if not present. 1994d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFFL_InteractiveFormFiller* GetInteractiveFormFiller(); 2004d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDFSDK_AnnotHandlerMgr* GetAnnotHandlerMgr(); // Creates if not present. 2014d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann IJS_Runtime* GetJSRuntime(); // Creates if not present. 2024d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDFSDK_ActionHandler* GetActionHander(); // Creates if not present. 2034d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDFSDK_InterForm* GetInterForm(); // Creates if not present. 2044d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 2054d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann private: 2064d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann std::unique_ptr<CPDFSDK_AnnotHandlerMgr> m_pAnnotHandlerMgr; 2074d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann std::unique_ptr<CPDFSDK_ActionHandler> m_pActionHandler; 2084d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann std::unique_ptr<IJS_Runtime> m_pJSRuntime; 2094d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann FPDF_FORMFILLINFO* const m_pInfo; 2104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann std::map<UnderlyingPageType*, std::unique_ptr<CPDFSDK_PageView>> m_PageMap; 2114d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann std::unique_ptr<CPDFSDK_InterForm> m_pInterForm; 2124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDFSDK_Annot::ObservedPtr m_pFocusAnnot; 2134d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann UnderlyingDocumentType* m_pUnderlyingDoc; 2144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann std::unique_ptr<CFFL_InteractiveFormFiller> m_pFormFiller; 2154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann std::unique_ptr<CFX_SystemHandler> m_pSysHandler; 2164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool m_bChangeMask; 2174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool m_bBeingDestroyed; 2184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}; 2194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 2204d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif // FPDFSDK_CPDFSDK_FORMFILLENVIRONMENT_H_ 221