summaryrefslogtreecommitdiff
path: root/fxjs/xfa/cjx_boolean.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fxjs/xfa/cjx_boolean.cpp')
-rw-r--r--fxjs/xfa/cjx_boolean.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/fxjs/xfa/cjx_boolean.cpp b/fxjs/xfa/cjx_boolean.cpp
new file mode 100644
index 0000000000..f5af9547a7
--- /dev/null
+++ b/fxjs/xfa/cjx_boolean.cpp
@@ -0,0 +1,56 @@
+// Copyright 2017 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 "fxjs/xfa/cjx_boolean.h"
+
+#include "fxjs/cfxjse_value.h"
+#include "xfa/fxfa/parser/cxfa_boolean.h"
+
+CJX_Boolean::CJX_Boolean(CXFA_Boolean* node) : CJX_Content(node) {}
+
+CJX_Boolean::~CJX_Boolean() = default;
+
+void CJX_Boolean::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Boolean::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (!bSetting) {
+ WideString wsValue = GetContent(true);
+ pValue->SetBoolean(wsValue == L"1");
+ return;
+ }
+
+ ByteString newValue;
+ if (pValue && !(pValue->IsNull() || pValue->IsUndefined()))
+ newValue = pValue->ToString();
+
+ int32_t iValue = FXSYS_atoi(newValue.c_str());
+ WideString wsNewValue(iValue == 0 ? L"0" : L"1");
+ WideString wsFormatValue(wsNewValue);
+ CXFA_WidgetData* pContainerWidgetData =
+ ToNode(GetXFAObject())->GetContainerWidgetData();
+ if (pContainerWidgetData)
+ wsFormatValue = pContainerWidgetData->GetFormatDataValue(wsNewValue);
+
+ SetContent(wsNewValue, wsFormatValue, true, true, true);
+}
+
+void CJX_Boolean::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Boolean::value(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ defaultValue(pValue, bSetting, eAttribute);
+}