// Copyright 2014 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com #ifndef FPDFXFA_APP_H_ #define FPDFXFA_APP_H_ #include "xfa/include/fxfa/fxfa.h" class IFXJS_Runtime; class CPDFXFA_App : public IXFA_AppProvider { public: static CPDFXFA_App* GetInstance(); static void ReleaseInstance(); CPDFXFA_App(); ~CPDFXFA_App() override; FX_BOOL Initialize(FXJSE_HRUNTIME hRuntime); IXFA_App* GetXFAApp() { return m_pXFAApp; } FX_BOOL AddFormFillEnv(CPDFDoc_Environment* pEnv); FX_BOOL RemoveFormFillEnv(CPDFDoc_Environment* pEnv); FX_BOOL IsJavaScriptInitialized() const { return m_bJavaScriptInitialized; } void SetJavaScriptInitialized(FX_BOOL bInitialized) { m_bJavaScriptInitialized = bInitialized; } FXJSE_HRUNTIME GetJSERuntime() const { return m_hJSERuntime; } // IFXA_AppProvider: void GetAppType(CFX_WideString& wsAppType) override; void SetAppType(const CFX_WideStringC& wsAppType) override; void GetLanguage(CFX_WideString& wsLanguage) override; void GetPlatform(CFX_WideString& wsPlatform) override; void GetVariation(CFX_WideString& wsVariation) override; void GetVersion(CFX_WideString& wsVersion) override; void GetFoxitVersion(CFX_WideString& wsFoxitVersion) override { wsFoxitVersion = L"7.0"; } void GetAppName(CFX_WideString& wsName) override; void GetFoxitAppName(CFX_WideString& wsFoxitName) override { wsFoxitName = L"Foxit"; } void Beep(FX_DWORD dwType) override; int32_t MsgBox(const CFX_WideStringC& wsMessage, const CFX_WideStringC& wsTitle, FX_DWORD dwIconType, FX_DWORD dwButtonType) override; void Response(CFX_WideString& wsAnswer, const CFX_WideStringC& wsQuestion, const CFX_WideStringC& wsTitle, const CFX_WideStringC& wsDefaultAnswer, FX_BOOL bMark) override; int32_t GetDocumentCountInBatch() override; int32_t GetCurDocumentInBatch() override; IFX_FileRead* DownloadURL(const CFX_WideStringC& wsURL) override; FX_BOOL PostRequestURL(const CFX_WideStringC& wsURL, const CFX_WideStringC& wsData, const CFX_WideStringC& wsContentType, const CFX_WideStringC& wsEncode, const CFX_WideStringC& wsHeader, CFX_WideString& wsResponse) override; FX_BOOL PutRequestURL(const CFX_WideStringC& wsURL, const CFX_WideStringC& wsData, const CFX_WideStringC& wsEncode) override; void LoadString(int32_t iStringID, CFX_WideString& wsString) override; FX_BOOL ShowFileDialog(const CFX_WideStringC& wsTitle, const CFX_WideStringC& wsFilter, CFX_WideStringArray& wsPathArr, FX_BOOL bOpen) override; IFWL_AdapterTimerMgr* GetTimerMgr() override; CFX_ArrayTemplate m_pEnvList; protected: static CPDFXFA_App* g_pApp; FX_BOOL m_bJavaScriptInitialized; IXFA_App* m_pXFAApp; IXFA_FontMgr* m_pFontMgr; FXJSE_HRUNTIME m_hJSERuntime; IFXJS_Runtime* m_pJSRuntime; CFX_WideString m_csAppType; bool m_bOwnedRuntime; }; #endif // FPDFXFA_APP_H_