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