summaryrefslogtreecommitdiff
path: root/xfa/src/fxfa/fm2js/xfa_fm2jsapi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/src/fxfa/fm2js/xfa_fm2jsapi.cpp')
-rw-r--r--xfa/src/fxfa/fm2js/xfa_fm2jsapi.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/xfa/src/fxfa/fm2js/xfa_fm2jsapi.cpp b/xfa/src/fxfa/fm2js/xfa_fm2jsapi.cpp
new file mode 100644
index 0000000000..c59aedc6ac
--- /dev/null
+++ b/xfa/src/fxfa/fm2js/xfa_fm2jsapi.cpp
@@ -0,0 +1,65 @@
+// 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
+
+#include "xfa/src/fxfa/fm2js/xfa_fm2jsapi.h"
+
+#include "core/include/fxcrt/fx_basic.h"
+#include "xfa/src/fxfa/fm2js/xfa_fm2jscontext.h"
+#include "xfa/src/fxfa/fm2js/xfa_program.h"
+#include "xfa/src/fxfa/parser/xfa_document.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int32_t XFA_FM2JS_Translate(const CFX_WideStringC& wsFormcalc,
+ CFX_WideTextBuf& wsJavascript,
+ CFX_WideString& wsError) {
+ if (wsFormcalc.IsEmpty()) {
+ wsJavascript.Clear();
+ wsError.Empty();
+ return 0;
+ }
+ int32_t status = 0;
+ CXFA_FMProgram program;
+ status = program.Init(wsFormcalc);
+ if (status) {
+ wsError = program.GetError().message;
+ return status;
+ }
+ status = program.ParseProgram();
+ if (status) {
+ wsError = program.GetError().message;
+ return status;
+ }
+ program.TranslateProgram(wsJavascript);
+ return 0;
+}
+XFA_HFM2JSCONTEXT XFA_FM2JS_ContextCreate() {
+ return (XFA_HFM2JSCONTEXT)CXFA_FM2JSContext::Create();
+}
+void XFA_FM2JS_ContextInitialize(XFA_HFM2JSCONTEXT hFM2JSContext,
+ FXJSE_HRUNTIME hScriptRuntime,
+ FXJSE_HCONTEXT hScriptContext,
+ CXFA_Document* pDocument) {
+ CXFA_FM2JSContext* pContext =
+ reinterpret_cast<CXFA_FM2JSContext*>(hFM2JSContext);
+ pContext->Initialize(hScriptRuntime, hScriptContext, pDocument);
+}
+void XFA_FM2JS_GlobalPropertyGetter(XFA_HFM2JSCONTEXT hFM2JSContext,
+ FXJSE_HVALUE hValue) {
+ CXFA_FM2JSContext* pContext =
+ reinterpret_cast<CXFA_FM2JSContext*>(hFM2JSContext);
+ pContext->GlobalPropertyGetter(hValue);
+}
+void XFA_FM2JS_ContextRelease(XFA_HFM2JSCONTEXT hFM2JSContext) {
+ CXFA_FM2JSContext* pContext =
+ reinterpret_cast<CXFA_FM2JSContext*>(hFM2JSContext);
+ pContext->Release();
+}
+#ifdef __cplusplus
+}
+#endif