1ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved. 2ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 3ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// found in the LICENSE file. 4ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 5ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 7ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#ifndef FPDFXFA_APP_H_ 8ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FPDFXFA_APP_H_ 9ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 10ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "xfa/include/fxfa/fxfa.h" 11ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 12ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass IFXJS_Runtime; 13ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 14ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDFXFA_App : public IXFA_AppProvider { 15ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 16ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann static CPDFXFA_App* GetInstance(); 17ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann static void ReleaseInstance(); 18ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 19ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFXFA_App(); 20ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ~CPDFXFA_App() override; 21ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 22ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL Initialize(); 23ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_App* GetXFAApp() { return m_pXFAApp; } 24ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 25ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL AddFormFillEnv(CPDFDoc_Environment* pEnv); 26ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL RemoveFormFillEnv(CPDFDoc_Environment* pEnv); 27ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 28ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL IsJavaScriptInitialized() const { return m_bJavaScriptInitialized; } 29ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void SetJavaScriptInitialized(FX_BOOL bInitialized) { 30ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_bJavaScriptInitialized = bInitialized; 31ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 32ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 33ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FXJSE_HRUNTIME GetJSERuntime() const { return m_hJSERuntime; } 34ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 35ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // IFXA_AppProvider: 36ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetAppType(CFX_WideString& wsAppType) override; 37ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void SetAppType(const CFX_WideStringC& wsAppType) override; 38ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 39ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetLanguage(CFX_WideString& wsLanguage) override; 40ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetPlatform(CFX_WideString& wsPlatform) override; 41ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetVariation(CFX_WideString& wsVariation) override; 42ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetVersion(CFX_WideString& wsVersion) override; 43ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetFoxitVersion(CFX_WideString& wsFoxitVersion) override { 44ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann wsFoxitVersion = L"7.0"; 45ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 46ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 47ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetAppName(CFX_WideString& wsName) override; 48ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetFoxitAppName(CFX_WideString& wsFoxitName) override { 49ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann wsFoxitName = L"Foxit"; 50ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 51ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 52ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void Beep(FX_DWORD dwType) override; 53ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t MsgBox(const CFX_WideStringC& wsMessage, 54ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& wsTitle, 55ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD dwIconType, 56ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD dwButtonType) override; 57ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void Response(CFX_WideString& wsAnswer, 58ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& wsQuestion, 59ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& wsTitle, 60ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& wsDefaultAnswer, 61ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bMark) override; 62ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 63ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t GetDocumentCountInBatch() override; 64ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t GetCurDocumentInBatch() override; 65ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 66ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IFX_FileRead* DownloadURL(const CFX_WideStringC& wsURL) override; 67ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL PostRequestURL(const CFX_WideStringC& wsURL, 68ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& wsData, 69ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& wsContentType, 70ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& wsEncode, 71ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& wsHeader, 72ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString& wsResponse) override; 73ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL PutRequestURL(const CFX_WideStringC& wsURL, 74ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& wsData, 75ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& wsEncode) override; 76ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 77ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void LoadString(int32_t iStringID, CFX_WideString& wsString) override; 78ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL ShowFileDialog(const CFX_WideStringC& wsTitle, 79ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& wsFilter, 80ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideStringArray& wsPathArr, 81ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bOpen) override; 82ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IFWL_AdapterTimerMgr* GetTimerMgr() override; 83ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 84ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ArrayTemplate<CPDFDoc_Environment*> m_pEnvList; 85ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 86ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 87ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann static CPDFXFA_App* g_pApp; 88ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 89ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL m_bJavaScriptInitialized; 90ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_App* m_pXFAApp; 91ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_FontMgr* m_pFontMgr; 92ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FXJSE_HRUNTIME m_hJSERuntime; 93ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IFXJS_Runtime* m_pJSRuntime; 94ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString m_csAppType; 95ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann}; 96ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 97ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#endif // FPDFXFA_APP_H_ 98