Merge to XFA: Use stdint.h types throughout PDFium.
[pdfium.git] / fpdfsdk / src / fpdfxfa / fpdfxfa_app.cpp
index 94164f1..cf5db2b 100644 (file)
@@ -1,7 +1,7 @@
 // Copyright 2014 PDFium Authors. All rights reserved.\r
 // Use of this source code is governed by a BSD-style license that can be\r
 // found in the LICENSE file.\r
\r
+\r
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
 \r
 #include "../../../public/fpdf_formfill.h"\r
 #include "../../include/jsapi/fxjs_v8.h"\r
 #include "../../include/javascript/IJavaScript.h"\r
 #include "../../include/fpdfxfa/fpdfxfa_app.h"\r
-CPDFXFA_App* CPDFXFA_App::m_pApp = NULL;\r
 \r
-CPDFXFA_App* FPDFXFA_GetApp()\r
-{\r
-       if (!CPDFXFA_App::m_pApp)\r
-               CPDFXFA_App::m_pApp = FX_NEW CPDFXFA_App();\r
+CPDFXFA_App* CPDFXFA_App::g_pApp = NULL;\r
 \r
-       return CPDFXFA_App::m_pApp;\r
+CPDFXFA_App* CPDFXFA_App::GetInstance()\r
+{\r
+    if (!g_pApp) {\r
+        g_pApp = FX_NEW CPDFXFA_App();\r
+    }\r
+    return g_pApp;\r
 }\r
 \r
-void FPDFXFA_ReleaseApp()\r
+void CPDFXFA_App::ReleaseInstance()\r
 {\r
-       if (CPDFXFA_App::m_pApp)\r
-               delete CPDFXFA_App::m_pApp;\r
-       CPDFXFA_App::m_pApp = NULL;\r
+    delete g_pApp;\r
+    g_pApp = NULL;\r
 }\r
 \r
 CJS_RuntimeFactory* g_GetJSRuntimeFactory()\r
 {\r
-       static CJS_RuntimeFactory g_JSRuntimeFactory;\r
-       return &g_JSRuntimeFactory;\r
+    static CJS_RuntimeFactory g_JSRuntimeFactory;\r
+    return &g_JSRuntimeFactory;\r
 }\r
 \r
-CPDFXFA_App::CPDFXFA_App() : \r
-       m_pXFAApp(NULL), \r
-       m_pFontMgr(NULL),\r
-       m_hJSERuntime(NULL),\r
-       //m_pJSRuntime(NULL),\r
-       //m_pEnv(NULL),\r
-       m_csAppType(JS_STR_VIEWERTYPE_STANDARD)\r
+CPDFXFA_App::CPDFXFA_App() :\r
+    m_bInitRuntime(FALSE),\r
+    m_pXFAApp(NULL),\r
+    m_pFontMgr(NULL),\r
+    m_hJSERuntime(NULL),\r
+    m_csAppType(JS_STR_VIEWERTYPE_STANDARD)\r
 {\r
-       m_pJSRuntimeFactory = NULL;\r
-       m_pJSRuntimeFactory = g_GetJSRuntimeFactory();\r
-       m_pJSRuntimeFactory->AddRef();\r
-       m_pEnvList.RemoveAll(); \r
-       m_bInitRuntime = FALSE;\r
+    m_pJSRuntimeFactory = g_GetJSRuntimeFactory();\r
+    m_pJSRuntimeFactory->AddRef();\r
+    m_pEnvList.RemoveAll();\r
 }\r
-//IFXJS_Runtime* CPDFXFA_App::GetJSRuntime()\r
-//{\r
-//     FXSYS_assert(m_pJSRuntimeFactory);\r
-//     if(!m_pJSRuntime)\r
-//             m_pJSRuntime = m_pJSRuntimeFactory->NewJSRuntime(this);\r
-//     return m_pJSRuntime;\r
-//}\r
 \r
 CPDFXFA_App::~CPDFXFA_App()\r
 {\r
-       if (m_pFontMgr)\r
-       {\r
-               m_pFontMgr->Release();\r
-               m_pFontMgr = NULL;\r
-       }\r
-\r
-       if (m_pXFAApp)\r
-       {\r
-               m_pXFAApp->Release();\r
-               m_pXFAApp = NULL;\r
-       }\r
+    delete m_pFontMgr;\r
+    m_pFontMgr = NULL;\r
 \r
-       //if (m_pJSRuntime && m_pJSRuntimeFactory)\r
-       //      m_pJSRuntimeFactory->DeleteJSRuntime(m_pJSRuntime);\r
-       m_pJSRuntimeFactory->Release();\r
+    delete m_pXFAApp;\r
+    m_pXFAApp = NULL;\r
 \r
+    m_pJSRuntimeFactory->Release();\r
+    FXJSE_Runtime_Release(m_hJSERuntime);\r
+    m_hJSERuntime = NULL;\r
 \r
-       if (m_hJSERuntime)\r
-       {\r
-               FXJSE_Runtime_Release(m_hJSERuntime);\r
-               m_hJSERuntime = NULL;\r
-       }\r
-\r
-       FXJSE_Finalize();\r
-\r
-       BC_Library_Destory();\r
+    FXJSE_Finalize();\r
+    BC_Library_Destory();\r
 }\r
 \r
 FX_BOOL CPDFXFA_App::Initialize()\r
 {\r
-       BC_Library_Init();\r
+    BC_Library_Init();\r
+    FXJSE_Initialize();\r
 \r
-       FXJSE_Initialize();\r
-       m_hJSERuntime = FXJSE_Runtime_Create();\r
+    m_hJSERuntime = FXJSE_Runtime_Create();\r
+    if (!m_hJSERuntime)\r
+        return FALSE;\r
 \r
-       if (!m_hJSERuntime) \r
-               return FALSE;\r
+    m_pXFAApp = IXFA_App::Create(this);\r
+    if (!m_pXFAApp)\r
+        return FALSE;\r
 \r
-       //m_pJSRuntime = m_pJSRuntimeFactory->NewJSRuntime(this);\r
-       \r
-       m_pXFAApp = IXFA_App::Create(this);\r
-       if (!m_pXFAApp)\r
-               return FALSE;\r
+    m_pFontMgr = IXFA_FontMgr::CreateDefault();\r
+    if (!m_pFontMgr)\r
+        return FALSE;\r
 \r
-       m_pFontMgr = XFA_GetDefaultFontMgr();\r
-       if (!m_pFontMgr)\r
-               return FALSE;\r
-\r
-       m_pXFAApp->SetDefaultFontMgr(m_pFontMgr);\r
+    m_pXFAApp->SetDefaultFontMgr(m_pFontMgr);\r
+    return TRUE;\r
+}\r
 \r
-       return TRUE;\r
+FX_BOOL CPDFXFA_App::InitRuntime(FX_BOOL bReset) {\r
+    if (bReset) {\r
+        m_bInitRuntime = FALSE;\r
+        return TRUE;\r
+    }\r
+    if (m_bInitRuntime) {\r
+        return TRUE;\r
+    }\r
+    m_bInitRuntime = TRUE;\r
+    return FALSE;\r
 }\r
 \r
 FX_BOOL CPDFXFA_App::AddFormFillEnv(CPDFDoc_Environment* pEnv)\r
 {\r
-       if (!pEnv) return FALSE;\r
+    if (!pEnv) return FALSE;\r
 \r
-       m_pEnvList.Add(pEnv);\r
-       return TRUE;\r
+    m_pEnvList.Add(pEnv);\r
+    return TRUE;\r
 }\r
 \r
 FX_BOOL CPDFXFA_App::RemoveFormFillEnv(CPDFDoc_Environment* pEnv)\r
 {\r
-       if (!pEnv) return FALSE;\r
+    if (!pEnv) return FALSE;\r
 \r
-       int nFind = m_pEnvList.Find(pEnv);\r
-       if (nFind != -1) {\r
-               m_pEnvList.RemoveAt(nFind);\r
-               return TRUE;\r
-       }\r
+    int nFind = m_pEnvList.Find(pEnv);\r
+    if (nFind != -1) {\r
+        m_pEnvList.RemoveAt(nFind);\r
+        return TRUE;\r
+    }\r
 \r
-       return FALSE;\r
+    return FALSE;\r
 }\r
-void CPDFXFA_App::ReleaseRuntime() \r
+void CPDFXFA_App::ReleaseRuntime()\r
 {\r
-       v8::Persistent<v8::Context> context;\r
-       JS_ReleaseRuntime((IJS_Runtime*)m_hJSERuntime, context);\r
+    v8::Global<v8::Context> context;\r
+    JS_ReleaseRuntime((IJS_Runtime*)m_hJSERuntime, context);\r
 }\r
 \r
 void CPDFXFA_App::GetAppType(CFX_WideString &wsAppType)\r
 {\r
-       wsAppType = m_csAppType;\r
+    wsAppType = m_csAppType;\r
 }\r
 \r
 void CPDFXFA_App::GetAppName(CFX_WideString& wsName)\r
 {\r
-       CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
-       if (pEnv)\r
-       {\r
-               wsName = pEnv->FFI_GetAppName();\r
-       }\r
+    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
+    if (pEnv)\r
+    {\r
+        wsName = pEnv->FFI_GetAppName();\r
+    }\r
 }\r
 \r
 void CPDFXFA_App::SetAppType(FX_WSTR wsAppType)\r
 {\r
-       m_csAppType = wsAppType;\r
+    m_csAppType = wsAppType;\r
 }\r
 \r
 void CPDFXFA_App::GetLanguage(CFX_WideString &wsLanguage)\r
 {\r
-       CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
-       if (pEnv)\r
-       {\r
-               wsLanguage = pEnv->FFI_GetLanguage();\r
-       }\r
+    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
+    if (pEnv)\r
+    {\r
+        wsLanguage = pEnv->FFI_GetLanguage();\r
+    }\r
 }\r
 \r
 void CPDFXFA_App::GetPlatform(CFX_WideString &wsPlatform)\r
 {\r
-       CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
-       if (pEnv)\r
-       {\r
-               wsPlatform = pEnv->FFI_GetPlatform();\r
-       }\r
+    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
+    if (pEnv)\r
+    {\r
+        wsPlatform = pEnv->FFI_GetPlatform();\r
+    }\r
 }\r
 \r
 void CPDFXFA_App::GetVariation(CFX_WideString &wsVariation)\r
 {\r
-       wsVariation = JS_STR_VIEWERVARIATION;\r
+    wsVariation = JS_STR_VIEWERVARIATION;\r
 }\r
 \r
 void CPDFXFA_App::GetVersion(CFX_WideString &wsVersion)\r
 {\r
-       wsVersion = JS_STR_VIEWERVERSION_XFA;\r
+    wsVersion = JS_STR_VIEWERVERSION_XFA;\r
 }\r
 \r
 void CPDFXFA_App::Beep(FX_DWORD dwType)\r
 {\r
-       CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
-       if (pEnv)\r
-       {\r
-               pEnv->JS_appBeep(dwType);\r
-       }\r
+    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
+    if (pEnv)\r
+    {\r
+        pEnv->JS_appBeep(dwType);\r
+    }\r
 }\r
 \r
-FX_INT32 CPDFXFA_App::MsgBox(FX_WSTR wsMessage, FX_WSTR wsTitle, FX_DWORD dwIconType, FX_DWORD dwButtonType)\r
+int32_t CPDFXFA_App::MsgBox(FX_WSTR wsMessage, FX_WSTR wsTitle, FX_DWORD dwIconType, FX_DWORD dwButtonType)\r
 {\r
-       CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
-       if (!pEnv) \r
-               return -1;\r
-\r
-       FX_DWORD iconType = 0;\r
-       int iButtonType = 0;\r
-       switch (dwIconType)\r
-       {\r
-       case XFA_MBICON_Error:\r
-               iconType |= 0;\r
-               break;\r
-       case XFA_MBICON_Warning:\r
-               iconType |= 1;\r
-               break;\r
-       case XFA_MBICON_Question:\r
-               iconType |= 2;\r
-               break;\r
-       case XFA_MBICON_Status:\r
-               iconType |= 3;\r
-               break;\r
-       }\r
-       switch (dwButtonType)\r
-       {\r
-       case  XFA_MB_OK:\r
-               iButtonType |= 0;\r
-               break;\r
-       case XFA_MB_OKCancel:\r
-               iButtonType |= 1;\r
-               break;\r
-       case XFA_MB_YesNo:\r
-               iButtonType |= 2;\r
-               break;\r
-       case XFA_MB_YesNoCancel:\r
-               iButtonType |= 3;\r
-               break;\r
-       }\r
-       FX_INT32 iRet = pEnv->JS_appAlert(wsMessage.GetPtr(), wsTitle.GetPtr(), iButtonType, iconType);\r
-       switch (iRet)\r
-       {\r
-       case 1:\r
-               return XFA_IDOK;\r
-       case 2:\r
-               return XFA_IDCancel;\r
-       case 3:\r
-               return XFA_IDNo;\r
-       case 4:\r
-               return XFA_IDYes;\r
-       }\r
-       return XFA_IDYes;\r
+    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
+    if (!pEnv)\r
+        return -1;\r
+\r
+    FX_DWORD iconType = 0;\r
+    int iButtonType = 0;\r
+    switch (dwIconType)\r
+    {\r
+    case XFA_MBICON_Error:\r
+        iconType |= 0;\r
+        break;\r
+    case XFA_MBICON_Warning:\r
+        iconType |= 1;\r
+        break;\r
+    case XFA_MBICON_Question:\r
+        iconType |= 2;\r
+        break;\r
+    case XFA_MBICON_Status:\r
+        iconType |= 3;\r
+        break;\r
+    }\r
+    switch (dwButtonType)\r
+    {\r
+    case  XFA_MB_OK:\r
+        iButtonType |= 0;\r
+        break;\r
+    case XFA_MB_OKCancel:\r
+        iButtonType |= 1;\r
+        break;\r
+    case XFA_MB_YesNo:\r
+        iButtonType |= 2;\r
+        break;\r
+    case XFA_MB_YesNoCancel:\r
+        iButtonType |= 3;\r
+        break;\r
+    }\r
+    int32_t iRet = pEnv->JS_appAlert(wsMessage.GetPtr(), wsTitle.GetPtr(), iButtonType, iconType);\r
+    switch (iRet)\r
+    {\r
+    case 1:\r
+        return XFA_IDOK;\r
+    case 2:\r
+        return XFA_IDCancel;\r
+    case 3:\r
+        return XFA_IDNo;\r
+    case 4:\r
+        return XFA_IDYes;\r
+    }\r
+    return XFA_IDYes;\r
 }\r
 \r
 void CPDFXFA_App::Response(CFX_WideString &wsAnswer, FX_WSTR wsQuestion, FX_WSTR wsTitle, FX_WSTR wsDefaultAnswer, FX_BOOL bMark)\r
 {\r
-       CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
-       if (pEnv)\r
-       {\r
-               int nLength = 2048;\r
-               char* pBuff = new char[nLength];\r
-               nLength = pEnv->JS_appResponse(wsQuestion.GetPtr(), wsTitle.GetPtr(), wsDefaultAnswer.GetPtr(), NULL, bMark, pBuff, nLength);\r
-               if(nLength > 0)\r
-               {\r
-                       nLength = nLength>2046?2046:nLength;\r
-                       pBuff[nLength] = 0;\r
-                       pBuff[nLength+1] = 0;\r
-                       wsAnswer = CFX_WideString::FromUTF16LE((unsigned short*)pBuff, nLength);\r
-               }\r
-               delete[] pBuff;\r
-       }\r
+    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
+    if (pEnv)\r
+    {\r
+        int nLength = 2048;\r
+        char* pBuff = new char[nLength];\r
+        nLength = pEnv->JS_appResponse(wsQuestion.GetPtr(), wsTitle.GetPtr(), wsDefaultAnswer.GetPtr(), NULL, bMark, pBuff, nLength);\r
+        if(nLength > 0)\r
+        {\r
+            nLength = nLength>2046?2046:nLength;\r
+            pBuff[nLength] = 0;\r
+            pBuff[nLength+1] = 0;\r
+            wsAnswer = CFX_WideString::FromUTF16LE((unsigned short*)pBuff, nLength);\r
+        }\r
+        delete[] pBuff;\r
+    }\r
 }\r
 \r
-FX_INT32 CPDFXFA_App::GetCurDocumentInBatch()\r
+int32_t CPDFXFA_App::GetCurDocumentInBatch()\r
 {\r
-       CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
-       if (pEnv)\r
-       {\r
-               return pEnv->FFI_GetCurDocument();\r
-       }\r
-       return 0;\r
+    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
+    if (pEnv)\r
+    {\r
+        return pEnv->FFI_GetCurDocument();\r
+    }\r
+    return 0;\r
 }\r
 \r
-FX_INT32 CPDFXFA_App::GetDocumentCountInBatch()\r
+int32_t CPDFXFA_App::GetDocumentCountInBatch()\r
 {\r
-       CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
-       if (pEnv)\r
-       {\r
-               return pEnv->FFI_GetDocumentCount();\r
-       }\r
+    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
+    if (pEnv)\r
+    {\r
+        return pEnv->FFI_GetDocumentCount();\r
+    }\r
 \r
-       return 0;\r
+    return 0;\r
 }\r
 \r
 IFX_FileRead* CPDFXFA_App::DownloadURL(FX_WSTR wsURL)\r
 {\r
-       CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
-       if (pEnv)\r
-       {\r
-               return pEnv->FFI_DownloadFromURL(wsURL.GetPtr());\r
-       }\r
-       return NULL;\r
+    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
+    if (pEnv)\r
+    {\r
+        return pEnv->FFI_DownloadFromURL(wsURL.GetPtr());\r
+    }\r
+    return NULL;\r
 }\r
 \r
-FX_BOOL CPDFXFA_App::PostRequestURL(FX_WSTR wsURL, FX_WSTR wsData, FX_WSTR wsContentType, \r
-       FX_WSTR wsEncode, FX_WSTR wsHeader, CFX_WideString &wsResponse)\r
+FX_BOOL CPDFXFA_App::PostRequestURL(FX_WSTR wsURL, FX_WSTR wsData, FX_WSTR wsContentType,\r
+                                            FX_WSTR wsEncode, FX_WSTR wsHeader, CFX_WideString &wsResponse)\r
 {\r
-       CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
-       if (pEnv)\r
-       {\r
-               wsResponse = pEnv->FFI_PostRequestURL(wsURL.GetPtr(), wsData.GetPtr(), wsContentType.GetPtr(), wsEncode.GetPtr(), wsHeader.GetPtr());\r
-               return TRUE;\r
-       }\r
-       return FALSE;\r
+    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
+    if (pEnv)\r
+    {\r
+        wsResponse = pEnv->FFI_PostRequestURL(wsURL.GetPtr(), wsData.GetPtr(), wsContentType.GetPtr(), wsEncode.GetPtr(), wsHeader.GetPtr());\r
+        return TRUE;\r
+    }\r
+    return FALSE;\r
 }\r
 \r
 FX_BOOL CPDFXFA_App::PutRequestURL(FX_WSTR wsURL, FX_WSTR wsData, FX_WSTR wsEncode)\r
 {\r
-       CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
-       if (pEnv)\r
-       {\r
-               return pEnv->FFI_PutRequestURL(wsURL.GetPtr(), wsData.GetPtr(), wsEncode.GetPtr());\r
-       }\r
-       return FALSE;\r
+    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
+    if (pEnv)\r
+    {\r
+        return pEnv->FFI_PutRequestURL(wsURL.GetPtr(), wsData.GetPtr(), wsEncode.GetPtr());\r
+    }\r
+    return FALSE;\r
 }\r
 \r
-void CPDFXFA_App::LoadString(FX_INT32 iStringID, CFX_WideString &wsString)\r
+void CPDFXFA_App::LoadString(int32_t iStringID, CFX_WideString &wsString)\r
 {\r
-       switch (iStringID)\r
-       {\r
-       case XFA_IDS_ValidateFailed:\r
-               wsString = L"%s validate failed";\r
-               return;\r
-       case XFA_IDS_CalcOverride:\r
-               wsString = L"Calculate Override";\r
-               return;\r
-       case XFA_IDS_ModifyField:\r
-               wsString = L"Are you sure you want to modify this field?";\r
-               return;\r
-       case XFA_IDS_NotModifyField:\r
-               wsString = L"You are not allowed to modify this field.";\r
-               return;\r
-       case XFA_IDS_AppName:\r
-               wsString = L"Foxit";\r
-               return;\r
-       case XFA_IDS_ImageFilter:\r
-               wsString = L"Image Files(*.bmp;*.jpg;*.png;*.gif;*.tif)|*.bmp;*.jpg;*.png;*.gif;*.tif|All Files(*.*)|*.*||";\r
-               return;\r
-       case XFA_IDS_UNKNOW_CATCHED:\r
-               wsString = L"unknown error is catched!";\r
-               return;\r
-       case XFA_IDS_Unable_TO_SET:\r
-               wsString = L"Unable to set ";\r
-               return;\r
-       case XFA_IDS_VALUE_EXCALMATORY:\r
-               wsString = L" value!";\r
-               return;\r
-       case XFA_IDS_INVALID_ENUM_VALUE:\r
-               wsString = L"Invalid enumerated value: ";\r
-               return;\r
-       case XFA_IDS_UNSUPPORT_METHOD:\r
-               wsString = L"unsupport %s method.";\r
-               return;\r
-       case XFA_IDS_UNSUPPORT_PROP:\r
-               wsString = L"unsupport %s property.";\r
-               return;\r
-       case XFA_IDS_INVAlID_PROP_SET:\r
-               wsString = L"Invalid property set operation;";\r
-               return;\r
-       case XFA_IDS_NOT_DEFAUL_VALUE:\r
-               wsString = L" doesn't have a default property";\r
-               return;\r
-       case XFA_IDS_UNABLE_SET_LANGUAGE:\r
-               wsString = L"Unable to set language value!";\r
-               return;\r
-       case XFA_IDS_UNABLE_SET_NUMPAGES:\r
-               wsString = L"Unable to set numPages value!";\r
-               return;\r
-       case XFA_IDS_UNABLE_SET_PLATFORM:\r
-               wsString = L"Unable to set platform value!";\r
-               return;\r
-       case XFA_IDS_UNABLE_SET_VALIDATIONENABLE:\r
-               wsString = L"Unable to set validationsEnabled value!";\r
-               return;\r
-       case XFA_IDS_UNABLE_SET_VARIATION:\r
-               wsString = L"Unable to set variation value!";\r
-               return;\r
-       case XFA_IDS_UNABLE_SET_VERSION:\r
-               wsString = L"Unable to set version value!";\r
-               return;\r
-       case XFA_IDS_UNABLE_SET_READY:\r
-               wsString = L"Unable to set ready value!";\r
-               return;\r
-       case XFA_IDS_NUMBER_OF_OCCUR:\r
-               wsString = L"The element [%s] has violated its allowable number of occurrences";\r
-               return;\r
-       case XFA_IDS_UNABLE_SET_CLASS_NAME:\r
-               wsString = L"Unable to set className value!";\r
-               return;\r
-       case XFA_IDS_UNABLE_SET_LENGTH_VALUE:\r
-               wsString = L"Unable to set length value!";\r
-               return;\r
-       case XFA_IDS_UNSUPPORT_CHAR:\r
-               wsString = L"unsupported char '%c'";\r
-               return;\r
-       case XFA_IDS_BAD_SUFFIX:\r
-               wsString = L"bad suffix on number";\r
-               return;\r
-       case XFA_IDS_EXPECTED_IDENT:\r
-               wsString = L"expected identifier instead of '%s'";\r
-               return;\r
-       case XFA_IDS_EXPECTED_STRING:\r
-               wsString = L"expected '%s' instead of '%s'";\r
-               return;\r
-       case XFA_IDS_INVALIDATE_CHAR:\r
-               wsString = L"invalidate char '%c'";\r
-               return;\r
-       case XFA_IDS_REDEFINITION:\r
-               wsString = L"'%s' redefinition ";\r
-               return;\r
-       case XFA_IDS_INVALIDATE_TOKEN:\r
-               wsString = L"invalidate token '%s'";\r
-               return;\r
-       case XFA_IDS_INVALIDATE_EXPRESSION:\r
-               wsString = L"invalidate expression '%s'";\r
-               return;\r
-       case XFA_IDS_UNDEFINE_IDENTIFIER:\r
-               wsString = L"undefined identifier '%s'";\r
-               return;\r
-       case XFA_IDS_INVALIDATE_LEFTVALUE:\r
-               wsString = L"invalidate left-value '%s'";\r
-               return;\r
-       case XFA_IDS_COMPILER_ERROR:\r
-               wsString = L"compiler error";\r
-               return;\r
-       case XFA_IDS_CANNOT_MODIFY_VALUE:\r
-               wsString = L"can't modify the '%s' value";\r
-               return;\r
-       case XFA_IDS_ERROR_PARAMETERS:\r
-               wsString = L"function '%s' has not %d parameters";\r
-               return;\r
-       case XFA_IDS_EXPECT_ENDIF:\r
-               wsString = L"expected 'endif' instead of '%s'";\r
-               return;\r
-       case XFA_IDS_UNEXPECTED_EXPRESSION:\r
-               wsString = L"unexpected expression '%s'";\r
-               return;\r
-       case XFA_IDS_CONDITION_IS_NULL:\r
-               wsString = L"condition is null";\r
-               return;\r
-       case XFA_IDS_ILLEGALBREAK:\r
-               wsString = L"illegal break";\r
-               return;\r
-       case XFA_IDS_ILLEGALCONTINUE:\r
-               wsString = L"illegal continue";\r
-               return;\r
-       case XFA_IDS_EXPECTED_OPERATOR:\r
-               wsString = L"expected operator '%s' instead of '%s'";\r
-               return;\r
-       case XFA_IDS_DIVIDE_ZERO:\r
-               wsString = L"divide by zero";\r
-               return;\r
-       case XFA_IDS_CANNOT_COVERT_OBJECT:\r
-               wsString = L"%s.%s can not covert to object";\r
-               return;\r
-       case XFA_IDS_NOT_FOUND_CONTAINER:\r
-               wsString = L"can not found container '%s'";\r
-               return;\r
-       case XFA_IDS_NOT_FOUND_PROPERTY:\r
-               wsString = L"can not found property '%s'";\r
-               return;\r
-       case XFA_IDS_NOT_FOUND_METHOD:\r
-               wsString = L"can not found method '%s'";\r
-               return;\r
-       case XFA_IDS_NOT_FOUND_CONST:\r
-               wsString = L"can not found const '%s'";\r
-               return;\r
-       case XFA_IDS_NOT_ASSIGN_OBJECT:\r
-               wsString = L"can not direct assign value to object";\r
-               return;\r
-       case XFA_IDS_IVALIDATE_INSTRUCTION:\r
-               wsString = L"invalidate instruction";\r
-               return;\r
-       case XFA_IDS_EXPECT_NUMBER:\r
-               wsString = L"expected number instead of '%s'";\r
-               return;\r
-       case XFA_IDS_VALIDATE_OUT_ARRAY:\r
-               wsString = L"validate access index '%s' out of array";\r
-               return;\r
-       case XFA_IDS_CANNOT_ASSIGN_IDENT:\r
-               wsString = L"can not assign to %s";\r
-               return;\r
-       case XFA_IDS_NOT_FOUNT_FUNCTION:\r
-               wsString = L"can not found '%s' function";\r
-               return;\r
-       case XFA_IDS_NOT_ARRAY:\r
-               wsString = L"'%s' doesn't an array";\r
-               return;\r
-       case XFA_IDS_OUT_ARRAY:\r
-               wsString = L"out of range of '%s' array";\r
-               return;\r
-       case XFA_IDS_NOT_SUPPORT_CALC:\r
-               wsString = L"'%s' operator can not support array calculate";\r
-               return;\r
-       case XFA_IDS_ARGUMENT_NOT_ARRAY:\r
-               wsString = L"'%s' function's %d argument can not be array";\r
-               return;\r
-       case XFA_IDS_ARGUMENT_EXPECT_CONTAINER:\r
-               wsString = L"'%s' argument expected a container";\r
-               return;\r
-       case XFA_IDS_ACCESS_PROPERTY_IN_NOT_OBJECT:\r
-               wsString = L"an attempt was made to reference property '%s' of a non-object in SOM expression %s";\r
-               return;\r
-       case XFA_IDS_FUNCTION_IS_BUILDIN:\r
-               wsString = L"function '%s' is buildin";\r
-               return;\r
-       case XFA_IDS_ERROR_MSG:\r
-               wsString = L"%s : %s";\r
-               return;\r
-       case XFA_IDS_INDEX_OUT_OF_BOUNDS:\r
-               wsString = L"Index value is out of bounds";\r
-               return;\r
-       case XFA_IDS_INCORRECT_NUMBER_OF_METHOD:\r
-               wsString = L"Incorrect number of parameters calling method '%s'";\r
-               return;\r
-       case XFA_IDS_ARGUMENT_MISMATCH:\r
-               wsString = L"Argument mismatch in property or function argument";\r
-               return;\r
-       case XFA_IDS_INVALID_ENUMERATE:\r
-               wsString = L"Invalid enumerated value: %s";\r
-               return;\r
-       case XFA_IDS_INVALID_APPEND:\r
-               wsString = L"Invalid append operation: %s cannot have a child element of %s";\r
-               return;\r
-       case XFA_IDS_SOM_EXPECTED_LIST:\r
-               wsString = L"SOM expression returned list when single result was expected";\r
-               return;\r
-       case XFA_IDS_NOT_HAVE_PROPERTY:\r
-               wsString = L"'%s' doesn't have property '%s'";\r
-               return;\r
-       case XFA_IDS_INVALID_NODE_TYPE:\r
-               wsString = L"Invalid node type : '%s'";\r
-               return;\r
-       case XFA_IDS_VIOLATE_BOUNDARY:\r
-               wsString = L"The element [%s] has violated its allowable number of occurrences";\r
-               return;\r
-       case XFA_IDS_SERVER_DENY:\r
-               wsString = L"Server does not permit";\r
-               return;\r
-       /*case XFA_IDS_StringWeekDay_Sun:\r
-               wsString = L"?¨¹¨¨?";\r
-               return;\r
-       case XFA_IDS_StringWeekDay_Mon:\r
-               wsString = L"?¨¹¨°?";\r
-               return;\r
-       case XFA_IDS_StringWeekDay_Tue:\r
-               wsString = L"?¨¹?t";\r
-               return;\r
-       case XFA_IDS_StringWeekDay_Wed:\r
-               wsString = L"?¨¹¨¨y";\r
-               return;\r
-       case XFA_IDS_StringWeekDay_Thu:\r
-               wsString = L"?¨¹??";\r
-               return;\r
-       case XFA_IDS_StringWeekDay_Fri:\r
-               wsString = L"?¨¹??";\r
-               return;\r
-       case XFA_IDS_StringWeekDay_Sat:\r
-               wsString = L"?¨¹¨¢¨´";\r
-               return;\r
-       case XFA_IDS_StringMonth_Jan:\r
-               wsString = L"1??";\r
-               return;\r
-       case XFA_IDS_StringMonth_Feb:\r
-               wsString = L"2??";\r
-               return;\r
-       case XFA_IDS_StringMonth_March:\r
-               wsString = L"3??";\r
-               return;\r
-       case XFA_IDS_StringMonth_April:\r
-               wsString = L"4??";\r
-               return;\r
-       case XFA_IDS_StringMonth_May:\r
-               wsString = L"5??";\r
-               return;\r
-       case XFA_IDS_StringMonth_June:\r
-               wsString = L"6??";\r
-               return;\r
-       case XFA_IDS_StringMonth_July:\r
-               wsString = L"7??";\r
-               return;\r
-       case XFA_IDS_StringMonth_Aug:\r
-               wsString = L"8??";\r
-               return;\r
-       case XFA_IDS_StringMonth_Sept:\r
-               wsString = L"9??";\r
-               return;\r
-       case XFA_IDS_StringMonth_Oct:\r
-               wsString = L"10??";\r
-               return;\r
-       case XFA_IDS_StringMonth_Nov:\r
-               wsString = L"11??";\r
-               return;\r
-       case XFA_IDS_StringMonth_Dec:\r
-               wsString = L"12??";\r
-               return;\r
-       case XFA_IDS_String_Today:\r
-               wsString = L"??¨¬¨¬";\r
-               return;*/\r
-       case XFA_IDS_ValidateLimit:\r
-               wsString = FX_WSTRC(L"Message limit exceeded. Remaining %d validation errors not reported.");\r
-               return;\r
-       case XFA_IDS_ValidateNullWarning:\r
-               wsString = FX_WSTRC(L"%s cannot be left blank. To ignore validations for %s, click Ignore.");\r
-               return;\r
-       case XFA_IDS_ValidateNullError:\r
-               wsString = FX_WSTRC(L"%s cannot be left blank.");\r
-               return;\r
-       case XFA_IDS_ValidateWarning:\r
-               wsString = FX_WSTRC(L"The value you entered for %s is invalid. To ignore validations for %s, click Ignore.");\r
-               return;\r
-       case XFA_IDS_ValidateError:\r
-               wsString = FX_WSTRC(L"The value you entered for %s is invalid.");\r
-               return;\r
-       }\r
+    switch (iStringID)\r
+    {\r
+    case XFA_IDS_ValidateFailed:\r
+        wsString = L"%s validate failed";\r
+        return;\r
+    case XFA_IDS_CalcOverride:\r
+        wsString = L"Calculate Override";\r
+        return;\r
+    case XFA_IDS_ModifyField:\r
+        wsString = L"Are you sure you want to modify this field?";\r
+        return;\r
+    case XFA_IDS_NotModifyField:\r
+        wsString = L"You are not allowed to modify this field.";\r
+        return;\r
+    case XFA_IDS_AppName:\r
+        wsString = L"Foxit";\r
+        return;\r
+    case XFA_IDS_ImageFilter:\r
+        wsString = L"Image Files(*.bmp;*.jpg;*.png;*.gif;*.tif)|*.bmp;*.jpg;*.png;*.gif;*.tif|All Files(*.*)|*.*||";\r
+        return;\r
+    case XFA_IDS_UNKNOW_CATCHED:\r
+        wsString = L"unknown error is catched!";\r
+        return;\r
+    case XFA_IDS_Unable_TO_SET:\r
+        wsString = L"Unable to set ";\r
+        return;\r
+    case XFA_IDS_VALUE_EXCALMATORY:\r
+        wsString = L" value!";\r
+        return;\r
+    case XFA_IDS_INVALID_ENUM_VALUE:\r
+        wsString = L"Invalid enumerated value: ";\r
+        return;\r
+    case XFA_IDS_UNSUPPORT_METHOD:\r
+        wsString = L"unsupport %s method.";\r
+        return;\r
+    case XFA_IDS_UNSUPPORT_PROP:\r
+        wsString = L"unsupport %s property.";\r
+        return;\r
+    case XFA_IDS_INVAlID_PROP_SET:\r
+        wsString = L"Invalid property set operation;";\r
+        return;\r
+    case XFA_IDS_NOT_DEFAUL_VALUE:\r
+        wsString = L" doesn't have a default property";\r
+        return;\r
+    case XFA_IDS_UNABLE_SET_LANGUAGE:\r
+        wsString = L"Unable to set language value!";\r
+        return;\r
+    case XFA_IDS_UNABLE_SET_NUMPAGES:\r
+        wsString = L"Unable to set numPages value!";\r
+        return;\r
+    case XFA_IDS_UNABLE_SET_PLATFORM:\r
+        wsString = L"Unable to set platform value!";\r
+        return;\r
+    case XFA_IDS_UNABLE_SET_VALIDATIONENABLE:\r
+        wsString = L"Unable to set validationsEnabled value!";\r
+        return;\r
+    case XFA_IDS_UNABLE_SET_VARIATION:\r
+        wsString = L"Unable to set variation value!";\r
+        return;\r
+    case XFA_IDS_UNABLE_SET_VERSION:\r
+        wsString = L"Unable to set version value!";\r
+        return;\r
+    case XFA_IDS_UNABLE_SET_READY:\r
+        wsString = L"Unable to set ready value!";\r
+        return;\r
+    case XFA_IDS_NUMBER_OF_OCCUR:\r
+        wsString = L"The element [%s] has violated its allowable number of occurrences";\r
+        return;\r
+    case XFA_IDS_UNABLE_SET_CLASS_NAME:\r
+        wsString = L"Unable to set className value!";\r
+        return;\r
+    case XFA_IDS_UNABLE_SET_LENGTH_VALUE:\r
+        wsString = L"Unable to set length value!";\r
+        return;\r
+    case XFA_IDS_UNSUPPORT_CHAR:\r
+        wsString = L"unsupported char '%c'";\r
+        return;\r
+    case XFA_IDS_BAD_SUFFIX:\r
+        wsString = L"bad suffix on number";\r
+        return;\r
+    case XFA_IDS_EXPECTED_IDENT:\r
+        wsString = L"expected identifier instead of '%s'";\r
+        return;\r
+    case XFA_IDS_EXPECTED_STRING:\r
+        wsString = L"expected '%s' instead of '%s'";\r
+        return;\r
+    case XFA_IDS_INVALIDATE_CHAR:\r
+        wsString = L"invalidate char '%c'";\r
+        return;\r
+    case XFA_IDS_REDEFINITION:\r
+        wsString = L"'%s' redefinition ";\r
+        return;\r
+    case XFA_IDS_INVALIDATE_TOKEN:\r
+        wsString = L"invalidate token '%s'";\r
+        return;\r
+    case XFA_IDS_INVALIDATE_EXPRESSION:\r
+        wsString = L"invalidate expression '%s'";\r
+        return;\r
+    case XFA_IDS_UNDEFINE_IDENTIFIER:\r
+        wsString = L"undefined identifier '%s'";\r
+        return;\r
+    case XFA_IDS_INVALIDATE_LEFTVALUE:\r
+        wsString = L"invalidate left-value '%s'";\r
+        return;\r
+    case XFA_IDS_COMPILER_ERROR:\r
+        wsString = L"compiler error";\r
+        return;\r
+    case XFA_IDS_CANNOT_MODIFY_VALUE:\r
+        wsString = L"can't modify the '%s' value";\r
+        return;\r
+    case XFA_IDS_ERROR_PARAMETERS:\r
+        wsString = L"function '%s' has not %d parameters";\r
+        return;\r
+    case XFA_IDS_EXPECT_ENDIF:\r
+        wsString = L"expected 'endif' instead of '%s'";\r
+        return;\r
+    case XFA_IDS_UNEXPECTED_EXPRESSION:\r
+        wsString = L"unexpected expression '%s'";\r
+        return;\r
+    case XFA_IDS_CONDITION_IS_NULL:\r
+        wsString = L"condition is null";\r
+        return;\r
+    case XFA_IDS_ILLEGALBREAK:\r
+        wsString = L"illegal break";\r
+        return;\r
+    case XFA_IDS_ILLEGALCONTINUE:\r
+        wsString = L"illegal continue";\r
+        return;\r
+    case XFA_IDS_EXPECTED_OPERATOR:\r
+        wsString = L"expected operator '%s' instead of '%s'";\r
+        return;\r
+    case XFA_IDS_DIVIDE_ZERO:\r
+        wsString = L"divide by zero";\r
+        return;\r
+    case XFA_IDS_CANNOT_COVERT_OBJECT:\r
+        wsString = L"%s.%s can not covert to object";\r
+        return;\r
+    case XFA_IDS_NOT_FOUND_CONTAINER:\r
+        wsString = L"can not found container '%s'";\r
+        return;\r
+    case XFA_IDS_NOT_FOUND_PROPERTY:\r
+        wsString = L"can not found property '%s'";\r
+        return;\r
+    case XFA_IDS_NOT_FOUND_METHOD:\r
+        wsString = L"can not found method '%s'";\r
+        return;\r
+    case XFA_IDS_NOT_FOUND_CONST:\r
+        wsString = L"can not found const '%s'";\r
+        return;\r
+    case XFA_IDS_NOT_ASSIGN_OBJECT:\r
+        wsString = L"can not direct assign value to object";\r
+        return;\r
+    case XFA_IDS_IVALIDATE_INSTRUCTION:\r
+        wsString = L"invalidate instruction";\r
+        return;\r
+    case XFA_IDS_EXPECT_NUMBER:\r
+        wsString = L"expected number instead of '%s'";\r
+        return;\r
+    case XFA_IDS_VALIDATE_OUT_ARRAY:\r
+        wsString = L"validate access index '%s' out of array";\r
+        return;\r
+    case XFA_IDS_CANNOT_ASSIGN_IDENT:\r
+        wsString = L"can not assign to %s";\r
+        return;\r
+    case XFA_IDS_NOT_FOUNT_FUNCTION:\r
+        wsString = L"can not found '%s' function";\r
+        return;\r
+    case XFA_IDS_NOT_ARRAY:\r
+        wsString = L"'%s' doesn't an array";\r
+        return;\r
+    case XFA_IDS_OUT_ARRAY:\r
+        wsString = L"out of range of '%s' array";\r
+        return;\r
+    case XFA_IDS_NOT_SUPPORT_CALC:\r
+        wsString = L"'%s' operator can not support array calculate";\r
+        return;\r
+    case XFA_IDS_ARGUMENT_NOT_ARRAY:\r
+        wsString = L"'%s' function's %d argument can not be array";\r
+        return;\r
+    case XFA_IDS_ARGUMENT_EXPECT_CONTAINER:\r
+        wsString = L"'%s' argument expected a container";\r
+        return;\r
+    case XFA_IDS_ACCESS_PROPERTY_IN_NOT_OBJECT:\r
+        wsString = L"an attempt was made to reference property '%s' of a non-object in SOM expression %s";\r
+        return;\r
+    case XFA_IDS_FUNCTION_IS_BUILDIN:\r
+        wsString = L"function '%s' is buildin";\r
+        return;\r
+    case XFA_IDS_ERROR_MSG:\r
+        wsString = L"%s : %s";\r
+        return;\r
+    case XFA_IDS_INDEX_OUT_OF_BOUNDS:\r
+        wsString = L"Index value is out of bounds";\r
+        return;\r
+    case XFA_IDS_INCORRECT_NUMBER_OF_METHOD:\r
+        wsString = L"Incorrect number of parameters calling method '%s'";\r
+        return;\r
+    case XFA_IDS_ARGUMENT_MISMATCH:\r
+        wsString = L"Argument mismatch in property or function argument";\r
+        return;\r
+    case XFA_IDS_INVALID_ENUMERATE:\r
+        wsString = L"Invalid enumerated value: %s";\r
+        return;\r
+    case XFA_IDS_INVALID_APPEND:\r
+        wsString = L"Invalid append operation: %s cannot have a child element of %s";\r
+        return;\r
+    case XFA_IDS_SOM_EXPECTED_LIST:\r
+        wsString = L"SOM expression returned list when single result was expected";\r
+        return;\r
+    case XFA_IDS_NOT_HAVE_PROPERTY:\r
+        wsString = L"'%s' doesn't have property '%s'";\r
+        return;\r
+    case XFA_IDS_INVALID_NODE_TYPE:\r
+        wsString = L"Invalid node type : '%s'";\r
+        return;\r
+    case XFA_IDS_VIOLATE_BOUNDARY:\r
+        wsString = L"The element [%s] has violated its allowable number of occurrences";\r
+        return;\r
+    case XFA_IDS_SERVER_DENY:\r
+        wsString = L"Server does not permit";\r
+        return;\r
+    case XFA_IDS_ValidateLimit:\r
+        wsString = FX_WSTRC(L"Message limit exceeded. Remaining %d validation errors not reported.");\r
+        return;\r
+    case XFA_IDS_ValidateNullWarning:\r
+        wsString = FX_WSTRC(L"%s cannot be left blank. To ignore validations for %s, click Ignore.");\r
+        return;\r
+    case XFA_IDS_ValidateNullError:\r
+        wsString = FX_WSTRC(L"%s cannot be left blank.");\r
+        return;\r
+    case XFA_IDS_ValidateWarning:\r
+        wsString = FX_WSTRC(L"The value you entered for %s is invalid. To ignore validations for %s, click Ignore.");\r
+        return;\r
+    case XFA_IDS_ValidateError:\r
+        wsString = FX_WSTRC(L"The value you entered for %s is invalid.");\r
+        return;\r
+    }\r
 \r
 }\r
 \r
 FX_BOOL CPDFXFA_App::ShowFileDialog(FX_WSTR wsTitle, FX_WSTR wsFilter, CFX_WideStringArray &wsPathArr, FX_BOOL bOpen)\r
 {\r
-       //if (m_pEnv)\r
-       //{\r
-       //      return m_pEnv->FFI_ShowFileDialog(wsTitle.GetPtr(), wsFilter.GetPtr(), wsPathArr, bOpen);\r
-       //}\r
-       return FALSE;\r
+    return FALSE;\r
 }\r
 \r
 IFWL_AdapterTimerMgr* CPDFXFA_App::GetTimerMgr()\r
 {\r
-       CXFA_FWLAdapterTimerMgr* pAdapter = NULL;\r
-       CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
-       if (pEnv)\r
-               pAdapter = FX_NEW CXFA_FWLAdapterTimerMgr(pEnv);\r
-       return pAdapter;\r
+    CXFA_FWLAdapterTimerMgr* pAdapter = NULL;\r
+    CPDFDoc_Environment* pEnv = m_pEnvList.GetAt(0);\r
+    if (pEnv)\r
+        pAdapter = FX_NEW CXFA_FWLAdapterTimerMgr(pEnv);\r
+    return pAdapter;\r
 }\r