summaryrefslogtreecommitdiff
path: root/fxjs
diff options
context:
space:
mode:
Diffstat (limited to 'fxjs')
-rw-r--r--fxjs/CJX_Define.h3
-rw-r--r--fxjs/xfa/cjx_arc.cpp49
-rw-r--r--fxjs/xfa/cjx_arc.h27
-rw-r--r--fxjs/xfa/cjx_area.cpp49
-rw-r--r--fxjs/xfa/cjx_area.h27
-rw-r--r--fxjs/xfa/cjx_assist.cpp31
-rw-r--r--fxjs/xfa/cjx_assist.h24
-rw-r--r--fxjs/xfa/cjx_barcode.cpp133
-rw-r--r--fxjs/xfa/cjx_barcode.h41
-rw-r--r--fxjs/xfa/cjx_bind.cpp49
-rw-r--r--fxjs/xfa/cjx_bind.h27
-rw-r--r--fxjs/xfa/cjx_binditems.cpp31
-rw-r--r--fxjs/xfa/cjx_binditems.h24
-rw-r--r--fxjs/xfa/cjx_bookend.cpp37
-rw-r--r--fxjs/xfa/cjx_bookend.h25
-rw-r--r--fxjs/xfa/cjx_boolean.cpp56
-rw-r--r--fxjs/xfa/cjx_boolean.h25
-rw-r--r--fxjs/xfa/cjx_border.cpp49
-rw-r--r--fxjs/xfa/cjx_border.h27
-rw-r--r--fxjs/xfa/cjx_break.cpp85
-rw-r--r--fxjs/xfa/cjx_break.h33
-rw-r--r--fxjs/xfa/cjx_breakafter.cpp55
-rw-r--r--fxjs/xfa/cjx_breakafter.h28
-rw-r--r--fxjs/xfa/cjx_breakbefore.cpp55
-rw-r--r--fxjs/xfa/cjx_breakbefore.h28
-rw-r--r--fxjs/xfa/cjx_button.cpp31
-rw-r--r--fxjs/xfa/cjx_button.h24
-rw-r--r--fxjs/xfa/cjx_calculate.cpp31
-rw-r--r--fxjs/xfa/cjx_calculate.h24
-rw-r--r--fxjs/xfa/cjx_caption.cpp43
-rw-r--r--fxjs/xfa/cjx_caption.h26
-rw-r--r--fxjs/xfa/cjx_certificate.cpp25
-rw-r--r--fxjs/xfa/cjx_certificate.h23
-rw-r--r--fxjs/xfa/cjx_certificates.cpp43
-rw-r--r--fxjs/xfa/cjx_certificates.h26
-rw-r--r--fxjs/xfa/cjx_checkbutton.cpp49
-rw-r--r--fxjs/xfa/cjx_checkbutton.h27
-rw-r--r--fxjs/xfa/cjx_choicelist.cpp43
-rw-r--r--fxjs/xfa/cjx_choicelist.h26
-rw-r--r--fxjs/xfa/cjx_color.cpp37
-rw-r--r--fxjs/xfa/cjx_color.h25
-rw-r--r--fxjs/xfa/cjx_comb.cpp31
-rw-r--r--fxjs/xfa/cjx_comb.h24
-rw-r--r--fxjs/xfa/cjx_command.cpp31
-rw-r--r--fxjs/xfa/cjx_command.h24
-rw-r--r--fxjs/xfa/cjx_connect.cpp55
-rw-r--r--fxjs/xfa/cjx_connect.h28
-rw-r--r--fxjs/xfa/cjx_connectstring.cpp26
-rw-r--r--fxjs/xfa/cjx_connectstring.h23
-rw-r--r--fxjs/xfa/cjx_contentarea.cpp44
-rw-r--r--fxjs/xfa/cjx_contentarea.h26
-rw-r--r--fxjs/xfa/cjx_corner.cpp61
-rw-r--r--fxjs/xfa/cjx_corner.h29
-rw-r--r--fxjs/xfa/cjx_datavalue.cpp43
-rw-r--r--fxjs/xfa/cjx_datavalue.h26
-rw-r--r--fxjs/xfa/cjx_datawindow.cpp8
-rw-r--r--fxjs/xfa/cjx_datawindow.h16
-rw-r--r--fxjs/xfa/cjx_date.cpp37
-rw-r--r--fxjs/xfa/cjx_date.h25
-rw-r--r--fxjs/xfa/cjx_datetime.cpp37
-rw-r--r--fxjs/xfa/cjx_datetime.h25
-rw-r--r--fxjs/xfa/cjx_datetimeedit.cpp31
-rw-r--r--fxjs/xfa/cjx_datetimeedit.h24
-rw-r--r--fxjs/xfa/cjx_decimal.cpp49
-rw-r--r--fxjs/xfa/cjx_decimal.h27
-rw-r--r--fxjs/xfa/cjx_defaultui.cpp25
-rw-r--r--fxjs/xfa/cjx_defaultui.h23
-rw-r--r--fxjs/xfa/cjx_delete.cpp25
-rw-r--r--fxjs/xfa/cjx_delete.h23
-rw-r--r--fxjs/xfa/cjx_delta.cpp12
-rw-r--r--fxjs/xfa/cjx_delta.h4
-rw-r--r--fxjs/xfa/cjx_deltas.cpp13
-rw-r--r--fxjs/xfa/cjx_deltas.h20
-rw-r--r--fxjs/xfa/cjx_desc.cpp12
-rw-r--r--fxjs/xfa/cjx_desc.h3
-rw-r--r--fxjs/xfa/cjx_digestmethod.cpp25
-rw-r--r--fxjs/xfa/cjx_digestmethod.h23
-rw-r--r--fxjs/xfa/cjx_digestmethods.cpp32
-rw-r--r--fxjs/xfa/cjx_digestmethods.h24
-rw-r--r--fxjs/xfa/cjx_draw.cpp153
-rw-r--r--fxjs/xfa/cjx_draw.h41
-rw-r--r--fxjs/xfa/cjx_edge.cpp49
-rw-r--r--fxjs/xfa/cjx_edge.h27
-rw-r--r--fxjs/xfa/cjx_encoding.cpp25
-rw-r--r--fxjs/xfa/cjx_encoding.h23
-rw-r--r--fxjs/xfa/cjx_encodings.cpp31
-rw-r--r--fxjs/xfa/cjx_encodings.h24
-rw-r--r--fxjs/xfa/cjx_encrypt.cpp29
-rw-r--r--fxjs/xfa/cjx_encrypt.h24
-rw-r--r--fxjs/xfa/cjx_event.cpp37
-rw-r--r--fxjs/xfa/cjx_event.h25
-rw-r--r--fxjs/xfa/cjx_eventpseudomodel.cpp32
-rw-r--r--fxjs/xfa/cjx_eventpseudomodel.h42
-rw-r--r--fxjs/xfa/cjx_exclgroup.cpp182
-rw-r--r--fxjs/xfa/cjx_exclgroup.h29
-rw-r--r--fxjs/xfa/cjx_exdata.cpp55
-rw-r--r--fxjs/xfa/cjx_exdata.h28
-rw-r--r--fxjs/xfa/cjx_execute.cpp43
-rw-r--r--fxjs/xfa/cjx_execute.h26
-rw-r--r--fxjs/xfa/cjx_exobject.cpp49
-rw-r--r--fxjs/xfa/cjx_exobject.h27
-rw-r--r--fxjs/xfa/cjx_extras.cpp29
-rw-r--r--fxjs/xfa/cjx_extras.h24
-rw-r--r--fxjs/xfa/cjx_field.cpp300
-rw-r--r--fxjs/xfa/cjx_field.h35
-rw-r--r--fxjs/xfa/cjx_fill.cpp31
-rw-r--r--fxjs/xfa/cjx_fill.h24
-rw-r--r--fxjs/xfa/cjx_filter.cpp31
-rw-r--r--fxjs/xfa/cjx_filter.h24
-rw-r--r--fxjs/xfa/cjx_float.cpp37
-rw-r--r--fxjs/xfa/cjx_float.h25
-rw-r--r--fxjs/xfa/cjx_font.cpp115
-rw-r--r--fxjs/xfa/cjx_font.h38
-rw-r--r--fxjs/xfa/cjx_format.cpp25
-rw-r--r--fxjs/xfa/cjx_format.h23
-rw-r--r--fxjs/xfa/cjx_handler.cpp35
-rw-r--r--fxjs/xfa/cjx_handler.h25
-rw-r--r--fxjs/xfa/cjx_hostpseudomodel.cpp22
-rw-r--r--fxjs/xfa/cjx_hostpseudomodel.h33
-rw-r--r--fxjs/xfa/cjx_image.cpp61
-rw-r--r--fxjs/xfa/cjx_image.h29
-rw-r--r--fxjs/xfa/cjx_imageedit.cpp31
-rw-r--r--fxjs/xfa/cjx_imageedit.h24
-rw-r--r--fxjs/xfa/cjx_insert.cpp25
-rw-r--r--fxjs/xfa/cjx_insert.h23
-rw-r--r--fxjs/xfa/cjx_instancemanager.cpp119
-rw-r--r--fxjs/xfa/cjx_instancemanager.h8
-rw-r--r--fxjs/xfa/cjx_integer.cpp37
-rw-r--r--fxjs/xfa/cjx_integer.h25
-rw-r--r--fxjs/xfa/cjx_issuers.cpp31
-rw-r--r--fxjs/xfa/cjx_issuers.h24
-rw-r--r--fxjs/xfa/cjx_items.cpp43
-rw-r--r--fxjs/xfa/cjx_items.h26
-rw-r--r--fxjs/xfa/cjx_keep.cpp43
-rw-r--r--fxjs/xfa/cjx_keep.h26
-rw-r--r--fxjs/xfa/cjx_keyusage.cpp85
-rw-r--r--fxjs/xfa/cjx_keyusage.h33
-rw-r--r--fxjs/xfa/cjx_layoutpseudomodel.cpp2
-rw-r--r--fxjs/xfa/cjx_layoutpseudomodel.h4
-rw-r--r--fxjs/xfa/cjx_line.cpp37
-rw-r--r--fxjs/xfa/cjx_line.h25
-rw-r--r--fxjs/xfa/cjx_linear.cpp31
-rw-r--r--fxjs/xfa/cjx_linear.h24
-rw-r--r--fxjs/xfa/cjx_list.h2
-rw-r--r--fxjs/xfa/cjx_logpseudomodel.h2
-rw-r--r--fxjs/xfa/cjx_manifest.cpp24
-rw-r--r--fxjs/xfa/cjx_manifest.h5
-rw-r--r--fxjs/xfa/cjx_map.cpp37
-rw-r--r--fxjs/xfa/cjx_map.h25
-rw-r--r--fxjs/xfa/cjx_margin.cpp49
-rw-r--r--fxjs/xfa/cjx_margin.h27
-rw-r--r--fxjs/xfa/cjx_mdp.cpp37
-rw-r--r--fxjs/xfa/cjx_mdp.h25
-rw-r--r--fxjs/xfa/cjx_medium.cpp55
-rw-r--r--fxjs/xfa/cjx_medium.h28
-rw-r--r--fxjs/xfa/cjx_message.cpp25
-rw-r--r--fxjs/xfa/cjx_message.h23
-rw-r--r--fxjs/xfa/cjx_model.cpp8
-rw-r--r--fxjs/xfa/cjx_model.h3
-rw-r--r--fxjs/xfa/cjx_node.cpp68
-rw-r--r--fxjs/xfa/cjx_node.h13
-rw-r--r--fxjs/xfa/cjx_numericedit.cpp31
-rw-r--r--fxjs/xfa/cjx_numericedit.h24
-rw-r--r--fxjs/xfa/cjx_object.cpp650
-rw-r--r--fxjs/xfa/cjx_object.h152
-rw-r--r--fxjs/xfa/cjx_occur.cpp57
-rw-r--r--fxjs/xfa/cjx_occur.h26
-rw-r--r--fxjs/xfa/cjx_oid.cpp25
-rw-r--r--fxjs/xfa/cjx_oid.h23
-rw-r--r--fxjs/xfa/cjx_oids.cpp31
-rw-r--r--fxjs/xfa/cjx_oids.h24
-rw-r--r--fxjs/xfa/cjx_operation.cpp37
-rw-r--r--fxjs/xfa/cjx_operation.h25
-rw-r--r--fxjs/xfa/cjx_overflow.cpp43
-rw-r--r--fxjs/xfa/cjx_overflow.h26
-rw-r--r--fxjs/xfa/cjx_packet.cpp21
-rw-r--r--fxjs/xfa/cjx_packet.h2
-rw-r--r--fxjs/xfa/cjx_pagearea.cpp61
-rw-r--r--fxjs/xfa/cjx_pagearea.h29
-rw-r--r--fxjs/xfa/cjx_pageset.cpp37
-rw-r--r--fxjs/xfa/cjx_pageset.h25
-rw-r--r--fxjs/xfa/cjx_para.cpp97
-rw-r--r--fxjs/xfa/cjx_para.h35
-rw-r--r--fxjs/xfa/cjx_password.cpp25
-rw-r--r--fxjs/xfa/cjx_password.h23
-rw-r--r--fxjs/xfa/cjx_passwordedit.cpp37
-rw-r--r--fxjs/xfa/cjx_passwordedit.h25
-rw-r--r--fxjs/xfa/cjx_pattern.cpp31
-rw-r--r--fxjs/xfa/cjx_pattern.h24
-rw-r--r--fxjs/xfa/cjx_picture.cpp37
-rw-r--r--fxjs/xfa/cjx_picture.h25
-rw-r--r--fxjs/xfa/cjx_query.cpp31
-rw-r--r--fxjs/xfa/cjx_query.h24
-rw-r--r--fxjs/xfa/cjx_radial.cpp31
-rw-r--r--fxjs/xfa/cjx_radial.h24
-rw-r--r--fxjs/xfa/cjx_reason.cpp25
-rw-r--r--fxjs/xfa/cjx_reason.h23
-rw-r--r--fxjs/xfa/cjx_reasons.cpp31
-rw-r--r--fxjs/xfa/cjx_reasons.h24
-rw-r--r--fxjs/xfa/cjx_recordset.cpp63
-rw-r--r--fxjs/xfa/cjx_recordset.h29
-rw-r--r--fxjs/xfa/cjx_rectangle.cpp31
-rw-r--r--fxjs/xfa/cjx_rectangle.h24
-rw-r--r--fxjs/xfa/cjx_ref.cpp25
-rw-r--r--fxjs/xfa/cjx_ref.h23
-rw-r--r--fxjs/xfa/cjx_rootelement.cpp25
-rw-r--r--fxjs/xfa/cjx_rootelement.h23
-rw-r--r--fxjs/xfa/cjx_script.cpp66
-rw-r--r--fxjs/xfa/cjx_script.h29
-rw-r--r--fxjs/xfa/cjx_select.cpp25
-rw-r--r--fxjs/xfa/cjx_select.h23
-rw-r--r--fxjs/xfa/cjx_setproperty.cpp25
-rw-r--r--fxjs/xfa/cjx_setproperty.h23
-rw-r--r--fxjs/xfa/cjx_signature.cpp25
-rw-r--r--fxjs/xfa/cjx_signature.h23
-rw-r--r--fxjs/xfa/cjx_signatureproperties.cpp26
-rw-r--r--fxjs/xfa/cjx_signatureproperties.h24
-rw-r--r--fxjs/xfa/cjx_signdata.cpp43
-rw-r--r--fxjs/xfa/cjx_signdata.h26
-rw-r--r--fxjs/xfa/cjx_signing.cpp31
-rw-r--r--fxjs/xfa/cjx_signing.h24
-rw-r--r--fxjs/xfa/cjx_soapaction.cpp25
-rw-r--r--fxjs/xfa/cjx_soapaction.h23
-rw-r--r--fxjs/xfa/cjx_soapaddress.cpp25
-rw-r--r--fxjs/xfa/cjx_soapaddress.h23
-rw-r--r--fxjs/xfa/cjx_solid.cpp25
-rw-r--r--fxjs/xfa/cjx_solid.h23
-rw-r--r--fxjs/xfa/cjx_source.cpp16
-rw-r--r--fxjs/xfa/cjx_source.h4
-rw-r--r--fxjs/xfa/cjx_sourceset.cpp25
-rw-r--r--fxjs/xfa/cjx_sourceset.h23
-rw-r--r--fxjs/xfa/cjx_speak.cpp37
-rw-r--r--fxjs/xfa/cjx_speak.h25
-rw-r--r--fxjs/xfa/cjx_stipple.cpp31
-rw-r--r--fxjs/xfa/cjx_stipple.h24
-rw-r--r--fxjs/xfa/cjx_subform.cpp151
-rw-r--r--fxjs/xfa/cjx_subform.h25
-rw-r--r--fxjs/xfa/cjx_subformset.cpp43
-rw-r--r--fxjs/xfa/cjx_subformset.h26
-rw-r--r--fxjs/xfa/cjx_subjectdn.cpp19
-rw-r--r--fxjs/xfa/cjx_subjectdn.h22
-rw-r--r--fxjs/xfa/cjx_subjectdns.cpp19
-rw-r--r--fxjs/xfa/cjx_subjectdns.h22
-rw-r--r--fxjs/xfa/cjx_submit.cpp55
-rw-r--r--fxjs/xfa/cjx_submit.h28
-rw-r--r--fxjs/xfa/cjx_text.cpp43
-rw-r--r--fxjs/xfa/cjx_text.h26
-rw-r--r--fxjs/xfa/cjx_textedit.cpp49
-rw-r--r--fxjs/xfa/cjx_textedit.h27
-rw-r--r--fxjs/xfa/cjx_textnode.cpp12
-rw-r--r--fxjs/xfa/cjx_textnode.h3
-rw-r--r--fxjs/xfa/cjx_time.cpp37
-rw-r--r--fxjs/xfa/cjx_time.h25
-rw-r--r--fxjs/xfa/cjx_timestamp.cpp37
-rw-r--r--fxjs/xfa/cjx_timestamp.h25
-rw-r--r--fxjs/xfa/cjx_tooltip.cpp25
-rw-r--r--fxjs/xfa/cjx_tooltip.h23
-rw-r--r--fxjs/xfa/cjx_traversal.cpp25
-rw-r--r--fxjs/xfa/cjx_traversal.h23
-rw-r--r--fxjs/xfa/cjx_traverse.cpp37
-rw-r--r--fxjs/xfa/cjx_traverse.h25
-rw-r--r--fxjs/xfa/cjx_tree.cpp6
-rw-r--r--fxjs/xfa/cjx_tree.h19
-rw-r--r--fxjs/xfa/cjx_ui.cpp25
-rw-r--r--fxjs/xfa/cjx_ui.h23
-rw-r--r--fxjs/xfa/cjx_update.cpp25
-rw-r--r--fxjs/xfa/cjx_update.h23
-rw-r--r--fxjs/xfa/cjx_uri.cpp25
-rw-r--r--fxjs/xfa/cjx_uri.h23
-rw-r--r--fxjs/xfa/cjx_user.cpp25
-rw-r--r--fxjs/xfa/cjx_user.h23
-rw-r--r--fxjs/xfa/cjx_validate.cpp43
-rw-r--r--fxjs/xfa/cjx_validate.h26
-rw-r--r--fxjs/xfa/cjx_value.cpp37
-rw-r--r--fxjs/xfa/cjx_value.h25
-rw-r--r--fxjs/xfa/cjx_variables.cpp25
-rw-r--r--fxjs/xfa/cjx_variables.h23
-rw-r--r--fxjs/xfa/cjx_wsdladdress.cpp25
-rw-r--r--fxjs/xfa/cjx_wsdladdress.h23
-rw-r--r--fxjs/xfa/cjx_wsdlconnection.cpp12
-rw-r--r--fxjs/xfa/cjx_wsdlconnection.h3
-rw-r--r--fxjs/xfa/cjx_xfa.cpp39
-rw-r--r--fxjs/xfa/cjx_xfa.h24
-rw-r--r--fxjs/xfa/cjx_xmlconnection.cpp20
-rw-r--r--fxjs/xfa/cjx_xmlconnection.h22
-rw-r--r--fxjs/xfa/cjx_xsdconnection.cpp20
-rw-r--r--fxjs/xfa/cjx_xsdconnection.h22
287 files changed, 9248 insertions, 800 deletions
diff --git a/fxjs/CJX_Define.h b/fxjs/CJX_Define.h
index 070e7d7557..4a26fd4d23 100644
--- a/fxjs/CJX_Define.h
+++ b/fxjs/CJX_Define.h
@@ -31,4 +31,7 @@ CJS_Return JSMethod(C* node,
CJS_Return method_name(CJS_V8* runtime, \
const std::vector<v8::Local<v8::Value>>& params)
+#define JS_PROP(prop_name) \
+ void prop_name(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute)
+
#endif // FXJS_CJX_DEFINE_H_
diff --git a/fxjs/xfa/cjx_arc.cpp b/fxjs/xfa/cjx_arc.cpp
new file mode 100644
index 0000000000..92b626dff7
--- /dev/null
+++ b/fxjs/xfa/cjx_arc.cpp
@@ -0,0 +1,49 @@
+// 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_arc.h"
+
+#include "xfa/fxfa/parser/cxfa_arc.h"
+
+CJX_Arc::CJX_Arc(CXFA_Arc* node) : CJX_Node(node) {}
+
+CJX_Arc::~CJX_Arc() = default;
+
+void CJX_Arc::circular(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Arc::hand(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Arc::startAngle(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Arc::sweepAngle(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Arc::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Arc::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_arc.h b/fxjs/xfa/cjx_arc.h
new file mode 100644
index 0000000000..a9a6bb6733
--- /dev/null
+++ b/fxjs/xfa/cjx_arc.h
@@ -0,0 +1,27 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_ARC_H_
+#define FXJS_XFA_CJX_ARC_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Arc;
+
+class CJX_Arc : public CJX_Node {
+ public:
+ explicit CJX_Arc(CXFA_Arc* node);
+ ~CJX_Arc() override;
+
+ JS_PROP(circular);
+ JS_PROP(hand);
+ JS_PROP(startAngle);
+ JS_PROP(sweepAngle);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_ARC_H_
diff --git a/fxjs/xfa/cjx_area.cpp b/fxjs/xfa/cjx_area.cpp
new file mode 100644
index 0000000000..ee621943b6
--- /dev/null
+++ b/fxjs/xfa/cjx_area.cpp
@@ -0,0 +1,49 @@
+// 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_area.h"
+
+#include "xfa/fxfa/parser/cxfa_area.h"
+
+CJX_Area::CJX_Area(CXFA_Area* node) : CJX_Container(node) {}
+
+CJX_Area::~CJX_Area() = default;
+
+void CJX_Area::colSpan(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Area::relevant(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Area::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Area::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Area::x(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Area::y(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_area.h b/fxjs/xfa/cjx_area.h
new file mode 100644
index 0000000000..94083b351a
--- /dev/null
+++ b/fxjs/xfa/cjx_area.h
@@ -0,0 +1,27 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_AREA_H_
+#define FXJS_XFA_CJX_AREA_H_
+
+#include "fxjs/xfa/cjx_container.h"
+
+class CXFA_Area;
+
+class CJX_Area : public CJX_Container {
+ public:
+ explicit CJX_Area(CXFA_Area* node);
+ ~CJX_Area() override;
+
+ JS_PROP(colSpan);
+ JS_PROP(relevant);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(x);
+ JS_PROP(y);
+};
+
+#endif // FXJS_XFA_CJX_AREA_H_
diff --git a/fxjs/xfa/cjx_assist.cpp b/fxjs/xfa/cjx_assist.cpp
new file mode 100644
index 0000000000..fcd7f37d08
--- /dev/null
+++ b/fxjs/xfa/cjx_assist.cpp
@@ -0,0 +1,31 @@
+// 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_assist.h"
+
+#include "xfa/fxfa/parser/cxfa_assist.h"
+
+CJX_Assist::CJX_Assist(CXFA_Assist* node) : CJX_Node(node) {}
+
+CJX_Assist::~CJX_Assist() = default;
+
+void CJX_Assist::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Assist::role(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Assist::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_assist.h b/fxjs/xfa/cjx_assist.h
new file mode 100644
index 0000000000..9e7c9c55e3
--- /dev/null
+++ b/fxjs/xfa/cjx_assist.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_ASSIST_H_
+#define FXJS_XFA_CJX_ASSIST_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Assist;
+
+class CJX_Assist : public CJX_Node {
+ public:
+ explicit CJX_Assist(CXFA_Assist* node);
+ ~CJX_Assist() override;
+
+ JS_PROP(role);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_ASSIST_H_
diff --git a/fxjs/xfa/cjx_barcode.cpp b/fxjs/xfa/cjx_barcode.cpp
new file mode 100644
index 0000000000..7520cc3571
--- /dev/null
+++ b/fxjs/xfa/cjx_barcode.cpp
@@ -0,0 +1,133 @@
+// 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_barcode.h"
+
+#include "xfa/fxfa/parser/cxfa_barcode.h"
+
+CJX_Barcode::CJX_Barcode(CXFA_Barcode* node) : CJX_Node(node) {}
+
+CJX_Barcode::~CJX_Barcode() = default;
+
+void CJX_Barcode::charEncoding(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::checksum(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::dataColumnCount(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::dataLength(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::dataPrep(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::dataRowCount(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::endChar(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::errorCorrectionLevel(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::moduleHeight(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::moduleWidth(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::printCheckDigit(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::rowColumnRatio(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::startChar(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::textLocation(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::truncate(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::upsMode(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Barcode::wideNarrowRatio(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_barcode.h b/fxjs/xfa/cjx_barcode.h
new file mode 100644
index 0000000000..f5d88816bd
--- /dev/null
+++ b/fxjs/xfa/cjx_barcode.h
@@ -0,0 +1,41 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_BARCODE_H_
+#define FXJS_XFA_CJX_BARCODE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Barcode;
+
+class CJX_Barcode : public CJX_Node {
+ public:
+ explicit CJX_Barcode(CXFA_Barcode* arc);
+ ~CJX_Barcode() override;
+
+ JS_PROP(charEncoding);
+ JS_PROP(checksum);
+ JS_PROP(dataColumnCount);
+ JS_PROP(dataLength);
+ JS_PROP(dataPrep);
+ JS_PROP(dataRowCount);
+ JS_PROP(endChar);
+ JS_PROP(errorCorrectionLevel);
+ JS_PROP(moduleHeight);
+ JS_PROP(moduleWidth);
+ JS_PROP(printCheckDigit);
+ JS_PROP(rowColumnRatio);
+ JS_PROP(startChar);
+ JS_PROP(textLocation);
+ JS_PROP(truncate);
+ JS_PROP(type);
+ JS_PROP(upsMode);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(wideNarrowRatio);
+};
+
+#endif // FXJS_XFA_CJX_BARCODE_H_
diff --git a/fxjs/xfa/cjx_bind.cpp b/fxjs/xfa/cjx_bind.cpp
new file mode 100644
index 0000000000..a73312dfd1
--- /dev/null
+++ b/fxjs/xfa/cjx_bind.cpp
@@ -0,0 +1,49 @@
+// 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_bind.h"
+
+#include "xfa/fxfa/parser/cxfa_bind.h"
+
+CJX_Bind::CJX_Bind(CXFA_Bind* node) : CJX_Node(node) {}
+
+CJX_Bind::~CJX_Bind() = default;
+
+void CJX_Bind::contentType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Bind::match(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Bind::ref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Bind::transferEncoding(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Bind::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Bind::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_bind.h b/fxjs/xfa/cjx_bind.h
new file mode 100644
index 0000000000..9fc8ab8071
--- /dev/null
+++ b/fxjs/xfa/cjx_bind.h
@@ -0,0 +1,27 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_BIND_H_
+#define FXJS_XFA_CJX_BIND_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Bind;
+
+class CJX_Bind : public CJX_Node {
+ public:
+ explicit CJX_Bind(CXFA_Bind* node);
+ ~CJX_Bind() override;
+
+ JS_PROP(contentType);
+ JS_PROP(match);
+ JS_PROP(ref);
+ JS_PROP(transferEncoding);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_BIND_H_
diff --git a/fxjs/xfa/cjx_binditems.cpp b/fxjs/xfa/cjx_binditems.cpp
new file mode 100644
index 0000000000..dd1f30d814
--- /dev/null
+++ b/fxjs/xfa/cjx_binditems.cpp
@@ -0,0 +1,31 @@
+// 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_binditems.h"
+
+#include "xfa/fxfa/parser/cxfa_binditems.h"
+
+CJX_BindItems::CJX_BindItems(CXFA_BindItems* node) : CJX_Node(node) {}
+
+CJX_BindItems::~CJX_BindItems() = default;
+
+void CJX_BindItems::connection(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_BindItems::labelRef(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_BindItems::valueRef(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_binditems.h b/fxjs/xfa/cjx_binditems.h
new file mode 100644
index 0000000000..e47b3faea5
--- /dev/null
+++ b/fxjs/xfa/cjx_binditems.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_BINDITEMS_H_
+#define FXJS_XFA_CJX_BINDITEMS_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_BindItems;
+
+class CJX_BindItems : public CJX_Node {
+ public:
+ explicit CJX_BindItems(CXFA_BindItems* node);
+ ~CJX_BindItems() override;
+
+ JS_PROP(connection);
+ JS_PROP(labelRef);
+ JS_PROP(valueRef);
+};
+
+#endif // FXJS_XFA_CJX_BINDITEMS_H_
diff --git a/fxjs/xfa/cjx_bookend.cpp b/fxjs/xfa/cjx_bookend.cpp
new file mode 100644
index 0000000000..2399e26f58
--- /dev/null
+++ b/fxjs/xfa/cjx_bookend.cpp
@@ -0,0 +1,37 @@
+// 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_bookend.h"
+
+#include "xfa/fxfa/parser/cxfa_bookend.h"
+
+CJX_Bookend::CJX_Bookend(CXFA_Bookend* node) : CJX_Node(node) {}
+
+CJX_Bookend::~CJX_Bookend() = default;
+
+void CJX_Bookend::leader(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Bookend::trailer(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Bookend::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Bookend::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_bookend.h b/fxjs/xfa/cjx_bookend.h
new file mode 100644
index 0000000000..0165091f06
--- /dev/null
+++ b/fxjs/xfa/cjx_bookend.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_BOOKEND_H_
+#define FXJS_XFA_CJX_BOOKEND_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Bookend;
+
+class CJX_Bookend : public CJX_Node {
+ public:
+ explicit CJX_Bookend(CXFA_Bookend* node);
+ ~CJX_Bookend() override;
+
+ JS_PROP(leader);
+ JS_PROP(trailer);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_BOOKEND_H_
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);
+}
diff --git a/fxjs/xfa/cjx_boolean.h b/fxjs/xfa/cjx_boolean.h
new file mode 100644
index 0000000000..c90291aa8a
--- /dev/null
+++ b/fxjs/xfa/cjx_boolean.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_BOOLEAN_H_
+#define FXJS_XFA_CJX_BOOLEAN_H_
+
+#include "fxjs/xfa/cjx_content.h"
+
+class CXFA_Boolean;
+
+class CJX_Boolean : public CJX_Content {
+ public:
+ explicit CJX_Boolean(CXFA_Boolean* node);
+ ~CJX_Boolean() override;
+
+ JS_PROP(use);
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(usehref);
+ JS_PROP(value);
+};
+
+#endif // FXJS_XFA_CJX_BOOLEAN_H_
diff --git a/fxjs/xfa/cjx_border.cpp b/fxjs/xfa/cjx_border.cpp
new file mode 100644
index 0000000000..92355a85c1
--- /dev/null
+++ b/fxjs/xfa/cjx_border.cpp
@@ -0,0 +1,49 @@
+// 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_border.h"
+
+#include "xfa/fxfa/parser/cxfa_border.h"
+
+CJX_Border::CJX_Border(CXFA_Border* node) : CJX_Node(node) {}
+
+CJX_Border::~CJX_Border() = default;
+
+void CJX_Border::breakValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Border::hand(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Border::presence(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Border::relevant(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Border::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Border::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_border.h b/fxjs/xfa/cjx_border.h
new file mode 100644
index 0000000000..b95ca4c311
--- /dev/null
+++ b/fxjs/xfa/cjx_border.h
@@ -0,0 +1,27 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_BORDER_H_
+#define FXJS_XFA_CJX_BORDER_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Border;
+
+class CJX_Border : public CJX_Node {
+ public:
+ explicit CJX_Border(CXFA_Border* node);
+ ~CJX_Border() override;
+
+ JS_PROP(breakValue); /* break */
+ JS_PROP(hand);
+ JS_PROP(presence);
+ JS_PROP(relevant);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_BORDER_H_
diff --git a/fxjs/xfa/cjx_break.cpp b/fxjs/xfa/cjx_break.cpp
new file mode 100644
index 0000000000..d04a05f189
--- /dev/null
+++ b/fxjs/xfa/cjx_break.cpp
@@ -0,0 +1,85 @@
+// 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_break.h"
+
+#include "xfa/fxfa/parser/cxfa_break.h"
+
+CJX_Break::CJX_Break(CXFA_Break* node) : CJX_Node(node) {}
+
+CJX_Break::~CJX_Break() = default;
+
+void CJX_Break::after(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Break::afterTarget(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Break::before(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Break::beforeTarget(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Break::bookendLeader(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Break::bookendTrailer(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Break::overflowLeader(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Break::overflowTarget(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Break::overflowTrailer(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Break::startNew(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Break::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Break::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_break.h b/fxjs/xfa/cjx_break.h
new file mode 100644
index 0000000000..86cb249bf7
--- /dev/null
+++ b/fxjs/xfa/cjx_break.h
@@ -0,0 +1,33 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_BREAK_H_
+#define FXJS_XFA_CJX_BREAK_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Break;
+
+class CJX_Break : public CJX_Node {
+ public:
+ explicit CJX_Break(CXFA_Break* node);
+ ~CJX_Break() override;
+
+ JS_PROP(after);
+ JS_PROP(afterTarget);
+ JS_PROP(before);
+ JS_PROP(beforeTarget);
+ JS_PROP(bookendLeader);
+ JS_PROP(bookendTrailer);
+ JS_PROP(overflowLeader);
+ JS_PROP(overflowTarget);
+ JS_PROP(overflowTrailer);
+ JS_PROP(startNew);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_BREAK_H_
diff --git a/fxjs/xfa/cjx_breakafter.cpp b/fxjs/xfa/cjx_breakafter.cpp
new file mode 100644
index 0000000000..76a5a3bc45
--- /dev/null
+++ b/fxjs/xfa/cjx_breakafter.cpp
@@ -0,0 +1,55 @@
+// 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_breakafter.h"
+
+#include "xfa/fxfa/parser/cxfa_breakafter.h"
+
+CJX_BreakAfter::CJX_BreakAfter(CXFA_BreakAfter* node) : CJX_Node(node) {}
+
+CJX_BreakAfter::~CJX_BreakAfter() = default;
+
+void CJX_BreakAfter::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_BreakAfter::startNew(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_BreakAfter::trailer(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_BreakAfter::targetType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_BreakAfter::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_BreakAfter::target(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_BreakAfter::leader(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_breakafter.h b/fxjs/xfa/cjx_breakafter.h
new file mode 100644
index 0000000000..aa1eccc084
--- /dev/null
+++ b/fxjs/xfa/cjx_breakafter.h
@@ -0,0 +1,28 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_BREAKAFTER_H_
+#define FXJS_XFA_CJX_BREAKAFTER_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_BreakAfter;
+
+class CJX_BreakAfter : public CJX_Node {
+ public:
+ explicit CJX_BreakAfter(CXFA_BreakAfter* node);
+ ~CJX_BreakAfter() override;
+
+ JS_PROP(leader);
+ JS_PROP(startNew);
+ JS_PROP(target);
+ JS_PROP(targetType);
+ JS_PROP(trailer);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_BREAKAFTER_H_
diff --git a/fxjs/xfa/cjx_breakbefore.cpp b/fxjs/xfa/cjx_breakbefore.cpp
new file mode 100644
index 0000000000..83fa01e7cb
--- /dev/null
+++ b/fxjs/xfa/cjx_breakbefore.cpp
@@ -0,0 +1,55 @@
+// 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_breakbefore.h"
+
+#include "xfa/fxfa/parser/cxfa_breakbefore.h"
+
+CJX_BreakBefore::CJX_BreakBefore(CXFA_BreakBefore* node) : CJX_Node(node) {}
+
+CJX_BreakBefore::~CJX_BreakBefore() = default;
+
+void CJX_BreakBefore::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_BreakBefore::startNew(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_BreakBefore::trailer(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_BreakBefore::targetType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_BreakBefore::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_BreakBefore::target(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_BreakBefore::leader(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_breakbefore.h b/fxjs/xfa/cjx_breakbefore.h
new file mode 100644
index 0000000000..3f8dbbb3c6
--- /dev/null
+++ b/fxjs/xfa/cjx_breakbefore.h
@@ -0,0 +1,28 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_BREAKBEFORE_H_
+#define FXJS_XFA_CJX_BREAKBEFORE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_BreakBefore;
+
+class CJX_BreakBefore : public CJX_Node {
+ public:
+ explicit CJX_BreakBefore(CXFA_BreakBefore* node);
+ ~CJX_BreakBefore() override;
+
+ JS_PROP(leader);
+ JS_PROP(startNew);
+ JS_PROP(target);
+ JS_PROP(targetType);
+ JS_PROP(trailer);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_BREAKBEFORE_H_
diff --git a/fxjs/xfa/cjx_button.cpp b/fxjs/xfa/cjx_button.cpp
new file mode 100644
index 0000000000..b5bd6eb01e
--- /dev/null
+++ b/fxjs/xfa/cjx_button.cpp
@@ -0,0 +1,31 @@
+// 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_button.h"
+
+#include "xfa/fxfa/parser/cxfa_button.h"
+
+CJX_Button::CJX_Button(CXFA_Button* node) : CJX_Node(node) {}
+
+CJX_Button::~CJX_Button() = default;
+
+void CJX_Button::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Button::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Button::highlight(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_button.h b/fxjs/xfa/cjx_button.h
new file mode 100644
index 0000000000..3732aae674
--- /dev/null
+++ b/fxjs/xfa/cjx_button.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_BUTTON_H_
+#define FXJS_XFA_CJX_BUTTON_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Button;
+
+class CJX_Button : public CJX_Node {
+ public:
+ explicit CJX_Button(CXFA_Button* node);
+ ~CJX_Button() override;
+
+ JS_PROP(highlight);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_BUTTON_H_
diff --git a/fxjs/xfa/cjx_calculate.cpp b/fxjs/xfa/cjx_calculate.cpp
new file mode 100644
index 0000000000..e5db4dffad
--- /dev/null
+++ b/fxjs/xfa/cjx_calculate.cpp
@@ -0,0 +1,31 @@
+// 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_calculate.h"
+
+#include "xfa/fxfa/parser/cxfa_calculate.h"
+
+CJX_Calculate::CJX_Calculate(CXFA_Calculate* node) : CJX_Node(node) {}
+
+CJX_Calculate::~CJX_Calculate() = default;
+
+void CJX_Calculate::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Calculate::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Calculate::override(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_calculate.h b/fxjs/xfa/cjx_calculate.h
new file mode 100644
index 0000000000..2410f1bf45
--- /dev/null
+++ b/fxjs/xfa/cjx_calculate.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_CALCULATE_H_
+#define FXJS_XFA_CJX_CALCULATE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Calculate;
+
+class CJX_Calculate : public CJX_Node {
+ public:
+ explicit CJX_Calculate(CXFA_Calculate* node);
+ ~CJX_Calculate() override;
+
+ JS_PROP(override);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_CALCULATE_H_
diff --git a/fxjs/xfa/cjx_caption.cpp b/fxjs/xfa/cjx_caption.cpp
new file mode 100644
index 0000000000..5c7f6a8d04
--- /dev/null
+++ b/fxjs/xfa/cjx_caption.cpp
@@ -0,0 +1,43 @@
+// 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_caption.h"
+
+#include "xfa/fxfa/parser/cxfa_caption.h"
+
+CJX_Caption::CJX_Caption(CXFA_Caption* node) : CJX_Node(node) {}
+
+CJX_Caption::~CJX_Caption() = default;
+
+void CJX_Caption::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Caption::reserve(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Caption::presence(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Caption::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Caption::placement(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_caption.h b/fxjs/xfa/cjx_caption.h
new file mode 100644
index 0000000000..9af6915f35
--- /dev/null
+++ b/fxjs/xfa/cjx_caption.h
@@ -0,0 +1,26 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_CAPTION_H_
+#define FXJS_XFA_CJX_CAPTION_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Caption;
+
+class CJX_Caption : public CJX_Node {
+ public:
+ explicit CJX_Caption(CXFA_Caption* node);
+ ~CJX_Caption() override;
+
+ JS_PROP(placement);
+ JS_PROP(presence);
+ JS_PROP(reserve);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_CAPTION_H_
diff --git a/fxjs/xfa/cjx_certificate.cpp b/fxjs/xfa/cjx_certificate.cpp
new file mode 100644
index 0000000000..1d10565135
--- /dev/null
+++ b/fxjs/xfa/cjx_certificate.cpp
@@ -0,0 +1,25 @@
+// 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_certificate.h"
+
+#include "xfa/fxfa/parser/cxfa_certificate.h"
+
+CJX_Certificate::CJX_Certificate(CXFA_Certificate* node) : CJX_TextNode(node) {}
+
+CJX_Certificate::~CJX_Certificate() = default;
+
+void CJX_Certificate::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Certificate::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_certificate.h b/fxjs/xfa/cjx_certificate.h
new file mode 100644
index 0000000000..af62b9135f
--- /dev/null
+++ b/fxjs/xfa/cjx_certificate.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_CERTIFICATE_H_
+#define FXJS_XFA_CJX_CERTIFICATE_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_Certificate;
+
+class CJX_Certificate : public CJX_TextNode {
+ public:
+ explicit CJX_Certificate(CXFA_Certificate* node);
+ ~CJX_Certificate() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_CERTIFICATE_H_
diff --git a/fxjs/xfa/cjx_certificates.cpp b/fxjs/xfa/cjx_certificates.cpp
new file mode 100644
index 0000000000..68286307b3
--- /dev/null
+++ b/fxjs/xfa/cjx_certificates.cpp
@@ -0,0 +1,43 @@
+// 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_certificates.h"
+
+#include "xfa/fxfa/parser/cxfa_certificates.h"
+
+CJX_Certificates::CJX_Certificates(CXFA_Certificates* node) : CJX_Node(node) {}
+
+CJX_Certificates::~CJX_Certificates() = default;
+
+void CJX_Certificates::url(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Certificates::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Certificates::credentialServerPolicy(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Certificates::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Certificates::urlPolicy(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_certificates.h b/fxjs/xfa/cjx_certificates.h
new file mode 100644
index 0000000000..160d88d9a8
--- /dev/null
+++ b/fxjs/xfa/cjx_certificates.h
@@ -0,0 +1,26 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_CERTIFICATES_H_
+#define FXJS_XFA_CJX_CERTIFICATES_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Certificates;
+
+class CJX_Certificates : public CJX_Node {
+ public:
+ explicit CJX_Certificates(CXFA_Certificates* node);
+ ~CJX_Certificates() override;
+
+ JS_PROP(credentialServerPolicy);
+ JS_PROP(url);
+ JS_PROP(urlPolicy);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_CERTIFICATES_H_
diff --git a/fxjs/xfa/cjx_checkbutton.cpp b/fxjs/xfa/cjx_checkbutton.cpp
new file mode 100644
index 0000000000..8c5b1e6186
--- /dev/null
+++ b/fxjs/xfa/cjx_checkbutton.cpp
@@ -0,0 +1,49 @@
+// 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_checkbutton.h"
+
+#include "xfa/fxfa/parser/cxfa_checkbutton.h"
+
+CJX_CheckButton::CJX_CheckButton(CXFA_CheckButton* node) : CJX_Node(node) {}
+
+CJX_CheckButton::~CJX_CheckButton() = default;
+
+void CJX_CheckButton::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_CheckButton::allowNeutral(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_CheckButton::mark(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_CheckButton::shape(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_CheckButton::size(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_CheckButton::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_checkbutton.h b/fxjs/xfa/cjx_checkbutton.h
new file mode 100644
index 0000000000..18cca68d23
--- /dev/null
+++ b/fxjs/xfa/cjx_checkbutton.h
@@ -0,0 +1,27 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_CHECKBUTTON_H_
+#define FXJS_XFA_CJX_CHECKBUTTON_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_CheckButton;
+
+class CJX_CheckButton : public CJX_Node {
+ public:
+ explicit CJX_CheckButton(CXFA_CheckButton* node);
+ ~CJX_CheckButton() override;
+
+ JS_PROP(allowNeutral);
+ JS_PROP(mark);
+ JS_PROP(shape);
+ JS_PROP(size);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_CHECKBUTTON_H_
diff --git a/fxjs/xfa/cjx_choicelist.cpp b/fxjs/xfa/cjx_choicelist.cpp
new file mode 100644
index 0000000000..3c85a03706
--- /dev/null
+++ b/fxjs/xfa/cjx_choicelist.cpp
@@ -0,0 +1,43 @@
+// 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_choicelist.h"
+
+#include "xfa/fxfa/parser/cxfa_choicelist.h"
+
+CJX_ChoiceList::CJX_ChoiceList(CXFA_ChoiceList* node) : CJX_Node(node) {}
+
+CJX_ChoiceList::~CJX_ChoiceList() = default;
+
+void CJX_ChoiceList::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ChoiceList::open(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ChoiceList::commitOn(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ChoiceList::textEntry(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ChoiceList::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_choicelist.h b/fxjs/xfa/cjx_choicelist.h
new file mode 100644
index 0000000000..40336f2aac
--- /dev/null
+++ b/fxjs/xfa/cjx_choicelist.h
@@ -0,0 +1,26 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_CHOICELIST_H_
+#define FXJS_XFA_CJX_CHOICELIST_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_ChoiceList;
+
+class CJX_ChoiceList : public CJX_Node {
+ public:
+ explicit CJX_ChoiceList(CXFA_ChoiceList* node);
+ ~CJX_ChoiceList() override;
+
+ JS_PROP(commitOn);
+ JS_PROP(open);
+ JS_PROP(textEntry);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_CHOICELIST_H_
diff --git a/fxjs/xfa/cjx_color.cpp b/fxjs/xfa/cjx_color.cpp
new file mode 100644
index 0000000000..fe7da0590c
--- /dev/null
+++ b/fxjs/xfa/cjx_color.cpp
@@ -0,0 +1,37 @@
+// 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_color.h"
+
+#include "xfa/fxfa/parser/cxfa_color.h"
+
+CJX_Color::CJX_Color(CXFA_Color* node) : CJX_Node(node) {}
+
+CJX_Color::~CJX_Color() = default;
+
+void CJX_Color::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Color::cSpace(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Color::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Color::value(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_color.h b/fxjs/xfa/cjx_color.h
new file mode 100644
index 0000000000..c625753556
--- /dev/null
+++ b/fxjs/xfa/cjx_color.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_COLOR_H_
+#define FXJS_XFA_CJX_COLOR_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Color;
+
+class CJX_Color : public CJX_Node {
+ public:
+ explicit CJX_Color(CXFA_Color* node);
+ ~CJX_Color() override;
+
+ JS_PROP(cSpace);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(value);
+};
+
+#endif // FXJS_XFA_CJX_COLOR_H_
diff --git a/fxjs/xfa/cjx_comb.cpp b/fxjs/xfa/cjx_comb.cpp
new file mode 100644
index 0000000000..77144af33c
--- /dev/null
+++ b/fxjs/xfa/cjx_comb.cpp
@@ -0,0 +1,31 @@
+// 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_comb.h"
+
+#include "xfa/fxfa/parser/cxfa_comb.h"
+
+CJX_Comb::CJX_Comb(CXFA_Comb* node) : CJX_Node(node) {}
+
+CJX_Comb::~CJX_Comb() = default;
+
+void CJX_Comb::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Comb::numberOfCells(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_Integer(pValue, bSetting, eAttribute);
+}
+
+void CJX_Comb::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_comb.h b/fxjs/xfa/cjx_comb.h
new file mode 100644
index 0000000000..1c8d631f1d
--- /dev/null
+++ b/fxjs/xfa/cjx_comb.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_COMB_H_
+#define FXJS_XFA_CJX_COMB_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Comb;
+
+class CJX_Comb : public CJX_Node {
+ public:
+ explicit CJX_Comb(CXFA_Comb* node);
+ ~CJX_Comb() override;
+
+ JS_PROP(numberOfCells);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_COMB_H_
diff --git a/fxjs/xfa/cjx_command.cpp b/fxjs/xfa/cjx_command.cpp
new file mode 100644
index 0000000000..30e654b8bd
--- /dev/null
+++ b/fxjs/xfa/cjx_command.cpp
@@ -0,0 +1,31 @@
+// 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_command.h"
+
+#include "xfa/fxfa/parser/cxfa_command.h"
+
+CJX_Command::CJX_Command(CXFA_Command* node) : CJX_Node(node) {}
+
+CJX_Command::~CJX_Command() = default;
+
+void CJX_Command::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Command::timeout(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Command::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_command.h b/fxjs/xfa/cjx_command.h
new file mode 100644
index 0000000000..c4605a31ef
--- /dev/null
+++ b/fxjs/xfa/cjx_command.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_COMMAND_H_
+#define FXJS_XFA_CJX_COMMAND_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Command;
+
+class CJX_Command : public CJX_Node {
+ public:
+ explicit CJX_Command(CXFA_Command* node);
+ ~CJX_Command() override;
+
+ JS_PROP(timeout);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_COMMAND_H_
diff --git a/fxjs/xfa/cjx_connect.cpp b/fxjs/xfa/cjx_connect.cpp
new file mode 100644
index 0000000000..d58420d1df
--- /dev/null
+++ b/fxjs/xfa/cjx_connect.cpp
@@ -0,0 +1,55 @@
+// 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_connect.h"
+
+#include "xfa/fxfa/parser/cxfa_connect.h"
+
+CJX_Connect::CJX_Connect(CXFA_Connect* node) : CJX_Node(node) {}
+
+CJX_Connect::~CJX_Connect() = default;
+
+void CJX_Connect::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Connect::timeout(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Connect::connection(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Connect::usage(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Connect::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Connect::delayedOpen(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Connect::ref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_connect.h b/fxjs/xfa/cjx_connect.h
new file mode 100644
index 0000000000..2c279175c7
--- /dev/null
+++ b/fxjs/xfa/cjx_connect.h
@@ -0,0 +1,28 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_CONNECT_H_
+#define FXJS_XFA_CJX_CONNECT_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Connect;
+
+class CJX_Connect : public CJX_Node {
+ public:
+ explicit CJX_Connect(CXFA_Connect* node);
+ ~CJX_Connect() override;
+
+ JS_PROP(connection);
+ JS_PROP(delayedOpen);
+ JS_PROP(ref);
+ JS_PROP(timeout);
+ JS_PROP(usage);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_CONNECT_H_
diff --git a/fxjs/xfa/cjx_connectstring.cpp b/fxjs/xfa/cjx_connectstring.cpp
new file mode 100644
index 0000000000..75c6359f84
--- /dev/null
+++ b/fxjs/xfa/cjx_connectstring.cpp
@@ -0,0 +1,26 @@
+// 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_connectstring.h"
+
+#include "xfa/fxfa/parser/cxfa_connectstring.h"
+
+CJX_ConnectString::CJX_ConnectString(CXFA_ConnectString* node)
+ : CJX_TextNode(node) {}
+
+CJX_ConnectString::~CJX_ConnectString() = default;
+
+void CJX_ConnectString::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ConnectString::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_connectstring.h b/fxjs/xfa/cjx_connectstring.h
new file mode 100644
index 0000000000..969c92b6d8
--- /dev/null
+++ b/fxjs/xfa/cjx_connectstring.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_CONNECTSTRING_H_
+#define FXJS_XFA_CJX_CONNECTSTRING_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_ConnectString;
+
+class CJX_ConnectString : public CJX_TextNode {
+ public:
+ explicit CJX_ConnectString(CXFA_ConnectString* node);
+ ~CJX_ConnectString() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_CONNECTSTRING_H_
diff --git a/fxjs/xfa/cjx_contentarea.cpp b/fxjs/xfa/cjx_contentarea.cpp
new file mode 100644
index 0000000000..d1e74e7c99
--- /dev/null
+++ b/fxjs/xfa/cjx_contentarea.cpp
@@ -0,0 +1,44 @@
+// 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_contentarea.h"
+
+#include "xfa/fxfa/parser/cxfa_contentarea.h"
+
+CJX_ContentArea::CJX_ContentArea(CXFA_ContentArea* node)
+ : CJX_Container(node) {}
+
+CJX_ContentArea::~CJX_ContentArea() = default;
+
+void CJX_ContentArea::x(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ContentArea::y(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ContentArea::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ContentArea::relevant(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ContentArea::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_contentarea.h b/fxjs/xfa/cjx_contentarea.h
new file mode 100644
index 0000000000..d97e108566
--- /dev/null
+++ b/fxjs/xfa/cjx_contentarea.h
@@ -0,0 +1,26 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_CONTENTAREA_H_
+#define FXJS_XFA_CJX_CONTENTAREA_H_
+
+#include "fxjs/xfa/cjx_container.h"
+
+class CXFA_ContentArea;
+
+class CJX_ContentArea : public CJX_Container {
+ public:
+ explicit CJX_ContentArea(CXFA_ContentArea* node);
+ ~CJX_ContentArea() override;
+
+ JS_PROP(relevant);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(x);
+ JS_PROP(y);
+};
+
+#endif // FXJS_XFA_CJX_CONTENTAREA_H_
diff --git a/fxjs/xfa/cjx_corner.cpp b/fxjs/xfa/cjx_corner.cpp
new file mode 100644
index 0000000000..2ed1922dd9
--- /dev/null
+++ b/fxjs/xfa/cjx_corner.cpp
@@ -0,0 +1,61 @@
+// 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_corner.h"
+
+#include "xfa/fxfa/parser/cxfa_corner.h"
+
+CJX_Corner::CJX_Corner(CXFA_Corner* node) : CJX_Node(node) {}
+
+CJX_Corner::~CJX_Corner() = default;
+
+void CJX_Corner::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Corner::stroke(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Corner::presence(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Corner::inverted(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Corner::thickness(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Corner::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Corner::join(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Corner::radius(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_corner.h b/fxjs/xfa/cjx_corner.h
new file mode 100644
index 0000000000..83251a5ba9
--- /dev/null
+++ b/fxjs/xfa/cjx_corner.h
@@ -0,0 +1,29 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_CORNER_H_
+#define FXJS_XFA_CJX_CORNER_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Corner;
+
+class CJX_Corner : public CJX_Node {
+ public:
+ explicit CJX_Corner(CXFA_Corner* node);
+ ~CJX_Corner() override;
+
+ JS_PROP(inverted);
+ JS_PROP(join);
+ JS_PROP(presence);
+ JS_PROP(radius);
+ JS_PROP(stroke);
+ JS_PROP(thickness);
+ JS_PROP(usehref);
+ JS_PROP(use);
+};
+
+#endif // FXJS_XFA_CJX_CORNER_H_
diff --git a/fxjs/xfa/cjx_datavalue.cpp b/fxjs/xfa/cjx_datavalue.cpp
new file mode 100644
index 0000000000..b90ed45e66
--- /dev/null
+++ b/fxjs/xfa/cjx_datavalue.cpp
@@ -0,0 +1,43 @@
+// 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_datavalue.h"
+
+#include "xfa/fxfa/parser/cxfa_datavalue.h"
+
+CJX_DataValue::CJX_DataValue(CXFA_DataValue* node) : CJX_Node(node) {}
+
+CJX_DataValue::~CJX_DataValue() = default;
+
+void CJX_DataValue::contentType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_DataValue::contains(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_DataValue::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_DataValue::value(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ defaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_DataValue::isNull(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_BOOL(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_datavalue.h b/fxjs/xfa/cjx_datavalue.h
new file mode 100644
index 0000000000..16e8ed41fb
--- /dev/null
+++ b/fxjs/xfa/cjx_datavalue.h
@@ -0,0 +1,26 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_DATAVALUE_H_
+#define FXJS_XFA_CJX_DATAVALUE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_DataValue;
+
+class CJX_DataValue : public CJX_Node {
+ public:
+ explicit CJX_DataValue(CXFA_DataValue* node);
+ ~CJX_DataValue() override;
+
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(contains);
+ JS_PROP(contentType);
+ JS_PROP(isNull);
+ JS_PROP(value);
+};
+
+#endif // FXJS_XFA_CJX_DATAVALUE_H_
diff --git a/fxjs/xfa/cjx_datawindow.cpp b/fxjs/xfa/cjx_datawindow.cpp
index 47c743f8f7..5209cb47e6 100644
--- a/fxjs/xfa/cjx_datawindow.cpp
+++ b/fxjs/xfa/cjx_datawindow.cpp
@@ -48,18 +48,18 @@ CJS_Return CJX_DataWindow::isRecordGroup(
return CJS_Return(true);
}
-void CJX_DataWindow::RecordsBefore(CFXJSE_Value* pValue,
+void CJX_DataWindow::recordsBefore(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
-void CJX_DataWindow::CurrentRecordNumber(CFXJSE_Value* pValue,
+void CJX_DataWindow::currentRecordNumber(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
-void CJX_DataWindow::RecordsAfter(CFXJSE_Value* pValue,
+void CJX_DataWindow::recordsAfter(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
-void CJX_DataWindow::IsDefined(CFXJSE_Value* pValue,
+void CJX_DataWindow::isDefined(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {}
diff --git a/fxjs/xfa/cjx_datawindow.h b/fxjs/xfa/cjx_datawindow.h
index 82c5b1a9d1..dfaa6a44ba 100644
--- a/fxjs/xfa/cjx_datawindow.h
+++ b/fxjs/xfa/cjx_datawindow.h
@@ -19,22 +19,16 @@ class CJX_DataWindow : public CJX_Object {
explicit CJX_DataWindow(CScript_DataWindow* window);
~CJX_DataWindow() override;
- void RecordsBefore(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void CurrentRecordNumber(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void RecordsAfter(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void IsDefined(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
-
JS_METHOD(gotoRecord, CJX_DataWindow);
JS_METHOD(isRecordGroup, CJX_DataWindow);
JS_METHOD(moveCurrentRecord, CJX_DataWindow);
JS_METHOD(record, CJX_DataWindow);
+ JS_PROP(currentRecordNumber);
+ JS_PROP(isDefined);
+ JS_PROP(recordsAfter);
+ JS_PROP(recordsBefore);
+
private:
static const CJX_MethodSpec MethodSpecs[];
};
diff --git a/fxjs/xfa/cjx_date.cpp b/fxjs/xfa/cjx_date.cpp
new file mode 100644
index 0000000000..ade95a915b
--- /dev/null
+++ b/fxjs/xfa/cjx_date.cpp
@@ -0,0 +1,37 @@
+// 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_date.h"
+
+#include "xfa/fxfa/parser/cxfa_date.h"
+
+CJX_Date::CJX_Date(CXFA_Date* node) : CJX_Content(node) {}
+
+CJX_Date::~CJX_Date() = default;
+
+void CJX_Date::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Date::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_Date::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Date::value(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ defaultValue(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_date.h b/fxjs/xfa/cjx_date.h
new file mode 100644
index 0000000000..96dfd0e2c7
--- /dev/null
+++ b/fxjs/xfa/cjx_date.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_DATE_H_
+#define FXJS_XFA_CJX_DATE_H_
+
+#include "fxjs/xfa/cjx_content.h"
+
+class CXFA_Date;
+
+class CJX_Date : public CJX_Content {
+ public:
+ explicit CJX_Date(CXFA_Date* node);
+ ~CJX_Date() override;
+
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(value);
+};
+
+#endif // FXJS_XFA_CJX_DATE_H_
diff --git a/fxjs/xfa/cjx_datetime.cpp b/fxjs/xfa/cjx_datetime.cpp
new file mode 100644
index 0000000000..35ffd05f8e
--- /dev/null
+++ b/fxjs/xfa/cjx_datetime.cpp
@@ -0,0 +1,37 @@
+// 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_datetime.h"
+
+#include "xfa/fxfa/parser/cxfa_datetime.h"
+
+CJX_DateTime::CJX_DateTime(CXFA_DateTime* node) : CJX_Node(node) {}
+
+CJX_DateTime::~CJX_DateTime() = default;
+
+void CJX_DateTime::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_DateTime::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_DateTime::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_DateTime::value(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_datetime.h b/fxjs/xfa/cjx_datetime.h
new file mode 100644
index 0000000000..9cf7d2fb18
--- /dev/null
+++ b/fxjs/xfa/cjx_datetime.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_DATETIME_H_
+#define FXJS_XFA_CJX_DATETIME_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_DateTime;
+
+class CJX_DateTime : public CJX_Node {
+ public:
+ explicit CJX_DateTime(CXFA_DateTime* node);
+ ~CJX_DateTime() override;
+
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(value);
+};
+
+#endif // FXJS_XFA_CJX_DATETIME_H_
diff --git a/fxjs/xfa/cjx_datetimeedit.cpp b/fxjs/xfa/cjx_datetimeedit.cpp
new file mode 100644
index 0000000000..284dbf03c1
--- /dev/null
+++ b/fxjs/xfa/cjx_datetimeedit.cpp
@@ -0,0 +1,31 @@
+// 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_datetimeedit.h"
+
+#include "xfa/fxfa/parser/cxfa_datetimeedit.h"
+
+CJX_DateTimeEdit::CJX_DateTimeEdit(CXFA_DateTimeEdit* node) : CJX_Node(node) {}
+
+CJX_DateTimeEdit::~CJX_DateTimeEdit() = default;
+
+void CJX_DateTimeEdit::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_DateTimeEdit::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_DateTimeEdit::hScrollPolicy(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_datetimeedit.h b/fxjs/xfa/cjx_datetimeedit.h
new file mode 100644
index 0000000000..067c6bba81
--- /dev/null
+++ b/fxjs/xfa/cjx_datetimeedit.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_DATETIMEEDIT_H_
+#define FXJS_XFA_CJX_DATETIMEEDIT_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_DateTimeEdit;
+
+class CJX_DateTimeEdit : public CJX_Node {
+ public:
+ explicit CJX_DateTimeEdit(CXFA_DateTimeEdit* node);
+ ~CJX_DateTimeEdit() override;
+
+ JS_PROP(hScrollPolicy);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_DATETIMEEDIT_H_
diff --git a/fxjs/xfa/cjx_decimal.cpp b/fxjs/xfa/cjx_decimal.cpp
new file mode 100644
index 0000000000..66763baf94
--- /dev/null
+++ b/fxjs/xfa/cjx_decimal.cpp
@@ -0,0 +1,49 @@
+// 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_decimal.h"
+
+#include "xfa/fxfa/parser/cxfa_decimal.h"
+
+CJX_Decimal::CJX_Decimal(CXFA_Decimal* node) : CJX_Content(node) {}
+
+CJX_Decimal::~CJX_Decimal() = default;
+
+void CJX_Decimal::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Decimal::fracDigits(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Decimal::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_Decimal::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Decimal::value(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_Decimal::leadDigits(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_decimal.h b/fxjs/xfa/cjx_decimal.h
new file mode 100644
index 0000000000..5753112d04
--- /dev/null
+++ b/fxjs/xfa/cjx_decimal.h
@@ -0,0 +1,27 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_DECIMAL_H_
+#define FXJS_XFA_CJX_DECIMAL_H_
+
+#include "fxjs/xfa/cjx_content.h"
+
+class CXFA_Decimal;
+
+class CJX_Decimal : public CJX_Content {
+ public:
+ explicit CJX_Decimal(CXFA_Decimal* node);
+ ~CJX_Decimal() override;
+
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(fracDigits);
+ JS_PROP(leadDigits);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(value);
+};
+
+#endif // FXJS_XFA_CJX_DECIMAL_H_
diff --git a/fxjs/xfa/cjx_defaultui.cpp b/fxjs/xfa/cjx_defaultui.cpp
new file mode 100644
index 0000000000..63995cd2ac
--- /dev/null
+++ b/fxjs/xfa/cjx_defaultui.cpp
@@ -0,0 +1,25 @@
+// 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_defaultui.h"
+
+#include "xfa/fxfa/parser/cxfa_defaultui.h"
+
+CJX_DefaultUi::CJX_DefaultUi(CXFA_DefaultUi* node) : CJX_Node(node) {}
+
+CJX_DefaultUi::~CJX_DefaultUi() = default;
+
+void CJX_DefaultUi::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_DefaultUi::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_defaultui.h b/fxjs/xfa/cjx_defaultui.h
new file mode 100644
index 0000000000..8b8983b8b4
--- /dev/null
+++ b/fxjs/xfa/cjx_defaultui.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_DEFAULTUI_H_
+#define FXJS_XFA_CJX_DEFAULTUI_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_DefaultUi;
+
+class CJX_DefaultUi : public CJX_Node {
+ public:
+ explicit CJX_DefaultUi(CXFA_DefaultUi* node);
+ ~CJX_DefaultUi() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_DEFAULTUI_H_
diff --git a/fxjs/xfa/cjx_delete.cpp b/fxjs/xfa/cjx_delete.cpp
new file mode 100644
index 0000000000..35fe991f60
--- /dev/null
+++ b/fxjs/xfa/cjx_delete.cpp
@@ -0,0 +1,25 @@
+// 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_delete.h"
+
+#include "xfa/fxfa/parser/cxfa_delete.h"
+
+CJX_Delete::CJX_Delete(CXFA_Delete* node) : CJX_TextNode(node) {}
+
+CJX_Delete::~CJX_Delete() = default;
+
+void CJX_Delete::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Delete::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_delete.h b/fxjs/xfa/cjx_delete.h
new file mode 100644
index 0000000000..413a140f44
--- /dev/null
+++ b/fxjs/xfa/cjx_delete.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_DELETE_H_
+#define FXJS_XFA_CJX_DELETE_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_Delete;
+
+class CJX_Delete : public CJX_TextNode {
+ public:
+ explicit CJX_Delete(CXFA_Delete* node);
+ ~CJX_Delete() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_DELETE_H_
diff --git a/fxjs/xfa/cjx_delta.cpp b/fxjs/xfa/cjx_delta.cpp
index c361bbb256..6d8cbd52f3 100644
--- a/fxjs/xfa/cjx_delta.cpp
+++ b/fxjs/xfa/cjx_delta.cpp
@@ -26,3 +26,15 @@ CJS_Return CJX_Delta::restore(CJS_V8* runtime,
return CJS_Return(JSGetStringFromID(JSMessage::kParamError));
return CJS_Return(true);
}
+
+void CJX_Delta::currentValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {}
+
+void CJX_Delta::savedValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {}
+
+void CJX_Delta::target(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {}
diff --git a/fxjs/xfa/cjx_delta.h b/fxjs/xfa/cjx_delta.h
index 29d3e8e788..2b981cd56b 100644
--- a/fxjs/xfa/cjx_delta.h
+++ b/fxjs/xfa/cjx_delta.h
@@ -19,6 +19,10 @@ class CJX_Delta : public CJX_Object {
JS_METHOD(restore, CJX_Delta);
+ JS_PROP(currentValue);
+ JS_PROP(savedValue);
+ JS_PROP(target);
+
private:
static const CJX_MethodSpec MethodSpecs[];
};
diff --git a/fxjs/xfa/cjx_deltas.cpp b/fxjs/xfa/cjx_deltas.cpp
new file mode 100644
index 0000000000..e8969fb03c
--- /dev/null
+++ b/fxjs/xfa/cjx_deltas.cpp
@@ -0,0 +1,13 @@
+// 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_deltas.h"
+
+#include "xfa/fxfa/parser/cxfa_deltas.h"
+
+CJX_Deltas::CJX_Deltas(CXFA_Deltas* src) : CJX_List(src) {}
+
+CJX_Deltas::~CJX_Deltas() {}
diff --git a/fxjs/xfa/cjx_deltas.h b/fxjs/xfa/cjx_deltas.h
new file mode 100644
index 0000000000..c94753f17b
--- /dev/null
+++ b/fxjs/xfa/cjx_deltas.h
@@ -0,0 +1,20 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_DELTAS_H_
+#define FXJS_XFA_CJX_DELTAS_H_
+
+#include "fxjs/xfa/cjx_list.h"
+
+class CXFA_Deltas;
+
+class CJX_Deltas : public CJX_List {
+ public:
+ explicit CJX_Deltas(CXFA_Deltas* node);
+ ~CJX_Deltas() override;
+};
+
+#endif // FXJS_XFA_CJX_DELTAS_H_
diff --git a/fxjs/xfa/cjx_desc.cpp b/fxjs/xfa/cjx_desc.cpp
index 03ab8f8d21..a49ae63323 100644
--- a/fxjs/xfa/cjx_desc.cpp
+++ b/fxjs/xfa/cjx_desc.cpp
@@ -26,3 +26,15 @@ CJS_Return CJX_Desc::metadata(CJS_V8* runtime,
return CJS_Return(JSGetStringFromID(JSMessage::kParamError));
return CJS_Return(runtime->NewString(""));
}
+
+void CJX_Desc::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Desc::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_desc.h b/fxjs/xfa/cjx_desc.h
index f3c9f46b4c..4d21c7ba32 100644
--- a/fxjs/xfa/cjx_desc.h
+++ b/fxjs/xfa/cjx_desc.h
@@ -19,6 +19,9 @@ class CJX_Desc : public CJX_Node {
JS_METHOD(metadata, CJX_Desc);
+ JS_PROP(use);
+ JS_PROP(usehref);
+
private:
static const CJX_MethodSpec MethodSpecs[];
};
diff --git a/fxjs/xfa/cjx_digestmethod.cpp b/fxjs/xfa/cjx_digestmethod.cpp
new file mode 100644
index 0000000000..b85fc0082e
--- /dev/null
+++ b/fxjs/xfa/cjx_digestmethod.cpp
@@ -0,0 +1,25 @@
+// 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_digestmethod.h"
+
+#include "xfa/fxfa/parser/cxfa_digestmethod.h"
+
+CJX_DigestMethod::CJX_DigestMethod(CXFA_DigestMethod* node) : CJX_Node(node) {}
+
+CJX_DigestMethod::~CJX_DigestMethod() = default;
+
+void CJX_DigestMethod::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_DigestMethod::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_digestmethod.h b/fxjs/xfa/cjx_digestmethod.h
new file mode 100644
index 0000000000..d14e6f17ad
--- /dev/null
+++ b/fxjs/xfa/cjx_digestmethod.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_DIGESTMETHOD_H_
+#define FXJS_XFA_CJX_DIGESTMETHOD_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_DigestMethod;
+
+class CJX_DigestMethod : public CJX_Node {
+ public:
+ explicit CJX_DigestMethod(CXFA_DigestMethod* node);
+ ~CJX_DigestMethod() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_DIGESTMETHOD_H_
diff --git a/fxjs/xfa/cjx_digestmethods.cpp b/fxjs/xfa/cjx_digestmethods.cpp
new file mode 100644
index 0000000000..ae7cbcd3e1
--- /dev/null
+++ b/fxjs/xfa/cjx_digestmethods.cpp
@@ -0,0 +1,32 @@
+// 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_digestmethods.h"
+
+#include "xfa/fxfa/parser/cxfa_digestmethods.h"
+
+CJX_DigestMethods::CJX_DigestMethods(CXFA_DigestMethods* node)
+ : CJX_Node(node) {}
+
+CJX_DigestMethods::~CJX_DigestMethods() = default;
+
+void CJX_DigestMethods::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_DigestMethods::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_DigestMethods::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_digestmethods.h b/fxjs/xfa/cjx_digestmethods.h
new file mode 100644
index 0000000000..b3addc367e
--- /dev/null
+++ b/fxjs/xfa/cjx_digestmethods.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_DIGESTMETHODS_H_
+#define FXJS_XFA_CJX_DIGESTMETHODS_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_DigestMethods;
+
+class CJX_DigestMethods : public CJX_Node {
+ public:
+ explicit CJX_DigestMethods(CXFA_DigestMethods* node);
+ ~CJX_DigestMethods() override;
+
+ JS_PROP(type);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_DIGESTMETHODS_H_
diff --git a/fxjs/xfa/cjx_draw.cpp b/fxjs/xfa/cjx_draw.cpp
new file mode 100644
index 0000000000..0752bf7457
--- /dev/null
+++ b/fxjs/xfa/cjx_draw.cpp
@@ -0,0 +1,153 @@
+// 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_draw.h"
+
+#include "fxjs/cfxjse_value.h"
+#include "xfa/fxfa/parser/cxfa_draw.h"
+
+CJX_Draw::CJX_Draw(CXFA_Draw* node) : CJX_Container(node) {}
+
+CJX_Draw::~CJX_Draw() = default;
+
+void CJX_Draw::h(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::w(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::x(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::y(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::hAlign(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::rotate(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::presence(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::vAlign(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::maxH(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::maxW(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::minH(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::minW(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::relevant(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::rawValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ defaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (!bSetting) {
+ WideString content = GetContent(true);
+ if (content.IsEmpty())
+ pValue->SetNull();
+ else
+ pValue->SetString(content.UTF8Encode().AsStringView());
+
+ return;
+ }
+
+ if (!pValue || !pValue->IsString())
+ return;
+
+ CXFA_WidgetData* pWidgetData = GetXFANode()->GetWidgetData();
+ XFA_Element uiType = pWidgetData->GetUIType();
+ if (uiType != XFA_Element::Text)
+ return;
+
+ WideString wsNewValue = pValue->ToWideString();
+ SetContent(wsNewValue, wsNewValue, true, true, true);
+}
+
+void CJX_Draw::colSpan(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::locale(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Draw::anchorType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_draw.h b/fxjs/xfa/cjx_draw.h
new file mode 100644
index 0000000000..1d5603aefe
--- /dev/null
+++ b/fxjs/xfa/cjx_draw.h
@@ -0,0 +1,41 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_DRAW_H_
+#define FXJS_XFA_CJX_DRAW_H_
+
+#include "fxjs/xfa/cjx_container.h"
+
+class CXFA_Draw;
+
+class CJX_Draw : public CJX_Container {
+ public:
+ explicit CJX_Draw(CXFA_Draw* node);
+ ~CJX_Draw() override;
+
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(anchorType);
+ JS_PROP(colSpan);
+ JS_PROP(h);
+ JS_PROP(hAlign);
+ JS_PROP(locale);
+ JS_PROP(maxH);
+ JS_PROP(maxW);
+ JS_PROP(minH);
+ JS_PROP(minW);
+ JS_PROP(presence);
+ JS_PROP(rawValue);
+ JS_PROP(relevant);
+ JS_PROP(rotate);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(vAlign);
+ JS_PROP(w);
+ JS_PROP(x);
+ JS_PROP(y);
+};
+
+#endif // FXJS_XFA_CJX_DRAW_H_
diff --git a/fxjs/xfa/cjx_edge.cpp b/fxjs/xfa/cjx_edge.cpp
new file mode 100644
index 0000000000..ea1fa35c49
--- /dev/null
+++ b/fxjs/xfa/cjx_edge.cpp
@@ -0,0 +1,49 @@
+// 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_edge.h"
+
+#include "xfa/fxfa/parser/cxfa_edge.h"
+
+CJX_Edge::CJX_Edge(CXFA_Edge* node) : CJX_Node(node) {}
+
+CJX_Edge::~CJX_Edge() = default;
+
+void CJX_Edge::cap(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Edge::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Edge::stroke(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Edge::presence(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Edge::thickness(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Edge::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_edge.h b/fxjs/xfa/cjx_edge.h
new file mode 100644
index 0000000000..ef4ddeb275
--- /dev/null
+++ b/fxjs/xfa/cjx_edge.h
@@ -0,0 +1,27 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_EDGE_H_
+#define FXJS_XFA_CJX_EDGE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Edge;
+
+class CJX_Edge : public CJX_Node {
+ public:
+ explicit CJX_Edge(CXFA_Edge* node);
+ ~CJX_Edge() override;
+
+ JS_PROP(cap);
+ JS_PROP(presence);
+ JS_PROP(stroke);
+ JS_PROP(thickness);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_EDGE_H_
diff --git a/fxjs/xfa/cjx_encoding.cpp b/fxjs/xfa/cjx_encoding.cpp
new file mode 100644
index 0000000000..debfe4042a
--- /dev/null
+++ b/fxjs/xfa/cjx_encoding.cpp
@@ -0,0 +1,25 @@
+// 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_encoding.h"
+
+#include "xfa/fxfa/parser/cxfa_encoding.h"
+
+CJX_Encoding::CJX_Encoding(CXFA_Encoding* node) : CJX_Node(node) {}
+
+CJX_Encoding::~CJX_Encoding() = default;
+
+void CJX_Encoding::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Encoding::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_encoding.h b/fxjs/xfa/cjx_encoding.h
new file mode 100644
index 0000000000..ea82333d44
--- /dev/null
+++ b/fxjs/xfa/cjx_encoding.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_ENCODING_H_
+#define FXJS_XFA_CJX_ENCODING_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Encoding;
+
+class CJX_Encoding : public CJX_Node {
+ public:
+ explicit CJX_Encoding(CXFA_Encoding* node);
+ ~CJX_Encoding() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_ENCODING_H_
diff --git a/fxjs/xfa/cjx_encodings.cpp b/fxjs/xfa/cjx_encodings.cpp
new file mode 100644
index 0000000000..667929f194
--- /dev/null
+++ b/fxjs/xfa/cjx_encodings.cpp
@@ -0,0 +1,31 @@
+// 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_encodings.h"
+
+#include "xfa/fxfa/parser/cxfa_encodings.h"
+
+CJX_Encodings::CJX_Encodings(CXFA_Encodings* node) : CJX_Node(node) {}
+
+CJX_Encodings::~CJX_Encodings() = default;
+
+void CJX_Encodings::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Encodings::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Encodings::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_encodings.h b/fxjs/xfa/cjx_encodings.h
new file mode 100644
index 0000000000..da4f617c18
--- /dev/null
+++ b/fxjs/xfa/cjx_encodings.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_ENCODINGS_H_
+#define FXJS_XFA_CJX_ENCODINGS_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Encodings;
+
+class CJX_Encodings : public CJX_Node {
+ public:
+ explicit CJX_Encodings(CXFA_Encodings* node);
+ ~CJX_Encodings() override;
+
+ JS_PROP(type);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_ENCODINGS_H_
diff --git a/fxjs/xfa/cjx_encrypt.cpp b/fxjs/xfa/cjx_encrypt.cpp
new file mode 100644
index 0000000000..dbed1f243a
--- /dev/null
+++ b/fxjs/xfa/cjx_encrypt.cpp
@@ -0,0 +1,29 @@
+// 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_encrypt.h"
+
+#include "xfa/fxfa/parser/cxfa_encrypt.h"
+
+CJX_Encrypt::CJX_Encrypt(CXFA_Encrypt* node) : CJX_Node(node) {}
+
+CJX_Encrypt::~CJX_Encrypt() = default;
+
+void CJX_Encrypt::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Encrypt::format(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {}
+
+void CJX_Encrypt::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_encrypt.h b/fxjs/xfa/cjx_encrypt.h
new file mode 100644
index 0000000000..85fac15252
--- /dev/null
+++ b/fxjs/xfa/cjx_encrypt.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_ENCRYPT_H_
+#define FXJS_XFA_CJX_ENCRYPT_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Encrypt;
+
+class CJX_Encrypt : public CJX_Node {
+ public:
+ explicit CJX_Encrypt(CXFA_Encrypt* node);
+ ~CJX_Encrypt() override;
+
+ JS_PROP(format);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_ENCRYPT_H_
diff --git a/fxjs/xfa/cjx_event.cpp b/fxjs/xfa/cjx_event.cpp
new file mode 100644
index 0000000000..8cb2bce36d
--- /dev/null
+++ b/fxjs/xfa/cjx_event.cpp
@@ -0,0 +1,37 @@
+// 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_event.h"
+
+#include "xfa/fxfa/parser/cxfa_event.h"
+
+CJX_Event::CJX_Event(CXFA_Event* node) : CJX_Node(node) {}
+
+CJX_Event::~CJX_Event() = default;
+
+void CJX_Event::ref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Event::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Event::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Event::activity(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_event.h b/fxjs/xfa/cjx_event.h
new file mode 100644
index 0000000000..6c6d92064d
--- /dev/null
+++ b/fxjs/xfa/cjx_event.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_EVENT_H_
+#define FXJS_XFA_CJX_EVENT_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Event;
+
+class CJX_Event : public CJX_Node {
+ public:
+ explicit CJX_Event(CXFA_Event* node);
+ ~CJX_Event() override;
+
+ JS_PROP(activity);
+ JS_PROP(ref);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_EVENT_H_
diff --git a/fxjs/xfa/cjx_eventpseudomodel.cpp b/fxjs/xfa/cjx_eventpseudomodel.cpp
index 449153c548..3b2d9777d0 100644
--- a/fxjs/xfa/cjx_eventpseudomodel.cpp
+++ b/fxjs/xfa/cjx_eventpseudomodel.cpp
@@ -54,97 +54,97 @@ CJX_EventPseudoModel::CJX_EventPseudoModel(CScript_EventPseudoModel* model)
CJX_EventPseudoModel::~CJX_EventPseudoModel() {}
-void CJX_EventPseudoModel::Change(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::change(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::Change, bSetting);
}
-void CJX_EventPseudoModel::CommitKey(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::commitKey(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::CommitKey, bSetting);
}
-void CJX_EventPseudoModel::FullText(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::fullText(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::FullText, bSetting);
}
-void CJX_EventPseudoModel::KeyDown(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::keyDown(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::Keydown, bSetting);
}
-void CJX_EventPseudoModel::Modifier(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::modifier(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::Modifier, bSetting);
}
-void CJX_EventPseudoModel::NewContentType(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::newContentType(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::NewContentType, bSetting);
}
-void CJX_EventPseudoModel::NewText(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::newText(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::NewText, bSetting);
}
-void CJX_EventPseudoModel::PrevContentType(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::prevContentType(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::PreviousContentType, bSetting);
}
-void CJX_EventPseudoModel::PrevText(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::prevText(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::PreviousText, bSetting);
}
-void CJX_EventPseudoModel::Reenter(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::reenter(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::Reenter, bSetting);
}
-void CJX_EventPseudoModel::SelEnd(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::selEnd(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::SelectionEnd, bSetting);
}
-void CJX_EventPseudoModel::SelStart(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::selStart(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::SelectionStart, bSetting);
}
-void CJX_EventPseudoModel::Shift(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::shift(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::Shift, bSetting);
}
-void CJX_EventPseudoModel::SoapFaultCode(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::soapFaultCode(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::SoapFaultCode, bSetting);
}
-void CJX_EventPseudoModel::SoapFaultString(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::soapFaultString(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::SoapFaultString, bSetting);
}
-void CJX_EventPseudoModel::Target(CFXJSE_Value* pValue,
+void CJX_EventPseudoModel::target(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Property(pValue, XFA_Event::Target, bSetting);
diff --git a/fxjs/xfa/cjx_eventpseudomodel.h b/fxjs/xfa/cjx_eventpseudomodel.h
index d9615c3269..92d731c289 100644
--- a/fxjs/xfa/cjx_eventpseudomodel.h
+++ b/fxjs/xfa/cjx_eventpseudomodel.h
@@ -38,34 +38,26 @@ class CJX_EventPseudoModel : public CJX_Object {
explicit CJX_EventPseudoModel(CScript_EventPseudoModel* model);
~CJX_EventPseudoModel() override;
- void Change(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void CommitKey(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void FullText(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void KeyDown(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void Modifier(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void NewContentType(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void NewText(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void PrevContentType(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void PrevText(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void Reenter(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void SelEnd(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void SelStart(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void Shift(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void SoapFaultCode(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void SoapFaultString(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Target(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
-
JS_METHOD(emit, CJX_EventPseudoModel);
JS_METHOD(reset, CJX_EventPseudoModel);
+ JS_PROP(change);
+ JS_PROP(commitKey);
+ JS_PROP(fullText);
+ JS_PROP(keyDown);
+ JS_PROP(modifier);
+ JS_PROP(newContentType);
+ JS_PROP(newText);
+ JS_PROP(prevContentType);
+ JS_PROP(prevText);
+ JS_PROP(reenter);
+ JS_PROP(selEnd);
+ JS_PROP(selStart);
+ JS_PROP(shift);
+ JS_PROP(soapFaultCode);
+ JS_PROP(soapFaultString);
+ JS_PROP(target);
+
private:
void Property(CFXJSE_Value* pValue, XFA_Event dwFlag, bool bSetting);
diff --git a/fxjs/xfa/cjx_exclgroup.cpp b/fxjs/xfa/cjx_exclgroup.cpp
index 1041e3ffbb..fac58ff054 100644
--- a/fxjs/xfa/cjx_exclgroup.cpp
+++ b/fxjs/xfa/cjx_exclgroup.cpp
@@ -107,3 +107,185 @@ CJS_Return CJX_ExclGroup::selectedMember(
return CJS_Return(value->DirectGetValue().Get(runtime->GetIsolate()));
}
+
+void CJX_ExclGroup::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ CXFA_WidgetData* pWidgetData = GetXFANode()->GetWidgetData();
+ if (!pWidgetData)
+ return;
+
+ if (bSetting) {
+ pWidgetData->SetSelectedMemberByValue(pValue->ToWideString().AsStringView(),
+ true, true, true);
+ return;
+ }
+
+ WideString wsValue = GetContent(true);
+ XFA_VERSION curVersion = GetDocument()->GetCurVersionMode();
+ if (wsValue.IsEmpty() && curVersion >= XFA_VERSION_300) {
+ pValue->SetNull();
+ return;
+ }
+ pValue->SetString(wsValue.UTF8Encode().AsStringView());
+}
+
+void CJX_ExclGroup::rawValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ defaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::transient(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {}
+
+void CJX_ExclGroup::access(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::accessKey(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::anchorType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::borderColor(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_BorderColor(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::borderWidth(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_BorderWidth(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::colSpan(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::fillColor(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_FillColor(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::h(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::hAlign(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::layout(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::mandatory(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_Mandatory(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::mandatoryMessage(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_MandatoryMessage(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::maxH(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::maxW(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::minH(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::minW(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::presence(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::relevant(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::validationMessage(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_ValidationMessage(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::vAlign(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::w(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::x(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExclGroup::y(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_exclgroup.h b/fxjs/xfa/cjx_exclgroup.h
index f44446762f..a972fba5ff 100644
--- a/fxjs/xfa/cjx_exclgroup.h
+++ b/fxjs/xfa/cjx_exclgroup.h
@@ -23,6 +23,35 @@ class CJX_ExclGroup : public CJX_Node {
JS_METHOD(execValidate, CJX_ExclGroup);
JS_METHOD(selectedMember, CJX_ExclGroup);
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(access);
+ JS_PROP(accessKey);
+ JS_PROP(anchorType);
+ JS_PROP(borderColor);
+ JS_PROP(borderWidth);
+ JS_PROP(colSpan);
+ JS_PROP(fillColor);
+ JS_PROP(h);
+ JS_PROP(hAlign);
+ JS_PROP(layout);
+ JS_PROP(mandatory);
+ JS_PROP(mandatoryMessage);
+ JS_PROP(maxH);
+ JS_PROP(maxW);
+ JS_PROP(minH);
+ JS_PROP(minW);
+ JS_PROP(presence);
+ JS_PROP(rawValue);
+ JS_PROP(relevant);
+ JS_PROP(transient);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(validationMessage);
+ JS_PROP(vAlign);
+ JS_PROP(w);
+ JS_PROP(x);
+ JS_PROP(y);
+
private:
static const CJX_MethodSpec MethodSpecs[];
};
diff --git a/fxjs/xfa/cjx_exdata.cpp b/fxjs/xfa/cjx_exdata.cpp
new file mode 100644
index 0000000000..6ce72c4943
--- /dev/null
+++ b/fxjs/xfa/cjx_exdata.cpp
@@ -0,0 +1,55 @@
+// 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_exdata.h"
+
+#include "xfa/fxfa/parser/cxfa_exdata.h"
+
+CJX_ExData::CJX_ExData(CXFA_ExData* node) : CJX_Content(node) {}
+
+CJX_ExData::~CJX_ExData() = default;
+
+void CJX_ExData::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExData::contentType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExData::transferEncoding(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExData::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExData::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExData::maxLength(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExData::href(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_exdata.h b/fxjs/xfa/cjx_exdata.h
new file mode 100644
index 0000000000..e059da8b9d
--- /dev/null
+++ b/fxjs/xfa/cjx_exdata.h
@@ -0,0 +1,28 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_EXDATA_H_
+#define FXJS_XFA_CJX_EXDATA_H_
+
+#include "fxjs/xfa/cjx_content.h"
+
+class CXFA_ExData;
+
+class CJX_ExData : public CJX_Content {
+ public:
+ explicit CJX_ExData(CXFA_ExData* node);
+ ~CJX_ExData() override;
+
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(contentType);
+ JS_PROP(href);
+ JS_PROP(maxLength);
+ JS_PROP(transferEncoding);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_EXDATA_H_
diff --git a/fxjs/xfa/cjx_execute.cpp b/fxjs/xfa/cjx_execute.cpp
new file mode 100644
index 0000000000..5fc4a77859
--- /dev/null
+++ b/fxjs/xfa/cjx_execute.cpp
@@ -0,0 +1,43 @@
+// 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_execute.h"
+
+#include "xfa/fxfa/parser/cxfa_execute.h"
+
+CJX_Execute::CJX_Execute(CXFA_Execute* node) : CJX_Node(node) {}
+
+CJX_Execute::~CJX_Execute() = default;
+
+void CJX_Execute::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Execute::connection(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Execute::runAt(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Execute::executeType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Execute::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_execute.h b/fxjs/xfa/cjx_execute.h
new file mode 100644
index 0000000000..ef7f629e36
--- /dev/null
+++ b/fxjs/xfa/cjx_execute.h
@@ -0,0 +1,26 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_EXECUTE_H_
+#define FXJS_XFA_CJX_EXECUTE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Execute;
+
+class CJX_Execute : public CJX_Node {
+ public:
+ explicit CJX_Execute(CXFA_Execute* node);
+ ~CJX_Execute() override;
+
+ JS_PROP(connection);
+ JS_PROP(executeType);
+ JS_PROP(runAt);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_EXECUTE_H_
diff --git a/fxjs/xfa/cjx_exobject.cpp b/fxjs/xfa/cjx_exobject.cpp
new file mode 100644
index 0000000000..2252d53d06
--- /dev/null
+++ b/fxjs/xfa/cjx_exobject.cpp
@@ -0,0 +1,49 @@
+// 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_exobject.h"
+
+#include "xfa/fxfa/parser/cxfa_exobject.h"
+
+CJX_ExObject::CJX_ExObject(CXFA_ExObject* node) : CJX_Node(node) {}
+
+CJX_ExObject::~CJX_ExObject() = default;
+
+void CJX_ExObject::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExObject::codeType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExObject::archive(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExObject::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExObject::codeBase(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ExObject::classId(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_exobject.h b/fxjs/xfa/cjx_exobject.h
new file mode 100644
index 0000000000..2fec24a6fb
--- /dev/null
+++ b/fxjs/xfa/cjx_exobject.h
@@ -0,0 +1,27 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_EXOBJECT_H_
+#define FXJS_XFA_CJX_EXOBJECT_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_ExObject;
+
+class CJX_ExObject : public CJX_Node {
+ public:
+ explicit CJX_ExObject(CXFA_ExObject* node);
+ ~CJX_ExObject() override;
+
+ JS_PROP(archive);
+ JS_PROP(classId);
+ JS_PROP(codeBase);
+ JS_PROP(codeType);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_EXOBJECT_H_
diff --git a/fxjs/xfa/cjx_extras.cpp b/fxjs/xfa/cjx_extras.cpp
new file mode 100644
index 0000000000..73ea8ea5ba
--- /dev/null
+++ b/fxjs/xfa/cjx_extras.cpp
@@ -0,0 +1,29 @@
+// 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_extras.h"
+
+#include "xfa/fxfa/parser/cxfa_extras.h"
+
+CJX_Extras::CJX_Extras(CXFA_Extras* node) : CJX_Node(node) {}
+
+CJX_Extras::~CJX_Extras() = default;
+
+void CJX_Extras::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Extras::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {}
+
+void CJX_Extras::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_extras.h b/fxjs/xfa/cjx_extras.h
new file mode 100644
index 0000000000..9f5790369e
--- /dev/null
+++ b/fxjs/xfa/cjx_extras.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_EXTRAS_H_
+#define FXJS_XFA_CJX_EXTRAS_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Extras;
+
+class CJX_Extras : public CJX_Node {
+ public:
+ explicit CJX_Extras(CXFA_Extras* node);
+ ~CJX_Extras() override;
+
+ JS_PROP(type);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_EXTRAS_H_
diff --git a/fxjs/xfa/cjx_field.cpp b/fxjs/xfa/cjx_field.cpp
index 857aa50d40..059aead0f9 100644
--- a/fxjs/xfa/cjx_field.cpp
+++ b/fxjs/xfa/cjx_field.cpp
@@ -8,6 +8,7 @@
#include <vector>
+#include "core/fxcrt/cfx_decimal.h"
#include "fxjs/cfxjse_value.h"
#include "fxjs/js_resources.h"
#include "xfa/fxfa/cxfa_eventparam.h"
@@ -233,3 +234,302 @@ CJS_Return CJX_Field::execValidate(
false, false);
return CJS_Return(runtime->NewBoolean(iRet != XFA_EVENTERROR_Error));
}
+
+void CJX_Field::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ CXFA_WidgetData* pWidgetData = GetXFANode()->GetWidgetData();
+ if (!pWidgetData)
+ return;
+
+ if (bSetting) {
+ if (pValue) {
+ pWidgetData->SetPreNull(pWidgetData->IsNull());
+ pWidgetData->SetIsNull(pValue->IsNull());
+ }
+
+ WideString wsNewText;
+ if (pValue && !(pValue->IsNull() || pValue->IsUndefined()))
+ wsNewText = pValue->ToWideString();
+
+ CXFA_Node* pUIChild = pWidgetData->GetUIChild();
+ if (pUIChild->GetElementType() == XFA_Element::NumericEdit) {
+ wsNewText =
+ pWidgetData->NumericLimit(wsNewText, pWidgetData->GetLeadDigits(),
+ pWidgetData->GetFracDigits());
+ }
+
+ CXFA_WidgetData* pContainerWidgetData =
+ GetXFANode()->GetContainerWidgetData();
+ WideString wsFormatText(wsNewText);
+ if (pContainerWidgetData)
+ wsFormatText = pContainerWidgetData->GetFormatDataValue(wsNewText);
+
+ SetContent(wsNewText, wsFormatText, true, true, true);
+ return;
+ }
+
+ WideString content = GetContent(true);
+ if (content.IsEmpty()) {
+ pValue->SetNull();
+ return;
+ }
+
+ CXFA_Node* pUIChild = pWidgetData->GetUIChild();
+ CXFA_Node* pNode = pWidgetData->GetFormValueData().GetNode()->GetNodeItem(
+ XFA_NODEITEM_FirstChild);
+ if (pNode && pNode->GetElementType() == XFA_Element::Decimal) {
+ if (pUIChild->GetElementType() == XFA_Element::NumericEdit &&
+ (pNode->JSObject()->GetInteger(XFA_Attribute::FracDigits) == -1)) {
+ pValue->SetString(content.UTF8Encode().AsStringView());
+ } else {
+ CFX_Decimal decimal(content.AsStringView());
+ pValue->SetFloat((float)(double)decimal);
+ }
+ } else if (pNode && pNode->GetElementType() == XFA_Element::Integer) {
+ pValue->SetInteger(FXSYS_wtoi(content.c_str()));
+ } else if (pNode && pNode->GetElementType() == XFA_Element::Boolean) {
+ pValue->SetBoolean(FXSYS_wtoi(content.c_str()) == 0 ? false : true);
+ } else if (pNode && pNode->GetElementType() == XFA_Element::Float) {
+ CFX_Decimal decimal(content.AsStringView());
+ pValue->SetFloat((float)(double)decimal);
+ } else {
+ pValue->SetString(content.UTF8Encode().AsStringView());
+ }
+}
+
+void CJX_Field::editValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ CXFA_WidgetData* pWidgetData = GetXFANode()->GetWidgetData();
+ if (!pWidgetData)
+ return;
+
+ if (bSetting) {
+ pWidgetData->SetValue(XFA_VALUEPICTURE_Edit, pValue->ToWideString());
+ return;
+ }
+ pValue->SetString(
+ pWidgetData->GetValue(XFA_VALUEPICTURE_Edit).UTF8Encode().AsStringView());
+}
+
+void CJX_Field::formatMessage(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_Message(pValue, bSetting, XFA_SOM_FormatMessage);
+}
+
+void CJX_Field::formattedValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ CXFA_WidgetData* pWidgetData = GetXFANode()->GetWidgetData();
+ if (!pWidgetData)
+ return;
+
+ if (bSetting) {
+ pWidgetData->SetValue(XFA_VALUEPICTURE_Display, pValue->ToWideString());
+ return;
+ }
+ pValue->SetString(pWidgetData->GetValue(XFA_VALUEPICTURE_Display)
+ .UTF8Encode()
+ .AsStringView());
+}
+
+void CJX_Field::parentSubform(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (bSetting) {
+ ThrowInvalidPropertyException();
+ return;
+ }
+ pValue->SetNull();
+}
+
+void CJX_Field::selectedIndex(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ CXFA_WidgetData* pWidgetData = GetXFANode()->GetWidgetData();
+ if (!pWidgetData)
+ return;
+
+ if (!bSetting) {
+ pValue->SetInteger(pWidgetData->GetSelectedItem(0));
+ return;
+ }
+
+ int32_t iIndex = pValue->ToInteger();
+ if (iIndex == -1) {
+ pWidgetData->ClearAllSelections();
+ return;
+ }
+
+ pWidgetData->SetItemState(iIndex, true, true, true, true);
+}
+
+void CJX_Field::access(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::accessKey(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::anchorType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::borderColor(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_BorderColor(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::borderWidth(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_BorderWidth(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::colSpan(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::fillColor(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_FillColor(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::fontColor(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_FontColor(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::h(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::hAlign(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::locale(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::mandatory(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_Mandatory(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::mandatoryMessage(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_MandatoryMessage(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::maxH(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::maxW(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::minH(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::minW(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::presence(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::rawValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ defaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::relevant(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::rotate(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::validationMessage(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_ValidationMessage(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::vAlign(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::w(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::x(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Field::y(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_field.h b/fxjs/xfa/cjx_field.h
index 524a6afdaa..4f7238fc19 100644
--- a/fxjs/xfa/cjx_field.h
+++ b/fxjs/xfa/cjx_field.h
@@ -30,6 +30,41 @@ class CJX_Field : public CJX_Container {
JS_METHOD(getSaveItem, CJX_Field);
JS_METHOD(setItemState, CJX_Field);
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(access);
+ JS_PROP(accessKey);
+ JS_PROP(anchorType);
+ JS_PROP(borderColor);
+ JS_PROP(borderWidth);
+ JS_PROP(colSpan);
+ JS_PROP(editValue);
+ JS_PROP(fillColor);
+ JS_PROP(fontColor);
+ JS_PROP(formatMessage);
+ JS_PROP(formattedValue);
+ JS_PROP(h);
+ JS_PROP(hAlign);
+ JS_PROP(locale);
+ JS_PROP(mandatory);
+ JS_PROP(mandatoryMessage);
+ JS_PROP(maxH);
+ JS_PROP(maxW);
+ JS_PROP(minH);
+ JS_PROP(minW);
+ JS_PROP(parentSubform);
+ JS_PROP(presence);
+ JS_PROP(rawValue);
+ JS_PROP(relevant);
+ JS_PROP(rotate);
+ JS_PROP(selectedIndex);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(validationMessage);
+ JS_PROP(vAlign);
+ JS_PROP(w);
+ JS_PROP(x);
+ JS_PROP(y);
+
private:
static const CJX_MethodSpec MethodSpecs[];
};
diff --git a/fxjs/xfa/cjx_fill.cpp b/fxjs/xfa/cjx_fill.cpp
new file mode 100644
index 0000000000..1c6aa957c8
--- /dev/null
+++ b/fxjs/xfa/cjx_fill.cpp
@@ -0,0 +1,31 @@
+// 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_fill.h"
+
+#include "xfa/fxfa/parser/cxfa_fill.h"
+
+CJX_Fill::CJX_Fill(CXFA_Fill* node) : CJX_Node(node) {}
+
+CJX_Fill::~CJX_Fill() = default;
+
+void CJX_Fill::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Fill::presence(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Fill::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_fill.h b/fxjs/xfa/cjx_fill.h
new file mode 100644
index 0000000000..869e3cc2b5
--- /dev/null
+++ b/fxjs/xfa/cjx_fill.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_FILL_H_
+#define FXJS_XFA_CJX_FILL_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Fill;
+
+class CJX_Fill : public CJX_Node {
+ public:
+ explicit CJX_Fill(CXFA_Fill* node);
+ ~CJX_Fill() override;
+
+ JS_PROP(presence);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_FILL_H_
diff --git a/fxjs/xfa/cjx_filter.cpp b/fxjs/xfa/cjx_filter.cpp
new file mode 100644
index 0000000000..e43dfa8aed
--- /dev/null
+++ b/fxjs/xfa/cjx_filter.cpp
@@ -0,0 +1,31 @@
+// 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_filter.h"
+
+#include "xfa/fxfa/parser/cxfa_filter.h"
+
+CJX_Filter::CJX_Filter(CXFA_Filter* node) : CJX_Node(node) {}
+
+CJX_Filter::~CJX_Filter() = default;
+
+void CJX_Filter::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Filter::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Filter::addRevocationInfo(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_filter.h b/fxjs/xfa/cjx_filter.h
new file mode 100644
index 0000000000..275d509bbc
--- /dev/null
+++ b/fxjs/xfa/cjx_filter.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_FILTER_H_
+#define FXJS_XFA_CJX_FILTER_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Filter;
+
+class CJX_Filter : public CJX_Node {
+ public:
+ explicit CJX_Filter(CXFA_Filter* node);
+ ~CJX_Filter() override;
+
+ JS_PROP(addRevocationInfo);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_FILTER_H_
diff --git a/fxjs/xfa/cjx_float.cpp b/fxjs/xfa/cjx_float.cpp
new file mode 100644
index 0000000000..0480812937
--- /dev/null
+++ b/fxjs/xfa/cjx_float.cpp
@@ -0,0 +1,37 @@
+// 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_float.h"
+
+#include "xfa/fxfa/parser/cxfa_float.h"
+
+CJX_Float::CJX_Float(CXFA_Float* node) : CJX_Content(node) {}
+
+CJX_Float::~CJX_Float() = default;
+
+void CJX_Float::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Float::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_Float::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Float::value(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ defaultValue(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_float.h b/fxjs/xfa/cjx_float.h
new file mode 100644
index 0000000000..1c9489b35f
--- /dev/null
+++ b/fxjs/xfa/cjx_float.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_FLOAT_H_
+#define FXJS_XFA_CJX_FLOAT_H_
+
+#include "fxjs/xfa/cjx_content.h"
+
+class CXFA_Float;
+
+class CJX_Float : public CJX_Content {
+ public:
+ explicit CJX_Float(CXFA_Float* node);
+ ~CJX_Float() override;
+
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(value);
+};
+
+#endif // FXJS_XFA_CJX_FLOAT_H_
diff --git a/fxjs/xfa/cjx_font.cpp b/fxjs/xfa/cjx_font.cpp
new file mode 100644
index 0000000000..d0c62374d8
--- /dev/null
+++ b/fxjs/xfa/cjx_font.cpp
@@ -0,0 +1,115 @@
+// 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_font.h"
+
+#include "xfa/fxfa/parser/cxfa_font.h"
+
+CJX_Font::CJX_Font(CXFA_Font* node) : CJX_Node(node) {}
+
+CJX_Font::~CJX_Font() = default;
+
+void CJX_Font::lineThrough(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::typeface(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::fontHorizontalScale(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::kerningMode(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::underline(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::baselineShift(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::overlinePeriod(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::letterSpacing(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::lineThroughPeriod(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::fontVerticalScale(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::size(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::posture(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::weight(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::underlinePeriod(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Font::overline(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_font.h b/fxjs/xfa/cjx_font.h
new file mode 100644
index 0000000000..65b40e4508
--- /dev/null
+++ b/fxjs/xfa/cjx_font.h
@@ -0,0 +1,38 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_FONT_H_
+#define FXJS_XFA_CJX_FONT_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Font;
+
+class CJX_Font : public CJX_Node {
+ public:
+ explicit CJX_Font(CXFA_Font* node);
+ ~CJX_Font() override;
+
+ JS_PROP(baselineShift);
+ JS_PROP(fontHorizontalScale);
+ JS_PROP(fontVerticalScale);
+ JS_PROP(kerningMode);
+ JS_PROP(letterSpacing);
+ JS_PROP(lineThrough);
+ JS_PROP(lineThroughPeriod);
+ JS_PROP(overline);
+ JS_PROP(overlinePeriod);
+ JS_PROP(posture);
+ JS_PROP(size);
+ JS_PROP(typeface);
+ JS_PROP(underline);
+ JS_PROP(underlinePeriod);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(weight);
+};
+
+#endif // FXJS_XFA_CJX_FONT_H_
diff --git a/fxjs/xfa/cjx_format.cpp b/fxjs/xfa/cjx_format.cpp
new file mode 100644
index 0000000000..9786502901
--- /dev/null
+++ b/fxjs/xfa/cjx_format.cpp
@@ -0,0 +1,25 @@
+// 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_format.h"
+
+#include "xfa/fxfa/parser/cxfa_format.h"
+
+CJX_Format::CJX_Format(CXFA_Format* node) : CJX_Node(node) {}
+
+CJX_Format::~CJX_Format() = default;
+
+void CJX_Format::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Format::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_format.h b/fxjs/xfa/cjx_format.h
new file mode 100644
index 0000000000..5e8c971b96
--- /dev/null
+++ b/fxjs/xfa/cjx_format.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_FORMAT_H_
+#define FXJS_XFA_CJX_FORMAT_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Format;
+
+class CJX_Format : public CJX_Node {
+ public:
+ explicit CJX_Format(CXFA_Format* node);
+ ~CJX_Format() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_FORMAT_H_
diff --git a/fxjs/xfa/cjx_handler.cpp b/fxjs/xfa/cjx_handler.cpp
new file mode 100644
index 0000000000..3e09a7550d
--- /dev/null
+++ b/fxjs/xfa/cjx_handler.cpp
@@ -0,0 +1,35 @@
+// 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_handler.h"
+
+#include "xfa/fxfa/parser/cxfa_handler.h"
+
+CJX_Handler::CJX_Handler(CXFA_Handler* node) : CJX_TextNode(node) {}
+
+CJX_Handler::~CJX_Handler() = default;
+
+void CJX_Handler::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Handler::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Handler::version(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {}
+
+void CJX_Handler::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_handler.h b/fxjs/xfa/cjx_handler.h
new file mode 100644
index 0000000000..373328b85f
--- /dev/null
+++ b/fxjs/xfa/cjx_handler.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_HANDLER_H_
+#define FXJS_XFA_CJX_HANDLER_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_Handler;
+
+class CJX_Handler : public CJX_TextNode {
+ public:
+ explicit CJX_Handler(CXFA_Handler* node);
+ ~CJX_Handler() override;
+
+ JS_PROP(type);
+ JS_PROP(use);
+ JS_PROP(version);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_HANDLER_H_
diff --git a/fxjs/xfa/cjx_hostpseudomodel.cpp b/fxjs/xfa/cjx_hostpseudomodel.cpp
index 555381f623..f862accbe0 100644
--- a/fxjs/xfa/cjx_hostpseudomodel.cpp
+++ b/fxjs/xfa/cjx_hostpseudomodel.cpp
@@ -70,7 +70,7 @@ CJX_HostPseudoModel::CJX_HostPseudoModel(CScript_HostPseudoModel* model)
CJX_HostPseudoModel::~CJX_HostPseudoModel() {}
-void CJX_HostPseudoModel::AppType(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::appType(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -84,7 +84,7 @@ void CJX_HostPseudoModel::AppType(CFXJSE_Value* pValue,
pValue->SetString("Exchange");
}
-void CJX_HostPseudoModel::CalculationsEnabled(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::calculationsEnabled(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -100,7 +100,7 @@ void CJX_HostPseudoModel::CalculationsEnabled(CFXJSE_Value* pValue,
pValue->SetBoolean(pNotify->GetDocEnvironment()->IsCalculationsEnabled(hDoc));
}
-void CJX_HostPseudoModel::CurrentPage(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::currentPage(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -115,7 +115,7 @@ void CJX_HostPseudoModel::CurrentPage(CFXJSE_Value* pValue,
pValue->SetInteger(pNotify->GetDocEnvironment()->GetCurrentPage(hDoc));
}
-void CJX_HostPseudoModel::Language(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::language(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -130,7 +130,7 @@ void CJX_HostPseudoModel::Language(CFXJSE_Value* pValue,
pNotify->GetAppProvider()->GetLanguage().UTF8Encode().AsStringView());
}
-void CJX_HostPseudoModel::NumPages(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::numPages(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -145,7 +145,7 @@ void CJX_HostPseudoModel::NumPages(CFXJSE_Value* pValue,
pValue->SetInteger(pNotify->GetDocEnvironment()->CountPages(hDoc));
}
-void CJX_HostPseudoModel::Platform(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::platform(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -160,7 +160,7 @@ void CJX_HostPseudoModel::Platform(CFXJSE_Value* pValue,
pNotify->GetAppProvider()->GetPlatform().UTF8Encode().AsStringView());
}
-void CJX_HostPseudoModel::Title(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::title(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (!GetDocument()->GetScriptContext()->IsRunAtClient())
@@ -181,7 +181,7 @@ void CJX_HostPseudoModel::Title(CFXJSE_Value* pValue,
pValue->SetString(wsTitle.UTF8Encode().AsStringView());
}
-void CJX_HostPseudoModel::ValidationsEnabled(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::validationsEnabled(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -199,7 +199,7 @@ void CJX_HostPseudoModel::ValidationsEnabled(CFXJSE_Value* pValue,
pValue->SetBoolean(bEnabled);
}
-void CJX_HostPseudoModel::Variation(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::variation(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
if (!GetDocument()->GetScriptContext()->IsRunAtClient())
@@ -216,7 +216,7 @@ void CJX_HostPseudoModel::Variation(CFXJSE_Value* pValue,
pValue->SetString("Full");
}
-void CJX_HostPseudoModel::Version(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::version(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
@@ -230,7 +230,7 @@ void CJX_HostPseudoModel::Version(CFXJSE_Value* pValue,
pValue->SetString("11");
}
-void CJX_HostPseudoModel::Name(CFXJSE_Value* pValue,
+void CJX_HostPseudoModel::name(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
diff --git a/fxjs/xfa/cjx_hostpseudomodel.h b/fxjs/xfa/cjx_hostpseudomodel.h
index fa3277a2c9..b4d6fe66e2 100644
--- a/fxjs/xfa/cjx_hostpseudomodel.h
+++ b/fxjs/xfa/cjx_hostpseudomodel.h
@@ -19,24 +19,6 @@ class CJX_HostPseudoModel : public CJX_Object {
explicit CJX_HostPseudoModel(CScript_HostPseudoModel* model);
~CJX_HostPseudoModel() override;
- void AppType(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void CalculationsEnabled(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void CurrentPage(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Language(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void NumPages(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void Platform(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void Title(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void ValidationsEnabled(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Variation(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void Version(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void Name(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
-
JS_METHOD(beep, CJX_HostPseudoModel);
JS_METHOD(documentCountInBatch, CJX_HostPseudoModel);
JS_METHOD(documentInBatch, CJX_HostPseudoModel);
@@ -53,6 +35,21 @@ class CJX_HostPseudoModel : public CJX_Object {
JS_METHOD(response, CJX_HostPseudoModel);
JS_METHOD(setFocus, CJX_HostPseudoModel);
+ JS_PROP(appType);
+ JS_PROP(calculationsEnabled);
+ JS_PROP(currentPage);
+ JS_PROP(language);
+ JS_PROP(numPages);
+ JS_PROP(platform);
+ JS_PROP(title);
+ JS_PROP(validationsEnabled);
+ JS_PROP(variation);
+ JS_PROP(version);
+
+ // TODO(dsinclair): Remove when xfa_basic_data_element_script is removed.
+ // Doesn't exist in spec
+ JS_PROP(name);
+
private:
static const CJX_MethodSpec MethodSpecs[];
};
diff --git a/fxjs/xfa/cjx_image.cpp b/fxjs/xfa/cjx_image.cpp
new file mode 100644
index 0000000000..0ea2131c8f
--- /dev/null
+++ b/fxjs/xfa/cjx_image.cpp
@@ -0,0 +1,61 @@
+// 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_image.h"
+
+#include "xfa/fxfa/parser/cxfa_image.h"
+
+CJX_Image::CJX_Image(CXFA_Image* node) : CJX_Node(node) {}
+
+CJX_Image::~CJX_Image() = default;
+
+void CJX_Image::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Image::contentType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Image::transferEncoding(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Image::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue_Read(pValue, bSetting, eAttribute);
+}
+
+void CJX_Image::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Image::aspect(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Image::value(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue_Read(pValue, bSetting, eAttribute);
+}
+
+void CJX_Image::href(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_image.h b/fxjs/xfa/cjx_image.h
new file mode 100644
index 0000000000..5cd120a674
--- /dev/null
+++ b/fxjs/xfa/cjx_image.h
@@ -0,0 +1,29 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_IMAGE_H_
+#define FXJS_XFA_CJX_IMAGE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Image;
+
+class CJX_Image : public CJX_Node {
+ public:
+ explicit CJX_Image(CXFA_Image* node);
+ ~CJX_Image() override;
+
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(aspect);
+ JS_PROP(contentType);
+ JS_PROP(href);
+ JS_PROP(transferEncoding);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(value);
+};
+
+#endif // FXJS_XFA_CJX_IMAGE_H_
diff --git a/fxjs/xfa/cjx_imageedit.cpp b/fxjs/xfa/cjx_imageedit.cpp
new file mode 100644
index 0000000000..a325eca6dc
--- /dev/null
+++ b/fxjs/xfa/cjx_imageedit.cpp
@@ -0,0 +1,31 @@
+// 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_imageedit.h"
+
+#include "xfa/fxfa/parser/cxfa_imageedit.h"
+
+CJX_ImageEdit::CJX_ImageEdit(CXFA_ImageEdit* node) : CJX_Node(node) {}
+
+CJX_ImageEdit::~CJX_ImageEdit() = default;
+
+void CJX_ImageEdit::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ImageEdit::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ImageEdit::data(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_imageedit.h b/fxjs/xfa/cjx_imageedit.h
new file mode 100644
index 0000000000..ebf4fa3e8c
--- /dev/null
+++ b/fxjs/xfa/cjx_imageedit.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_IMAGEEDIT_H_
+#define FXJS_XFA_CJX_IMAGEEDIT_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_ImageEdit;
+
+class CJX_ImageEdit : public CJX_Node {
+ public:
+ explicit CJX_ImageEdit(CXFA_ImageEdit* node);
+ ~CJX_ImageEdit() override;
+
+ JS_PROP(data);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_IMAGEEDIT_H_
diff --git a/fxjs/xfa/cjx_insert.cpp b/fxjs/xfa/cjx_insert.cpp
new file mode 100644
index 0000000000..cf2ae32489
--- /dev/null
+++ b/fxjs/xfa/cjx_insert.cpp
@@ -0,0 +1,25 @@
+// 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_insert.h"
+
+#include "xfa/fxfa/parser/cxfa_insert.h"
+
+CJX_Insert::CJX_Insert(CXFA_Insert* node) : CJX_TextNode(node) {}
+
+CJX_Insert::~CJX_Insert() = default;
+
+void CJX_Insert::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Insert::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_insert.h b/fxjs/xfa/cjx_insert.h
new file mode 100644
index 0000000000..3b73df8f7d
--- /dev/null
+++ b/fxjs/xfa/cjx_insert.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_INSERT_H_
+#define FXJS_XFA_CJX_INSERT_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_Insert;
+
+class CJX_Insert : public CJX_TextNode {
+ public:
+ explicit CJX_Insert(CXFA_Insert* node);
+ ~CJX_Insert() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_INSERT_H_
diff --git a/fxjs/xfa/cjx_instancemanager.cpp b/fxjs/xfa/cjx_instancemanager.cpp
index 23048f98a5..86f8cf3e88 100644
--- a/fxjs/xfa/cjx_instancemanager.cpp
+++ b/fxjs/xfa/cjx_instancemanager.cpp
@@ -6,6 +6,7 @@
#include "fxjs/xfa/cjx_instancemanager.h"
+#include <algorithm>
#include <vector>
#include "fxjs/cfxjse_engine.h"
@@ -31,6 +32,90 @@ CJX_InstanceManager::CJX_InstanceManager(CXFA_InstanceManager* mgr)
CJX_InstanceManager::~CJX_InstanceManager() {}
+int32_t CJX_InstanceManager::SetInstances(int32_t iDesired) {
+ CXFA_OccurData occurData(GetXFANode()->GetOccurNode());
+ if (iDesired < occurData.GetMin()) {
+ ThrowTooManyOccurancesException(L"min");
+ return 1;
+ }
+
+ int32_t iMax = occurData.GetMax();
+ if (iMax >= 0 && iDesired > iMax) {
+ ThrowTooManyOccurancesException(L"max");
+ return 2;
+ }
+
+ int32_t iCount = GetXFANode()->GetCount();
+ if (iDesired == iCount)
+ return 0;
+
+ if (iDesired < iCount) {
+ WideString wsInstManagerName = GetCData(XFA_Attribute::Name);
+ WideString wsInstanceName = WideString(
+ wsInstManagerName.IsEmpty()
+ ? wsInstManagerName
+ : wsInstManagerName.Right(wsInstManagerName.GetLength() - 1));
+ uint32_t dInstanceNameHash =
+ FX_HashCode_GetW(wsInstanceName.AsStringView(), false);
+ CXFA_Node* pPrevSibling =
+ iDesired == 0 ? GetXFANode() : GetXFANode()->GetItem(iDesired - 1);
+ while (iCount > iDesired) {
+ CXFA_Node* pRemoveInstance =
+ pPrevSibling->GetNodeItem(XFA_NODEITEM_NextSibling);
+ if (pRemoveInstance->GetElementType() != XFA_Element::Subform &&
+ pRemoveInstance->GetElementType() != XFA_Element::SubformSet) {
+ continue;
+ }
+ if (pRemoveInstance->GetElementType() == XFA_Element::InstanceManager) {
+ NOTREACHED();
+ break;
+ }
+ if (pRemoveInstance->GetNameHash() == dInstanceNameHash) {
+ GetXFANode()->RemoveItem(pRemoveInstance, true);
+ iCount--;
+ }
+ }
+ } else {
+ while (iCount < iDesired) {
+ CXFA_Node* pNewInstance = GetXFANode()->CreateInstance(true);
+ GetXFANode()->InsertItem(pNewInstance, iCount, iCount, false);
+ iCount++;
+ CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
+ if (!pNotify)
+ return 0;
+
+ pNotify->RunNodeInitialize(pNewInstance);
+ }
+ }
+
+ CXFA_LayoutProcessor* pLayoutPro = GetDocument()->GetLayoutProcessor();
+ if (pLayoutPro) {
+ pLayoutPro->AddChangedContainer(
+ ToNode(GetDocument()->GetXFAObject(XFA_HASHCODE_Form)));
+ }
+ return 0;
+}
+
+int32_t CJX_InstanceManager::MoveInstance(int32_t iTo, int32_t iFrom) {
+ int32_t iCount = GetXFANode()->GetCount();
+ if (iFrom > iCount || iTo > iCount - 1) {
+ ThrowIndexOutOfBoundsException();
+ return 1;
+ }
+ if (iFrom < 0 || iTo < 0 || iFrom == iTo)
+ return 0;
+
+ CXFA_Node* pMoveInstance = GetXFANode()->GetItem(iFrom);
+ GetXFANode()->RemoveItem(pMoveInstance, false);
+ GetXFANode()->InsertItem(pMoveInstance, iTo, iCount - 1, true);
+ CXFA_LayoutProcessor* pLayoutPro = GetDocument()->GetLayoutProcessor();
+ if (pLayoutPro) {
+ pLayoutPro->AddChangedContainer(
+ ToNode(GetDocument()->GetXFAObject(XFA_HASHCODE_Form)));
+ }
+ return 0;
+}
+
CJS_Return CJX_InstanceManager::moveInstance(
CJS_V8* runtime,
const std::vector<v8::Local<v8::Value>>& params) {
@@ -39,7 +124,7 @@ CJS_Return CJX_InstanceManager::moveInstance(
int32_t iFrom = runtime->ToInt32(params[0]);
int32_t iTo = runtime->ToInt32(params[1]);
- InstanceManager_MoveInstance(iTo, iFrom);
+ MoveInstance(iTo, iFrom);
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
if (!pNotify)
@@ -100,7 +185,7 @@ CJS_Return CJX_InstanceManager::setInstances(
if (params.size() != 1)
return CJS_Return(JSGetStringFromID(JSMessage::kParamError));
- InstanceManager_SetInstances(runtime->ToInt32(params[0]));
+ SetInstances(runtime->ToInt32(params[0]));
return CJS_Return(true);
}
@@ -180,3 +265,33 @@ CJS_Return CJX_InstanceManager::insertInstance(
return CJS_Return(value->DirectGetValue().Get(runtime->GetIsolate()));
}
+
+void CJX_InstanceManager::max(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (bSetting) {
+ ThrowInvalidPropertyException();
+ return;
+ }
+ pValue->SetInteger(CXFA_OccurData(GetXFANode()->GetOccurNode()).GetMax());
+}
+
+void CJX_InstanceManager::min(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (bSetting) {
+ ThrowInvalidPropertyException();
+ return;
+ }
+ pValue->SetInteger(CXFA_OccurData(GetXFANode()->GetOccurNode()).GetMin());
+}
+
+void CJX_InstanceManager::count(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (bSetting) {
+ pValue->SetInteger(GetXFANode()->GetCount());
+ return;
+ }
+ SetInstances(pValue->ToInteger());
+}
diff --git a/fxjs/xfa/cjx_instancemanager.h b/fxjs/xfa/cjx_instancemanager.h
index 1fd41a6402..74efad5ba9 100644
--- a/fxjs/xfa/cjx_instancemanager.h
+++ b/fxjs/xfa/cjx_instancemanager.h
@@ -23,7 +23,15 @@ class CJX_InstanceManager : public CJX_Node {
JS_METHOD(removeInstance, CJX_InstanceManager);
JS_METHOD(setInstances, CJX_InstanceManager);
+ JS_PROP(count);
+ JS_PROP(max);
+ JS_PROP(min);
+
+ int32_t MoveInstance(int32_t iTo, int32_t iFrom);
+
private:
+ int32_t SetInstances(int32_t iDesired);
+
static const CJX_MethodSpec MethodSpecs[];
};
diff --git a/fxjs/xfa/cjx_integer.cpp b/fxjs/xfa/cjx_integer.cpp
new file mode 100644
index 0000000000..f1840dd36a
--- /dev/null
+++ b/fxjs/xfa/cjx_integer.cpp
@@ -0,0 +1,37 @@
+// 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_integer.h"
+
+#include "xfa/fxfa/parser/cxfa_integer.h"
+
+CJX_Integer::CJX_Integer(CXFA_Integer* node) : CJX_Content(node) {}
+
+CJX_Integer::~CJX_Integer() = default;
+
+void CJX_Integer::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Integer::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_Integer::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Integer::value(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ defaultValue(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_integer.h b/fxjs/xfa/cjx_integer.h
new file mode 100644
index 0000000000..90daabfc6f
--- /dev/null
+++ b/fxjs/xfa/cjx_integer.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_INTEGER_H_
+#define FXJS_XFA_CJX_INTEGER_H_
+
+#include "fxjs/xfa/cjx_content.h"
+
+class CXFA_Integer;
+
+class CJX_Integer : public CJX_Content {
+ public:
+ explicit CJX_Integer(CXFA_Integer* node);
+ ~CJX_Integer() override;
+
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(value);
+};
+
+#endif // FXJS_XFA_CJX_INTEGER_H_
diff --git a/fxjs/xfa/cjx_issuers.cpp b/fxjs/xfa/cjx_issuers.cpp
new file mode 100644
index 0000000000..5cd381d640
--- /dev/null
+++ b/fxjs/xfa/cjx_issuers.cpp
@@ -0,0 +1,31 @@
+// 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_issuers.h"
+
+#include "xfa/fxfa/parser/cxfa_issuers.h"
+
+CJX_Issuers::CJX_Issuers(CXFA_Issuers* node) : CJX_Node(node) {}
+
+CJX_Issuers::~CJX_Issuers() = default;
+
+void CJX_Issuers::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Issuers::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Issuers::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_issuers.h b/fxjs/xfa/cjx_issuers.h
new file mode 100644
index 0000000000..5d76e72b93
--- /dev/null
+++ b/fxjs/xfa/cjx_issuers.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_ISSUERS_H_
+#define FXJS_XFA_CJX_ISSUERS_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Issuers;
+
+class CJX_Issuers : public CJX_Node {
+ public:
+ explicit CJX_Issuers(CXFA_Issuers* node);
+ ~CJX_Issuers() override;
+
+ JS_PROP(type);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_ISSUERS_H_
diff --git a/fxjs/xfa/cjx_items.cpp b/fxjs/xfa/cjx_items.cpp
new file mode 100644
index 0000000000..e4afdd04f4
--- /dev/null
+++ b/fxjs/xfa/cjx_items.cpp
@@ -0,0 +1,43 @@
+// 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_items.h"
+
+#include "xfa/fxfa/parser/cxfa_items.h"
+
+CJX_Items::CJX_Items(CXFA_Items* node) : CJX_Node(node) {}
+
+CJX_Items::~CJX_Items() = default;
+
+void CJX_Items::ref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Items::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Items::presence(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Items::save(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Items::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_items.h b/fxjs/xfa/cjx_items.h
new file mode 100644
index 0000000000..94f2b4374d
--- /dev/null
+++ b/fxjs/xfa/cjx_items.h
@@ -0,0 +1,26 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_ITEMS_H_
+#define FXJS_XFA_CJX_ITEMS_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Items;
+
+class CJX_Items : public CJX_Node {
+ public:
+ explicit CJX_Items(CXFA_Items* node);
+ ~CJX_Items() override;
+
+ JS_PROP(presence);
+ JS_PROP(ref);
+ JS_PROP(save);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_ITEMS_H_
diff --git a/fxjs/xfa/cjx_keep.cpp b/fxjs/xfa/cjx_keep.cpp
new file mode 100644
index 0000000000..25238e3c58
--- /dev/null
+++ b/fxjs/xfa/cjx_keep.cpp
@@ -0,0 +1,43 @@
+// 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_keep.h"
+
+#include "xfa/fxfa/parser/cxfa_keep.h"
+
+CJX_Keep::CJX_Keep(CXFA_Keep* node) : CJX_Node(node) {}
+
+CJX_Keep::~CJX_Keep() = default;
+
+void CJX_Keep::next(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Keep::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Keep::previous(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Keep::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Keep::intact(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_keep.h b/fxjs/xfa/cjx_keep.h
new file mode 100644
index 0000000000..fa8a1119f2
--- /dev/null
+++ b/fxjs/xfa/cjx_keep.h
@@ -0,0 +1,26 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_KEEP_H_
+#define FXJS_XFA_CJX_KEEP_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Keep;
+
+class CJX_Keep : public CJX_Node {
+ public:
+ explicit CJX_Keep(CXFA_Keep* node);
+ ~CJX_Keep() override;
+
+ JS_PROP(intact);
+ JS_PROP(next);
+ JS_PROP(previous);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_KEEP_H_
diff --git a/fxjs/xfa/cjx_keyusage.cpp b/fxjs/xfa/cjx_keyusage.cpp
new file mode 100644
index 0000000000..99947e9e7d
--- /dev/null
+++ b/fxjs/xfa/cjx_keyusage.cpp
@@ -0,0 +1,85 @@
+// 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_keyusage.h"
+
+#include "xfa/fxfa/parser/cxfa_keyusage.h"
+
+CJX_KeyUsage::CJX_KeyUsage(CXFA_KeyUsage* node) : CJX_Node(node) {}
+
+CJX_KeyUsage::~CJX_KeyUsage() = default;
+
+void CJX_KeyUsage::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_KeyUsage::nonRepudiation(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_KeyUsage::encipherOnly(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_KeyUsage::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_KeyUsage::digitalSignature(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_KeyUsage::crlSign(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_KeyUsage::keyAgreement(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_KeyUsage::keyEncipherment(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_KeyUsage::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_KeyUsage::dataEncipherment(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_KeyUsage::keyCertSign(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_KeyUsage::decipherOnly(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_keyusage.h b/fxjs/xfa/cjx_keyusage.h
new file mode 100644
index 0000000000..3ff546de18
--- /dev/null
+++ b/fxjs/xfa/cjx_keyusage.h
@@ -0,0 +1,33 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_KEYUSAGE_H_
+#define FXJS_XFA_CJX_KEYUSAGE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_KeyUsage;
+
+class CJX_KeyUsage : public CJX_Node {
+ public:
+ explicit CJX_KeyUsage(CXFA_KeyUsage* node);
+ ~CJX_KeyUsage() override;
+
+ JS_PROP(crlSign);
+ JS_PROP(dataEncipherment);
+ JS_PROP(decipherOnly);
+ JS_PROP(digitalSignature);
+ JS_PROP(encipherOnly);
+ JS_PROP(keyAgreement);
+ JS_PROP(keyCertSign);
+ JS_PROP(keyEncipherment);
+ JS_PROP(nonRepudiation);
+ JS_PROP(type);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_KEYUSAGE_H_
diff --git a/fxjs/xfa/cjx_layoutpseudomodel.cpp b/fxjs/xfa/cjx_layoutpseudomodel.cpp
index e3e0fea5f9..638da41eea 100644
--- a/fxjs/xfa/cjx_layoutpseudomodel.cpp
+++ b/fxjs/xfa/cjx_layoutpseudomodel.cpp
@@ -52,7 +52,7 @@ CJX_LayoutPseudoModel::CJX_LayoutPseudoModel(CScript_LayoutPseudoModel* model)
CJX_LayoutPseudoModel::~CJX_LayoutPseudoModel() {}
-void CJX_LayoutPseudoModel::Ready(CFXJSE_Value* pValue,
+void CJX_LayoutPseudoModel::ready(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
diff --git a/fxjs/xfa/cjx_layoutpseudomodel.h b/fxjs/xfa/cjx_layoutpseudomodel.h
index 63dc789190..6dbef6038a 100644
--- a/fxjs/xfa/cjx_layoutpseudomodel.h
+++ b/fxjs/xfa/cjx_layoutpseudomodel.h
@@ -29,8 +29,6 @@ class CJX_LayoutPseudoModel : public CJX_Object {
explicit CJX_LayoutPseudoModel(CScript_LayoutPseudoModel* model);
~CJX_LayoutPseudoModel() override;
- void Ready(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
-
JS_METHOD(absPage, CJX_LayoutPseudoModel);
JS_METHOD(absPageCount, CJX_LayoutPseudoModel);
JS_METHOD(absPageCountInBatch, CJX_LayoutPseudoModel);
@@ -51,6 +49,8 @@ class CJX_LayoutPseudoModel : public CJX_Object {
JS_METHOD(x, CJX_LayoutPseudoModel);
JS_METHOD(y, CJX_LayoutPseudoModel);
+ JS_PROP(ready);
+
private:
CJS_Return NumberedPageCount(CJS_V8* runtime, bool bNumbered);
CJS_Return HWXY(CJS_V8* runtime,
diff --git a/fxjs/xfa/cjx_line.cpp b/fxjs/xfa/cjx_line.cpp
new file mode 100644
index 0000000000..48569390a4
--- /dev/null
+++ b/fxjs/xfa/cjx_line.cpp
@@ -0,0 +1,37 @@
+// 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_line.h"
+
+#include "xfa/fxfa/parser/cxfa_line.h"
+
+CJX_Line::CJX_Line(CXFA_Line* node) : CJX_Node(node) {}
+
+CJX_Line::~CJX_Line() = default;
+
+void CJX_Line::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Line::slope(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Line::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Line::hand(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_line.h b/fxjs/xfa/cjx_line.h
new file mode 100644
index 0000000000..7041c1259c
--- /dev/null
+++ b/fxjs/xfa/cjx_line.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_LINE_H_
+#define FXJS_XFA_CJX_LINE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Line;
+
+class CJX_Line : public CJX_Node {
+ public:
+ explicit CJX_Line(CXFA_Line* node);
+ ~CJX_Line() override;
+
+ JS_PROP(hand);
+ JS_PROP(slope);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_LINE_H_
diff --git a/fxjs/xfa/cjx_linear.cpp b/fxjs/xfa/cjx_linear.cpp
new file mode 100644
index 0000000000..1c22699054
--- /dev/null
+++ b/fxjs/xfa/cjx_linear.cpp
@@ -0,0 +1,31 @@
+// 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_linear.h"
+
+#include "xfa/fxfa/parser/cxfa_linear.h"
+
+CJX_Linear::CJX_Linear(CXFA_Linear* node) : CJX_Node(node) {}
+
+CJX_Linear::~CJX_Linear() = default;
+
+void CJX_Linear::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Linear::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Linear::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_linear.h b/fxjs/xfa/cjx_linear.h
new file mode 100644
index 0000000000..30a54bff47
--- /dev/null
+++ b/fxjs/xfa/cjx_linear.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_LINEAR_H_
+#define FXJS_XFA_CJX_LINEAR_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Linear;
+
+class CJX_Linear : public CJX_Node {
+ public:
+ explicit CJX_Linear(CXFA_Linear* node);
+ ~CJX_Linear() override;
+
+ JS_PROP(type);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_LINEAR_H_
diff --git a/fxjs/xfa/cjx_list.h b/fxjs/xfa/cjx_list.h
index 45d827c21e..83801b7e08 100644
--- a/fxjs/xfa/cjx_list.h
+++ b/fxjs/xfa/cjx_list.h
@@ -22,7 +22,7 @@ class CJX_List : public CJX_Object {
JS_METHOD(item, CJX_List);
JS_METHOD(remove, CJX_List);
- void length(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
+ JS_PROP(length);
private:
CXFA_List* GetXFAList();
diff --git a/fxjs/xfa/cjx_logpseudomodel.h b/fxjs/xfa/cjx_logpseudomodel.h
index 2d98241c5a..772bf30540 100644
--- a/fxjs/xfa/cjx_logpseudomodel.h
+++ b/fxjs/xfa/cjx_logpseudomodel.h
@@ -12,6 +12,8 @@
class CScript_LogPseudoModel;
+// TODO(dsinclair): This doesn't exist in the spec. Remove after
+// xfa_basic_data_element_script is removed.
class CJX_LogPseudoModel : public CJX_Object {
public:
explicit CJX_LogPseudoModel(CScript_LogPseudoModel* model);
diff --git a/fxjs/xfa/cjx_manifest.cpp b/fxjs/xfa/cjx_manifest.cpp
index d5c986a83b..bd482d0f4b 100644
--- a/fxjs/xfa/cjx_manifest.cpp
+++ b/fxjs/xfa/cjx_manifest.cpp
@@ -30,3 +30,27 @@ CJS_Return CJX_Manifest::evaluate(
CXFA_WidgetData* pWidgetData = GetWidgetData();
return CJS_Return(runtime->NewBoolean(!!pWidgetData));
}
+
+void CJX_Manifest::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_Manifest::action(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Manifest::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Manifest::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_manifest.h b/fxjs/xfa/cjx_manifest.h
index fd28e4065a..75fcacdfb1 100644
--- a/fxjs/xfa/cjx_manifest.h
+++ b/fxjs/xfa/cjx_manifest.h
@@ -19,6 +19,11 @@ class CJX_Manifest : public CJX_Node {
JS_METHOD(evaluate, CJX_Manifest);
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(action);
+ JS_PROP(use);
+ JS_PROP(usehref);
+
private:
static const CJX_MethodSpec MethodSpecs[];
};
diff --git a/fxjs/xfa/cjx_map.cpp b/fxjs/xfa/cjx_map.cpp
new file mode 100644
index 0000000000..7a1fa14264
--- /dev/null
+++ b/fxjs/xfa/cjx_map.cpp
@@ -0,0 +1,37 @@
+// 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_map.h"
+
+#include "xfa/fxfa/parser/cxfa_map.h"
+
+CJX_Map::CJX_Map(CXFA_Map* node) : CJX_Node(node) {}
+
+CJX_Map::~CJX_Map() = default;
+
+void CJX_Map::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Map::bind(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Map::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Map::from(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_map.h b/fxjs/xfa/cjx_map.h
new file mode 100644
index 0000000000..dba7eb63e2
--- /dev/null
+++ b/fxjs/xfa/cjx_map.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_MAP_H_
+#define FXJS_XFA_CJX_MAP_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Map;
+
+class CJX_Map : public CJX_Node {
+ public:
+ explicit CJX_Map(CXFA_Map* node);
+ ~CJX_Map() override;
+
+ JS_PROP(bind);
+ JS_PROP(from);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_MAP_H_
diff --git a/fxjs/xfa/cjx_margin.cpp b/fxjs/xfa/cjx_margin.cpp
new file mode 100644
index 0000000000..62a180b324
--- /dev/null
+++ b/fxjs/xfa/cjx_margin.cpp
@@ -0,0 +1,49 @@
+// 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_margin.h"
+
+#include "xfa/fxfa/parser/cxfa_margin.h"
+
+CJX_Margin::CJX_Margin(CXFA_Margin* node) : CJX_Node(node) {}
+
+CJX_Margin::~CJX_Margin() = default;
+
+void CJX_Margin::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Margin::leftInset(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Margin::bottomInset(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Margin::topInset(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Margin::rightInset(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Margin::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_margin.h b/fxjs/xfa/cjx_margin.h
new file mode 100644
index 0000000000..0ca884f708
--- /dev/null
+++ b/fxjs/xfa/cjx_margin.h
@@ -0,0 +1,27 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_MARGIN_H_
+#define FXJS_XFA_CJX_MARGIN_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Margin;
+
+class CJX_Margin : public CJX_Node {
+ public:
+ explicit CJX_Margin(CXFA_Margin* node);
+ ~CJX_Margin() override;
+
+ JS_PROP(bottomInset);
+ JS_PROP(leftInset);
+ JS_PROP(rightInset);
+ JS_PROP(topInset);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_MARGIN_H_
diff --git a/fxjs/xfa/cjx_mdp.cpp b/fxjs/xfa/cjx_mdp.cpp
new file mode 100644
index 0000000000..59730f68e6
--- /dev/null
+++ b/fxjs/xfa/cjx_mdp.cpp
@@ -0,0 +1,37 @@
+// 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_mdp.h"
+
+#include "xfa/fxfa/parser/cxfa_mdp.h"
+
+CJX_Mdp::CJX_Mdp(CXFA_Mdp* node) : CJX_Node(node) {}
+
+CJX_Mdp::~CJX_Mdp() = default;
+
+void CJX_Mdp::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Mdp::signatureType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Mdp::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Mdp::permissions(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_mdp.h b/fxjs/xfa/cjx_mdp.h
new file mode 100644
index 0000000000..bdce2b83fd
--- /dev/null
+++ b/fxjs/xfa/cjx_mdp.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_MDP_H_
+#define FXJS_XFA_CJX_MDP_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Mdp;
+
+class CJX_Mdp : public CJX_Node {
+ public:
+ explicit CJX_Mdp(CXFA_Mdp* node);
+ ~CJX_Mdp() override;
+
+ JS_PROP(permissions);
+ JS_PROP(signatureType);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_MDP_H_
diff --git a/fxjs/xfa/cjx_medium.cpp b/fxjs/xfa/cjx_medium.cpp
new file mode 100644
index 0000000000..e8986d9bbb
--- /dev/null
+++ b/fxjs/xfa/cjx_medium.cpp
@@ -0,0 +1,55 @@
+// 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_medium.h"
+
+#include "xfa/fxfa/parser/cxfa_medium.h"
+
+CJX_Medium::CJX_Medium(CXFA_Medium* node) : CJX_Node(node) {}
+
+CJX_Medium::~CJX_Medium() = default;
+
+void CJX_Medium::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Medium::orientation(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Medium::imagingBBox(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Medium::shortValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Medium::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Medium::stock(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Medium::longValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_medium.h b/fxjs/xfa/cjx_medium.h
new file mode 100644
index 0000000000..99023dc4ab
--- /dev/null
+++ b/fxjs/xfa/cjx_medium.h
@@ -0,0 +1,28 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_MEDIUM_H_
+#define FXJS_XFA_CJX_MEDIUM_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Medium;
+
+class CJX_Medium : public CJX_Node {
+ public:
+ explicit CJX_Medium(CXFA_Medium* node);
+ ~CJX_Medium() override;
+
+ JS_PROP(imagingBBox);
+ JS_PROP(longValue); /* long */
+ JS_PROP(orientation);
+ JS_PROP(shortValue); /* short */
+ JS_PROP(stock);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_MEDIUM_H_
diff --git a/fxjs/xfa/cjx_message.cpp b/fxjs/xfa/cjx_message.cpp
new file mode 100644
index 0000000000..c9f3f6afdc
--- /dev/null
+++ b/fxjs/xfa/cjx_message.cpp
@@ -0,0 +1,25 @@
+// 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_message.h"
+
+#include "xfa/fxfa/parser/cxfa_message.h"
+
+CJX_Message::CJX_Message(CXFA_Message* node) : CJX_Node(node) {}
+
+CJX_Message::~CJX_Message() = default;
+
+void CJX_Message::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Message::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_message.h b/fxjs/xfa/cjx_message.h
new file mode 100644
index 0000000000..a2a461ebad
--- /dev/null
+++ b/fxjs/xfa/cjx_message.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_MESSAGE_H_
+#define FXJS_XFA_CJX_MESSAGE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Message;
+
+class CJX_Message : public CJX_Node {
+ public:
+ explicit CJX_Message(CXFA_Message* node);
+ ~CJX_Message() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_MESSAGE_H_
diff --git a/fxjs/xfa/cjx_model.cpp b/fxjs/xfa/cjx_model.cpp
index 4ac6280c44..aa5d6b21fa 100644
--- a/fxjs/xfa/cjx_model.cpp
+++ b/fxjs/xfa/cjx_model.cpp
@@ -82,3 +82,11 @@ CJS_Return CJX_Model::isCompatibleNS(
return CJS_Return(
runtime->NewBoolean(TryNamespace().value_or(WideString()) == nameSpace));
}
+
+void CJX_Model::context(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {}
+
+void CJX_Model::aliasNode(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {}
diff --git a/fxjs/xfa/cjx_model.h b/fxjs/xfa/cjx_model.h
index 17b8d3d6f5..fae1cc7cfd 100644
--- a/fxjs/xfa/cjx_model.h
+++ b/fxjs/xfa/cjx_model.h
@@ -21,6 +21,9 @@ class CJX_Model : public CJX_Node {
JS_METHOD(createNode, CJX_Model);
JS_METHOD(isCompatibleNS, CJX_Model);
+ JS_PROP(aliasNode);
+ JS_PROP(context);
+
private:
static const CJX_MethodSpec MethodSpecs[];
};
diff --git a/fxjs/xfa/cjx_node.cpp b/fxjs/xfa/cjx_node.cpp
index b2743f0176..1216177f02 100644
--- a/fxjs/xfa/cjx_node.cpp
+++ b/fxjs/xfa/cjx_node.cpp
@@ -386,6 +386,74 @@ CJS_Return CJX_Node::setElement(
return CJS_Return(true);
}
+void CJX_Node::id(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Node::ns(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (bSetting) {
+ ThrowInvalidPropertyException();
+ return;
+ }
+ pValue->SetString(
+ TryNamespace().value_or(WideString()).UTF8Encode().AsStringView());
+}
+
+void CJX_Node::model(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (bSetting) {
+ ThrowInvalidPropertyException();
+ return;
+ }
+ pValue->Assign(GetDocument()->GetScriptContext()->GetJSValueFromMap(
+ GetXFANode()->GetModelNode()));
+}
+
+void CJX_Node::isContainer(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (bSetting) {
+ ThrowInvalidPropertyException();
+ return;
+ }
+ pValue->SetBoolean(GetXFANode()->IsContainerNode());
+}
+
+void CJX_Node::isNull(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (bSetting) {
+ ThrowInvalidPropertyException();
+ return;
+ }
+ if (GetXFANode()->GetElementType() == XFA_Element::Subform) {
+ pValue->SetBoolean(false);
+ return;
+ }
+ pValue->SetBoolean(GetContent(false).IsEmpty());
+}
+
+void CJX_Node::oneOfChild(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (bSetting) {
+ ThrowInvalidPropertyException();
+ return;
+ }
+
+ std::vector<CXFA_Node*> properties = GetXFANode()->GetNodeList(
+ XFA_NODEFILTER_OneOfProperty, XFA_Element::Unknown);
+ if (!properties.empty()) {
+ pValue->Assign(GetDocument()->GetScriptContext()->GetJSValueFromMap(
+ properties.front()));
+ }
+}
+
int32_t CJX_Node::execSingleEventByName(const WideStringView& wsEventName,
XFA_Element eType) {
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
diff --git a/fxjs/xfa/cjx_node.h b/fxjs/xfa/cjx_node.h
index f54239aa67..f7cbce855b 100644
--- a/fxjs/xfa/cjx_node.h
+++ b/fxjs/xfa/cjx_node.h
@@ -19,9 +19,6 @@ class CJX_Node : public CJX_Tree {
explicit CJX_Node(CXFA_Node* node);
~CJX_Node() override;
- CXFA_Node* GetXFANode();
- const CXFA_Node* GetXFANode() const;
-
JS_METHOD(applyXSL, CJX_Node);
JS_METHOD(assignNode, CJX_Node);
JS_METHOD(clone, CJX_Node);
@@ -34,6 +31,16 @@ class CJX_Node : public CJX_Tree {
JS_METHOD(setAttribute, CJX_Node);
JS_METHOD(setElement, CJX_Node);
+ JS_PROP(id);
+ JS_PROP(isContainer);
+ JS_PROP(isNull);
+ JS_PROP(model);
+ JS_PROP(ns);
+ JS_PROP(oneOfChild);
+
+ CXFA_Node* GetXFANode();
+ const CXFA_Node* GetXFANode() const;
+
protected:
int32_t execSingleEventByName(const WideStringView& wsEventName,
XFA_Element eType);
diff --git a/fxjs/xfa/cjx_numericedit.cpp b/fxjs/xfa/cjx_numericedit.cpp
new file mode 100644
index 0000000000..c76cc66bf8
--- /dev/null
+++ b/fxjs/xfa/cjx_numericedit.cpp
@@ -0,0 +1,31 @@
+// 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_numericedit.h"
+
+#include "xfa/fxfa/parser/cxfa_numericedit.h"
+
+CJX_NumericEdit::CJX_NumericEdit(CXFA_NumericEdit* node) : CJX_Node(node) {}
+
+CJX_NumericEdit::~CJX_NumericEdit() = default;
+
+void CJX_NumericEdit::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_NumericEdit::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_NumericEdit::hScrollPolicy(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_numericedit.h b/fxjs/xfa/cjx_numericedit.h
new file mode 100644
index 0000000000..43f9d001dc
--- /dev/null
+++ b/fxjs/xfa/cjx_numericedit.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_NUMERICEDIT_H_
+#define FXJS_XFA_CJX_NUMERICEDIT_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_NumericEdit;
+
+class CJX_NumericEdit : public CJX_Node {
+ public:
+ explicit CJX_NumericEdit(CXFA_NumericEdit* node);
+ ~CJX_NumericEdit() override;
+
+ JS_PROP(hScrollPolicy);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_NUMERICEDIT_H_
diff --git a/fxjs/xfa/cjx_object.cpp b/fxjs/xfa/cjx_object.cpp
index fc708584d7..c1503af22d 100644
--- a/fxjs/xfa/cjx_object.cpp
+++ b/fxjs/xfa/cjx_object.cpp
@@ -14,6 +14,10 @@
#include "fxjs/cfxjse_engine.h"
#include "fxjs/cfxjse_value.h"
#include "fxjs/cjs_return.h"
+#include "fxjs/xfa/cjx_boolean.h"
+#include "fxjs/xfa/cjx_draw.h"
+#include "fxjs/xfa/cjx_field.h"
+#include "fxjs/xfa/cjx_instancemanager.h"
#include "third_party/base/ptr_util.h"
#include "xfa/fxfa/cxfa_ffnotify.h"
#include "xfa/fxfa/cxfa_ffwidget.h"
@@ -125,9 +129,9 @@ CXFA_Document* CJX_Object::GetDocument() const {
return object_->GetDocument();
}
-void CJX_Object::Script_ObjectClass_ClassName(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
+void CJX_Object::className(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
if (bSetting) {
ThrowInvalidPropertyException();
return;
@@ -136,6 +140,20 @@ void CJX_Object::Script_ObjectClass_ClassName(CFXJSE_Value* pValue,
FX_UTF8Encode(GetXFAObject()->GetClassName()).AsStringView());
}
+int32_t CJX_Object::Subform_and_SubformSet_InstanceIndex() {
+ int32_t index = 0;
+ for (CXFA_Node* pNode =
+ ToNode(GetXFAObject())->GetNodeItem(XFA_NODEITEM_PrevSibling);
+ pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) {
+ if ((pNode->GetElementType() != XFA_Element::Subform) &&
+ (pNode->GetElementType() != XFA_Element::SubformSet)) {
+ break;
+ }
+ index++;
+ }
+ return index;
+}
+
bool CJX_Object::HasMethod(const WideString& func) const {
return pdfium::ContainsKey(method_specs_, func.UTF8Encode());
}
@@ -844,6 +862,36 @@ pdfium::Optional<WideString> CJX_Object::TryContent(bool bScriptModify,
return {};
}
+pdfium::Optional<WideString> CJX_Object::TryNamespace() {
+ if (ToNode(GetXFAObject())->IsModelNode() ||
+ ToNode(GetXFAObject())->GetElementType() == XFA_Element::Packet) {
+ CFX_XMLNode* pXMLNode = ToNode(GetXFAObject())->GetXMLMappingNode();
+ if (!pXMLNode || pXMLNode->GetType() != FX_XMLNODE_Element)
+ return {};
+
+ return {static_cast<CFX_XMLElement*>(pXMLNode)->GetNamespaceURI()};
+ }
+
+ if (ToNode(GetXFAObject())->GetPacketType() != XFA_PacketType::Datasets)
+ return ToNode(GetXFAObject())->GetModelNode()->JSObject()->TryNamespace();
+
+ CFX_XMLNode* pXMLNode = ToNode(GetXFAObject())->GetXMLMappingNode();
+ if (!pXMLNode || pXMLNode->GetType() != FX_XMLNODE_Element)
+ return {};
+
+ if (ToNode(GetXFAObject())->GetElementType() == XFA_Element::DataValue &&
+ GetEnum(XFA_Attribute::Contains) == XFA_AttributeEnum::MetaData) {
+ WideString wsNamespace;
+ bool ret = XFA_FDEExtension_ResolveNamespaceQualifier(
+ static_cast<CFX_XMLElement*>(pXMLNode),
+ GetCData(XFA_Attribute::QualifiedName), &wsNamespace);
+ if (!ret)
+ return {};
+ return {wsNamespace};
+ }
+ return {static_cast<CFX_XMLElement*>(pXMLNode)->GetNamespaceURI()};
+}
+
CXFA_Node* CJX_Object::GetProperty(int32_t index,
XFA_Element eProperty,
bool bCreateProperty) {
@@ -1408,32 +1456,47 @@ void CJX_Object::Script_Som_ValidationMessage(CFXJSE_Value* pValue,
Script_Som_Message(pValue, bSetting, XFA_SOM_ValidationMessage);
}
-void CJX_Object::Script_Field_FormatMessage(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- Script_Som_Message(pValue, bSetting, XFA_SOM_FormatMessage);
-}
-
void CJX_Object::Script_Som_MandatoryMessage(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
Script_Som_Message(pValue, bSetting, XFA_SOM_MandatoryMessage);
}
+void CJX_Object::Script_Field_Length(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (bSetting) {
+ ThrowInvalidPropertyException();
+ return;
+ }
+ if (!widget_data_) {
+ pValue->SetInteger(0);
+ return;
+ }
+ pValue->SetInteger(widget_data_->CountChoiceListItems(true));
+}
+
void CJX_Object::Script_Som_DefaultValue(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute /* unused */) {
XFA_Element eType = ToNode(GetXFAObject())->GetElementType();
+
+ // TODO(dsinclair): This should look through the properties on the node to see
+ // if defaultValue is defined and, if so, call that one. Just have to make
+ // sure that those defaultValue calls don't call back to this one ....
if (eType == XFA_Element::Field) {
- Script_Field_DefaultValue(pValue, bSetting, XFA_Attribute::Unknown);
+ static_cast<CJX_Field*>(this)->defaultValue(pValue, bSetting,
+ XFA_Attribute::Unknown);
return;
}
if (eType == XFA_Element::Draw) {
- Script_Draw_DefaultValue(pValue, bSetting, XFA_Attribute::Unknown);
+ static_cast<CJX_Draw*>(this)->defaultValue(pValue, bSetting,
+ XFA_Attribute::Unknown);
return;
}
if (eType == XFA_Element::Boolean) {
- Script_Boolean_DefaultValue(pValue, bSetting, XFA_Attribute::Unknown);
+ static_cast<CJX_Boolean*>(this)->defaultValue(pValue, bSetting,
+ XFA_Attribute::Unknown);
return;
}
@@ -1558,7 +1621,8 @@ void CJX_Object::Script_Som_InstanceIndex(CFXJSE_Value* pValue,
if (!pManagerNode)
return;
- pManagerNode->JSObject()->InstanceManager_MoveInstance(iTo, iFrom);
+ auto* mgr = static_cast<CJX_InstanceManager*>(pManagerNode->JSObject());
+ mgr->MoveInstance(iTo, iFrom);
CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
if (!pNotify)
return;
@@ -1575,322 +1639,9 @@ void CJX_Object::Script_Som_InstanceIndex(CFXJSE_Value* pValue,
}
}
-void CJX_Object::Script_Field_DefaultValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (!widget_data_)
- return;
-
- if (bSetting) {
- if (pValue) {
- widget_data_->SetPreNull(widget_data_->IsNull());
- widget_data_->SetIsNull(pValue->IsNull());
- }
-
- WideString wsNewText;
- if (pValue && !(pValue->IsNull() || pValue->IsUndefined()))
- wsNewText = pValue->ToWideString();
-
- CXFA_Node* pUIChild = widget_data_->GetUIChild();
- if (pUIChild->GetElementType() == XFA_Element::NumericEdit) {
- wsNewText =
- widget_data_->NumericLimit(wsNewText, widget_data_->GetLeadDigits(),
- widget_data_->GetFracDigits());
- }
-
- CXFA_WidgetData* pContainerWidgetData =
- ToNode(GetXFAObject())->GetContainerWidgetData();
- WideString wsFormatText(wsNewText);
- if (pContainerWidgetData)
- wsFormatText = pContainerWidgetData->GetFormatDataValue(wsNewText);
-
- SetContent(wsNewText, wsFormatText, true, true, true);
- return;
- }
-
- WideString content = GetContent(true);
- if (content.IsEmpty()) {
- pValue->SetNull();
- return;
- }
-
- CXFA_Node* pUIChild = widget_data_->GetUIChild();
- CXFA_Node* pNode = widget_data_->GetFormValueData().GetNode()->GetNodeItem(
- XFA_NODEITEM_FirstChild);
- if (pNode && pNode->GetElementType() == XFA_Element::Decimal) {
- if (pUIChild->GetElementType() == XFA_Element::NumericEdit &&
- (pNode->JSObject()->GetInteger(XFA_Attribute::FracDigits) == -1)) {
- pValue->SetString(content.UTF8Encode().AsStringView());
- } else {
- CFX_Decimal decimal(content.AsStringView());
- pValue->SetFloat((float)(double)decimal);
- }
- } else if (pNode && pNode->GetElementType() == XFA_Element::Integer) {
- pValue->SetInteger(FXSYS_wtoi(content.c_str()));
- } else if (pNode && pNode->GetElementType() == XFA_Element::Boolean) {
- pValue->SetBoolean(FXSYS_wtoi(content.c_str()) == 0 ? false : true);
- } else if (pNode && pNode->GetElementType() == XFA_Element::Float) {
- CFX_Decimal decimal(content.AsStringView());
- pValue->SetFloat((float)(double)decimal);
- } else {
- pValue->SetString(content.UTF8Encode().AsStringView());
- }
-}
-
-void CJX_Object::Script_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_Object::Script_Draw_DefaultValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (!bSetting) {
- WideString content = GetContent(true);
- if (content.IsEmpty())
- pValue->SetNull();
- else
- pValue->SetString(content.UTF8Encode().AsStringView());
-
- return;
- }
-
- if (!pValue || !pValue->IsString())
- return;
- if (widget_data_->GetUIType() != XFA_Element::Text)
- return;
-
- WideString wsNewValue = pValue->ToWideString();
- SetContent(wsNewValue, wsNewValue, true, true, true);
-}
-
-int32_t CJX_Object::Subform_and_SubformSet_InstanceIndex() {
- int32_t index = 0;
- for (CXFA_Node* pNode =
- ToNode(GetXFAObject())->GetNodeItem(XFA_NODEITEM_PrevSibling);
- pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) {
- if ((pNode->GetElementType() != XFA_Element::Subform) &&
- (pNode->GetElementType() != XFA_Element::SubformSet)) {
- break;
- }
- index++;
- }
- return index;
-}
-
-void CJX_Object::Script_NodeClass_Ns(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (bSetting) {
- ThrowInvalidPropertyException();
- return;
- }
- pValue->SetString(
- TryNamespace().value_or(WideString()).UTF8Encode().AsStringView());
-}
-
-void CJX_Object::Script_NodeClass_Model(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (bSetting) {
- ThrowInvalidPropertyException();
- return;
- }
-
- pValue->Assign(GetDocument()->GetScriptContext()->GetJSValueFromMap(
- ToNode(GetXFAObject())->GetModelNode()));
-}
-
-void CJX_Object::Script_NodeClass_IsContainer(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (bSetting) {
- ThrowInvalidPropertyException();
- return;
- }
-
- pValue->SetBoolean(GetXFAObject()->IsContainerNode());
-}
-
-void CJX_Object::Script_NodeClass_IsNull(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (bSetting) {
- ThrowInvalidPropertyException();
- return;
- }
- if (ToNode(GetXFAObject())->GetElementType() == XFA_Element::Subform) {
- pValue->SetBoolean(false);
- return;
- }
- pValue->SetBoolean(GetContent(false).IsEmpty());
-}
-
-void CJX_Object::Script_NodeClass_OneOfChild(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (bSetting) {
- ThrowInvalidPropertyException();
- return;
- }
-
- std::vector<CXFA_Node*> properties =
- ToNode(GetXFAObject())
- ->GetNodeList(XFA_NODEFILTER_OneOfProperty, XFA_Element::Unknown);
- if (!properties.empty()) {
- pValue->Assign(GetDocument()->GetScriptContext()->GetJSValueFromMap(
- properties.front()));
- }
-}
-
-void CJX_Object::Script_ModelClass_Context(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {}
-
-void CJX_Object::Script_ModelClass_AliasNode(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {}
-
-void CJX_Object::Script_Delta_CurrentValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {}
-
-void CJX_Object::Script_Delta_SavedValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {}
-
-void CJX_Object::Script_Delta_Target(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {}
-
-void CJX_Object::Script_Field_Length(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (bSetting) {
- ThrowInvalidPropertyException();
- return;
- }
- if (!widget_data_) {
- pValue->SetInteger(0);
- return;
- }
- pValue->SetInteger(widget_data_->CountChoiceListItems(true));
-}
-
-void CJX_Object::Script_Field_EditValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (!widget_data_)
- return;
-
- if (bSetting) {
- widget_data_->SetValue(XFA_VALUEPICTURE_Edit, pValue->ToWideString());
- return;
- }
- pValue->SetString(widget_data_->GetValue(XFA_VALUEPICTURE_Edit)
- .UTF8Encode()
- .AsStringView());
-}
-
-void CJX_Object::Script_Field_FormattedValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (!widget_data_)
- return;
-
- if (bSetting) {
- widget_data_->SetValue(XFA_VALUEPICTURE_Display, pValue->ToWideString());
- return;
- }
- pValue->SetString(widget_data_->GetValue(XFA_VALUEPICTURE_Display)
- .UTF8Encode()
- .AsStringView());
-}
-
-void CJX_Object::Script_Field_ParentSubform(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (bSetting) {
- ThrowInvalidPropertyException();
- return;
- }
- pValue->SetNull();
-}
-
-void CJX_Object::Script_Field_SelectedIndex(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (!widget_data_)
- return;
-
- if (!bSetting) {
- pValue->SetInteger(widget_data_->GetSelectedItem(0));
- return;
- }
-
- int32_t iIndex = pValue->ToInteger();
- if (iIndex == -1) {
- widget_data_->ClearAllSelections();
- return;
- }
-
- widget_data_->SetItemState(iIndex, true, true, true, true);
-}
-
-void CJX_Object::Script_ExclGroup_ErrorText(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (bSetting)
- ThrowInvalidPropertyException();
-}
-
-void CJX_Object::Script_ExclGroup_DefaultAndRawValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (!widget_data_)
- return;
-
- if (bSetting) {
- widget_data_->SetSelectedMemberByValue(
- pValue->ToWideString().AsStringView(), true, true, true);
- return;
- }
-
- WideString wsValue = GetContent(true);
- XFA_VERSION curVersion = GetDocument()->GetCurVersionMode();
- if (wsValue.IsEmpty() && curVersion >= XFA_VERSION_300) {
- pValue->SetNull();
- return;
- }
- pValue->SetString(wsValue.UTF8Encode().AsStringView());
-}
-
-void CJX_Object::Script_ExclGroup_Transient(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {}
-
void CJX_Object::Script_Subform_InstanceManager(CFXJSE_Value* pValue,
bool bSetting,
- XFA_Attribute eAttribute) {
+ XFA_AttributeEnum eAttribute) {
if (bSetting) {
ThrowInvalidPropertyException();
return;
@@ -1920,72 +1671,9 @@ void CJX_Object::Script_Subform_InstanceManager(CFXJSE_Value* pValue,
GetDocument()->GetScriptContext()->GetJSValueFromMap(pInstanceMgr));
}
-void CJX_Object::Script_Subform_Locale(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (bSetting) {
- SetCData(XFA_Attribute::Locale, pValue->ToWideString(), true, true);
- return;
- }
-
- WideString wsLocaleName;
- ToNode(GetXFAObject())->GetLocaleName(wsLocaleName);
- pValue->SetString(wsLocaleName.UTF8Encode().AsStringView());
-}
-
-void CJX_Object::Script_InstanceManager_Max(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (bSetting) {
- ThrowInvalidPropertyException();
- return;
- }
- pValue->SetInteger(
- CXFA_OccurData(ToNode(GetXFAObject())->GetOccurNode()).GetMax());
-}
-
-void CJX_Object::Script_InstanceManager_Min(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (bSetting) {
- ThrowInvalidPropertyException();
- return;
- }
- pValue->SetInteger(
- CXFA_OccurData(ToNode(GetXFAObject())->GetOccurNode()).GetMin());
-}
-
-void CJX_Object::Script_InstanceManager_Count(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (bSetting) {
- pValue->SetInteger(ToNode(GetXFAObject())->GetCount());
- return;
- }
- InstanceManager_SetInstances(pValue->ToInteger());
-}
-
-void CJX_Object::Script_Occur_Max(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- CXFA_OccurData occurData(ToNode(GetXFAObject()));
- if (!bSetting) {
- pValue->SetInteger(occurData.GetMax());
- return;
- }
- occurData.SetMax(pValue->ToInteger());
-}
-
-void CJX_Object::Script_Occur_Min(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- CXFA_OccurData occurData(ToNode(GetXFAObject()));
- if (!bSetting) {
- pValue->SetInteger(occurData.GetMin());
- return;
- }
- occurData.SetMin(pValue->ToInteger());
-}
+void CJX_Object::Script_SubmitFormat_Mode(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {}
void CJX_Object::Script_Form_Checksum(CFXJSE_Value* pValue,
bool bSetting,
@@ -2001,179 +1689,9 @@ void CJX_Object::Script_Form_Checksum(CFXJSE_Value* pValue,
pValue->SetString(checksum ? checksum->UTF8Encode().AsStringView() : "");
}
-void CJX_Object::Script_Packet_Content(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- CFX_XMLNode* pXMLNode = ToNode(GetXFAObject())->GetXMLMappingNode();
- if (bSetting) {
- if (pXMLNode && pXMLNode->GetType() == FX_XMLNODE_Element) {
- CFX_XMLElement* pXMLElement = static_cast<CFX_XMLElement*>(pXMLNode);
- pXMLElement->SetTextData(pValue->ToWideString());
- }
- return;
- }
-
- WideString wsTextData;
- if (pXMLNode && pXMLNode->GetType() == FX_XMLNODE_Element) {
- CFX_XMLElement* pXMLElement = static_cast<CFX_XMLElement*>(pXMLNode);
- wsTextData = pXMLElement->GetTextData();
- }
-
- pValue->SetString(wsTextData.UTF8Encode().AsStringView());
-}
-
-void CJX_Object::Script_Source_Db(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {}
-
-void CJX_Object::Script_Xfa_This(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
+void CJX_Object::Script_ExclGroup_ErrorText(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
if (bSetting)
- return;
-
- CXFA_Object* pThis = GetDocument()->GetScriptContext()->GetThisObject();
- ASSERT(pThis);
- pValue->Assign(GetDocument()->GetScriptContext()->GetJSValueFromMap(pThis));
-}
-
-void CJX_Object::Script_Handler_Version(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {}
-
-void CJX_Object::Script_SubmitFormat_Mode(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {}
-
-void CJX_Object::Script_Extras_Type(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {}
-
-void CJX_Object::Script_Script_Stateless(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- if (bSetting) {
ThrowInvalidPropertyException();
- return;
- }
- pValue->SetString(FX_UTF8Encode(WideStringView(L"0", 1)).AsStringView());
-}
-
-void CJX_Object::Script_Encrypt_Format(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {}
-
-pdfium::Optional<WideString> CJX_Object::TryNamespace() {
- if (ToNode(GetXFAObject())->IsModelNode() ||
- ToNode(GetXFAObject())->GetElementType() == XFA_Element::Packet) {
- CFX_XMLNode* pXMLNode = ToNode(GetXFAObject())->GetXMLMappingNode();
- if (!pXMLNode || pXMLNode->GetType() != FX_XMLNODE_Element)
- return {};
-
- return {static_cast<CFX_XMLElement*>(pXMLNode)->GetNamespaceURI()};
- }
-
- if (ToNode(GetXFAObject())->GetPacketType() != XFA_PacketType::Datasets)
- return ToNode(GetXFAObject())->GetModelNode()->JSObject()->TryNamespace();
-
- CFX_XMLNode* pXMLNode = ToNode(GetXFAObject())->GetXMLMappingNode();
- if (!pXMLNode || pXMLNode->GetType() != FX_XMLNODE_Element)
- return {};
-
- if (ToNode(GetXFAObject())->GetElementType() == XFA_Element::DataValue &&
- GetEnum(XFA_Attribute::Contains) == XFA_AttributeEnum::MetaData) {
- WideString wsNamespace;
- bool ret = XFA_FDEExtension_ResolveNamespaceQualifier(
- static_cast<CFX_XMLElement*>(pXMLNode),
- GetCData(XFA_Attribute::QualifiedName), &wsNamespace);
- if (!ret)
- return {};
- return {wsNamespace};
- }
- return {static_cast<CFX_XMLElement*>(pXMLNode)->GetNamespaceURI()};
-}
-
-int32_t CJX_Object::InstanceManager_SetInstances(int32_t iDesired) {
- CXFA_OccurData occurData(ToNode(GetXFAObject())->GetOccurNode());
- if (iDesired < occurData.GetMin()) {
- ThrowTooManyOccurancesException(L"min");
- return 1;
- }
-
- int32_t iMax = occurData.GetMax();
- if (iMax >= 0 && iDesired > iMax) {
- ThrowTooManyOccurancesException(L"max");
- return 2;
- }
-
- int32_t iCount = ToNode(GetXFAObject())->GetCount();
- if (iDesired == iCount)
- return 0;
-
- if (iDesired < iCount) {
- WideString wsInstManagerName = GetCData(XFA_Attribute::Name);
- WideString wsInstanceName = WideString(
- wsInstManagerName.IsEmpty()
- ? wsInstManagerName
- : wsInstManagerName.Right(wsInstManagerName.GetLength() - 1));
- uint32_t dInstanceNameHash =
- FX_HashCode_GetW(wsInstanceName.AsStringView(), false);
- CXFA_Node* pPrevSibling =
- iDesired == 0 ? ToNode(GetXFAObject())
- : ToNode(GetXFAObject())->GetItem(iDesired - 1);
- while (iCount > iDesired) {
- CXFA_Node* pRemoveInstance =
- pPrevSibling->GetNodeItem(XFA_NODEITEM_NextSibling);
- if (pRemoveInstance->GetElementType() != XFA_Element::Subform &&
- pRemoveInstance->GetElementType() != XFA_Element::SubformSet) {
- continue;
- }
- if (pRemoveInstance->GetElementType() == XFA_Element::InstanceManager) {
- NOTREACHED();
- break;
- }
- if (pRemoveInstance->GetNameHash() == dInstanceNameHash) {
- ToNode(GetXFAObject())->RemoveItem(pRemoveInstance, true);
- iCount--;
- }
- }
- } else {
- while (iCount < iDesired) {
- CXFA_Node* pNewInstance = ToNode(GetXFAObject())->CreateInstance(true);
- ToNode(GetXFAObject())->InsertItem(pNewInstance, iCount, iCount, false);
- iCount++;
- CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
- if (!pNotify)
- return 0;
-
- pNotify->RunNodeInitialize(pNewInstance);
- }
- }
-
- CXFA_LayoutProcessor* pLayoutPro = GetDocument()->GetLayoutProcessor();
- if (pLayoutPro) {
- pLayoutPro->AddChangedContainer(
- ToNode(GetDocument()->GetXFAObject(XFA_HASHCODE_Form)));
- }
- return 0;
-}
-
-int32_t CJX_Object::InstanceManager_MoveInstance(int32_t iTo, int32_t iFrom) {
- int32_t iCount = ToNode(GetXFAObject())->GetCount();
- if (iFrom > iCount || iTo > iCount - 1) {
- ThrowIndexOutOfBoundsException();
- return 1;
- }
- if (iFrom < 0 || iTo < 0 || iFrom == iTo)
- return 0;
-
- CXFA_Node* pMoveInstance = ToNode(GetXFAObject())->GetItem(iFrom);
- ToNode(GetXFAObject())->RemoveItem(pMoveInstance, false);
- ToNode(GetXFAObject())->InsertItem(pMoveInstance, iTo, iCount - 1, true);
- CXFA_LayoutProcessor* pLayoutPro = GetDocument()->GetLayoutProcessor();
- if (pLayoutPro) {
- pLayoutPro->AddChangedContainer(
- ToNode(GetDocument()->GetXFAObject(XFA_HASHCODE_Form)));
- }
- return 0;
}
diff --git a/fxjs/xfa/cjx_object.h b/fxjs/xfa/cjx_object.h
index b704037e4f..cf2ede7abf 100644
--- a/fxjs/xfa/cjx_object.h
+++ b/fxjs/xfa/cjx_object.h
@@ -15,6 +15,7 @@
#include "core/fxcrt/unowned_ptr.h"
#include "core/fxcrt/widestring.h"
#include "core/fxcrt/xml/cfx_xmlelement.h"
+#include "fxjs/CJX_Define.h"
#include "third_party/base/optional.h"
#include "xfa/fxfa/fxfa_basic.h"
#include "xfa/fxfa/parser/cxfa_widgetdata.h"
@@ -44,11 +45,19 @@ struct XFA_MAPDATABLOCKCALLBACKINFO {
PD_CALLBACK_DUPLICATEDATA pCopy;
};
+enum XFA_SOM_MESSAGETYPE {
+ XFA_SOM_ValidationMessage,
+ XFA_SOM_FormatMessage,
+ XFA_SOM_MandatoryMessage
+};
+
class CJX_Object {
public:
explicit CJX_Object(CXFA_Object* obj);
virtual ~CJX_Object();
+ JS_PROP(className);
+
CXFA_Object* GetXFAObject() { return object_.Get(); }
const CXFA_Object* GetXFAObject() const { return object_.Get(); }
@@ -129,9 +138,9 @@ class CJX_Object {
void Script_Som_MandatoryMessage(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute);
- void Script_Field_FormatMessage(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
+ void Script_Field_Length(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute);
void Script_Som_DefaultValue(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute);
@@ -147,114 +156,21 @@ class CJX_Object {
void Script_Som_InstanceIndex(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute);
-
- void Script_NodeClass_Ns(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_NodeClass_Model(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_NodeClass_IsContainer(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_NodeClass_IsNull(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_NodeClass_OneOfChild(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_ModelClass_Context(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_ModelClass_AliasNode(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Delta_CurrentValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Delta_SavedValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Delta_Target(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Field_Length(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Field_EditValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Field_FormattedValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Field_ParentSubform(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Field_SelectedIndex(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_ExclGroup_DefaultAndRawValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_ExclGroup_ErrorText(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_ExclGroup_Transient(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
-
+ void Script_Som_Message(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_SOM_MESSAGETYPE iMessageType);
void Script_Subform_InstanceManager(CFXJSE_Value* pValue,
bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Subform_Locale(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_InstanceManager_Count(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_InstanceManager_Max(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_InstanceManager_Min(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
-
- void Script_Occur_Max(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Occur_Min(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
-
- void Script_Form_Checksum(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
-
- void Script_Packet_Content(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
-
- void Script_Source_Db(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Xfa_This(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Handler_Version(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
+ XFA_AttributeEnum eAttribute);
void Script_SubmitFormat_Mode(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute);
- void Script_Extras_Type(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Encrypt_Format(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Script_Stateless(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
+ void Script_Form_Checksum(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute);
+ void Script_ExclGroup_ErrorText(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute);
pdfium::Optional<WideString> TryNamespace();
@@ -283,10 +199,6 @@ class CJX_Object {
bool SetMeasure(XFA_Attribute eAttr, CXFA_Measurement mValue, bool bNotify);
CXFA_Measurement GetMeasure(XFA_Attribute eAttr) const;
- void Script_ObjectClass_ClassName(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
-
void MergeAllData(CXFA_Object* pDstModule);
void SetCalcData(std::unique_ptr<CXFA_CalcData> data);
@@ -310,25 +222,6 @@ class CJX_Object {
void ThrowException(const wchar_t* str, ...) const;
private:
- enum XFA_SOM_MESSAGETYPE {
- XFA_SOM_ValidationMessage,
- XFA_SOM_FormatMessage,
- XFA_SOM_MandatoryMessage
- };
- void Script_Som_Message(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_SOM_MESSAGETYPE iMessageType);
- void Script_Boolean_DefaultValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Draw_DefaultValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void Script_Field_DefaultValue(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- int32_t Subform_and_SubformSet_InstanceIndex();
-
void OnChanged(XFA_Attribute eAttr, bool bNotify, bool bScriptModify);
void OnChanging(XFA_Attribute eAttr, bool bNotify);
bool SetUserData(void* pKey,
@@ -341,6 +234,7 @@ class CJX_Object {
XFA_AttributeType eType,
void* pValue,
bool bNotify);
+ int32_t Subform_and_SubformSet_InstanceIndex();
XFA_MAPMODULEDATA* CreateMapModuleData();
XFA_MAPMODULEDATA* GetMapModuleData() const;
diff --git a/fxjs/xfa/cjx_occur.cpp b/fxjs/xfa/cjx_occur.cpp
new file mode 100644
index 0000000000..f5540c0c7a
--- /dev/null
+++ b/fxjs/xfa/cjx_occur.cpp
@@ -0,0 +1,57 @@
+// 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_occur.h"
+
+#include <algorithm>
+
+#include "fxjs/cfxjse_value.h"
+#include "xfa/fxfa/parser/cxfa_occur.h"
+#include "xfa/fxfa/parser/cxfa_occurdata.h"
+
+CJX_Occur::CJX_Occur(CXFA_Occur* node) : CJX_Node(node) {}
+
+CJX_Occur::~CJX_Occur() = default;
+
+void CJX_Occur::max(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ CXFA_OccurData occurData(GetXFANode());
+ if (!bSetting) {
+ pValue->SetInteger(occurData.GetMax());
+ return;
+ }
+ occurData.SetMax(pValue->ToInteger());
+}
+
+void CJX_Occur::min(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ CXFA_OccurData occurData(GetXFANode());
+ if (!bSetting) {
+ pValue->SetInteger(occurData.GetMin());
+ return;
+ }
+ occurData.SetMin(pValue->ToInteger());
+}
+
+void CJX_Occur::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Occur::initial(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Occur::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_occur.h b/fxjs/xfa/cjx_occur.h
new file mode 100644
index 0000000000..fe174238ec
--- /dev/null
+++ b/fxjs/xfa/cjx_occur.h
@@ -0,0 +1,26 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_OCCUR_H_
+#define FXJS_XFA_CJX_OCCUR_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Occur;
+
+class CJX_Occur : public CJX_Node {
+ public:
+ explicit CJX_Occur(CXFA_Occur* node);
+ ~CJX_Occur() override;
+
+ JS_PROP(initial);
+ JS_PROP(max);
+ JS_PROP(min);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_OCCUR_H_
diff --git a/fxjs/xfa/cjx_oid.cpp b/fxjs/xfa/cjx_oid.cpp
new file mode 100644
index 0000000000..1320f8df7e
--- /dev/null
+++ b/fxjs/xfa/cjx_oid.cpp
@@ -0,0 +1,25 @@
+// 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_oid.h"
+
+#include "xfa/fxfa/parser/cxfa_oid.h"
+
+CJX_Oid::CJX_Oid(CXFA_Oid* node) : CJX_TextNode(node) {}
+
+CJX_Oid::~CJX_Oid() = default;
+
+void CJX_Oid::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Oid::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_oid.h b/fxjs/xfa/cjx_oid.h
new file mode 100644
index 0000000000..2578388c2f
--- /dev/null
+++ b/fxjs/xfa/cjx_oid.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_OID_H_
+#define FXJS_XFA_CJX_OID_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_Oid;
+
+class CJX_Oid : public CJX_TextNode {
+ public:
+ explicit CJX_Oid(CXFA_Oid* node);
+ ~CJX_Oid() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_OID_H_
diff --git a/fxjs/xfa/cjx_oids.cpp b/fxjs/xfa/cjx_oids.cpp
new file mode 100644
index 0000000000..a00697479b
--- /dev/null
+++ b/fxjs/xfa/cjx_oids.cpp
@@ -0,0 +1,31 @@
+// 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_oids.h"
+
+#include "xfa/fxfa/parser/cxfa_oids.h"
+
+CJX_Oids::CJX_Oids(CXFA_Oids* node) : CJX_Node(node) {}
+
+CJX_Oids::~CJX_Oids() = default;
+
+void CJX_Oids::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Oids::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Oids::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_oids.h b/fxjs/xfa/cjx_oids.h
new file mode 100644
index 0000000000..9951206420
--- /dev/null
+++ b/fxjs/xfa/cjx_oids.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_OIDS_H_
+#define FXJS_XFA_CJX_OIDS_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Oids;
+
+class CJX_Oids : public CJX_Node {
+ public:
+ explicit CJX_Oids(CXFA_Oids* node);
+ ~CJX_Oids() override;
+
+ JS_PROP(type);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_OIDS_H_
diff --git a/fxjs/xfa/cjx_operation.cpp b/fxjs/xfa/cjx_operation.cpp
new file mode 100644
index 0000000000..bb412bd71f
--- /dev/null
+++ b/fxjs/xfa/cjx_operation.cpp
@@ -0,0 +1,37 @@
+// 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_operation.h"
+
+#include "xfa/fxfa/parser/cxfa_operation.h"
+
+CJX_Operation::CJX_Operation(CXFA_Operation* node) : CJX_TextNode(node) {}
+
+CJX_Operation::~CJX_Operation() = default;
+
+void CJX_Operation::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Operation::output(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Operation::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Operation::input(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_operation.h b/fxjs/xfa/cjx_operation.h
new file mode 100644
index 0000000000..b32ea62594
--- /dev/null
+++ b/fxjs/xfa/cjx_operation.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_OPERATION_H_
+#define FXJS_XFA_CJX_OPERATION_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_Operation;
+
+class CJX_Operation : public CJX_TextNode {
+ public:
+ explicit CJX_Operation(CXFA_Operation* node);
+ ~CJX_Operation() override;
+
+ JS_PROP(input);
+ JS_PROP(output);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_OPERATION_H_
diff --git a/fxjs/xfa/cjx_overflow.cpp b/fxjs/xfa/cjx_overflow.cpp
new file mode 100644
index 0000000000..b6572d4e7c
--- /dev/null
+++ b/fxjs/xfa/cjx_overflow.cpp
@@ -0,0 +1,43 @@
+// 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_overflow.h"
+
+#include "xfa/fxfa/parser/cxfa_overflow.h"
+
+CJX_Overflow::CJX_Overflow(CXFA_Overflow* node) : CJX_Node(node) {}
+
+CJX_Overflow::~CJX_Overflow() = default;
+
+void CJX_Overflow::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Overflow::trailer(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Overflow::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Overflow::target(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Overflow::leader(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_overflow.h b/fxjs/xfa/cjx_overflow.h
new file mode 100644
index 0000000000..c4f94b8599
--- /dev/null
+++ b/fxjs/xfa/cjx_overflow.h
@@ -0,0 +1,26 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_OVERFLOW_H_
+#define FXJS_XFA_CJX_OVERFLOW_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Overflow;
+
+class CJX_Overflow : public CJX_Node {
+ public:
+ explicit CJX_Overflow(CXFA_Overflow* node);
+ ~CJX_Overflow() override;
+
+ JS_PROP(leader);
+ JS_PROP(target);
+ JS_PROP(trailer);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_OVERFLOW_H_
diff --git a/fxjs/xfa/cjx_packet.cpp b/fxjs/xfa/cjx_packet.cpp
index 2203d9bc9e..fdebe626ab 100644
--- a/fxjs/xfa/cjx_packet.cpp
+++ b/fxjs/xfa/cjx_packet.cpp
@@ -68,3 +68,24 @@ CJS_Return CJX_Packet::removeAttribute(
}
return CJS_Return(runtime->NewNull());
}
+
+void CJX_Packet::content(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ CFX_XMLNode* pXMLNode = GetXFANode()->GetXMLMappingNode();
+ if (bSetting) {
+ if (pXMLNode && pXMLNode->GetType() == FX_XMLNODE_Element) {
+ CFX_XMLElement* pXMLElement = static_cast<CFX_XMLElement*>(pXMLNode);
+ pXMLElement->SetTextData(pValue->ToWideString());
+ }
+ return;
+ }
+
+ WideString wsTextData;
+ if (pXMLNode && pXMLNode->GetType() == FX_XMLNODE_Element) {
+ CFX_XMLElement* pXMLElement = static_cast<CFX_XMLElement*>(pXMLNode);
+ wsTextData = pXMLElement->GetTextData();
+ }
+
+ pValue->SetString(wsTextData.UTF8Encode().AsStringView());
+}
diff --git a/fxjs/xfa/cjx_packet.h b/fxjs/xfa/cjx_packet.h
index b014a9d9ac..ac1c170fdd 100644
--- a/fxjs/xfa/cjx_packet.h
+++ b/fxjs/xfa/cjx_packet.h
@@ -21,6 +21,8 @@ class CJX_Packet : public CJX_Node {
JS_METHOD(removeAttribute, CJX_Packet);
JS_METHOD(setAttribute, CJX_Packet);
+ JS_PROP(content);
+
private:
static const CJX_MethodSpec MethodSpecs[];
};
diff --git a/fxjs/xfa/cjx_pagearea.cpp b/fxjs/xfa/cjx_pagearea.cpp
new file mode 100644
index 0000000000..4085d38798
--- /dev/null
+++ b/fxjs/xfa/cjx_pagearea.cpp
@@ -0,0 +1,61 @@
+// 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_pagearea.h"
+
+#include "xfa/fxfa/parser/cxfa_pagearea.h"
+
+CJX_PageArea::CJX_PageArea(CXFA_PageArea* node) : CJX_Container(node) {}
+
+CJX_PageArea::~CJX_PageArea() = default;
+
+void CJX_PageArea::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_PageArea::pagePosition(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_PageArea::oddOrEven(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_PageArea::relevant(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_PageArea::initialNumber(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_PageArea::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_PageArea::numbered(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_PageArea::blankOrNotBlank(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_pagearea.h b/fxjs/xfa/cjx_pagearea.h
new file mode 100644
index 0000000000..8935fa6362
--- /dev/null
+++ b/fxjs/xfa/cjx_pagearea.h
@@ -0,0 +1,29 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_PAGEAREA_H_
+#define FXJS_XFA_CJX_PAGEAREA_H_
+
+#include "fxjs/xfa/cjx_container.h"
+
+class CXFA_PageArea;
+
+class CJX_PageArea : public CJX_Container {
+ public:
+ explicit CJX_PageArea(CXFA_PageArea* node);
+ ~CJX_PageArea() override;
+
+ JS_PROP(blankOrNotBlank);
+ JS_PROP(initialNumber);
+ JS_PROP(numbered);
+ JS_PROP(oddOrEven);
+ JS_PROP(pagePosition);
+ JS_PROP(relevant);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_PAGEAREA_H_
diff --git a/fxjs/xfa/cjx_pageset.cpp b/fxjs/xfa/cjx_pageset.cpp
new file mode 100644
index 0000000000..cfab7904ed
--- /dev/null
+++ b/fxjs/xfa/cjx_pageset.cpp
@@ -0,0 +1,37 @@
+// 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_pageset.h"
+
+#include "xfa/fxfa/parser/cxfa_pageset.h"
+
+CJX_PageSet::CJX_PageSet(CXFA_PageSet* node) : CJX_Container(node) {}
+
+CJX_PageSet::~CJX_PageSet() = default;
+
+void CJX_PageSet::relation(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_PageSet::relevant(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_PageSet::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_PageSet::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_pageset.h b/fxjs/xfa/cjx_pageset.h
new file mode 100644
index 0000000000..7e0ab17443
--- /dev/null
+++ b/fxjs/xfa/cjx_pageset.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_PAGESET_H_
+#define FXJS_XFA_CJX_PAGESET_H_
+
+#include "fxjs/xfa/cjx_container.h"
+
+class CXFA_PageSet;
+
+class CJX_PageSet : public CJX_Container {
+ public:
+ explicit CJX_PageSet(CXFA_PageSet* node);
+ ~CJX_PageSet() override;
+
+ JS_PROP(relation);
+ JS_PROP(relevant);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_PAGESET_H_
diff --git a/fxjs/xfa/cjx_para.cpp b/fxjs/xfa/cjx_para.cpp
new file mode 100644
index 0000000000..3a12e4736f
--- /dev/null
+++ b/fxjs/xfa/cjx_para.cpp
@@ -0,0 +1,97 @@
+// 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_para.h"
+
+#include "xfa/fxfa/parser/cxfa_para.h"
+
+CJX_Para::CJX_Para(CXFA_Para* node) : CJX_Node(node) {}
+
+CJX_Para::~CJX_Para() = default;
+
+void CJX_Para::hAlign(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Para::textIndent(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Para::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Para::marginRight(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Para::marginLeft(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Para::radixOffset(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Para::preserve(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Para::spaceBelow(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Para::vAlign(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Para::tabDefault(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Para::tabStops(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Para::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Para::lineHeight(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Para::spaceAbove(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_para.h b/fxjs/xfa/cjx_para.h
new file mode 100644
index 0000000000..6bf2841cf9
--- /dev/null
+++ b/fxjs/xfa/cjx_para.h
@@ -0,0 +1,35 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_PARA_H_
+#define FXJS_XFA_CJX_PARA_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Para;
+
+class CJX_Para : public CJX_Node {
+ public:
+ explicit CJX_Para(CXFA_Para* node);
+ ~CJX_Para() override;
+
+ JS_PROP(hAlign);
+ JS_PROP(lineHeight);
+ JS_PROP(marginLeft);
+ JS_PROP(marginRight);
+ JS_PROP(preserve);
+ JS_PROP(radixOffset);
+ JS_PROP(spaceAbove);
+ JS_PROP(spaceBelow);
+ JS_PROP(tabDefault);
+ JS_PROP(tabStops);
+ JS_PROP(textIndent);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(vAlign);
+};
+
+#endif // FXJS_XFA_CJX_PARA_H_
diff --git a/fxjs/xfa/cjx_password.cpp b/fxjs/xfa/cjx_password.cpp
new file mode 100644
index 0000000000..a44354beec
--- /dev/null
+++ b/fxjs/xfa/cjx_password.cpp
@@ -0,0 +1,25 @@
+// 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_password.h"
+
+#include "xfa/fxfa/parser/cxfa_password.h"
+
+CJX_Password::CJX_Password(CXFA_Password* node) : CJX_TextNode(node) {}
+
+CJX_Password::~CJX_Password() = default;
+
+void CJX_Password::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Password::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_password.h b/fxjs/xfa/cjx_password.h
new file mode 100644
index 0000000000..ede93cc5ab
--- /dev/null
+++ b/fxjs/xfa/cjx_password.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_PASSWORD_H_
+#define FXJS_XFA_CJX_PASSWORD_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_Password;
+
+class CJX_Password : public CJX_TextNode {
+ public:
+ explicit CJX_Password(CXFA_Password* node);
+ ~CJX_Password() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_PASSWORD_H_
diff --git a/fxjs/xfa/cjx_passwordedit.cpp b/fxjs/xfa/cjx_passwordedit.cpp
new file mode 100644
index 0000000000..8b1c591a7a
--- /dev/null
+++ b/fxjs/xfa/cjx_passwordedit.cpp
@@ -0,0 +1,37 @@
+// 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_passwordedit.h"
+
+#include "xfa/fxfa/parser/cxfa_passwordedit.h"
+
+CJX_PasswordEdit::CJX_PasswordEdit(CXFA_PasswordEdit* node) : CJX_Node(node) {}
+
+CJX_PasswordEdit::~CJX_PasswordEdit() = default;
+
+void CJX_PasswordEdit::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_PasswordEdit::passwordChar(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_PasswordEdit::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_PasswordEdit::hScrollPolicy(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_passwordedit.h b/fxjs/xfa/cjx_passwordedit.h
new file mode 100644
index 0000000000..e4a5fcb9e5
--- /dev/null
+++ b/fxjs/xfa/cjx_passwordedit.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_PASSWORDEDIT_H_
+#define FXJS_XFA_CJX_PASSWORDEDIT_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_PasswordEdit;
+
+class CJX_PasswordEdit : public CJX_Node {
+ public:
+ explicit CJX_PasswordEdit(CXFA_PasswordEdit* node);
+ ~CJX_PasswordEdit() override;
+
+ JS_PROP(hScrollPolicy);
+ JS_PROP(passwordChar);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_PASSWORDEDIT_H_
diff --git a/fxjs/xfa/cjx_pattern.cpp b/fxjs/xfa/cjx_pattern.cpp
new file mode 100644
index 0000000000..5acaa84f14
--- /dev/null
+++ b/fxjs/xfa/cjx_pattern.cpp
@@ -0,0 +1,31 @@
+// 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_pattern.h"
+
+#include "xfa/fxfa/parser/cxfa_pattern.h"
+
+CJX_Pattern::CJX_Pattern(CXFA_Pattern* node) : CJX_Node(node) {}
+
+CJX_Pattern::~CJX_Pattern() = default;
+
+void CJX_Pattern::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Pattern::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Pattern::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_pattern.h b/fxjs/xfa/cjx_pattern.h
new file mode 100644
index 0000000000..81754b8ebc
--- /dev/null
+++ b/fxjs/xfa/cjx_pattern.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_PATTERN_H_
+#define FXJS_XFA_CJX_PATTERN_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Pattern;
+
+class CJX_Pattern : public CJX_Node {
+ public:
+ explicit CJX_Pattern(CXFA_Pattern* node);
+ ~CJX_Pattern() override;
+
+ JS_PROP(type);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_PATTERN_H_
diff --git a/fxjs/xfa/cjx_picture.cpp b/fxjs/xfa/cjx_picture.cpp
new file mode 100644
index 0000000000..81f5ec41f7
--- /dev/null
+++ b/fxjs/xfa/cjx_picture.cpp
@@ -0,0 +1,37 @@
+// 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_picture.h"
+
+#include "xfa/fxfa/parser/cxfa_picture.h"
+
+CJX_Picture::CJX_Picture(CXFA_Picture* node) : CJX_Node(node) {}
+
+CJX_Picture::~CJX_Picture() = default;
+
+void CJX_Picture::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Picture::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_Picture::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Picture::value(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_picture.h b/fxjs/xfa/cjx_picture.h
new file mode 100644
index 0000000000..25497c3313
--- /dev/null
+++ b/fxjs/xfa/cjx_picture.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_PICTURE_H_
+#define FXJS_XFA_CJX_PICTURE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Picture;
+
+class CJX_Picture : public CJX_Node {
+ public:
+ explicit CJX_Picture(CXFA_Picture* node);
+ ~CJX_Picture() override;
+
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(value);
+};
+
+#endif // FXJS_XFA_CJX_PICTURE_H_
diff --git a/fxjs/xfa/cjx_query.cpp b/fxjs/xfa/cjx_query.cpp
new file mode 100644
index 0000000000..f6f255fd12
--- /dev/null
+++ b/fxjs/xfa/cjx_query.cpp
@@ -0,0 +1,31 @@
+// 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_query.h"
+
+#include "xfa/fxfa/parser/cxfa_query.h"
+
+CJX_Query::CJX_Query(CXFA_Query* node) : CJX_Node(node) {}
+
+CJX_Query::~CJX_Query() = default;
+
+void CJX_Query::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Query::commandType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Query::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_query.h b/fxjs/xfa/cjx_query.h
new file mode 100644
index 0000000000..1057fa2040
--- /dev/null
+++ b/fxjs/xfa/cjx_query.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_QUERY_H_
+#define FXJS_XFA_CJX_QUERY_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Query;
+
+class CJX_Query : public CJX_Node {
+ public:
+ explicit CJX_Query(CXFA_Query* node);
+ ~CJX_Query() override;
+
+ JS_PROP(commandType);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_QUERY_H_
diff --git a/fxjs/xfa/cjx_radial.cpp b/fxjs/xfa/cjx_radial.cpp
new file mode 100644
index 0000000000..bd8b1a207b
--- /dev/null
+++ b/fxjs/xfa/cjx_radial.cpp
@@ -0,0 +1,31 @@
+// 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_radial.h"
+
+#include "xfa/fxfa/parser/cxfa_radial.h"
+
+CJX_Radial::CJX_Radial(CXFA_Radial* node) : CJX_Node(node) {}
+
+CJX_Radial::~CJX_Radial() = default;
+
+void CJX_Radial::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Radial::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Radial::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_radial.h b/fxjs/xfa/cjx_radial.h
new file mode 100644
index 0000000000..30737976e5
--- /dev/null
+++ b/fxjs/xfa/cjx_radial.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_RADIAL_H_
+#define FXJS_XFA_CJX_RADIAL_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Radial;
+
+class CJX_Radial : public CJX_Node {
+ public:
+ explicit CJX_Radial(CXFA_Radial* node);
+ ~CJX_Radial() override;
+
+ JS_PROP(type);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_RADIAL_H_
diff --git a/fxjs/xfa/cjx_reason.cpp b/fxjs/xfa/cjx_reason.cpp
new file mode 100644
index 0000000000..c9bb6c3d5d
--- /dev/null
+++ b/fxjs/xfa/cjx_reason.cpp
@@ -0,0 +1,25 @@
+// 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_reason.h"
+
+#include "xfa/fxfa/parser/cxfa_reason.h"
+
+CJX_Reason::CJX_Reason(CXFA_Reason* node) : CJX_TextNode(node) {}
+
+CJX_Reason::~CJX_Reason() = default;
+
+void CJX_Reason::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Reason::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_reason.h b/fxjs/xfa/cjx_reason.h
new file mode 100644
index 0000000000..465cedecbc
--- /dev/null
+++ b/fxjs/xfa/cjx_reason.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_REASON_H_
+#define FXJS_XFA_CJX_REASON_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_Reason;
+
+class CJX_Reason : public CJX_TextNode {
+ public:
+ explicit CJX_Reason(CXFA_Reason* node);
+ ~CJX_Reason() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_REASON_H_
diff --git a/fxjs/xfa/cjx_reasons.cpp b/fxjs/xfa/cjx_reasons.cpp
new file mode 100644
index 0000000000..11a986812a
--- /dev/null
+++ b/fxjs/xfa/cjx_reasons.cpp
@@ -0,0 +1,31 @@
+// 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_reasons.h"
+
+#include "xfa/fxfa/parser/cxfa_reasons.h"
+
+CJX_Reasons::CJX_Reasons(CXFA_Reasons* node) : CJX_Node(node) {}
+
+CJX_Reasons::~CJX_Reasons() = default;
+
+void CJX_Reasons::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Reasons::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Reasons::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_reasons.h b/fxjs/xfa/cjx_reasons.h
new file mode 100644
index 0000000000..a5da62ab3e
--- /dev/null
+++ b/fxjs/xfa/cjx_reasons.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_REASONS_H_
+#define FXJS_XFA_CJX_REASONS_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Reasons;
+
+class CJX_Reasons : public CJX_Node {
+ public:
+ explicit CJX_Reasons(CXFA_Reasons* node);
+ ~CJX_Reasons() override;
+
+ JS_PROP(type);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_REASONS_H_
diff --git a/fxjs/xfa/cjx_recordset.cpp b/fxjs/xfa/cjx_recordset.cpp
new file mode 100644
index 0000000000..c4fe21f60c
--- /dev/null
+++ b/fxjs/xfa/cjx_recordset.cpp
@@ -0,0 +1,63 @@
+// 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_recordset.h"
+
+#include <algorithm>
+
+#include "xfa/fxfa/parser/cxfa_recordset.h"
+
+CJX_RecordSet::CJX_RecordSet(CXFA_RecordSet* node) : CJX_Node(node) {}
+
+CJX_RecordSet::~CJX_RecordSet() = default;
+
+void CJX_RecordSet::max(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_RecordSet::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_RecordSet::eofAction(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_RecordSet::cursorType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_RecordSet::lockType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_RecordSet::bofAction(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_RecordSet::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_RecordSet::cursorLocation(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_recordset.h b/fxjs/xfa/cjx_recordset.h
new file mode 100644
index 0000000000..7c34f6e472
--- /dev/null
+++ b/fxjs/xfa/cjx_recordset.h
@@ -0,0 +1,29 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_RECORDSET_H_
+#define FXJS_XFA_CJX_RECORDSET_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_RecordSet;
+
+class CJX_RecordSet : public CJX_Node {
+ public:
+ explicit CJX_RecordSet(CXFA_RecordSet* node);
+ ~CJX_RecordSet() override;
+
+ JS_PROP(bofAction);
+ JS_PROP(cursorLocation);
+ JS_PROP(cursorType);
+ JS_PROP(eofAction);
+ JS_PROP(lockType);
+ JS_PROP(max);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_RECORDSET_H_
diff --git a/fxjs/xfa/cjx_rectangle.cpp b/fxjs/xfa/cjx_rectangle.cpp
new file mode 100644
index 0000000000..155a29f935
--- /dev/null
+++ b/fxjs/xfa/cjx_rectangle.cpp
@@ -0,0 +1,31 @@
+// 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_rectangle.h"
+
+#include "xfa/fxfa/parser/cxfa_rectangle.h"
+
+CJX_Rectangle::CJX_Rectangle(CXFA_Rectangle* node) : CJX_Node(node) {}
+
+CJX_Rectangle::~CJX_Rectangle() = default;
+
+void CJX_Rectangle::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Rectangle::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Rectangle::hand(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_rectangle.h b/fxjs/xfa/cjx_rectangle.h
new file mode 100644
index 0000000000..c08f7a9eb1
--- /dev/null
+++ b/fxjs/xfa/cjx_rectangle.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_RECTANGLE_H_
+#define FXJS_XFA_CJX_RECTANGLE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Rectangle;
+
+class CJX_Rectangle : public CJX_Node {
+ public:
+ explicit CJX_Rectangle(CXFA_Rectangle* node);
+ ~CJX_Rectangle() override;
+
+ JS_PROP(hand);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_RECTANGLE_H_
diff --git a/fxjs/xfa/cjx_ref.cpp b/fxjs/xfa/cjx_ref.cpp
new file mode 100644
index 0000000000..5930815334
--- /dev/null
+++ b/fxjs/xfa/cjx_ref.cpp
@@ -0,0 +1,25 @@
+// 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_ref.h"
+
+#include "xfa/fxfa/parser/cxfa_ref.h"
+
+CJX_Ref::CJX_Ref(CXFA_Ref* node) : CJX_TextNode(node) {}
+
+CJX_Ref::~CJX_Ref() = default;
+
+void CJX_Ref::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Ref::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_ref.h b/fxjs/xfa/cjx_ref.h
new file mode 100644
index 0000000000..4366282eed
--- /dev/null
+++ b/fxjs/xfa/cjx_ref.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_REF_H_
+#define FXJS_XFA_CJX_REF_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_Ref;
+
+class CJX_Ref : public CJX_TextNode {
+ public:
+ explicit CJX_Ref(CXFA_Ref* node);
+ ~CJX_Ref() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_REF_H_
diff --git a/fxjs/xfa/cjx_rootelement.cpp b/fxjs/xfa/cjx_rootelement.cpp
new file mode 100644
index 0000000000..31fbb006b6
--- /dev/null
+++ b/fxjs/xfa/cjx_rootelement.cpp
@@ -0,0 +1,25 @@
+// 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_rootelement.h"
+
+#include "xfa/fxfa/parser/cxfa_rootelement.h"
+
+CJX_RootElement::CJX_RootElement(CXFA_RootElement* node) : CJX_TextNode(node) {}
+
+CJX_RootElement::~CJX_RootElement() = default;
+
+void CJX_RootElement::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_RootElement::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_rootelement.h b/fxjs/xfa/cjx_rootelement.h
new file mode 100644
index 0000000000..40790df64e
--- /dev/null
+++ b/fxjs/xfa/cjx_rootelement.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_ROOTELEMENT_H_
+#define FXJS_XFA_CJX_ROOTELEMENT_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_RootElement;
+
+class CJX_RootElement : public CJX_TextNode {
+ public:
+ explicit CJX_RootElement(CXFA_RootElement* node);
+ ~CJX_RootElement() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_ROOTELEMENT_H_
diff --git a/fxjs/xfa/cjx_script.cpp b/fxjs/xfa/cjx_script.cpp
new file mode 100644
index 0000000000..4016c137af
--- /dev/null
+++ b/fxjs/xfa/cjx_script.cpp
@@ -0,0 +1,66 @@
+// 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_script.h"
+
+#include "fxjs/cfxjse_value.h"
+#include "xfa/fxfa/parser/cxfa_script.h"
+
+CJX_Script::CJX_Script(CXFA_Script* node) : CJX_Node(node) {}
+
+CJX_Script::~CJX_Script() = default;
+
+void CJX_Script::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Script::contentType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Script::runAt(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Script::stateless(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (bSetting) {
+ ThrowInvalidPropertyException();
+ return;
+ }
+ pValue->SetString(FX_UTF8Encode(WideStringView(L"0", 1)).AsStringView());
+}
+
+void CJX_Script::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_Script::binding(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Script::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Script::value(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ defaultValue(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_script.h b/fxjs/xfa/cjx_script.h
new file mode 100644
index 0000000000..ad5f99418d
--- /dev/null
+++ b/fxjs/xfa/cjx_script.h
@@ -0,0 +1,29 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SCRIPT_H_
+#define FXJS_XFA_CJX_SCRIPT_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Script;
+
+class CJX_Script : public CJX_Node {
+ public:
+ explicit CJX_Script(CXFA_Script* node);
+ ~CJX_Script() override;
+
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(binding);
+ JS_PROP(contentType);
+ JS_PROP(runAt);
+ JS_PROP(stateless);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(value);
+};
+
+#endif // FXJS_XFA_CJX_SCRIPT_H_
diff --git a/fxjs/xfa/cjx_select.cpp b/fxjs/xfa/cjx_select.cpp
new file mode 100644
index 0000000000..d1cb25992e
--- /dev/null
+++ b/fxjs/xfa/cjx_select.cpp
@@ -0,0 +1,25 @@
+// 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_select.h"
+
+#include "xfa/fxfa/parser/cxfa_select.h"
+
+CJX_Select::CJX_Select(CXFA_Select* node) : CJX_TextNode(node) {}
+
+CJX_Select::~CJX_Select() = default;
+
+void CJX_Select::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Select::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_select.h b/fxjs/xfa/cjx_select.h
new file mode 100644
index 0000000000..334c003f2d
--- /dev/null
+++ b/fxjs/xfa/cjx_select.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SELECT_H_
+#define FXJS_XFA_CJX_SELECT_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_Select;
+
+class CJX_Select : public CJX_TextNode {
+ public:
+ explicit CJX_Select(CXFA_Select* node);
+ ~CJX_Select() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_SELECT_H_
diff --git a/fxjs/xfa/cjx_setproperty.cpp b/fxjs/xfa/cjx_setproperty.cpp
new file mode 100644
index 0000000000..871fc4dece
--- /dev/null
+++ b/fxjs/xfa/cjx_setproperty.cpp
@@ -0,0 +1,25 @@
+// 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_setproperty.h"
+
+#include "xfa/fxfa/parser/cxfa_setproperty.h"
+
+CJX_SetProperty::CJX_SetProperty(CXFA_SetProperty* node) : CJX_Node(node) {}
+
+CJX_SetProperty::~CJX_SetProperty() = default;
+
+void CJX_SetProperty::connection(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_SetProperty::target(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_setproperty.h b/fxjs/xfa/cjx_setproperty.h
new file mode 100644
index 0000000000..9929fefeb7
--- /dev/null
+++ b/fxjs/xfa/cjx_setproperty.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SETPROPERTY_H_
+#define FXJS_XFA_CJX_SETPROPERTY_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_SetProperty;
+
+class CJX_SetProperty : public CJX_Node {
+ public:
+ explicit CJX_SetProperty(CXFA_SetProperty* node);
+ ~CJX_SetProperty() override;
+
+ JS_PROP(connection);
+ JS_PROP(target);
+};
+
+#endif // FXJS_XFA_CJX_SETPROPERTY_H_
diff --git a/fxjs/xfa/cjx_signature.cpp b/fxjs/xfa/cjx_signature.cpp
new file mode 100644
index 0000000000..912d9d871c
--- /dev/null
+++ b/fxjs/xfa/cjx_signature.cpp
@@ -0,0 +1,25 @@
+// 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_signature.h"
+
+#include "xfa/fxfa/parser/cxfa_signature.h"
+
+CJX_Signature::CJX_Signature(CXFA_Signature* node) : CJX_Node(node) {}
+
+CJX_Signature::~CJX_Signature() = default;
+
+void CJX_Signature::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Signature::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_signature.h b/fxjs/xfa/cjx_signature.h
new file mode 100644
index 0000000000..bed0b1a2b4
--- /dev/null
+++ b/fxjs/xfa/cjx_signature.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SIGNATURE_H_
+#define FXJS_XFA_CJX_SIGNATURE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Signature;
+
+class CJX_Signature : public CJX_Node {
+ public:
+ explicit CJX_Signature(CXFA_Signature* node);
+ ~CJX_Signature() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_SIGNATURE_H_
diff --git a/fxjs/xfa/cjx_signatureproperties.cpp b/fxjs/xfa/cjx_signatureproperties.cpp
new file mode 100644
index 0000000000..6f2e7a7fd0
--- /dev/null
+++ b/fxjs/xfa/cjx_signatureproperties.cpp
@@ -0,0 +1,26 @@
+// 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_signatureproperties.h"
+
+#include "xfa/fxfa/parser/cxfa_signatureproperties.h"
+
+CJX_SignatureProperties::CJX_SignatureProperties(CXFA_SignatureProperties* node)
+ : CJX_Node(node) {}
+
+CJX_SignatureProperties::~CJX_SignatureProperties() = default;
+
+void CJX_SignatureProperties::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_SignatureProperties::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_signatureproperties.h b/fxjs/xfa/cjx_signatureproperties.h
new file mode 100644
index 0000000000..ffd47a3dc6
--- /dev/null
+++ b/fxjs/xfa/cjx_signatureproperties.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SIGNATUREPROPERTIES_H_
+#define FXJS_XFA_CJX_SIGNATUREPROPERTIES_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_SignatureProperties;
+
+/* Deprecated */
+class CJX_SignatureProperties : public CJX_Node {
+ public:
+ explicit CJX_SignatureProperties(CXFA_SignatureProperties* node);
+ ~CJX_SignatureProperties() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_SIGNATUREPROPERTIES_H_
diff --git a/fxjs/xfa/cjx_signdata.cpp b/fxjs/xfa/cjx_signdata.cpp
new file mode 100644
index 0000000000..eca7430d17
--- /dev/null
+++ b/fxjs/xfa/cjx_signdata.cpp
@@ -0,0 +1,43 @@
+// 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_signdata.h"
+
+#include "xfa/fxfa/parser/cxfa_signdata.h"
+
+CJX_SignData::CJX_SignData(CXFA_SignData* node) : CJX_Node(node) {}
+
+CJX_SignData::~CJX_SignData() = default;
+
+void CJX_SignData::ref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_SignData::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_SignData::operation(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_SignData::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_SignData::target(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_signdata.h b/fxjs/xfa/cjx_signdata.h
new file mode 100644
index 0000000000..7d9b1755ff
--- /dev/null
+++ b/fxjs/xfa/cjx_signdata.h
@@ -0,0 +1,26 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SIGNDATA_H_
+#define FXJS_XFA_CJX_SIGNDATA_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_SignData;
+
+class CJX_SignData : public CJX_Node {
+ public:
+ explicit CJX_SignData(CXFA_SignData* node);
+ ~CJX_SignData() override;
+
+ JS_PROP(operation);
+ JS_PROP(ref);
+ JS_PROP(target);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_SIGNDATA_H_
diff --git a/fxjs/xfa/cjx_signing.cpp b/fxjs/xfa/cjx_signing.cpp
new file mode 100644
index 0000000000..378f725330
--- /dev/null
+++ b/fxjs/xfa/cjx_signing.cpp
@@ -0,0 +1,31 @@
+// 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_signing.h"
+
+#include "xfa/fxfa/parser/cxfa_signing.h"
+
+CJX_Signing::CJX_Signing(CXFA_Signing* node) : CJX_Node(node) {}
+
+CJX_Signing::~CJX_Signing() = default;
+
+void CJX_Signing::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Signing::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Signing::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_signing.h b/fxjs/xfa/cjx_signing.h
new file mode 100644
index 0000000000..8b355097c7
--- /dev/null
+++ b/fxjs/xfa/cjx_signing.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SIGNING_H_
+#define FXJS_XFA_CJX_SIGNING_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Signing;
+
+class CJX_Signing : public CJX_Node {
+ public:
+ explicit CJX_Signing(CXFA_Signing* node);
+ ~CJX_Signing() override;
+
+ JS_PROP(type);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_SIGNING_H_
diff --git a/fxjs/xfa/cjx_soapaction.cpp b/fxjs/xfa/cjx_soapaction.cpp
new file mode 100644
index 0000000000..854d2d78a7
--- /dev/null
+++ b/fxjs/xfa/cjx_soapaction.cpp
@@ -0,0 +1,25 @@
+// 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_soapaction.h"
+
+#include "xfa/fxfa/parser/cxfa_soapaction.h"
+
+CJX_SoapAction::CJX_SoapAction(CXFA_SoapAction* node) : CJX_TextNode(node) {}
+
+CJX_SoapAction::~CJX_SoapAction() = default;
+
+void CJX_SoapAction::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_SoapAction::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_soapaction.h b/fxjs/xfa/cjx_soapaction.h
new file mode 100644
index 0000000000..efc90e4f6b
--- /dev/null
+++ b/fxjs/xfa/cjx_soapaction.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SOAPACTION_H_
+#define FXJS_XFA_CJX_SOAPACTION_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_SoapAction;
+
+class CJX_SoapAction : public CJX_TextNode {
+ public:
+ explicit CJX_SoapAction(CXFA_SoapAction* node);
+ ~CJX_SoapAction() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_SOAPACTION_H_
diff --git a/fxjs/xfa/cjx_soapaddress.cpp b/fxjs/xfa/cjx_soapaddress.cpp
new file mode 100644
index 0000000000..be7e84cb4c
--- /dev/null
+++ b/fxjs/xfa/cjx_soapaddress.cpp
@@ -0,0 +1,25 @@
+// 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_soapaddress.h"
+
+#include "xfa/fxfa/parser/cxfa_soapaddress.h"
+
+CJX_SoapAddress::CJX_SoapAddress(CXFA_SoapAddress* node) : CJX_TextNode(node) {}
+
+CJX_SoapAddress::~CJX_SoapAddress() = default;
+
+void CJX_SoapAddress::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_SoapAddress::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_soapaddress.h b/fxjs/xfa/cjx_soapaddress.h
new file mode 100644
index 0000000000..3e6e004715
--- /dev/null
+++ b/fxjs/xfa/cjx_soapaddress.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SOAPADDRESS_H_
+#define FXJS_XFA_CJX_SOAPADDRESS_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_SoapAddress;
+
+class CJX_SoapAddress : public CJX_TextNode {
+ public:
+ explicit CJX_SoapAddress(CXFA_SoapAddress* node);
+ ~CJX_SoapAddress() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_SOAPADDRESS_H_
diff --git a/fxjs/xfa/cjx_solid.cpp b/fxjs/xfa/cjx_solid.cpp
new file mode 100644
index 0000000000..e692153ec6
--- /dev/null
+++ b/fxjs/xfa/cjx_solid.cpp
@@ -0,0 +1,25 @@
+// 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_solid.h"
+
+#include "xfa/fxfa/parser/cxfa_solid.h"
+
+CJX_Solid::CJX_Solid(CXFA_Solid* node) : CJX_Node(node) {}
+
+CJX_Solid::~CJX_Solid() = default;
+
+void CJX_Solid::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Solid::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_solid.h b/fxjs/xfa/cjx_solid.h
new file mode 100644
index 0000000000..3b8dd5eb63
--- /dev/null
+++ b/fxjs/xfa/cjx_solid.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SOLID_H_
+#define FXJS_XFA_CJX_SOLID_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Solid;
+
+class CJX_Solid : public CJX_Node {
+ public:
+ explicit CJX_Solid(CXFA_Solid* node);
+ ~CJX_Solid() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_SOLID_H_
diff --git a/fxjs/xfa/cjx_source.cpp b/fxjs/xfa/cjx_source.cpp
index 85742fee18..399a6c3664 100644
--- a/fxjs/xfa/cjx_source.cpp
+++ b/fxjs/xfa/cjx_source.cpp
@@ -161,3 +161,19 @@ CJS_Return CJX_Source::hasDataChanged(
return CJS_Return(JSGetStringFromID(JSMessage::kParamError));
return CJS_Return(true);
}
+
+void CJX_Source::db(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {}
+
+void CJX_Source::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Source::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_source.h b/fxjs/xfa/cjx_source.h
index 8b35fac428..de84912910 100644
--- a/fxjs/xfa/cjx_source.h
+++ b/fxjs/xfa/cjx_source.h
@@ -35,6 +35,10 @@ class CJX_Source : public CJX_Node {
JS_METHOD(update, CJX_Source);
JS_METHOD(updateBatch, CJX_Source);
+ JS_PROP(db);
+ JS_PROP(use);
+ JS_PROP(usehref);
+
private:
static const CJX_MethodSpec MethodSpecs[];
};
diff --git a/fxjs/xfa/cjx_sourceset.cpp b/fxjs/xfa/cjx_sourceset.cpp
new file mode 100644
index 0000000000..5bfabdea62
--- /dev/null
+++ b/fxjs/xfa/cjx_sourceset.cpp
@@ -0,0 +1,25 @@
+// 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_sourceset.h"
+
+#include "xfa/fxfa/parser/cxfa_sourceset.h"
+
+CJX_SourceSet::CJX_SourceSet(CXFA_SourceSet* node) : CJX_Model(node) {}
+
+CJX_SourceSet::~CJX_SourceSet() = default;
+
+void CJX_SourceSet::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_SourceSet::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_sourceset.h b/fxjs/xfa/cjx_sourceset.h
new file mode 100644
index 0000000000..de4ac68bed
--- /dev/null
+++ b/fxjs/xfa/cjx_sourceset.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SOURCESET_H_
+#define FXJS_XFA_CJX_SOURCESET_H_
+
+#include "fxjs/xfa/cjx_model.h"
+
+class CXFA_SourceSet;
+
+class CJX_SourceSet : public CJX_Model {
+ public:
+ explicit CJX_SourceSet(CXFA_SourceSet* node);
+ ~CJX_SourceSet() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_SOURCESET_H_
diff --git a/fxjs/xfa/cjx_speak.cpp b/fxjs/xfa/cjx_speak.cpp
new file mode 100644
index 0000000000..161b245439
--- /dev/null
+++ b/fxjs/xfa/cjx_speak.cpp
@@ -0,0 +1,37 @@
+// 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_speak.h"
+
+#include "xfa/fxfa/parser/cxfa_speak.h"
+
+CJX_Speak::CJX_Speak(CXFA_Speak* node) : CJX_TextNode(node) {}
+
+CJX_Speak::~CJX_Speak() = default;
+
+void CJX_Speak::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Speak::priority(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Speak::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Speak::disable(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_speak.h b/fxjs/xfa/cjx_speak.h
new file mode 100644
index 0000000000..56981054bc
--- /dev/null
+++ b/fxjs/xfa/cjx_speak.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SPEAK_H_
+#define FXJS_XFA_CJX_SPEAK_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_Speak;
+
+class CJX_Speak : public CJX_TextNode {
+ public:
+ explicit CJX_Speak(CXFA_Speak* node);
+ ~CJX_Speak() override;
+
+ JS_PROP(disable);
+ JS_PROP(priority);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_SPEAK_H_
diff --git a/fxjs/xfa/cjx_stipple.cpp b/fxjs/xfa/cjx_stipple.cpp
new file mode 100644
index 0000000000..ae520c9ad9
--- /dev/null
+++ b/fxjs/xfa/cjx_stipple.cpp
@@ -0,0 +1,31 @@
+// 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_stipple.h"
+
+#include "xfa/fxfa/parser/cxfa_stipple.h"
+
+CJX_Stipple::CJX_Stipple(CXFA_Stipple* node) : CJX_Node(node) {}
+
+CJX_Stipple::~CJX_Stipple() = default;
+
+void CJX_Stipple::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Stipple::rate(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Stipple::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_stipple.h b/fxjs/xfa/cjx_stipple.h
new file mode 100644
index 0000000000..68ddd83589
--- /dev/null
+++ b/fxjs/xfa/cjx_stipple.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_STIPPLE_H_
+#define FXJS_XFA_CJX_STIPPLE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Stipple;
+
+class CJX_Stipple : public CJX_Node {
+ public:
+ explicit CJX_Stipple(CXFA_Stipple* node);
+ ~CJX_Stipple() override;
+
+ JS_PROP(rate);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_STIPPLE_H_
diff --git a/fxjs/xfa/cjx_subform.cpp b/fxjs/xfa/cjx_subform.cpp
index fcf4cffd3e..a38850575c 100644
--- a/fxjs/xfa/cjx_subform.cpp
+++ b/fxjs/xfa/cjx_subform.cpp
@@ -77,3 +77,154 @@ CJS_Return CJX_Subform::execValidate(
pNotify->ExecEventByDeepFirst(GetXFANode(), XFA_EVENT_Validate);
return CJS_Return(runtime->NewBoolean(iRet != XFA_EVENTERROR_Error));
}
+
+void CJX_Subform::locale(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (bSetting) {
+ SetCData(XFA_Attribute::Locale, pValue->ToWideString(), true, true);
+ return;
+ }
+
+ WideString wsLocaleName;
+ GetXFANode()->GetLocaleName(wsLocaleName);
+ pValue->SetString(wsLocaleName.UTF8Encode().AsStringView());
+}
+
+void CJX_Subform::instanceIndex(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_InstanceIndex(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::allowMacro(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::anchorType(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::colSpan(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::columnWidths(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::h(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::hAlign(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::layout(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::maxH(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::maxW(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::minH(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::minW(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::presence(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::relevant(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::restoreState(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::scope(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::validationMessage(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_ValidationMessage(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::vAlign(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::w(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::x(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Subform::y(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_subform.h b/fxjs/xfa/cjx_subform.h
index a0227f08dd..a1c535b643 100644
--- a/fxjs/xfa/cjx_subform.h
+++ b/fxjs/xfa/cjx_subform.h
@@ -22,6 +22,31 @@ class CJX_Subform : public CJX_Container {
JS_METHOD(execInitialize, CJX_Subform);
JS_METHOD(execValidate, CJX_Subform);
+ JS_PROP(allowMacro);
+ JS_PROP(anchorType);
+ JS_PROP(colSpan);
+ JS_PROP(columnWidths);
+ JS_PROP(h);
+ JS_PROP(hAlign);
+ JS_PROP(instanceIndex);
+ JS_PROP(layout);
+ JS_PROP(locale);
+ JS_PROP(maxH);
+ JS_PROP(maxW);
+ JS_PROP(minH);
+ JS_PROP(minW);
+ JS_PROP(presence);
+ JS_PROP(relevant);
+ JS_PROP(restoreState);
+ JS_PROP(scope);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(validationMessage);
+ JS_PROP(vAlign);
+ JS_PROP(w);
+ JS_PROP(x);
+ JS_PROP(y);
+
private:
static const CJX_MethodSpec MethodSpecs[];
};
diff --git a/fxjs/xfa/cjx_subformset.cpp b/fxjs/xfa/cjx_subformset.cpp
new file mode 100644
index 0000000000..cd36abb3df
--- /dev/null
+++ b/fxjs/xfa/cjx_subformset.cpp
@@ -0,0 +1,43 @@
+// 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_subformset.h"
+
+#include "xfa/fxfa/parser/cxfa_subformset.h"
+
+CJX_SubformSet::CJX_SubformSet(CXFA_SubformSet* node) : CJX_Container(node) {}
+
+CJX_SubformSet::~CJX_SubformSet() = default;
+
+void CJX_SubformSet::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_SubformSet::relation(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_SubformSet::relevant(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_SubformSet::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_SubformSet::instanceIndex(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_InstanceIndex(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_subformset.h b/fxjs/xfa/cjx_subformset.h
new file mode 100644
index 0000000000..589b44d460
--- /dev/null
+++ b/fxjs/xfa/cjx_subformset.h
@@ -0,0 +1,26 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SUBFORMSET_H_
+#define FXJS_XFA_CJX_SUBFORMSET_H_
+
+#include "fxjs/xfa/cjx_container.h"
+
+class CXFA_SubformSet;
+
+class CJX_SubformSet : public CJX_Container {
+ public:
+ explicit CJX_SubformSet(CXFA_SubformSet* node);
+ ~CJX_SubformSet() override;
+
+ JS_PROP(instanceIndex);
+ JS_PROP(relation);
+ JS_PROP(relevant);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_SUBFORMSET_H_
diff --git a/fxjs/xfa/cjx_subjectdn.cpp b/fxjs/xfa/cjx_subjectdn.cpp
new file mode 100644
index 0000000000..0a5b4ab58d
--- /dev/null
+++ b/fxjs/xfa/cjx_subjectdn.cpp
@@ -0,0 +1,19 @@
+// 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_subjectdn.h"
+
+#include "xfa/fxfa/parser/cxfa_subjectdn.h"
+
+CJX_SubjectDN::CJX_SubjectDN(CXFA_SubjectDN* node) : CJX_Node(node) {}
+
+CJX_SubjectDN::~CJX_SubjectDN() = default;
+
+void CJX_SubjectDN::delimiter(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_subjectdn.h b/fxjs/xfa/cjx_subjectdn.h
new file mode 100644
index 0000000000..d13218b225
--- /dev/null
+++ b/fxjs/xfa/cjx_subjectdn.h
@@ -0,0 +1,22 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SUBJECTDN_H_
+#define FXJS_XFA_CJX_SUBJECTDN_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_SubjectDN;
+
+class CJX_SubjectDN : public CJX_Node {
+ public:
+ explicit CJX_SubjectDN(CXFA_SubjectDN* node);
+ ~CJX_SubjectDN() override;
+
+ JS_PROP(delimiter);
+};
+
+#endif // FXJS_XFA_CJX_SUBJECTDN_H_
diff --git a/fxjs/xfa/cjx_subjectdns.cpp b/fxjs/xfa/cjx_subjectdns.cpp
new file mode 100644
index 0000000000..e7d9db5622
--- /dev/null
+++ b/fxjs/xfa/cjx_subjectdns.cpp
@@ -0,0 +1,19 @@
+// 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_subjectdns.h"
+
+#include "xfa/fxfa/parser/cxfa_subjectdns.h"
+
+CJX_SubjectDNs::CJX_SubjectDNs(CXFA_SubjectDNs* node) : CJX_Node(node) {}
+
+CJX_SubjectDNs::~CJX_SubjectDNs() = default;
+
+void CJX_SubjectDNs::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_subjectdns.h b/fxjs/xfa/cjx_subjectdns.h
new file mode 100644
index 0000000000..104d826285
--- /dev/null
+++ b/fxjs/xfa/cjx_subjectdns.h
@@ -0,0 +1,22 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SUBJECTDNS_H_
+#define FXJS_XFA_CJX_SUBJECTDNS_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_SubjectDNs;
+
+class CJX_SubjectDNs : public CJX_Node {
+ public:
+ explicit CJX_SubjectDNs(CXFA_SubjectDNs* node);
+ ~CJX_SubjectDNs() override;
+
+ JS_PROP(type);
+};
+
+#endif // FXJS_XFA_CJX_SUBJECTDNS_H_
diff --git a/fxjs/xfa/cjx_submit.cpp b/fxjs/xfa/cjx_submit.cpp
new file mode 100644
index 0000000000..292e4320c8
--- /dev/null
+++ b/fxjs/xfa/cjx_submit.cpp
@@ -0,0 +1,55 @@
+// 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_submit.h"
+
+#include "xfa/fxfa/parser/cxfa_submit.h"
+
+CJX_Submit::CJX_Submit(CXFA_Submit* node) : CJX_Node(node) {}
+
+CJX_Submit::~CJX_Submit() = default;
+
+void CJX_Submit::format(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Submit::embedPDF(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Submit::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Submit::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Submit::target(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Submit::textEncoding(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Submit::xdpContent(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_submit.h b/fxjs/xfa/cjx_submit.h
new file mode 100644
index 0000000000..aefec32b8e
--- /dev/null
+++ b/fxjs/xfa/cjx_submit.h
@@ -0,0 +1,28 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_SUBMIT_H_
+#define FXJS_XFA_CJX_SUBMIT_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Submit;
+
+class CJX_Submit : public CJX_Node {
+ public:
+ explicit CJX_Submit(CXFA_Submit* node);
+ ~CJX_Submit() override;
+
+ JS_PROP(embedPDF);
+ JS_PROP(format);
+ JS_PROP(target);
+ JS_PROP(textEncoding);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(xdpContent);
+};
+
+#endif // FXJS_XFA_CJX_SUBMIT_H_
diff --git a/fxjs/xfa/cjx_text.cpp b/fxjs/xfa/cjx_text.cpp
new file mode 100644
index 0000000000..eda2ff8b22
--- /dev/null
+++ b/fxjs/xfa/cjx_text.cpp
@@ -0,0 +1,43 @@
+// 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_text.h"
+
+#include "xfa/fxfa/parser/cxfa_text.h"
+
+CJX_Text::CJX_Text(CXFA_Text* node) : CJX_Content(node) {}
+
+CJX_Text::~CJX_Text() = default;
+
+void CJX_Text::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Text::maxChars(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Text::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_Text::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Text::value(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_text.h b/fxjs/xfa/cjx_text.h
new file mode 100644
index 0000000000..386a7a9679
--- /dev/null
+++ b/fxjs/xfa/cjx_text.h
@@ -0,0 +1,26 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_TEXT_H_
+#define FXJS_XFA_CJX_TEXT_H_
+
+#include "fxjs/xfa/cjx_content.h"
+
+class CXFA_Text;
+
+class CJX_Text : public CJX_Content {
+ public:
+ explicit CJX_Text(CXFA_Text* node);
+ ~CJX_Text() override;
+
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(maxChars);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(value);
+};
+
+#endif // FXJS_XFA_CJX_TEXT_H_
diff --git a/fxjs/xfa/cjx_textedit.cpp b/fxjs/xfa/cjx_textedit.cpp
new file mode 100644
index 0000000000..e1a6faa13b
--- /dev/null
+++ b/fxjs/xfa/cjx_textedit.cpp
@@ -0,0 +1,49 @@
+// 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_textedit.h"
+
+#include "xfa/fxfa/parser/cxfa_textedit.h"
+
+CJX_TextEdit::CJX_TextEdit(CXFA_TextEdit* node) : CJX_Node(node) {}
+
+CJX_TextEdit::~CJX_TextEdit() = default;
+
+void CJX_TextEdit::vScrollPolicy(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_TextEdit::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_TextEdit::allowRichText(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_TextEdit::multiLine(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_TextEdit::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_TextEdit::hScrollPolicy(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_textedit.h b/fxjs/xfa/cjx_textedit.h
new file mode 100644
index 0000000000..c7f42c963b
--- /dev/null
+++ b/fxjs/xfa/cjx_textedit.h
@@ -0,0 +1,27 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_TEXTEDIT_H_
+#define FXJS_XFA_CJX_TEXTEDIT_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_TextEdit;
+
+class CJX_TextEdit : public CJX_Node {
+ public:
+ explicit CJX_TextEdit(CXFA_TextEdit* node);
+ ~CJX_TextEdit() override;
+
+ JS_PROP(allowRichText);
+ JS_PROP(hScrollPolicy);
+ JS_PROP(multiLine);
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(vScrollPolicy);
+};
+
+#endif // FXJS_XFA_CJX_TEXTEDIT_H_
diff --git a/fxjs/xfa/cjx_textnode.cpp b/fxjs/xfa/cjx_textnode.cpp
index 604682f2ee..133510c30e 100644
--- a/fxjs/xfa/cjx_textnode.cpp
+++ b/fxjs/xfa/cjx_textnode.cpp
@@ -12,3 +12,15 @@
CJX_TextNode::CJX_TextNode(CXFA_Node* node) : CJX_Node(node) {}
CJX_TextNode::~CJX_TextNode() {}
+
+void CJX_TextNode::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute attr) {
+ Script_Som_DefaultValue(pValue, bSetting, attr);
+}
+
+void CJX_TextNode::value(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute attr) {
+ Script_Som_DefaultValue(pValue, bSetting, attr);
+}
diff --git a/fxjs/xfa/cjx_textnode.h b/fxjs/xfa/cjx_textnode.h
index c0a01d651e..12d44d7814 100644
--- a/fxjs/xfa/cjx_textnode.h
+++ b/fxjs/xfa/cjx_textnode.h
@@ -16,6 +16,9 @@ class CJX_TextNode : public CJX_Node {
public:
explicit CJX_TextNode(CXFA_Node* node);
~CJX_TextNode() override;
+
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(value);
};
#endif // FXJS_XFA_CJX_TEXTNODE_H_
diff --git a/fxjs/xfa/cjx_time.cpp b/fxjs/xfa/cjx_time.cpp
new file mode 100644
index 0000000000..74855fd3d7
--- /dev/null
+++ b/fxjs/xfa/cjx_time.cpp
@@ -0,0 +1,37 @@
+// 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_time.h"
+
+#include "xfa/fxfa/parser/cxfa_time.h"
+
+CJX_Time::CJX_Time(CXFA_Time* node) : CJX_Content(node) {}
+
+CJX_Time::~CJX_Time() = default;
+
+void CJX_Time::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Time::defaultValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
+
+void CJX_Time::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Time::value(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Som_DefaultValue(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_time.h b/fxjs/xfa/cjx_time.h
new file mode 100644
index 0000000000..95b05cc107
--- /dev/null
+++ b/fxjs/xfa/cjx_time.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_TIME_H_
+#define FXJS_XFA_CJX_TIME_H_
+
+#include "fxjs/xfa/cjx_content.h"
+
+class CXFA_Time;
+
+class CJX_Time : public CJX_Content {
+ public:
+ explicit CJX_Time(CXFA_Time* node);
+ ~CJX_Time() override;
+
+ JS_PROP(defaultValue); /* {default} */
+ JS_PROP(use);
+ JS_PROP(usehref);
+ JS_PROP(value);
+};
+
+#endif // FXJS_XFA_CJX_TIME_H_
diff --git a/fxjs/xfa/cjx_timestamp.cpp b/fxjs/xfa/cjx_timestamp.cpp
new file mode 100644
index 0000000000..011d696cc1
--- /dev/null
+++ b/fxjs/xfa/cjx_timestamp.cpp
@@ -0,0 +1,37 @@
+// 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_timestamp.h"
+
+#include "xfa/fxfa/parser/cxfa_timestamp.h"
+
+CJX_TimeStamp::CJX_TimeStamp(CXFA_TimeStamp* node) : CJX_Node(node) {}
+
+CJX_TimeStamp::~CJX_TimeStamp() = default;
+
+void CJX_TimeStamp::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_TimeStamp::type(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_TimeStamp::server(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_TimeStamp::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_timestamp.h b/fxjs/xfa/cjx_timestamp.h
new file mode 100644
index 0000000000..ad7ab02a29
--- /dev/null
+++ b/fxjs/xfa/cjx_timestamp.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_TIMESTAMP_H_
+#define FXJS_XFA_CJX_TIMESTAMP_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_TimeStamp;
+
+class CJX_TimeStamp : public CJX_Node {
+ public:
+ explicit CJX_TimeStamp(CXFA_TimeStamp* node);
+ ~CJX_TimeStamp() override;
+
+ JS_PROP(server);
+ JS_PROP(type);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_TIMESTAMP_H_
diff --git a/fxjs/xfa/cjx_tooltip.cpp b/fxjs/xfa/cjx_tooltip.cpp
new file mode 100644
index 0000000000..5d6e2427c8
--- /dev/null
+++ b/fxjs/xfa/cjx_tooltip.cpp
@@ -0,0 +1,25 @@
+// 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_tooltip.h"
+
+#include "xfa/fxfa/parser/cxfa_tooltip.h"
+
+CJX_ToolTip::CJX_ToolTip(CXFA_ToolTip* node) : CJX_TextNode(node) {}
+
+CJX_ToolTip::~CJX_ToolTip() = default;
+
+void CJX_ToolTip::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_ToolTip::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_tooltip.h b/fxjs/xfa/cjx_tooltip.h
new file mode 100644
index 0000000000..178d11b0e9
--- /dev/null
+++ b/fxjs/xfa/cjx_tooltip.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_TOOLTIP_H_
+#define FXJS_XFA_CJX_TOOLTIP_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_ToolTip;
+
+class CJX_ToolTip : public CJX_TextNode {
+ public:
+ explicit CJX_ToolTip(CXFA_ToolTip* node);
+ ~CJX_ToolTip() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_TOOLTIP_H_
diff --git a/fxjs/xfa/cjx_traversal.cpp b/fxjs/xfa/cjx_traversal.cpp
new file mode 100644
index 0000000000..ffdcd35272
--- /dev/null
+++ b/fxjs/xfa/cjx_traversal.cpp
@@ -0,0 +1,25 @@
+// 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_traversal.h"
+
+#include "xfa/fxfa/parser/cxfa_traversal.h"
+
+CJX_Traversal::CJX_Traversal(CXFA_Traversal* node) : CJX_Node(node) {}
+
+CJX_Traversal::~CJX_Traversal() = default;
+
+void CJX_Traversal::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Traversal::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_traversal.h b/fxjs/xfa/cjx_traversal.h
new file mode 100644
index 0000000000..d9072f3456
--- /dev/null
+++ b/fxjs/xfa/cjx_traversal.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_TRAVERSAL_H_
+#define FXJS_XFA_CJX_TRAVERSAL_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Traversal;
+
+class CJX_Traversal : public CJX_Node {
+ public:
+ explicit CJX_Traversal(CXFA_Traversal* node);
+ ~CJX_Traversal() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_TRAVERSAL_H_
diff --git a/fxjs/xfa/cjx_traverse.cpp b/fxjs/xfa/cjx_traverse.cpp
new file mode 100644
index 0000000000..f0d5345ea4
--- /dev/null
+++ b/fxjs/xfa/cjx_traverse.cpp
@@ -0,0 +1,37 @@
+// 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_traverse.h"
+
+#include "xfa/fxfa/parser/cxfa_traverse.h"
+
+CJX_Traverse::CJX_Traverse(CXFA_Traverse* node) : CJX_Node(node) {}
+
+CJX_Traverse::~CJX_Traverse() = default;
+
+void CJX_Traverse::ref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Traverse::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Traverse::operation(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Traverse::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_traverse.h b/fxjs/xfa/cjx_traverse.h
new file mode 100644
index 0000000000..2eef88eb6f
--- /dev/null
+++ b/fxjs/xfa/cjx_traverse.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_TRAVERSE_H_
+#define FXJS_XFA_CJX_TRAVERSE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Traverse;
+
+class CJX_Traverse : public CJX_Node {
+ public:
+ explicit CJX_Traverse(CXFA_Traverse* node);
+ ~CJX_Traverse() override;
+
+ JS_PROP(operation);
+ JS_PROP(ref);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_TRAVERSE_H_
diff --git a/fxjs/xfa/cjx_tree.cpp b/fxjs/xfa/cjx_tree.cpp
index 8e3143ecc7..1a20611cad 100644
--- a/fxjs/xfa/cjx_tree.cpp
+++ b/fxjs/xfa/cjx_tree.cpp
@@ -127,6 +127,12 @@ void CJX_Tree::classAll(CFXJSE_Value* pValue,
XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL, nullptr);
}
+void CJX_Tree::name(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
void CJX_Tree::nodes(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_tree.h b/fxjs/xfa/cjx_tree.h
index 72468d6c75..9389d2ec4f 100644
--- a/fxjs/xfa/cjx_tree.h
+++ b/fxjs/xfa/cjx_tree.h
@@ -21,17 +21,14 @@ class CJX_Tree : public CJX_Object {
JS_METHOD(resolveNode, CJX_Tree);
JS_METHOD(resolveNodes, CJX_Tree);
- void all(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void nodes(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void classAll(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void parent(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void index(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute);
- void classIndex(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
- void somExpression(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
+ JS_PROP(all);
+ JS_PROP(classAll);
+ JS_PROP(classIndex);
+ JS_PROP(index);
+ JS_PROP(name);
+ JS_PROP(nodes);
+ JS_PROP(parent);
+ JS_PROP(somExpression);
private:
void ResolveNodeList(CFXJSE_Value* pValue,
diff --git a/fxjs/xfa/cjx_ui.cpp b/fxjs/xfa/cjx_ui.cpp
new file mode 100644
index 0000000000..90db789dd7
--- /dev/null
+++ b/fxjs/xfa/cjx_ui.cpp
@@ -0,0 +1,25 @@
+// 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_ui.h"
+
+#include "xfa/fxfa/parser/cxfa_ui.h"
+
+CJX_Ui::CJX_Ui(CXFA_Ui* node) : CJX_Node(node) {}
+
+CJX_Ui::~CJX_Ui() = default;
+
+void CJX_Ui::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Ui::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_ui.h b/fxjs/xfa/cjx_ui.h
new file mode 100644
index 0000000000..e82b1deacb
--- /dev/null
+++ b/fxjs/xfa/cjx_ui.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_UI_H_
+#define FXJS_XFA_CJX_UI_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Ui;
+
+class CJX_Ui : public CJX_Node {
+ public:
+ explicit CJX_Ui(CXFA_Ui* node);
+ ~CJX_Ui() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_UI_H_
diff --git a/fxjs/xfa/cjx_update.cpp b/fxjs/xfa/cjx_update.cpp
new file mode 100644
index 0000000000..e5d1ef27c9
--- /dev/null
+++ b/fxjs/xfa/cjx_update.cpp
@@ -0,0 +1,25 @@
+// 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_update.h"
+
+#include "xfa/fxfa/parser/cxfa_update.h"
+
+CJX_Update::CJX_Update(CXFA_Update* node) : CJX_TextNode(node) {}
+
+CJX_Update::~CJX_Update() = default;
+
+void CJX_Update::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Update::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_update.h b/fxjs/xfa/cjx_update.h
new file mode 100644
index 0000000000..c1acb4bd90
--- /dev/null
+++ b/fxjs/xfa/cjx_update.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_UPDATE_H_
+#define FXJS_XFA_CJX_UPDATE_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_Update;
+
+class CJX_Update : public CJX_TextNode {
+ public:
+ explicit CJX_Update(CXFA_Update* node);
+ ~CJX_Update() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_UPDATE_H_
diff --git a/fxjs/xfa/cjx_uri.cpp b/fxjs/xfa/cjx_uri.cpp
new file mode 100644
index 0000000000..6ffbb68e8f
--- /dev/null
+++ b/fxjs/xfa/cjx_uri.cpp
@@ -0,0 +1,25 @@
+// 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_uri.h"
+
+#include "xfa/fxfa/parser/cxfa_uri.h"
+
+CJX_Uri::CJX_Uri(CXFA_Uri* node) : CJX_TextNode(node) {}
+
+CJX_Uri::~CJX_Uri() = default;
+
+void CJX_Uri::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Uri::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_uri.h b/fxjs/xfa/cjx_uri.h
new file mode 100644
index 0000000000..805bc5c1ab
--- /dev/null
+++ b/fxjs/xfa/cjx_uri.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_URI_H_
+#define FXJS_XFA_CJX_URI_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_Uri;
+
+class CJX_Uri : public CJX_TextNode {
+ public:
+ explicit CJX_Uri(CXFA_Uri* node);
+ ~CJX_Uri() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_URI_H_
diff --git a/fxjs/xfa/cjx_user.cpp b/fxjs/xfa/cjx_user.cpp
new file mode 100644
index 0000000000..a42f927d47
--- /dev/null
+++ b/fxjs/xfa/cjx_user.cpp
@@ -0,0 +1,25 @@
+// 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_user.h"
+
+#include "xfa/fxfa/parser/cxfa_user.h"
+
+CJX_User::CJX_User(CXFA_User* node) : CJX_TextNode(node) {}
+
+CJX_User::~CJX_User() = default;
+
+void CJX_User::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_User::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_user.h b/fxjs/xfa/cjx_user.h
new file mode 100644
index 0000000000..6111df8535
--- /dev/null
+++ b/fxjs/xfa/cjx_user.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_USER_H_
+#define FXJS_XFA_CJX_USER_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_User;
+
+class CJX_User : public CJX_TextNode {
+ public:
+ explicit CJX_User(CXFA_User* node);
+ ~CJX_User() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_USER_H_
diff --git a/fxjs/xfa/cjx_validate.cpp b/fxjs/xfa/cjx_validate.cpp
new file mode 100644
index 0000000000..16c264e23e
--- /dev/null
+++ b/fxjs/xfa/cjx_validate.cpp
@@ -0,0 +1,43 @@
+// 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_validate.h"
+
+#include "xfa/fxfa/parser/cxfa_validate.h"
+
+CJX_Validate::CJX_Validate(CXFA_Validate* node) : CJX_Node(node) {}
+
+CJX_Validate::~CJX_Validate() = default;
+
+void CJX_Validate::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Validate::scriptTest(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Validate::nullTest(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Validate::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Validate::formatTest(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_validate.h b/fxjs/xfa/cjx_validate.h
new file mode 100644
index 0000000000..c54923d5b0
--- /dev/null
+++ b/fxjs/xfa/cjx_validate.h
@@ -0,0 +1,26 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_VALIDATE_H_
+#define FXJS_XFA_CJX_VALIDATE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Validate;
+
+class CJX_Validate : public CJX_Node {
+ public:
+ explicit CJX_Validate(CXFA_Validate* node);
+ ~CJX_Validate() override;
+
+ JS_PROP(formatTest);
+ JS_PROP(nullTest);
+ JS_PROP(scriptTest);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_VALIDATE_H_
diff --git a/fxjs/xfa/cjx_value.cpp b/fxjs/xfa/cjx_value.cpp
new file mode 100644
index 0000000000..8fe3b239f5
--- /dev/null
+++ b/fxjs/xfa/cjx_value.cpp
@@ -0,0 +1,37 @@
+// 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_value.h"
+
+#include "xfa/fxfa/parser/cxfa_value.h"
+
+CJX_Value::CJX_Value(CXFA_Value* node) : CJX_Node(node) {}
+
+CJX_Value::~CJX_Value() = default;
+
+void CJX_Value::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Value::relevant(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Value::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Value::override(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_BOOL(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_value.h b/fxjs/xfa/cjx_value.h
new file mode 100644
index 0000000000..f9c2a2ceb9
--- /dev/null
+++ b/fxjs/xfa/cjx_value.h
@@ -0,0 +1,25 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_VALUE_H_
+#define FXJS_XFA_CJX_VALUE_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_Value;
+
+class CJX_Value : public CJX_Node {
+ public:
+ explicit CJX_Value(CXFA_Value* node);
+ ~CJX_Value() override;
+
+ JS_PROP(override);
+ JS_PROP(relevant);
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_VALUE_H_
diff --git a/fxjs/xfa/cjx_variables.cpp b/fxjs/xfa/cjx_variables.cpp
new file mode 100644
index 0000000000..0904c9f3fe
--- /dev/null
+++ b/fxjs/xfa/cjx_variables.cpp
@@ -0,0 +1,25 @@
+// 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_variables.h"
+
+#include "xfa/fxfa/parser/cxfa_variables.h"
+
+CJX_Variables::CJX_Variables(CXFA_Variables* node) : CJX_Container(node) {}
+
+CJX_Variables::~CJX_Variables() = default;
+
+void CJX_Variables::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Variables::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_variables.h b/fxjs/xfa/cjx_variables.h
new file mode 100644
index 0000000000..8ed373e5cd
--- /dev/null
+++ b/fxjs/xfa/cjx_variables.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_VARIABLES_H_
+#define FXJS_XFA_CJX_VARIABLES_H_
+
+#include "fxjs/xfa/cjx_container.h"
+
+class CXFA_Variables;
+
+class CJX_Variables : public CJX_Container {
+ public:
+ explicit CJX_Variables(CXFA_Variables* node);
+ ~CJX_Variables() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_VARIABLES_H_
diff --git a/fxjs/xfa/cjx_wsdladdress.cpp b/fxjs/xfa/cjx_wsdladdress.cpp
new file mode 100644
index 0000000000..fc6a77c2e4
--- /dev/null
+++ b/fxjs/xfa/cjx_wsdladdress.cpp
@@ -0,0 +1,25 @@
+// 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_wsdladdress.h"
+
+#include "xfa/fxfa/parser/cxfa_wsdladdress.h"
+
+CJX_WsdlAddress::CJX_WsdlAddress(CXFA_WsdlAddress* node) : CJX_TextNode(node) {}
+
+CJX_WsdlAddress::~CJX_WsdlAddress() = default;
+
+void CJX_WsdlAddress::use(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_WsdlAddress::usehref(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_wsdladdress.h b/fxjs/xfa/cjx_wsdladdress.h
new file mode 100644
index 0000000000..a742d1a973
--- /dev/null
+++ b/fxjs/xfa/cjx_wsdladdress.h
@@ -0,0 +1,23 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_WSDLADDRESS_H_
+#define FXJS_XFA_CJX_WSDLADDRESS_H_
+
+#include "fxjs/xfa/cjx_textnode.h"
+
+class CXFA_WsdlAddress;
+
+class CJX_WsdlAddress : public CJX_TextNode {
+ public:
+ explicit CJX_WsdlAddress(CXFA_WsdlAddress* node);
+ ~CJX_WsdlAddress() override;
+
+ JS_PROP(use);
+ JS_PROP(usehref);
+};
+
+#endif // FXJS_XFA_CJX_WSDLADDRESS_H_
diff --git a/fxjs/xfa/cjx_wsdlconnection.cpp b/fxjs/xfa/cjx_wsdlconnection.cpp
index 1d0c306f14..4c6ca46dd9 100644
--- a/fxjs/xfa/cjx_wsdlconnection.cpp
+++ b/fxjs/xfa/cjx_wsdlconnection.cpp
@@ -29,3 +29,15 @@ CJS_Return CJX_WsdlConnection::execute(
return CJS_Return(JSGetStringFromID(JSMessage::kParamError));
return CJS_Return(runtime->NewBoolean(false));
}
+
+void CJX_WsdlConnection::dataDescription(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_WsdlConnection::execute(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_wsdlconnection.h b/fxjs/xfa/cjx_wsdlconnection.h
index 82760170a7..d755b5d075 100644
--- a/fxjs/xfa/cjx_wsdlconnection.h
+++ b/fxjs/xfa/cjx_wsdlconnection.h
@@ -19,6 +19,9 @@ class CJX_WsdlConnection : public CJX_Node {
JS_METHOD(execute, CJX_WsdlConnection);
+ JS_PROP(dataDescription);
+ JS_PROP(execute);
+
private:
static const CJX_MethodSpec MethodSpecs[];
};
diff --git a/fxjs/xfa/cjx_xfa.cpp b/fxjs/xfa/cjx_xfa.cpp
new file mode 100644
index 0000000000..bc0d7f118e
--- /dev/null
+++ b/fxjs/xfa/cjx_xfa.cpp
@@ -0,0 +1,39 @@
+// 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_xfa.h"
+
+#include "fxjs/cfxjse_engine.h"
+#include "fxjs/cfxjse_value.h"
+#include "xfa/fxfa/parser/cxfa_document.h"
+#include "xfa/fxfa/parser/cxfa_xfa.h"
+
+CJX_Xfa::CJX_Xfa(CXFA_Xfa* node) : CJX_Model(node) {}
+
+CJX_Xfa::~CJX_Xfa() = default;
+
+void CJX_Xfa::thisValue(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (bSetting)
+ return;
+
+ CXFA_Object* pThis = GetDocument()->GetScriptContext()->GetThisObject();
+ ASSERT(pThis);
+ pValue->Assign(GetDocument()->GetScriptContext()->GetJSValueFromMap(pThis));
+}
+
+void CJX_Xfa::timeStamp(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
+
+void CJX_Xfa::uuid(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_xfa.h b/fxjs/xfa/cjx_xfa.h
new file mode 100644
index 0000000000..0c8ed7efff
--- /dev/null
+++ b/fxjs/xfa/cjx_xfa.h
@@ -0,0 +1,24 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_XFA_H_
+#define FXJS_XFA_CJX_XFA_H_
+
+#include "fxjs/xfa/cjx_model.h"
+
+class CXFA_Xfa;
+
+class CJX_Xfa : public CJX_Model {
+ public:
+ explicit CJX_Xfa(CXFA_Xfa* node);
+ ~CJX_Xfa() override;
+
+ JS_PROP(thisValue); /* this */
+ JS_PROP(timeStamp);
+ JS_PROP(uuid);
+};
+
+#endif // FXJS_XFA_CJX_XFA_H_
diff --git a/fxjs/xfa/cjx_xmlconnection.cpp b/fxjs/xfa/cjx_xmlconnection.cpp
new file mode 100644
index 0000000000..6622aab12e
--- /dev/null
+++ b/fxjs/xfa/cjx_xmlconnection.cpp
@@ -0,0 +1,20 @@
+// 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_xmlconnection.h"
+
+#include "xfa/fxfa/parser/cxfa_xmlconnection.h"
+
+CJX_XmlConnection::CJX_XmlConnection(CXFA_XmlConnection* node)
+ : CJX_Node(node) {}
+
+CJX_XmlConnection::~CJX_XmlConnection() = default;
+
+void CJX_XmlConnection::dataDescription(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_xmlconnection.h b/fxjs/xfa/cjx_xmlconnection.h
new file mode 100644
index 0000000000..03c5c37320
--- /dev/null
+++ b/fxjs/xfa/cjx_xmlconnection.h
@@ -0,0 +1,22 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_XMLCONNECTION_H_
+#define FXJS_XFA_CJX_XMLCONNECTION_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_XmlConnection;
+
+class CJX_XmlConnection : public CJX_Node {
+ public:
+ explicit CJX_XmlConnection(CXFA_XmlConnection* node);
+ ~CJX_XmlConnection() override;
+
+ JS_PROP(dataDescription);
+};
+
+#endif // FXJS_XFA_CJX_XMLCONNECTION_H_
diff --git a/fxjs/xfa/cjx_xsdconnection.cpp b/fxjs/xfa/cjx_xsdconnection.cpp
new file mode 100644
index 0000000000..aa7d42ae13
--- /dev/null
+++ b/fxjs/xfa/cjx_xsdconnection.cpp
@@ -0,0 +1,20 @@
+// 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_xsdconnection.h"
+
+#include "xfa/fxfa/parser/cxfa_xsdconnection.h"
+
+CJX_XsdConnection::CJX_XsdConnection(CXFA_XsdConnection* node)
+ : CJX_Node(node) {}
+
+CJX_XsdConnection::~CJX_XsdConnection() = default;
+
+void CJX_XsdConnection::dataDescription(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ Script_Attribute_String(pValue, bSetting, eAttribute);
+}
diff --git a/fxjs/xfa/cjx_xsdconnection.h b/fxjs/xfa/cjx_xsdconnection.h
new file mode 100644
index 0000000000..66c79a14fa
--- /dev/null
+++ b/fxjs/xfa/cjx_xsdconnection.h
@@ -0,0 +1,22 @@
+// 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
+
+#ifndef FXJS_XFA_CJX_XSDCONNECTION_H_
+#define FXJS_XFA_CJX_XSDCONNECTION_H_
+
+#include "fxjs/xfa/cjx_node.h"
+
+class CXFA_XsdConnection;
+
+class CJX_XsdConnection : public CJX_Node {
+ public:
+ explicit CJX_XsdConnection(CXFA_XsdConnection* node);
+ ~CJX_XsdConnection() override;
+
+ JS_PROP(dataDescription);
+};
+
+#endif // FXJS_XFA_CJX_XSDCONNECTION_H_