// 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_ | |
class CPDFXFA_App; | |
class IFXJS_Runtime; | |
class CJS_RuntimeFactory; | |
class CPDFXFA_App : public IXFA_AppProvider | |
{ | |
public: | |
CPDFXFA_App(); | |
~CPDFXFA_App(); | |
FX_BOOL Initialize(); | |
IXFA_App* GetXFAApp() { return m_pXFAApp; } | |
/*CPDFDoc_Environment*GetFormFillEnv(){ return m_pEnv; }*/ | |
FX_BOOL AddFormFillEnv(CPDFDoc_Environment* pEnv); | |
FX_BOOL RemoveFormFillEnv(CPDFDoc_Environment* pEnv); | |
FXJSE_HRUNTIME GetJSERuntime() { return m_hJSERuntime; } | |
void ReleaseRuntime(); | |
FX_BOOL InitRuntime(FX_BOOL bReset = FALSE) { | |
if (bReset) { | |
m_bInitRuntime = FALSE; | |
return TRUE; | |
} | |
if (m_bInitRuntime) | |
return TRUE; | |
m_bInitRuntime = TRUE; | |
return FALSE; | |
} | |
//IFXJS_Runtime* GetJSRuntime(); | |
CJS_RuntimeFactory* GetRuntimeFactory() {return m_pJSRuntimeFactory;} | |
public: | |
/** | |
*Specifies the name of the client application in which a form currently exists. Such as Exchange-Pro. | |
*/ | |
virtual void GetAppType(CFX_WideString &wsAppType); | |
virtual void SetAppType(FX_WSTR wsAppType) ; | |
virtual void SetFoxitAppType(FX_WSTR wsFoxitAppType) { return; } | |
virtual void GetFoxitAppType(CFX_WideString &wsFoxitAppType) { return; } | |
virtual void GetFoxitAppName(CFX_WideString& wsFoxitName) {wsFoxitName = L"Foxit";} | |
virtual void GetFoxitVersion(CFX_WideString &wsFoxitVersion) {wsFoxitVersion = L"7.0";} | |
/** | |
*Returns the language of the running host application. Such as zh_CN | |
*/ | |
virtual void GetLanguage(CFX_WideString &wsLanguage); | |
/** | |
*Returns the platform of the machine running the script. Such as WIN | |
*/ | |
virtual void GetPlatform(CFX_WideString &wsPlatform); | |
/** | |
* Indicates the packaging of the application that is running the script. Such as Full | |
*/ | |
virtual void GetVariation(CFX_WideString &wsVariation); | |
/** | |
* Indicates the version number of the current application. Such as 9 | |
*/ | |
virtual void GetVersion(CFX_WideString &wsVersion); | |
//Get application name, such as Phantom | |
virtual void GetAppName(CFX_WideString& wsName); | |
/** | |
*Causes the system to play a sound. | |
* @param[in] dwType The system code for the appropriate sound.0 (Error)1 (Warning)2 (Question)3 (Status)4 (Default) | |
*/ | |
virtual void Beep(FX_DWORD dwType); | |
/** | |
* Displays a message box. | |
* @param[in] dwIconType Icon type, refer to XFA_MBICON. | |
* @param[in] dwButtonType Button type, refer to XFA_MESSAGEBUTTON. | |
* @return A valid integer representing the value of the button pressed by the user, refer to XFA_ID. | |
*/ | |
virtual FX_INT32 MsgBox(FX_WSTR wsMessage, FX_WSTR wsTitle = FX_WSTRC(L""), FX_DWORD dwIconType = 0, FX_DWORD dwButtonType = 0); | |
//bMark True (default) Masks the user¡¯s answer with * (asterisks). False Does not mask the user¡¯s answer. | |
virtual void Response(CFX_WideString &wsAnswer, FX_WSTR wsQuestion, FX_WSTR wsTitle = FX_WSTRC(L""), FX_WSTR wsDefaultAnswer = FX_WSTRC(L""), FX_BOOL bMark = TRUE); | |
virtual FX_INT32 GetDocumentCountInBatch(); | |
virtual FX_INT32 GetCurDocumentInBatch(); | |
//wsURL http, ftp, such as "http://www.w3.org/TR/REC-xml-names/". | |
virtual IFX_FileRead* DownloadURL(FX_WSTR wsURL); | |
/* | |
* Post data to the given url. | |
* @param[in] wsURL the URL being uploaded. | |
* @param[in] wsData the data being uploaded. | |
* @param[in] wsContentType the content type of data including text/html, text/xml, text/plain, multipart/form-data, | |
* application/x-www-form-urlencoded, application/octet-stream, any valid MIME type. | |
* @param[in] wsEncode the encode of data including UTF-8, UTF-16, ISO8859-1, any recognized [IANA]character encoding | |
* @param[in] wsHeader any additional HTTP headers to be included in the post. | |
* @param[out] wsResponse decoded response from server. | |
* @return TRUE Server permitted the post request, FALSE otherwise. | |
*/ | |
virtual FX_BOOL PostRequestURL(FX_WSTR wsURL, FX_WSTR wsData, FX_WSTR wsContentType, | |
FX_WSTR wsEncode, FX_WSTR wsHeader, CFX_WideString &wsResponse); | |
/* | |
* Put data to the given url. | |
* @param[in] wsURL the URL being uploaded. | |
* @param[in] wsData the data being uploaded. | |
* @param[in] wsEncode the encode of data including UTF-8, UTF-16, ISO8859-1, any recognized [IANA]character encoding | |
* @return TRUE Server permitted the post request, FALSE otherwise. | |
*/ | |
virtual FX_BOOL PutRequestURL(FX_WSTR wsURL, FX_WSTR wsData, FX_WSTR wsEncode); | |
virtual void LoadString(FX_INT32 iStringID, CFX_WideString &wsString); | |
virtual FX_BOOL ShowFileDialog(FX_WSTR wsTitle, FX_WSTR wsFilter, CFX_WideStringArray &wsPathArr, FX_BOOL bOpen = TRUE); | |
virtual IFWL_AdapterTimerMgr* GetTimerMgr(); | |
CFX_ArrayTemplate<CPDFDoc_Environment*> m_pEnvList; | |
public: | |
static CPDFXFA_App* m_pApp; | |
private: | |
IXFA_App* m_pXFAApp; | |
IXFA_FontMgr* m_pFontMgr; | |
FXJSE_HRUNTIME m_hJSERuntime; | |
IFXJS_Runtime* m_pJSRuntime; | |
CJS_RuntimeFactory* m_pJSRuntimeFactory; | |
CFX_WideString m_csAppType; | |
FX_BOOL m_bInitRuntime; | |
}; | |
CPDFXFA_App* FPDFXFA_GetApp(); | |
void FPDFXFA_ReleaseApp(); | |
#endif |