Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / src / fxfa / src / fm2js / xfa_fm2jsapi.cpp
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 #include "xfa_fm2js.h"\r
8 #ifdef __cplusplus\r
9 extern "C"\r
10 {\r
11 #endif\r
12 FX_INT32 XFA_FM2JS_Translate(FX_WSTR wsFormcalc, CFX_WideTextBuf& wsJavascript, CFX_WideString& wsError)\r
13 {\r
14     if (wsFormcalc.IsEmpty()) {\r
15         wsJavascript.Clear();\r
16         wsError.Empty();\r
17         return 0;\r
18     }\r
19     FX_INT32 status = 0;\r
20     CXFA_FMProgram program;\r
21     status = program.Init(wsFormcalc);\r
22     if(status) {\r
23         wsError = program.GetError().message;\r
24         return status;\r
25     }\r
26     status = program.ParseProgram();\r
27     if(status) {\r
28         wsError = program.GetError().message;\r
29         return status;\r
30     }\r
31     program.TranslateProgram(wsJavascript);\r
32     return 0;\r
33 }\r
34 XFA_HFM2JSCONTEXT XFA_FM2JS_ContextCreate()\r
35 {\r
36     return (XFA_HFM2JSCONTEXT)CXFA_FM2JSContext::Create();\r
37 }\r
38 void XFA_FM2JS_ContextInitialize(XFA_HFM2JSCONTEXT hFM2JSContext, FXJSE_HRUNTIME hScriptRuntime,\r
39                                  FXJSE_HCONTEXT hScriptContext,\r
40                                  CXFA_Document* pDocument)\r
41 {\r
42     CXFA_FM2JSContext *pContext = reinterpret_cast<CXFA_FM2JSContext*>(hFM2JSContext);\r
43     pContext->Initialize(hScriptRuntime, hScriptContext, pDocument);\r
44 }\r
45 void XFA_FM2JS_GlobalPropertyGetter(XFA_HFM2JSCONTEXT hFM2JSContext, FXJSE_HVALUE hValue)\r
46 {\r
47     CXFA_FM2JSContext *pContext = reinterpret_cast<CXFA_FM2JSContext*>(hFM2JSContext);\r
48     pContext->GlobalPropertyGetter(hValue);\r
49 }\r
50 void XFA_FM2JS_ContextRelease(XFA_HFM2JSCONTEXT hFM2JSContext)\r
51 {\r
52     CXFA_FM2JSContext *pContext = reinterpret_cast<CXFA_FM2JSContext*>(hFM2JSContext);\r
53     pContext->Release();\r
54 }\r
55 #ifdef __cplusplus\r
56 }\r
57 #endif\r