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