diff options
Diffstat (limited to 'fpdfsdk/fpdfxfa/cpdfxfa_app.h')
-rw-r--r-- | fpdfsdk/fpdfxfa/cpdfxfa_app.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_app.h b/fpdfsdk/fpdfxfa/cpdfxfa_app.h new file mode 100644 index 0000000000..3830dc4d4c --- /dev/null +++ b/fpdfsdk/fpdfxfa/cpdfxfa_app.h @@ -0,0 +1,79 @@ +// 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 FPDFSDK_FPDFXFA_CPDFXFA_APP_H_ +#define FPDFSDK_FPDFXFA_CPDFXFA_APP_H_ + +#include "xfa/fxfa/fxfa.h" + +class CPDFSDK_Environment; +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(v8::Isolate* pIsolate); + CXFA_FFApp* GetXFAApp() { return m_pXFAApp.get(); } + + FX_BOOL AddFormFillEnv(CPDFSDK_Environment* pEnv); + FX_BOOL RemoveFormFillEnv(CPDFSDK_Environment* pEnv); + + FX_BOOL IsJavaScriptInitialized() const { return m_bJavaScriptInitialized; } + void SetJavaScriptInitialized(FX_BOOL bInitialized) { + m_bJavaScriptInitialized = bInitialized; + } + + v8::Isolate* GetJSERuntime() const { return m_pIsolate; } + + // 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 GetAppName(CFX_WideString& wsName) override; + + void Beep(uint32_t dwType) override; + int32_t MsgBox(const CFX_WideString& wsMessage, + const CFX_WideString& wsTitle, + uint32_t dwIconType, + uint32_t dwButtonType) override; + CFX_WideString Response(const CFX_WideString& wsQuestion, + const CFX_WideString& wsTitle, + const CFX_WideString& wsDefaultAnswer, + FX_BOOL bMark) override; + + IFX_FileRead* DownloadURL(const CFX_WideString& wsURL) override; + FX_BOOL PostRequestURL(const CFX_WideString& wsURL, + const CFX_WideString& wsData, + const CFX_WideString& wsContentType, + const CFX_WideString& wsEncode, + const CFX_WideString& wsHeader, + CFX_WideString& wsResponse) override; + FX_BOOL PutRequestURL(const CFX_WideString& wsURL, + const CFX_WideString& wsData, + const CFX_WideString& wsEncode) override; + + void LoadString(int32_t iStringID, CFX_WideString& wsString) override; + IFWL_AdapterTimerMgr* GetTimerMgr() override; + + CFX_ArrayTemplate<CPDFSDK_Environment*> m_pEnvList; + + protected: + FX_BOOL m_bJavaScriptInitialized; + std::unique_ptr<CXFA_FFApp> m_pXFAApp; + v8::Isolate* m_pIsolate; + CFX_WideString m_csAppType; +}; + +#endif // FPDFSDK_FPDFXFA_CPDFXFA_APP_H_ |