OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "xfa/fxfa/parser/xfa_object.h" | 7 #include "xfa/fxfa/parser/xfa_object.h" |
8 | 8 |
9 #include "core/fxcrt/include/fx_ext.h" | 9 #include "core/fxcrt/include/fx_ext.h" |
10 #include "xfa/fde/xml/fde_xml_imp.h" | 10 #include "xfa/fde/xml/fde_xml_imp.h" |
(...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
641 return; | 641 return; |
642 } | 642 } |
643 CXFA_Node* refNode = this; | 643 CXFA_Node* refNode = this; |
644 if (refNode->GetClassID() == XFA_ELEMENT_Xfa) { | 644 if (refNode->GetClassID() == XFA_ELEMENT_Xfa) { |
645 refNode = ToNode(pScriptContext->GetThisObject()); | 645 refNode = ToNode(pScriptContext->GetThisObject()); |
646 } | 646 } |
647 uint32_t dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Attributes | | 647 uint32_t dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Attributes | |
648 XFA_RESOLVENODE_Properties | XFA_RESOLVENODE_Parent | | 648 XFA_RESOLVENODE_Properties | XFA_RESOLVENODE_Parent | |
649 XFA_RESOLVENODE_Siblings; | 649 XFA_RESOLVENODE_Siblings; |
650 XFA_RESOLVENODE_RS resoveNodeRS; | 650 XFA_RESOLVENODE_RS resoveNodeRS; |
651 int32_t iRet = pScriptContext->ResolveObjects(refNode, wsExpression, | 651 int32_t iRet = pScriptContext->ResolveObjects( |
652 resoveNodeRS, dwFlag); | 652 refNode, wsExpression.AsWideStringC(), resoveNodeRS, dwFlag); |
653 if (iRet < 1) { | 653 if (iRet < 1) { |
654 return FXJSE_Value_SetNull(pArguments->GetReturnValue()); | 654 return FXJSE_Value_SetNull(pArguments->GetReturnValue()); |
655 } | 655 } |
656 FXJSE_HVALUE hValue = NULL; | 656 FXJSE_HVALUE hValue = NULL; |
657 if (resoveNodeRS.dwFlags == XFA_RESOVENODE_RSTYPE_Nodes) { | 657 if (resoveNodeRS.dwFlags == XFA_RESOVENODE_RSTYPE_Nodes) { |
658 CXFA_Object* pNode = resoveNodeRS.nodes[0]; | 658 CXFA_Object* pNode = resoveNodeRS.nodes[0]; |
659 hValue = pScriptContext->GetJSValueFromMap(pNode); | 659 hValue = pScriptContext->GetJSValueFromMap(pNode); |
660 FXJSE_Value_Set(pArguments->GetReturnValue(), hValue); | 660 FXJSE_Value_Set(pArguments->GetReturnValue(), hValue); |
661 } else { | 661 } else { |
662 const XFA_SCRIPTATTRIBUTEINFO* lpAttributeInfo = | 662 const XFA_SCRIPTATTRIBUTEINFO* lpAttributeInfo = |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
701 uint32_t dwFlag, | 701 uint32_t dwFlag, |
702 CXFA_Node* refNode) { | 702 CXFA_Node* refNode) { |
703 CXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); | 703 CXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); |
704 if (!pScriptContext) { | 704 if (!pScriptContext) { |
705 return; | 705 return; |
706 } | 706 } |
707 XFA_RESOLVENODE_RS resoveNodeRS; | 707 XFA_RESOLVENODE_RS resoveNodeRS; |
708 if (refNode == NULL) { | 708 if (refNode == NULL) { |
709 refNode = this; | 709 refNode = this; |
710 } | 710 } |
711 pScriptContext->ResolveObjects(refNode, wsExpression, resoveNodeRS, dwFlag); | 711 pScriptContext->ResolveObjects(refNode, wsExpression.AsWideStringC(), |
| 712 resoveNodeRS, dwFlag); |
712 CXFA_ArrayNodeList* pNodeList = new CXFA_ArrayNodeList(m_pDocument); | 713 CXFA_ArrayNodeList* pNodeList = new CXFA_ArrayNodeList(m_pDocument); |
713 if (resoveNodeRS.dwFlags == XFA_RESOVENODE_RSTYPE_Nodes) { | 714 if (resoveNodeRS.dwFlags == XFA_RESOVENODE_RSTYPE_Nodes) { |
714 for (int32_t i = 0; i < resoveNodeRS.nodes.GetSize(); i++) { | 715 for (int32_t i = 0; i < resoveNodeRS.nodes.GetSize(); i++) { |
715 if (resoveNodeRS.nodes[i]->IsNode()) | 716 if (resoveNodeRS.nodes[i]->IsNode()) |
716 pNodeList->Append(resoveNodeRS.nodes[i]->AsNode()); | 717 pNodeList->Append(resoveNodeRS.nodes[i]->AsNode()); |
717 } | 718 } |
718 } else { | 719 } else { |
719 CXFA_HVALUEArray hValueArray(pScriptContext->GetRuntime()); | 720 CXFA_HVALUEArray hValueArray(pScriptContext->GetRuntime()); |
720 if (resoveNodeRS.GetAttributeResult(hValueArray) > 0) { | 721 if (resoveNodeRS.GetAttributeResult(hValueArray) > 0) { |
721 CXFA_ObjArray objectArray; | 722 CXFA_ObjArray objectArray; |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
871 if (iLength != 1) { | 872 if (iLength != 1) { |
872 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 873 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
873 L"getAttribute"); | 874 L"getAttribute"); |
874 return; | 875 return; |
875 } | 876 } |
876 CFX_WideString wsExpression; | 877 CFX_WideString wsExpression; |
877 CFX_ByteString bsExpression = pArguments->GetUTF8String(0); | 878 CFX_ByteString bsExpression = pArguments->GetUTF8String(0); |
878 wsExpression = | 879 wsExpression = |
879 CFX_WideString::FromUTF8(bsExpression, bsExpression.GetLength()); | 880 CFX_WideString::FromUTF8(bsExpression, bsExpression.GetLength()); |
880 CFX_WideString wsValue; | 881 CFX_WideString wsValue; |
881 GetAttribute(wsExpression, wsValue); | 882 GetAttribute(wsExpression.AsWideStringC(), wsValue); |
882 FXJSE_HVALUE hValue = pArguments->GetReturnValue(); | 883 FXJSE_HVALUE hValue = pArguments->GetReturnValue(); |
883 if (hValue) { | 884 if (hValue) { |
884 FXJSE_Value_SetUTF8String(hValue, FX_UTF8Encode(wsValue).AsByteStringC()); | 885 FXJSE_Value_SetUTF8String(hValue, FX_UTF8Encode(wsValue).AsByteStringC()); |
885 } | 886 } |
886 } | 887 } |
887 void CXFA_Node::Script_NodeClass_GetElement(CFXJSE_Arguments* pArguments) { | 888 void CXFA_Node::Script_NodeClass_GetElement(CFXJSE_Arguments* pArguments) { |
888 int32_t iLength = pArguments->GetLength(); | 889 int32_t iLength = pArguments->GetLength(); |
889 if (iLength < 1 || iLength > 2) { | 890 if (iLength < 1 || iLength > 2) { |
890 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getElement"); | 891 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getElement"); |
891 return; | 892 return; |
892 } | 893 } |
893 CFX_WideString wsExpression; | 894 CFX_WideString wsExpression; |
894 int32_t iValue = 0; | 895 int32_t iValue = 0; |
895 if (iLength >= 1) { | 896 if (iLength >= 1) { |
896 CFX_ByteString bsExpression = pArguments->GetUTF8String(0); | 897 CFX_ByteString bsExpression = pArguments->GetUTF8String(0); |
897 wsExpression = | 898 wsExpression = |
898 CFX_WideString::FromUTF8(bsExpression, bsExpression.GetLength()); | 899 CFX_WideString::FromUTF8(bsExpression, bsExpression.GetLength()); |
899 } | 900 } |
900 if (iLength >= 2) { | 901 if (iLength >= 2) { |
901 iValue = pArguments->GetInt32(1); | 902 iValue = pArguments->GetInt32(1); |
902 } | 903 } |
903 const XFA_ELEMENTINFO* pElementInfo = XFA_GetElementByName(wsExpression); | 904 const XFA_ELEMENTINFO* pElementInfo = |
| 905 XFA_GetElementByName(wsExpression.AsWideStringC()); |
904 CXFA_Node* pNode = GetProperty(iValue, pElementInfo->eName); | 906 CXFA_Node* pNode = GetProperty(iValue, pElementInfo->eName); |
905 FXJSE_Value_Set(pArguments->GetReturnValue(), | 907 FXJSE_Value_Set(pArguments->GetReturnValue(), |
906 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNode)); | 908 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNode)); |
907 } | 909 } |
908 void CXFA_Node::Script_NodeClass_IsPropertySpecified( | 910 void CXFA_Node::Script_NodeClass_IsPropertySpecified( |
909 CFXJSE_Arguments* pArguments) { | 911 CFXJSE_Arguments* pArguments) { |
910 int32_t iLength = pArguments->GetLength(); | 912 int32_t iLength = pArguments->GetLength(); |
911 if (iLength < 1 || iLength > 3) { | 913 if (iLength < 1 || iLength > 3) { |
912 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 914 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
913 L"isPropertySpecified"); | 915 L"isPropertySpecified"); |
914 return; | 916 return; |
915 } | 917 } |
916 CFX_WideString wsExpression; | 918 CFX_WideString wsExpression; |
917 FX_BOOL bParent = TRUE; | 919 FX_BOOL bParent = TRUE; |
918 int32_t iIndex = 0; | 920 int32_t iIndex = 0; |
919 if (iLength >= 1) { | 921 if (iLength >= 1) { |
920 CFX_ByteString bsExpression = pArguments->GetUTF8String(0); | 922 CFX_ByteString bsExpression = pArguments->GetUTF8String(0); |
921 wsExpression = | 923 wsExpression = |
922 CFX_WideString::FromUTF8(bsExpression, bsExpression.GetLength()); | 924 CFX_WideString::FromUTF8(bsExpression, bsExpression.GetLength()); |
923 } | 925 } |
924 if (iLength >= 2) { | 926 if (iLength >= 2) { |
925 bParent = pArguments->GetInt32(1) == 0 ? FALSE : TRUE; | 927 bParent = pArguments->GetInt32(1) == 0 ? FALSE : TRUE; |
926 } | 928 } |
927 if (iLength >= 3) { | 929 if (iLength >= 3) { |
928 iIndex = pArguments->GetInt32(2); | 930 iIndex = pArguments->GetInt32(2); |
929 } | 931 } |
930 FX_BOOL bHas = FALSE; | 932 FX_BOOL bHas = FALSE; |
931 const XFA_ATTRIBUTEINFO* pAttributeInfo = | 933 const XFA_ATTRIBUTEINFO* pAttributeInfo = |
932 XFA_GetAttributeByName(wsExpression); | 934 XFA_GetAttributeByName(wsExpression.AsWideStringC()); |
933 CFX_WideString wsValue; | 935 CFX_WideString wsValue; |
934 if (pAttributeInfo) { | 936 if (pAttributeInfo) { |
935 bHas = HasAttribute(pAttributeInfo->eName); | 937 bHas = HasAttribute(pAttributeInfo->eName); |
936 } | 938 } |
937 if (!bHas) { | 939 if (!bHas) { |
938 const XFA_ELEMENTINFO* pElementInfo = XFA_GetElementByName(wsExpression); | 940 const XFA_ELEMENTINFO* pElementInfo = |
| 941 XFA_GetElementByName(wsExpression.AsWideStringC()); |
939 bHas = (GetProperty(iIndex, pElementInfo->eName) != NULL); | 942 bHas = (GetProperty(iIndex, pElementInfo->eName) != NULL); |
940 } | 943 } |
941 FXJSE_HVALUE hValue = pArguments->GetReturnValue(); | 944 FXJSE_HVALUE hValue = pArguments->GetReturnValue(); |
942 if (hValue) { | 945 if (hValue) { |
943 FXJSE_Value_SetBoolean(hValue, bHas); | 946 FXJSE_Value_SetBoolean(hValue, bHas); |
944 } | 947 } |
945 } | 948 } |
946 void CXFA_Node::Script_NodeClass_LoadXML(CFXJSE_Arguments* pArguments) { | 949 void CXFA_Node::Script_NodeClass_LoadXML(CFXJSE_Arguments* pArguments) { |
947 int32_t iLength = pArguments->GetLength(); | 950 int32_t iLength = pArguments->GetLength(); |
948 if (iLength < 1 || iLength > 3) { | 951 if (iLength < 1 || iLength > 3) { |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1151 L"setAttribute"); | 1154 L"setAttribute"); |
1152 return; | 1155 return; |
1153 } | 1156 } |
1154 CFX_WideString wsAttribute; | 1157 CFX_WideString wsAttribute; |
1155 CFX_WideString wsAttributeValue; | 1158 CFX_WideString wsAttributeValue; |
1156 CFX_ByteString bsAttributeValue = pArguments->GetUTF8String(0); | 1159 CFX_ByteString bsAttributeValue = pArguments->GetUTF8String(0); |
1157 CFX_ByteString bsAttribute = pArguments->GetUTF8String(1); | 1160 CFX_ByteString bsAttribute = pArguments->GetUTF8String(1); |
1158 wsAttributeValue = | 1161 wsAttributeValue = |
1159 CFX_WideString::FromUTF8(bsAttributeValue, bsAttributeValue.GetLength()); | 1162 CFX_WideString::FromUTF8(bsAttributeValue, bsAttributeValue.GetLength()); |
1160 wsAttribute = CFX_WideString::FromUTF8(bsAttribute, bsAttribute.GetLength()); | 1163 wsAttribute = CFX_WideString::FromUTF8(bsAttribute, bsAttribute.GetLength()); |
1161 SetAttribute(wsAttribute, wsAttributeValue, TRUE); | 1164 SetAttribute(wsAttribute.AsWideStringC(), wsAttributeValue.AsWideStringC(), |
| 1165 TRUE); |
1162 } | 1166 } |
1163 void CXFA_Node::Script_NodeClass_SetElement(CFXJSE_Arguments* pArguments) { | 1167 void CXFA_Node::Script_NodeClass_SetElement(CFXJSE_Arguments* pArguments) { |
1164 int32_t iLength = pArguments->GetLength(); | 1168 int32_t iLength = pArguments->GetLength(); |
1165 if (iLength != 1 && iLength != 2) { | 1169 if (iLength != 1 && iLength != 2) { |
1166 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"setElement"); | 1170 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"setElement"); |
1167 return; | 1171 return; |
1168 } | 1172 } |
1169 CXFA_Node* pNode = NULL; | 1173 CXFA_Node* pNode = NULL; |
1170 CFX_WideString wsName; | 1174 CFX_WideString wsName; |
1171 if (iLength >= 1) { | 1175 if (iLength >= 1) { |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1476 } | 1480 } |
1477 } | 1481 } |
1478 void CXFA_Node::Script_Attribute_String(FXJSE_HVALUE hValue, | 1482 void CXFA_Node::Script_Attribute_String(FXJSE_HVALUE hValue, |
1479 FX_BOOL bSetting, | 1483 FX_BOOL bSetting, |
1480 XFA_ATTRIBUTE eAttribute) { | 1484 XFA_ATTRIBUTE eAttribute) { |
1481 if (bSetting) { | 1485 if (bSetting) { |
1482 CFX_ByteString szValue; | 1486 CFX_ByteString szValue; |
1483 FXJSE_Value_ToUTF8String(hValue, szValue); | 1487 FXJSE_Value_ToUTF8String(hValue, szValue); |
1484 CFX_WideString wsValue = | 1488 CFX_WideString wsValue = |
1485 CFX_WideString::FromUTF8(szValue, szValue.GetLength()); | 1489 CFX_WideString::FromUTF8(szValue, szValue.GetLength()); |
1486 SetAttribute(eAttribute, wsValue, TRUE); | 1490 SetAttribute(eAttribute, wsValue.AsWideStringC(), TRUE); |
1487 if (eAttribute == XFA_ATTRIBUTE_Use && GetClassID() == XFA_ELEMENT_Desc) { | 1491 if (eAttribute == XFA_ATTRIBUTE_Use && GetClassID() == XFA_ELEMENT_Desc) { |
1488 CFX_WideString wsUseVal = wsValue, wsID, wsSOM; | 1492 CFX_WideString wsUseVal = wsValue, wsID, wsSOM; |
1489 CXFA_Node* pTemplateNode = | 1493 CXFA_Node* pTemplateNode = |
1490 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Template)); | 1494 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Template)); |
1491 CXFA_Node* pProtoRoot = | 1495 CXFA_Node* pProtoRoot = |
1492 pTemplateNode->GetFirstChildByClass(XFA_ELEMENT_Subform) | 1496 pTemplateNode->GetFirstChildByClass(XFA_ELEMENT_Subform) |
1493 ->GetFirstChildByClass(XFA_ELEMENT_Proto); | 1497 ->GetFirstChildByClass(XFA_ELEMENT_Proto); |
1494 if (!wsUseVal.IsEmpty()) { | 1498 if (!wsUseVal.IsEmpty()) { |
1495 if (wsUseVal[0] == '#') { | 1499 if (wsUseVal[0] == '#') { |
1496 wsID = CFX_WideString((const FX_WCHAR*)wsUseVal + 1, | 1500 wsID = CFX_WideString((const FX_WCHAR*)wsUseVal + 1, |
1497 wsUseVal.GetLength() - 1); | 1501 wsUseVal.GetLength() - 1); |
1498 } else { | 1502 } else { |
1499 wsSOM = | 1503 wsSOM = |
1500 CFX_WideString((const FX_WCHAR*)wsUseVal, wsUseVal.GetLength()); | 1504 CFX_WideString((const FX_WCHAR*)wsUseVal, wsUseVal.GetLength()); |
1501 } | 1505 } |
1502 } | 1506 } |
1503 CXFA_Node* pProtoNode = NULL; | 1507 CXFA_Node* pProtoNode = NULL; |
1504 if (!wsSOM.IsEmpty()) { | 1508 if (!wsSOM.IsEmpty()) { |
1505 uint32_t dwFlag = XFA_RESOLVENODE_Children | | 1509 uint32_t dwFlag = XFA_RESOLVENODE_Children | |
1506 XFA_RESOLVENODE_Attributes | | 1510 XFA_RESOLVENODE_Attributes | |
1507 XFA_RESOLVENODE_Properties | XFA_RESOLVENODE_Parent | | 1511 XFA_RESOLVENODE_Properties | XFA_RESOLVENODE_Parent | |
1508 XFA_RESOLVENODE_Siblings; | 1512 XFA_RESOLVENODE_Siblings; |
1509 XFA_RESOLVENODE_RS resoveNodeRS; | 1513 XFA_RESOLVENODE_RS resoveNodeRS; |
1510 int32_t iRet = m_pDocument->GetScriptContext()->ResolveObjects( | 1514 int32_t iRet = m_pDocument->GetScriptContext()->ResolveObjects( |
1511 pProtoRoot, wsSOM, resoveNodeRS, dwFlag); | 1515 pProtoRoot, wsSOM.AsWideStringC(), resoveNodeRS, dwFlag); |
1512 if (iRet > 0 && resoveNodeRS.nodes[0]->IsNode()) { | 1516 if (iRet > 0 && resoveNodeRS.nodes[0]->IsNode()) { |
1513 pProtoNode = resoveNodeRS.nodes[0]->AsNode(); | 1517 pProtoNode = resoveNodeRS.nodes[0]->AsNode(); |
1514 } | 1518 } |
1515 } else if (!wsID.IsEmpty()) { | 1519 } else if (!wsID.IsEmpty()) { |
1516 pProtoNode = m_pDocument->GetNodeByID(pProtoRoot, wsID); | 1520 pProtoNode = m_pDocument->GetNodeByID(pProtoRoot, wsID.AsWideStringC()); |
1517 } | 1521 } |
1518 if (pProtoNode) { | 1522 if (pProtoNode) { |
1519 CXFA_Node* pHeadChild = GetNodeItem(XFA_NODEITEM_FirstChild); | 1523 CXFA_Node* pHeadChild = GetNodeItem(XFA_NODEITEM_FirstChild); |
1520 while (pHeadChild) { | 1524 while (pHeadChild) { |
1521 CXFA_Node* pSibling = | 1525 CXFA_Node* pSibling = |
1522 pHeadChild->GetNodeItem(XFA_NODEITEM_NextSibling); | 1526 pHeadChild->GetNodeItem(XFA_NODEITEM_NextSibling); |
1523 RemoveChild(pHeadChild); | 1527 RemoveChild(pHeadChild); |
1524 pHeadChild = pSibling; | 1528 pHeadChild = pSibling; |
1525 } | 1529 } |
1526 CXFA_Node* pProtoForm = pProtoNode->CloneTemplateToForm(TRUE); | 1530 CXFA_Node* pProtoForm = pProtoNode->CloneTemplateToForm(TRUE); |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1694 } | 1698 } |
1695 if (!wsPicture.IsEmpty()) { | 1699 if (!wsPicture.IsEmpty()) { |
1696 break; | 1700 break; |
1697 } | 1701 } |
1698 pContainerWidgetData = NULL; | 1702 pContainerWidgetData = NULL; |
1699 } | 1703 } |
1700 } else if (GetPacketID() == XFA_XDPPACKET_Form) { | 1704 } else if (GetPacketID() == XFA_XDPPACKET_Form) { |
1701 pContainerWidgetData = GetContainerWidgetData(); | 1705 pContainerWidgetData = GetContainerWidgetData(); |
1702 } | 1706 } |
1703 if (pContainerWidgetData) { | 1707 if (pContainerWidgetData) { |
1704 pContainerWidgetData->GetFormatDataValue(wsNewValue, wsFormatValue); | 1708 pContainerWidgetData->GetFormatDataValue(wsNewValue.AsWideStringC(), |
| 1709 wsFormatValue); |
1705 } | 1710 } |
1706 SetScriptContent(wsNewValue, wsFormatValue, TRUE, TRUE); | 1711 SetScriptContent(wsNewValue, wsFormatValue, TRUE, TRUE); |
1707 } else { | 1712 } else { |
1708 CFX_WideString content = GetScriptContent(TRUE); | 1713 CFX_WideString content = GetScriptContent(TRUE); |
1709 if (content.IsEmpty() && classID != XFA_ELEMENT_Text && | 1714 if (content.IsEmpty() && classID != XFA_ELEMENT_Text && |
1710 classID != XFA_ELEMENT_SubmitUrl) { | 1715 classID != XFA_ELEMENT_SubmitUrl) { |
1711 FXJSE_Value_SetNull(hValue); | 1716 FXJSE_Value_SetNull(hValue); |
1712 } else if (classID == XFA_ELEMENT_Integer) { | 1717 } else if (classID == XFA_ELEMENT_Integer) { |
1713 FXJSE_Value_SetInteger(hValue, FXSYS_wtoi(content)); | 1718 FXJSE_Value_SetInteger(hValue, FXSYS_wtoi(content)); |
1714 } else if (classID == XFA_ELEMENT_Float || classID == XFA_ELEMENT_Decimal) { | 1719 } else if (classID == XFA_ELEMENT_Float || classID == XFA_ELEMENT_Decimal) { |
1715 CFX_Decimal decimal(content); | 1720 CFX_Decimal decimal(content.AsWideStringC()); |
1716 FXJSE_Value_SetFloat(hValue, (FX_FLOAT)(double)decimal); | 1721 FXJSE_Value_SetFloat(hValue, (FX_FLOAT)(double)decimal); |
1717 } else { | 1722 } else { |
1718 FXJSE_Value_SetUTF8String( | 1723 FXJSE_Value_SetUTF8String( |
1719 hValue, FX_UTF8Encode(content, content.GetLength()).AsByteStringC()); | 1724 hValue, FX_UTF8Encode(content, content.GetLength()).AsByteStringC()); |
1720 } | 1725 } |
1721 } | 1726 } |
1722 } | 1727 } |
1723 void CXFA_Node::Script_Som_DefaultValue_Read(FXJSE_HVALUE hValue, | 1728 void CXFA_Node::Script_Som_DefaultValue_Read(FXJSE_HVALUE hValue, |
1724 FX_BOOL bSetting, | 1729 FX_BOOL bSetting, |
1725 XFA_ATTRIBUTE eAttribute) { | 1730 XFA_ATTRIBUTE eAttribute) { |
(...skipping 15 matching lines...) Expand all Loading... |
1741 if (bSetting) { | 1746 if (bSetting) { |
1742 CFX_ByteString newValue; | 1747 CFX_ByteString newValue; |
1743 if (!(FXJSE_Value_IsNull(hValue) || FXJSE_Value_IsUndefined(hValue))) { | 1748 if (!(FXJSE_Value_IsNull(hValue) || FXJSE_Value_IsUndefined(hValue))) { |
1744 FXJSE_Value_ToUTF8String(hValue, newValue); | 1749 FXJSE_Value_ToUTF8String(hValue, newValue); |
1745 } | 1750 } |
1746 int32_t iValue = FXSYS_atoi(newValue); | 1751 int32_t iValue = FXSYS_atoi(newValue); |
1747 CFX_WideString wsNewValue = (iValue == 0) ? FX_WSTRC(L"0") : FX_WSTRC(L"1"); | 1752 CFX_WideString wsNewValue = (iValue == 0) ? FX_WSTRC(L"0") : FX_WSTRC(L"1"); |
1748 CFX_WideString wsFormatValue(wsNewValue); | 1753 CFX_WideString wsFormatValue(wsNewValue); |
1749 CXFA_WidgetData* pContainerWidgetData = GetContainerWidgetData(); | 1754 CXFA_WidgetData* pContainerWidgetData = GetContainerWidgetData(); |
1750 if (pContainerWidgetData) { | 1755 if (pContainerWidgetData) { |
1751 pContainerWidgetData->GetFormatDataValue(wsNewValue, wsFormatValue); | 1756 pContainerWidgetData->GetFormatDataValue(wsNewValue.AsWideStringC(), |
| 1757 wsFormatValue); |
1752 } | 1758 } |
1753 SetScriptContent(wsNewValue, wsFormatValue, TRUE, TRUE); | 1759 SetScriptContent(wsNewValue, wsFormatValue, TRUE, TRUE); |
1754 } else { | 1760 } else { |
1755 CFX_WideString wsValue = GetScriptContent(TRUE); | 1761 CFX_WideString wsValue = GetScriptContent(TRUE); |
1756 FXJSE_Value_SetBoolean(hValue, wsValue == FX_WSTRC(L"1")); | 1762 FXJSE_Value_SetBoolean(hValue, wsValue == FX_WSTRC(L"1")); |
1757 } | 1763 } |
1758 } | 1764 } |
1759 struct XFA_ExecEventParaInfo { | 1765 struct XFA_ExecEventParaInfo { |
1760 public: | 1766 public: |
1761 uint32_t m_uHash; | 1767 uint32_t m_uHash; |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1884 } | 1890 } |
1885 CXFA_Border border = pWidgetData->GetBorder(TRUE); | 1891 CXFA_Border border = pWidgetData->GetBorder(TRUE); |
1886 int32_t iSize = border.CountEdges(); | 1892 int32_t iSize = border.CountEdges(); |
1887 CFX_WideString wsThickness; | 1893 CFX_WideString wsThickness; |
1888 if (bSetting) { | 1894 if (bSetting) { |
1889 CFX_ByteString bsValue; | 1895 CFX_ByteString bsValue; |
1890 FXJSE_Value_ToUTF8String(hValue, bsValue); | 1896 FXJSE_Value_ToUTF8String(hValue, bsValue); |
1891 wsThickness = CFX_WideString::FromUTF8(bsValue, bsValue.GetLength()); | 1897 wsThickness = CFX_WideString::FromUTF8(bsValue, bsValue.GetLength()); |
1892 for (int32_t i = 0; i < iSize; ++i) { | 1898 for (int32_t i = 0; i < iSize; ++i) { |
1893 CXFA_Edge edge = border.GetEdge(i); | 1899 CXFA_Edge edge = border.GetEdge(i); |
1894 CXFA_Measurement thickness(wsThickness); | 1900 CXFA_Measurement thickness(wsThickness.AsWideStringC()); |
1895 edge.SetMSThickness(thickness); | 1901 edge.SetMSThickness(thickness); |
1896 } | 1902 } |
1897 } else { | 1903 } else { |
1898 CXFA_Edge edge = border.GetEdge(0); | 1904 CXFA_Edge edge = border.GetEdge(0); |
1899 CXFA_Measurement thickness = edge.GetMSThickness(); | 1905 CXFA_Measurement thickness = edge.GetMSThickness(); |
1900 thickness.ToString(wsThickness); | 1906 thickness.ToString(wsThickness); |
1901 FXJSE_Value_SetUTF8String(hValue, | 1907 FXJSE_Value_SetUTF8String(hValue, |
1902 FX_UTF8Encode(wsThickness).AsByteStringC()); | 1908 FX_UTF8Encode(wsThickness).AsByteStringC()); |
1903 } | 1909 } |
1904 } | 1910 } |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2001 if (pUIChild->GetClassID() == XFA_ELEMENT_NumericEdit) { | 2007 if (pUIChild->GetClassID() == XFA_ELEMENT_NumericEdit) { |
2002 int32_t iLeadDigits = 0; | 2008 int32_t iLeadDigits = 0; |
2003 int32_t iFracDigits = 0; | 2009 int32_t iFracDigits = 0; |
2004 pWidgetData->GetLeadDigits(iLeadDigits); | 2010 pWidgetData->GetLeadDigits(iLeadDigits); |
2005 pWidgetData->GetFracDigits(iFracDigits); | 2011 pWidgetData->GetFracDigits(iFracDigits); |
2006 wsNewText = XFA_NumericLimit(wsNewText, iLeadDigits, iFracDigits); | 2012 wsNewText = XFA_NumericLimit(wsNewText, iLeadDigits, iFracDigits); |
2007 } | 2013 } |
2008 CXFA_WidgetData* pContainerWidgetData = GetContainerWidgetData(); | 2014 CXFA_WidgetData* pContainerWidgetData = GetContainerWidgetData(); |
2009 CFX_WideString wsFormatText(wsNewText); | 2015 CFX_WideString wsFormatText(wsNewText); |
2010 if (pContainerWidgetData) { | 2016 if (pContainerWidgetData) { |
2011 pContainerWidgetData->GetFormatDataValue(wsNewText, wsFormatText); | 2017 pContainerWidgetData->GetFormatDataValue(wsNewText.AsWideStringC(), |
| 2018 wsFormatText); |
2012 } | 2019 } |
2013 SetScriptContent(wsNewText, wsFormatText, TRUE, TRUE); | 2020 SetScriptContent(wsNewText, wsFormatText, TRUE, TRUE); |
2014 } else { | 2021 } else { |
2015 CFX_WideString content = GetScriptContent(TRUE); | 2022 CFX_WideString content = GetScriptContent(TRUE); |
2016 if (content.IsEmpty()) { | 2023 if (content.IsEmpty()) { |
2017 FXJSE_Value_SetNull(hValue); | 2024 FXJSE_Value_SetNull(hValue); |
2018 } else { | 2025 } else { |
2019 CXFA_Node* pUIChild = pWidgetData->GetUIChild(); | 2026 CXFA_Node* pUIChild = pWidgetData->GetUIChild(); |
2020 XFA_ELEMENT eUI = pUIChild->GetClassID(); | 2027 XFA_ELEMENT eUI = pUIChild->GetClassID(); |
2021 CXFA_Value defVal = pWidgetData->GetFormValue(); | 2028 CXFA_Value defVal = pWidgetData->GetFormValue(); |
2022 CXFA_Node* pNode = defVal.GetNode()->GetNodeItem(XFA_NODEITEM_FirstChild); | 2029 CXFA_Node* pNode = defVal.GetNode()->GetNodeItem(XFA_NODEITEM_FirstChild); |
2023 if (pNode && pNode->GetClassID() == XFA_ELEMENT_Decimal) { | 2030 if (pNode && pNode->GetClassID() == XFA_ELEMENT_Decimal) { |
2024 if (eUI == XFA_ELEMENT_NumericEdit && | 2031 if (eUI == XFA_ELEMENT_NumericEdit && |
2025 (pNode->GetInteger(XFA_ATTRIBUTE_FracDigits) == -1)) { | 2032 (pNode->GetInteger(XFA_ATTRIBUTE_FracDigits) == -1)) { |
2026 FXJSE_Value_SetUTF8String( | 2033 FXJSE_Value_SetUTF8String( |
2027 hValue, | 2034 hValue, |
2028 FX_UTF8Encode(content, content.GetLength()).AsByteStringC()); | 2035 FX_UTF8Encode(content, content.GetLength()).AsByteStringC()); |
2029 } else { | 2036 } else { |
2030 CFX_Decimal decimal(content); | 2037 CFX_Decimal decimal(content.AsWideStringC()); |
2031 FXJSE_Value_SetFloat(hValue, (FX_FLOAT)(double)decimal); | 2038 FXJSE_Value_SetFloat(hValue, (FX_FLOAT)(double)decimal); |
2032 } | 2039 } |
2033 } else if (pNode && pNode->GetClassID() == XFA_ELEMENT_Integer) { | 2040 } else if (pNode && pNode->GetClassID() == XFA_ELEMENT_Integer) { |
2034 FXJSE_Value_SetInteger(hValue, FXSYS_wtoi(content)); | 2041 FXJSE_Value_SetInteger(hValue, FXSYS_wtoi(content)); |
2035 } else if (pNode && pNode->GetClassID() == XFA_ELEMENT_Boolean) { | 2042 } else if (pNode && pNode->GetClassID() == XFA_ELEMENT_Boolean) { |
2036 FXJSE_Value_SetBoolean(hValue, FXSYS_wtoi(content) == 0 ? FALSE : TRUE); | 2043 FXJSE_Value_SetBoolean(hValue, FXSYS_wtoi(content) == 0 ? FALSE : TRUE); |
2037 } else if (pNode && pNode->GetClassID() == XFA_ELEMENT_Float) { | 2044 } else if (pNode && pNode->GetClassID() == XFA_ELEMENT_Float) { |
2038 CFX_Decimal decimal(content); | 2045 CFX_Decimal decimal(content.AsWideStringC()); |
2039 FXJSE_Value_SetFloat(hValue, (FX_FLOAT)(double)decimal); | 2046 FXJSE_Value_SetFloat(hValue, (FX_FLOAT)(double)decimal); |
2040 } else { | 2047 } else { |
2041 FXJSE_Value_SetUTF8String( | 2048 FXJSE_Value_SetUTF8String( |
2042 hValue, | 2049 hValue, |
2043 FX_UTF8Encode(content, content.GetLength()).AsByteStringC()); | 2050 FX_UTF8Encode(content, content.GetLength()).AsByteStringC()); |
2044 } | 2051 } |
2045 } | 2052 } |
2046 } | 2053 } |
2047 } | 2054 } |
2048 void CXFA_Node::Script_Field_EditValue(FXJSE_HVALUE hValue, | 2055 void CXFA_Node::Script_Field_EditValue(FXJSE_HVALUE hValue, |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2176 if (!pWidgetData) { | 2183 if (!pWidgetData) { |
2177 return; | 2184 return; |
2178 } | 2185 } |
2179 pWidgetData->DeleteItem(-1, TRUE); | 2186 pWidgetData->DeleteItem(-1, TRUE); |
2180 } | 2187 } |
2181 void CXFA_Node::Script_Field_ExecEvent(CFXJSE_Arguments* pArguments) { | 2188 void CXFA_Node::Script_Field_ExecEvent(CFXJSE_Arguments* pArguments) { |
2182 int32_t argc = pArguments->GetLength(); | 2189 int32_t argc = pArguments->GetLength(); |
2183 if (argc == 1) { | 2190 if (argc == 1) { |
2184 CFX_ByteString eventString = pArguments->GetUTF8String(0); | 2191 CFX_ByteString eventString = pArguments->GetUTF8String(0); |
2185 int32_t iRet = execSingleEventByName( | 2192 int32_t iRet = execSingleEventByName( |
2186 CFX_WideString::FromUTF8(eventString, eventString.GetLength()), | 2193 CFX_WideString::FromUTF8(eventString, eventString.GetLength()) |
| 2194 .AsWideStringC(), |
2187 XFA_ELEMENT_Field); | 2195 XFA_ELEMENT_Field); |
2188 if (eventString == "validate") { | 2196 if (eventString == "validate") { |
2189 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), | 2197 FXJSE_Value_SetBoolean(pArguments->GetReturnValue(), |
2190 ((iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE)); | 2198 ((iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE)); |
2191 } | 2199 } |
2192 } else { | 2200 } else { |
2193 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execEvent"); | 2201 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execEvent"); |
2194 } | 2202 } |
2195 } | 2203 } |
2196 void CXFA_Node::Script_Field_ExecInitialize(CFXJSE_Arguments* pArguments) { | 2204 void CXFA_Node::Script_Field_ExecInitialize(CFXJSE_Arguments* pArguments) { |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2256 return; | 2264 return; |
2257 } | 2265 } |
2258 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2266 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
2259 if (!pWidgetData) { | 2267 if (!pWidgetData) { |
2260 return; | 2268 return; |
2261 } | 2269 } |
2262 CFX_ByteString bsValue = pArguments->GetUTF8String(0); | 2270 CFX_ByteString bsValue = pArguments->GetUTF8String(0); |
2263 CFX_WideString wsValue = | 2271 CFX_WideString wsValue = |
2264 CFX_WideString::FromUTF8(bsValue, bsValue.GetLength()); | 2272 CFX_WideString::FromUTF8(bsValue, bsValue.GetLength()); |
2265 CFX_WideString wsBoundValue; | 2273 CFX_WideString wsBoundValue; |
2266 pWidgetData->GetItemValue(wsValue, wsBoundValue); | 2274 pWidgetData->GetItemValue(wsValue.AsWideStringC(), wsBoundValue); |
2267 FXJSE_HVALUE hValue = pArguments->GetReturnValue(); | 2275 FXJSE_HVALUE hValue = pArguments->GetReturnValue(); |
2268 if (hValue) { | 2276 if (hValue) { |
2269 FXJSE_Value_SetUTF8String(hValue, | 2277 FXJSE_Value_SetUTF8String(hValue, |
2270 FX_UTF8Encode(wsBoundValue).AsByteStringC()); | 2278 FX_UTF8Encode(wsBoundValue).AsByteStringC()); |
2271 } | 2279 } |
2272 } | 2280 } |
2273 void CXFA_Node::Script_Field_GetItemState(CFXJSE_Arguments* pArguments) { | 2281 void CXFA_Node::Script_Field_GetItemState(CFXJSE_Arguments* pArguments) { |
2274 int32_t iLength = pArguments->GetLength(); | 2282 int32_t iLength = pArguments->GetLength(); |
2275 if (iLength != 1) { | 2283 if (iLength != 1) { |
2276 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, | 2284 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2400 FX_BOOL bSetting, | 2408 FX_BOOL bSetting, |
2401 XFA_ATTRIBUTE eAttribute) { | 2409 XFA_ATTRIBUTE eAttribute) { |
2402 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2410 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
2403 if (!pWidgetData) { | 2411 if (!pWidgetData) { |
2404 return; | 2412 return; |
2405 } | 2413 } |
2406 if (bSetting) { | 2414 if (bSetting) { |
2407 CFX_ByteString bsValue; | 2415 CFX_ByteString bsValue; |
2408 FXJSE_Value_ToUTF8String(hValue, bsValue); | 2416 FXJSE_Value_ToUTF8String(hValue, bsValue); |
2409 pWidgetData->SetSelectedMemberByValue( | 2417 pWidgetData->SetSelectedMemberByValue( |
2410 CFX_WideString::FromUTF8(bsValue, bsValue.GetLength()), TRUE, TRUE); | 2418 CFX_WideString::FromUTF8(bsValue, bsValue.GetLength()).AsWideStringC(), |
| 2419 TRUE, TRUE); |
2411 } else { | 2420 } else { |
2412 CFX_WideString wsValue = GetScriptContent(TRUE); | 2421 CFX_WideString wsValue = GetScriptContent(TRUE); |
2413 XFA_VERSION curVersion = GetDocument()->GetCurVersionMode(); | 2422 XFA_VERSION curVersion = GetDocument()->GetCurVersionMode(); |
2414 if (wsValue.IsEmpty() && curVersion >= XFA_VERSION_300) { | 2423 if (wsValue.IsEmpty() && curVersion >= XFA_VERSION_300) { |
2415 FXJSE_Value_SetNull(hValue); | 2424 FXJSE_Value_SetNull(hValue); |
2416 } else { | 2425 } else { |
2417 FXJSE_Value_SetUTF8String(hValue, FX_UTF8Encode(wsValue).AsByteStringC()); | 2426 FXJSE_Value_SetUTF8String(hValue, FX_UTF8Encode(wsValue).AsByteStringC()); |
2418 } | 2427 } |
2419 } | 2428 } |
2420 } | 2429 } |
2421 void CXFA_Node::Script_ExclGroup_Transient(FXJSE_HVALUE hValue, | 2430 void CXFA_Node::Script_ExclGroup_Transient(FXJSE_HVALUE hValue, |
2422 FX_BOOL bSetting, | 2431 FX_BOOL bSetting, |
2423 XFA_ATTRIBUTE eAttribute) {} | 2432 XFA_ATTRIBUTE eAttribute) {} |
2424 void CXFA_Node::Script_ExclGroup_ExecEvent(CFXJSE_Arguments* pArguments) { | 2433 void CXFA_Node::Script_ExclGroup_ExecEvent(CFXJSE_Arguments* pArguments) { |
2425 int32_t argc = pArguments->GetLength(); | 2434 int32_t argc = pArguments->GetLength(); |
2426 if (argc == 1) { | 2435 if (argc == 1) { |
2427 CFX_ByteString eventString = pArguments->GetUTF8String(0); | 2436 CFX_ByteString eventString = pArguments->GetUTF8String(0); |
2428 execSingleEventByName( | 2437 execSingleEventByName( |
2429 CFX_WideString::FromUTF8(eventString, eventString.GetLength()), | 2438 CFX_WideString::FromUTF8(eventString, eventString.GetLength()) |
| 2439 .AsWideStringC(), |
2430 XFA_ELEMENT_ExclGroup); | 2440 XFA_ELEMENT_ExclGroup); |
2431 } else { | 2441 } else { |
2432 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execEvent"); | 2442 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execEvent"); |
2433 } | 2443 } |
2434 } | 2444 } |
2435 void CXFA_Node::Script_ExclGroup_SelectedMember(CFXJSE_Arguments* pArguments) { | 2445 void CXFA_Node::Script_ExclGroup_SelectedMember(CFXJSE_Arguments* pArguments) { |
2436 int32_t argc = pArguments->GetLength(); | 2446 int32_t argc = pArguments->GetLength(); |
2437 if ((argc == 0) || (argc == 1)) { | 2447 if ((argc == 0) || (argc == 1)) { |
2438 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2448 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
2439 if (!pWidgetData) { | 2449 if (!pWidgetData) { |
2440 FXJSE_Value_SetNull(pArguments->GetReturnValue()); | 2450 FXJSE_Value_SetNull(pArguments->GetReturnValue()); |
2441 } else { | 2451 } else { |
2442 CXFA_Node* pReturnNode = NULL; | 2452 CXFA_Node* pReturnNode = NULL; |
2443 if (argc == 0) { | 2453 if (argc == 0) { |
2444 pReturnNode = pWidgetData->GetSelectedMember(); | 2454 pReturnNode = pWidgetData->GetSelectedMember(); |
2445 } else { | 2455 } else { |
2446 CFX_ByteString szName; | 2456 CFX_ByteString szName; |
2447 szName = pArguments->GetUTF8String(0); | 2457 szName = pArguments->GetUTF8String(0); |
2448 pReturnNode = pWidgetData->SetSelectedMember( | 2458 pReturnNode = pWidgetData->SetSelectedMember( |
2449 CFX_WideString::FromUTF8(szName, szName.GetLength())); | 2459 CFX_WideString::FromUTF8(szName, szName.GetLength()) |
| 2460 .AsWideStringC()); |
2450 } | 2461 } |
2451 if (pReturnNode) { | 2462 if (pReturnNode) { |
2452 FXJSE_Value_Set( | 2463 FXJSE_Value_Set( |
2453 pArguments->GetReturnValue(), | 2464 pArguments->GetReturnValue(), |
2454 m_pDocument->GetScriptContext()->GetJSValueFromMap(pReturnNode)); | 2465 m_pDocument->GetScriptContext()->GetJSValueFromMap(pReturnNode)); |
2455 } else { | 2466 } else { |
2456 FXJSE_Value_SetNull(pArguments->GetReturnValue()); | 2467 FXJSE_Value_SetNull(pArguments->GetReturnValue()); |
2457 } | 2468 } |
2458 } | 2469 } |
2459 } else { | 2470 } else { |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2615 FXJSE_Value_SetUTF8String( | 2626 FXJSE_Value_SetUTF8String( |
2616 hValue, | 2627 hValue, |
2617 FX_UTF8Encode(wsLocaleName, wsLocaleName.GetLength()).AsByteStringC()); | 2628 FX_UTF8Encode(wsLocaleName, wsLocaleName.GetLength()).AsByteStringC()); |
2618 } | 2629 } |
2619 } | 2630 } |
2620 void CXFA_Node::Script_Subform_ExecEvent(CFXJSE_Arguments* pArguments) { | 2631 void CXFA_Node::Script_Subform_ExecEvent(CFXJSE_Arguments* pArguments) { |
2621 int32_t argc = pArguments->GetLength(); | 2632 int32_t argc = pArguments->GetLength(); |
2622 if (argc == 1) { | 2633 if (argc == 1) { |
2623 CFX_ByteString eventString = pArguments->GetUTF8String(0); | 2634 CFX_ByteString eventString = pArguments->GetUTF8String(0); |
2624 execSingleEventByName( | 2635 execSingleEventByName( |
2625 CFX_WideString::FromUTF8(eventString, eventString.GetLength()), | 2636 CFX_WideString::FromUTF8(eventString, eventString.GetLength()) |
| 2637 .AsWideStringC(), |
2626 XFA_ELEMENT_Subform); | 2638 XFA_ELEMENT_Subform); |
2627 } else { | 2639 } else { |
2628 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execEvent"); | 2640 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execEvent"); |
2629 } | 2641 } |
2630 } | 2642 } |
2631 void CXFA_Node::Script_Subform_ExecInitialize(CFXJSE_Arguments* pArguments) { | 2643 void CXFA_Node::Script_Subform_ExecInitialize(CFXJSE_Arguments* pArguments) { |
2632 int32_t argc = pArguments->GetLength(); | 2644 int32_t argc = pArguments->GetLength(); |
2633 if (argc == 0) { | 2645 if (argc == 0) { |
2634 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); | 2646 CXFA_FFNotify* pNotify = m_pDocument->GetParser()->GetNotify(); |
2635 if (!pNotify) { | 2647 if (!pNotify) { |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2731 strTagName = CFX_WideString::FromUTF8(bsTagName, bsTagName.GetLength()); | 2743 strTagName = CFX_WideString::FromUTF8(bsTagName, bsTagName.GetLength()); |
2732 if (argc > 1) { | 2744 if (argc > 1) { |
2733 CFX_ByteString bsName = pArguments->GetUTF8String(1); | 2745 CFX_ByteString bsName = pArguments->GetUTF8String(1); |
2734 strName = CFX_WideString::FromUTF8(bsName, bsName.GetLength()); | 2746 strName = CFX_WideString::FromUTF8(bsName, bsName.GetLength()); |
2735 if (argc == 3) { | 2747 if (argc == 3) { |
2736 CFX_ByteString bsNameSpace = pArguments->GetUTF8String(2); | 2748 CFX_ByteString bsNameSpace = pArguments->GetUTF8String(2); |
2737 strNameSpace = | 2749 strNameSpace = |
2738 CFX_WideString::FromUTF8(bsNameSpace, bsNameSpace.GetLength()); | 2750 CFX_WideString::FromUTF8(bsNameSpace, bsNameSpace.GetLength()); |
2739 } | 2751 } |
2740 } | 2752 } |
2741 const XFA_ELEMENTINFO* pElement = XFA_GetElementByName(strTagName); | 2753 const XFA_ELEMENTINFO* pElement = |
| 2754 XFA_GetElementByName(strTagName.AsWideStringC()); |
2742 CXFA_Node* pNewNode = CreateSamePacketNode(pElement->eName); | 2755 CXFA_Node* pNewNode = CreateSamePacketNode(pElement->eName); |
2743 if (!pNewNode) { | 2756 if (!pNewNode) { |
2744 FXJSE_Value_SetNull(pArguments->GetReturnValue()); | 2757 FXJSE_Value_SetNull(pArguments->GetReturnValue()); |
2745 } else { | 2758 } else { |
2746 if (!strName.IsEmpty()) { | 2759 if (!strName.IsEmpty()) { |
2747 if (XFA_GetAttributeOfElement(pElement->eName, XFA_ATTRIBUTE_Name, | 2760 if (XFA_GetAttributeOfElement(pElement->eName, XFA_ATTRIBUTE_Name, |
2748 XFA_XDPPACKET_UNKNOWN)) { | 2761 XFA_XDPPACKET_UNKNOWN)) { |
2749 pNewNode->SetAttribute(XFA_ATTRIBUTE_Name, strName, TRUE); | 2762 pNewNode->SetAttribute(XFA_ATTRIBUTE_Name, strName.AsWideStringC(), |
| 2763 TRUE); |
2750 if (pNewNode->GetPacketID() == XFA_XDPPACKET_Datasets) { | 2764 if (pNewNode->GetPacketID() == XFA_XDPPACKET_Datasets) { |
2751 pNewNode->CreateXMLMappingNode(); | 2765 pNewNode->CreateXMLMappingNode(); |
2752 } | 2766 } |
2753 FXJSE_Value_Set( | 2767 FXJSE_Value_Set( |
2754 pArguments->GetReturnValue(), | 2768 pArguments->GetReturnValue(), |
2755 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewNode)); | 2769 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewNode)); |
2756 } else { | 2770 } else { |
2757 ThrowScriptErrorMessage(XFA_IDS_NOT_HAVE_PROPERTY, | 2771 ThrowScriptErrorMessage(XFA_IDS_NOT_HAVE_PROPERTY, |
2758 (const FX_WCHAR*)strTagName, L"name"); | 2772 (const FX_WCHAR*)strTagName, L"name"); |
2759 } | 2773 } |
(...skipping 737 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3497 L"execValidate"); | 3511 L"execValidate"); |
3498 } | 3512 } |
3499 } | 3513 } |
3500 void CXFA_Node::Script_Form_Checksum(FXJSE_HVALUE hValue, | 3514 void CXFA_Node::Script_Form_Checksum(FXJSE_HVALUE hValue, |
3501 FX_BOOL bSetting, | 3515 FX_BOOL bSetting, |
3502 XFA_ATTRIBUTE eAttribute) { | 3516 XFA_ATTRIBUTE eAttribute) { |
3503 if (bSetting) { | 3517 if (bSetting) { |
3504 CFX_ByteString bsChecksum; | 3518 CFX_ByteString bsChecksum; |
3505 FXJSE_Value_ToUTF8String(hValue, bsChecksum); | 3519 FXJSE_Value_ToUTF8String(hValue, bsChecksum); |
3506 SetAttribute(XFA_ATTRIBUTE_Checksum, | 3520 SetAttribute(XFA_ATTRIBUTE_Checksum, |
3507 CFX_WideString::FromUTF8(bsChecksum, bsChecksum.GetLength())); | 3521 CFX_WideString::FromUTF8(bsChecksum, bsChecksum.GetLength()) |
| 3522 .AsWideStringC()); |
3508 } else { | 3523 } else { |
3509 CFX_WideString wsChecksum; | 3524 CFX_WideString wsChecksum; |
3510 GetAttribute(XFA_ATTRIBUTE_Checksum, wsChecksum, FALSE); | 3525 GetAttribute(XFA_ATTRIBUTE_Checksum, wsChecksum, FALSE); |
3511 FXJSE_Value_SetUTF8String( | 3526 FXJSE_Value_SetUTF8String( |
3512 hValue, | 3527 hValue, |
3513 FX_UTF8Encode(wsChecksum, wsChecksum.GetLength()).AsByteStringC()); | 3528 FX_UTF8Encode(wsChecksum, wsChecksum.GetLength()).AsByteStringC()); |
3514 } | 3529 } |
3515 } | 3530 } |
3516 void CXFA_Node::Script_Packet_GetAttribute(CFXJSE_Arguments* pArguments) { | 3531 void CXFA_Node::Script_Packet_GetAttribute(CFXJSE_Arguments* pArguments) { |
3517 int32_t argc = pArguments->GetLength(); | 3532 int32_t argc = pArguments->GetLength(); |
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3957 FX_BOOL CXFA_Node::SetCData(XFA_ATTRIBUTE eAttr, | 3972 FX_BOOL CXFA_Node::SetCData(XFA_ATTRIBUTE eAttr, |
3958 const CFX_WideString& wsValue, | 3973 const CFX_WideString& wsValue, |
3959 FX_BOOL bNotify, | 3974 FX_BOOL bNotify, |
3960 FX_BOOL bScriptModify) { | 3975 FX_BOOL bScriptModify) { |
3961 void* pKey = XFA_GetMapKey_Element(GetClassID(), eAttr); | 3976 void* pKey = XFA_GetMapKey_Element(GetClassID(), eAttr); |
3962 OnChanging(eAttr, (void*)(const FX_WCHAR*)wsValue, bNotify); | 3977 OnChanging(eAttr, (void*)(const FX_WCHAR*)wsValue, bNotify); |
3963 if (eAttr == XFA_ATTRIBUTE_Value) { | 3978 if (eAttr == XFA_ATTRIBUTE_Value) { |
3964 CFX_WideString* pClone = new CFX_WideString(wsValue); | 3979 CFX_WideString* pClone = new CFX_WideString(wsValue); |
3965 SetUserData(pKey, pClone, &deleteWideStringCallBack); | 3980 SetUserData(pKey, pClone, &deleteWideStringCallBack); |
3966 } else { | 3981 } else { |
3967 SetMapModuleString(pKey, wsValue); | 3982 SetMapModuleString(pKey, wsValue.AsWideStringC()); |
3968 if (eAttr == XFA_ATTRIBUTE_Name) | 3983 if (eAttr == XFA_ATTRIBUTE_Name) |
3969 UpdateNameHash(); | 3984 UpdateNameHash(); |
3970 } | 3985 } |
3971 OnChanged(eAttr, (void*)(const FX_WCHAR*)wsValue, bNotify, bScriptModify); | 3986 OnChanged(eAttr, (void*)(const FX_WCHAR*)wsValue, bNotify, bScriptModify); |
3972 if (IsNeedSavingXMLNode() && eAttr != XFA_ATTRIBUTE_QualifiedName && | 3987 if (IsNeedSavingXMLNode() && eAttr != XFA_ATTRIBUTE_QualifiedName && |
3973 eAttr != XFA_ATTRIBUTE_BindingNode) { | 3988 eAttr != XFA_ATTRIBUTE_BindingNode) { |
3974 if (eAttr == XFA_ATTRIBUTE_Name && | 3989 if (eAttr == XFA_ATTRIBUTE_Name && |
3975 (m_eNodeClass == XFA_ELEMENT_DataValue || | 3990 (m_eNodeClass == XFA_ELEMENT_DataValue || |
3976 m_eNodeClass == XFA_ELEMENT_DataGroup)) { | 3991 m_eNodeClass == XFA_ELEMENT_DataGroup)) { |
3977 return TRUE; | 3992 return TRUE; |
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4314 } | 4329 } |
4315 pBindNode = NULL; | 4330 pBindNode = NULL; |
4316 break; | 4331 break; |
4317 } | 4332 } |
4318 case XFA_OBJECTTYPE_ContentNode: { | 4333 case XFA_OBJECTTYPE_ContentNode: { |
4319 CFX_WideString wsContentType; | 4334 CFX_WideString wsContentType; |
4320 if (GetClassID() == XFA_ELEMENT_ExData) { | 4335 if (GetClassID() == XFA_ELEMENT_ExData) { |
4321 GetAttribute(XFA_ATTRIBUTE_ContentType, wsContentType, FALSE); | 4336 GetAttribute(XFA_ATTRIBUTE_ContentType, wsContentType, FALSE); |
4322 if (wsContentType == FX_WSTRC(L"text/html")) { | 4337 if (wsContentType == FX_WSTRC(L"text/html")) { |
4323 wsContentType = FX_WSTRC(L""); | 4338 wsContentType = FX_WSTRC(L""); |
4324 SetAttribute(XFA_ATTRIBUTE_ContentType, wsContentType); | 4339 SetAttribute(XFA_ATTRIBUTE_ContentType, |
| 4340 wsContentType.AsWideStringC()); |
4325 } | 4341 } |
4326 } | 4342 } |
4327 CXFA_Node* pContentRawDataNode = GetNodeItem(XFA_NODEITEM_FirstChild); | 4343 CXFA_Node* pContentRawDataNode = GetNodeItem(XFA_NODEITEM_FirstChild); |
4328 if (!pContentRawDataNode) { | 4344 if (!pContentRawDataNode) { |
4329 pContentRawDataNode = CreateSamePacketNode( | 4345 pContentRawDataNode = CreateSamePacketNode( |
4330 (wsContentType == FX_WSTRC(L"text/xml")) ? XFA_ELEMENT_Sharpxml | 4346 (wsContentType == FX_WSTRC(L"text/xml")) ? XFA_ELEMENT_Sharpxml |
4331 : XFA_ELEMENT_Sharptext); | 4347 : XFA_ELEMENT_Sharptext); |
4332 InsertChild(pContentRawDataNode); | 4348 InsertChild(pContentRawDataNode); |
4333 } | 4349 } |
4334 return pContentRawDataNode->SetScriptContent( | 4350 return pContentRawDataNode->SetScriptContent( |
(...skipping 891 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5226 pDstModuleData->m_BufferMap.RemoveKey(pKey); | 5242 pDstModuleData->m_BufferMap.RemoveKey(pKey); |
5227 pDstModuleData->m_BufferMap.SetAt(pKey, | 5243 pDstModuleData->m_BufferMap.SetAt(pKey, |
5228 (XFA_MAPDATABLOCK*)pBufferBlockData); | 5244 (XFA_MAPDATABLOCK*)pBufferBlockData); |
5229 } | 5245 } |
5230 } | 5246 } |
5231 if (pDstModule->GetObjectType() == XFA_OBJECTTYPE_NodeV) { | 5247 if (pDstModule->GetObjectType() == XFA_OBJECTTYPE_NodeV) { |
5232 CFX_WideString wsValue = pDstModule->GetScriptContent(FALSE); | 5248 CFX_WideString wsValue = pDstModule->GetScriptContent(FALSE); |
5233 CFX_WideString wsFormatValue(wsValue); | 5249 CFX_WideString wsFormatValue(wsValue); |
5234 CXFA_WidgetData* pWidgetData = pDstModule->GetContainerWidgetData(); | 5250 CXFA_WidgetData* pWidgetData = pDstModule->GetContainerWidgetData(); |
5235 if (pWidgetData) { | 5251 if (pWidgetData) { |
5236 pWidgetData->GetFormatDataValue(wsValue, wsFormatValue); | 5252 pWidgetData->GetFormatDataValue(wsValue.AsWideStringC(), wsFormatValue); |
5237 } | 5253 } |
5238 pDstModule->SetScriptContent(wsValue, wsFormatValue, TRUE, TRUE); | 5254 pDstModule->SetScriptContent(wsValue, wsFormatValue, TRUE, TRUE); |
5239 } | 5255 } |
5240 } | 5256 } |
5241 void CXFA_Node::MoveBufferMapData(CXFA_Node* pSrcModule, | 5257 void CXFA_Node::MoveBufferMapData(CXFA_Node* pSrcModule, |
5242 CXFA_Node* pDstModule, | 5258 CXFA_Node* pDstModule, |
5243 void* pKey, | 5259 void* pKey, |
5244 FX_BOOL bRecursive) { | 5260 FX_BOOL bRecursive) { |
5245 if (!pSrcModule || !pDstModule || !pKey) { | 5261 if (!pSrcModule || !pDstModule || !pKey) { |
5246 return; | 5262 return; |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5325 } | 5341 } |
5326 } else { | 5342 } else { |
5327 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"item"); | 5343 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"item"); |
5328 } | 5344 } |
5329 } | 5345 } |
5330 void CXFA_NodeList::Script_TreelistClass_NamedItem( | 5346 void CXFA_NodeList::Script_TreelistClass_NamedItem( |
5331 CFXJSE_Arguments* pArguments) { | 5347 CFXJSE_Arguments* pArguments) { |
5332 int32_t argc = pArguments->GetLength(); | 5348 int32_t argc = pArguments->GetLength(); |
5333 if (argc == 1) { | 5349 if (argc == 1) { |
5334 CFX_ByteString szName = pArguments->GetUTF8String(0); | 5350 CFX_ByteString szName = pArguments->GetUTF8String(0); |
5335 CXFA_Node* pNode = | 5351 CXFA_Node* pNode = NamedItem( |
5336 NamedItem(CFX_WideString::FromUTF8(szName, szName.GetLength())); | 5352 CFX_WideString::FromUTF8(szName, szName.GetLength()).AsWideStringC()); |
5337 if (!pNode) { | 5353 if (!pNode) { |
5338 return; | 5354 return; |
5339 } | 5355 } |
5340 FXJSE_Value_Set(pArguments->GetReturnValue(), | 5356 FXJSE_Value_Set(pArguments->GetReturnValue(), |
5341 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNode)); | 5357 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNode)); |
5342 } else { | 5358 } else { |
5343 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"namedItem"); | 5359 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"namedItem"); |
5344 } | 5360 } |
5345 } | 5361 } |
5346 void CXFA_NodeList::Script_ListClass_Length(FXJSE_HVALUE hValue, | 5362 void CXFA_NodeList::Script_ListClass_Length(FXJSE_HVALUE hValue, |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5423 return m_pAttachNode->InsertChild(pNewNode, pBeforeNode); | 5439 return m_pAttachNode->InsertChild(pNewNode, pBeforeNode); |
5424 } | 5440 } |
5425 FX_BOOL CXFA_AttachNodeList::Remove(CXFA_Node* pNode) { | 5441 FX_BOOL CXFA_AttachNodeList::Remove(CXFA_Node* pNode) { |
5426 return m_pAttachNode->RemoveChild(pNode); | 5442 return m_pAttachNode->RemoveChild(pNode); |
5427 } | 5443 } |
5428 CXFA_Node* CXFA_AttachNodeList::Item(int32_t iIndex) { | 5444 CXFA_Node* CXFA_AttachNodeList::Item(int32_t iIndex) { |
5429 return m_pAttachNode->GetChild( | 5445 return m_pAttachNode->GetChild( |
5430 iIndex, XFA_ELEMENT_UNKNOWN, | 5446 iIndex, XFA_ELEMENT_UNKNOWN, |
5431 m_pAttachNode->GetClassID() == XFA_ELEMENT_Subform); | 5447 m_pAttachNode->GetClassID() == XFA_ELEMENT_Subform); |
5432 } | 5448 } |
OLD | NEW |