| OLD | NEW |
| 1 // Copyright 2016 PDFium Authors. All rights reserved. | 1 // Copyright 2016 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 <map> | 9 #include <map> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 | 120 |
| 121 CXFA_NodeSetPairMap* pNodeSetPairMap = (*pMap)[pParentNode].get(); | 121 CXFA_NodeSetPairMap* pNodeSetPairMap = (*pMap)[pParentNode].get(); |
| 122 if (!(*pNodeSetPairMap)[dwNameHash]) | 122 if (!(*pNodeSetPairMap)[dwNameHash]) |
| 123 (*pNodeSetPairMap)[dwNameHash].reset(new CXFA_NodeSetPair); | 123 (*pNodeSetPairMap)[dwNameHash].reset(new CXFA_NodeSetPair); |
| 124 | 124 |
| 125 return (*pNodeSetPairMap)[dwNameHash].get(); | 125 return (*pNodeSetPairMap)[dwNameHash].get(); |
| 126 } | 126 } |
| 127 | 127 |
| 128 void ReorderDataNodes(const CXFA_NodeSet& sSet1, | 128 void ReorderDataNodes(const CXFA_NodeSet& sSet1, |
| 129 const CXFA_NodeSet& sSet2, | 129 const CXFA_NodeSet& sSet2, |
| 130 FX_BOOL bInsertBefore) { | 130 bool bInsertBefore) { |
| 131 CXFA_NodeSetPairMapMap rgMap; | 131 CXFA_NodeSetPairMapMap rgMap; |
| 132 for (CXFA_Node* pNode : sSet1) { | 132 for (CXFA_Node* pNode : sSet1) { |
| 133 CXFA_NodeSetPair* pNodeSetPair = NodeSetPairForNode(pNode, &rgMap); | 133 CXFA_NodeSetPair* pNodeSetPair = NodeSetPairForNode(pNode, &rgMap); |
| 134 if (pNodeSetPair) | 134 if (pNodeSetPair) |
| 135 pNodeSetPair->first.insert(pNode); | 135 pNodeSetPair->first.insert(pNode); |
| 136 } | 136 } |
| 137 for (CXFA_Node* pNode : sSet2) { | 137 for (CXFA_Node* pNode : sSet2) { |
| 138 CXFA_NodeSetPair* pNodeSetPair = NodeSetPairForNode(pNode, &rgMap); | 138 CXFA_NodeSetPair* pNodeSetPair = NodeSetPairForNode(pNode, &rgMap); |
| 139 if (pNodeSetPair) { | 139 if (pNodeSetPair) { |
| 140 if (pdfium::ContainsValue(pNodeSetPair->first, pNode)) | 140 if (pdfium::ContainsValue(pNodeSetPair->first, pNode)) |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 if (iCount > iIndex) | 211 if (iCount > iIndex) |
| 212 return pNode; | 212 return pNode; |
| 213 } | 213 } |
| 214 return nullptr; | 214 return nullptr; |
| 215 } | 215 } |
| 216 | 216 |
| 217 void InsertItem(CXFA_Node* pInstMgrNode, | 217 void InsertItem(CXFA_Node* pInstMgrNode, |
| 218 CXFA_Node* pNewInstance, | 218 CXFA_Node* pNewInstance, |
| 219 int32_t iPos, | 219 int32_t iPos, |
| 220 int32_t iCount = -1, | 220 int32_t iCount = -1, |
| 221 FX_BOOL bMoveDataBindingNodes = TRUE) { | 221 bool bMoveDataBindingNodes = true) { |
| 222 if (iCount < 0) | 222 if (iCount < 0) |
| 223 iCount = GetCount(pInstMgrNode); | 223 iCount = GetCount(pInstMgrNode); |
| 224 if (iPos < 0) | 224 if (iPos < 0) |
| 225 iPos = iCount; | 225 iPos = iCount; |
| 226 if (iPos == iCount) { | 226 if (iPos == iCount) { |
| 227 CXFA_Node* pNextSibling = | 227 CXFA_Node* pNextSibling = |
| 228 iCount > 0 | 228 iCount > 0 |
| 229 ? GetItem(pInstMgrNode, iCount - 1) | 229 ? GetItem(pInstMgrNode, iCount - 1) |
| 230 ->GetNodeItem(XFA_NODEITEM_NextSibling) | 230 ->GetNodeItem(XFA_NODEITEM_NextSibling) |
| 231 : pInstMgrNode->GetNodeItem(XFA_NODEITEM_NextSibling); | 231 : pInstMgrNode->GetNodeItem(XFA_NODEITEM_NextSibling); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 249 CXFA_TraverseStrategy_XFAContainerNode> | 249 CXFA_TraverseStrategy_XFAContainerNode> |
| 250 sIteratorAfter(pNextSibling); | 250 sIteratorAfter(pNextSibling); |
| 251 for (CXFA_Node* pNode = sIteratorAfter.GetCurrent(); pNode; | 251 for (CXFA_Node* pNode = sIteratorAfter.GetCurrent(); pNode; |
| 252 pNode = sIteratorAfter.MoveToNext()) { | 252 pNode = sIteratorAfter.MoveToNext()) { |
| 253 CXFA_Node* pDataNode = pNode->GetBindData(); | 253 CXFA_Node* pDataNode = pNode->GetBindData(); |
| 254 if (!pDataNode) | 254 if (!pDataNode) |
| 255 continue; | 255 continue; |
| 256 | 256 |
| 257 sAfter.insert(pDataNode); | 257 sAfter.insert(pDataNode); |
| 258 } | 258 } |
| 259 ReorderDataNodes(sNew, sAfter, FALSE); | 259 ReorderDataNodes(sNew, sAfter, false); |
| 260 } | 260 } |
| 261 } else { | 261 } else { |
| 262 CXFA_Node* pBeforeInstance = GetItem(pInstMgrNode, iPos); | 262 CXFA_Node* pBeforeInstance = GetItem(pInstMgrNode, iPos); |
| 263 pInstMgrNode->GetNodeItem(XFA_NODEITEM_Parent) | 263 pInstMgrNode->GetNodeItem(XFA_NODEITEM_Parent) |
| 264 ->InsertChild(pNewInstance, pBeforeInstance); | 264 ->InsertChild(pNewInstance, pBeforeInstance); |
| 265 if (bMoveDataBindingNodes) { | 265 if (bMoveDataBindingNodes) { |
| 266 CXFA_NodeSet sNew; | 266 CXFA_NodeSet sNew; |
| 267 CXFA_NodeSet sBefore; | 267 CXFA_NodeSet sBefore; |
| 268 CXFA_NodeIteratorTemplate<CXFA_Node, | 268 CXFA_NodeIteratorTemplate<CXFA_Node, |
| 269 CXFA_TraverseStrategy_XFAContainerNode> | 269 CXFA_TraverseStrategy_XFAContainerNode> |
| (...skipping 10 matching lines...) Expand all Loading... |
| 280 CXFA_TraverseStrategy_XFAContainerNode> | 280 CXFA_TraverseStrategy_XFAContainerNode> |
| 281 sIteratorBefore(pBeforeInstance); | 281 sIteratorBefore(pBeforeInstance); |
| 282 for (CXFA_Node* pNode = sIteratorBefore.GetCurrent(); pNode; | 282 for (CXFA_Node* pNode = sIteratorBefore.GetCurrent(); pNode; |
| 283 pNode = sIteratorBefore.MoveToNext()) { | 283 pNode = sIteratorBefore.MoveToNext()) { |
| 284 CXFA_Node* pDataNode = pNode->GetBindData(); | 284 CXFA_Node* pDataNode = pNode->GetBindData(); |
| 285 if (!pDataNode) | 285 if (!pDataNode) |
| 286 continue; | 286 continue; |
| 287 | 287 |
| 288 sBefore.insert(pDataNode); | 288 sBefore.insert(pDataNode); |
| 289 } | 289 } |
| 290 ReorderDataNodes(sNew, sBefore, TRUE); | 290 ReorderDataNodes(sNew, sBefore, true); |
| 291 } | 291 } |
| 292 } | 292 } |
| 293 } | 293 } |
| 294 | 294 |
| 295 void RemoveItem(CXFA_Node* pInstMgrNode, | 295 void RemoveItem(CXFA_Node* pInstMgrNode, |
| 296 CXFA_Node* pRemoveInstance, | 296 CXFA_Node* pRemoveInstance, |
| 297 FX_BOOL bRemoveDataBinding = TRUE) { | 297 bool bRemoveDataBinding = true) { |
| 298 pInstMgrNode->GetNodeItem(XFA_NODEITEM_Parent)->RemoveChild(pRemoveInstance); | 298 pInstMgrNode->GetNodeItem(XFA_NODEITEM_Parent)->RemoveChild(pRemoveInstance); |
| 299 if (!bRemoveDataBinding) | 299 if (!bRemoveDataBinding) |
| 300 return; | 300 return; |
| 301 | 301 |
| 302 CXFA_NodeIteratorTemplate<CXFA_Node, CXFA_TraverseStrategy_XFAContainerNode> | 302 CXFA_NodeIteratorTemplate<CXFA_Node, CXFA_TraverseStrategy_XFAContainerNode> |
| 303 sIterator(pRemoveInstance); | 303 sIterator(pRemoveInstance); |
| 304 for (CXFA_Node* pFormNode = sIterator.GetCurrent(); pFormNode; | 304 for (CXFA_Node* pFormNode = sIterator.GetCurrent(); pFormNode; |
| 305 pFormNode = sIterator.MoveToNext()) { | 305 pFormNode = sIterator.MoveToNext()) { |
| 306 CXFA_Node* pDataNode = pFormNode->GetBindData(); | 306 CXFA_Node* pDataNode = pFormNode->GetBindData(); |
| 307 if (!pDataNode) | 307 if (!pDataNode) |
| 308 continue; | 308 continue; |
| 309 | 309 |
| 310 if (pDataNode->RemoveBindItem(pFormNode) == 0) { | 310 if (pDataNode->RemoveBindItem(pFormNode) == 0) { |
| 311 if (CXFA_Node* pDataParent = | 311 if (CXFA_Node* pDataParent = |
| 312 pDataNode->GetNodeItem(XFA_NODEITEM_Parent)) { | 312 pDataNode->GetNodeItem(XFA_NODEITEM_Parent)) { |
| 313 pDataParent->RemoveChild(pDataNode); | 313 pDataParent->RemoveChild(pDataNode); |
| 314 } | 314 } |
| 315 } | 315 } |
| 316 pFormNode->SetObject(XFA_ATTRIBUTE_BindingNode, nullptr); | 316 pFormNode->SetObject(XFA_ATTRIBUTE_BindingNode, nullptr); |
| 317 } | 317 } |
| 318 } | 318 } |
| 319 | 319 |
| 320 CXFA_Node* CreateInstance(CXFA_Node* pInstMgrNode, FX_BOOL bDataMerge) { | 320 CXFA_Node* CreateInstance(CXFA_Node* pInstMgrNode, bool bDataMerge) { |
| 321 CXFA_Document* pDocument = pInstMgrNode->GetDocument(); | 321 CXFA_Document* pDocument = pInstMgrNode->GetDocument(); |
| 322 CXFA_Node* pTemplateNode = pInstMgrNode->GetTemplateNode(); | 322 CXFA_Node* pTemplateNode = pInstMgrNode->GetTemplateNode(); |
| 323 CXFA_Node* pFormParent = pInstMgrNode->GetNodeItem(XFA_NODEITEM_Parent); | 323 CXFA_Node* pFormParent = pInstMgrNode->GetNodeItem(XFA_NODEITEM_Parent); |
| 324 CXFA_Node* pDataScope = nullptr; | 324 CXFA_Node* pDataScope = nullptr; |
| 325 for (CXFA_Node* pRootBoundNode = pFormParent; | 325 for (CXFA_Node* pRootBoundNode = pFormParent; |
| 326 pRootBoundNode && pRootBoundNode->IsContainerNode(); | 326 pRootBoundNode && pRootBoundNode->IsContainerNode(); |
| 327 pRootBoundNode = pRootBoundNode->GetNodeItem(XFA_NODEITEM_Parent)) { | 327 pRootBoundNode = pRootBoundNode->GetNodeItem(XFA_NODEITEM_Parent)) { |
| 328 pDataScope = pRootBoundNode->GetBindData(); | 328 pDataScope = pRootBoundNode->GetBindData(); |
| 329 if (pDataScope) | 329 if (pDataScope) |
| 330 break; | 330 break; |
| 331 } | 331 } |
| 332 if (!pDataScope) { | 332 if (!pDataScope) { |
| 333 pDataScope = ToNode(pDocument->GetXFAObject(XFA_HASHCODE_Record)); | 333 pDataScope = ToNode(pDocument->GetXFAObject(XFA_HASHCODE_Record)); |
| 334 ASSERT(pDataScope); | 334 ASSERT(pDataScope); |
| 335 } | 335 } |
| 336 CXFA_Node* pInstance = pDocument->DataMerge_CopyContainer( | 336 CXFA_Node* pInstance = pDocument->DataMerge_CopyContainer( |
| 337 pTemplateNode, pFormParent, pDataScope, TRUE, bDataMerge, TRUE); | 337 pTemplateNode, pFormParent, pDataScope, true, bDataMerge, true); |
| 338 if (pInstance) { | 338 if (pInstance) { |
| 339 pDocument->DataMerge_UpdateBindingRelations(pInstance); | 339 pDocument->DataMerge_UpdateBindingRelations(pInstance); |
| 340 pFormParent->RemoveChild(pInstance); | 340 pFormParent->RemoveChild(pInstance); |
| 341 } | 341 } |
| 342 return pInstance; | 342 return pInstance; |
| 343 } | 343 } |
| 344 | 344 |
| 345 struct XFA_ExecEventParaInfo { | 345 struct XFA_ExecEventParaInfo { |
| 346 public: | 346 public: |
| 347 uint32_t m_uHash; | 347 uint32_t m_uHash; |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 while (pNode) { | 504 while (pNode) { |
| 505 CXFA_Node* pNext = pNode->m_pNext; | 505 CXFA_Node* pNext = pNode->m_pNext; |
| 506 pNode->m_pParent = nullptr; | 506 pNode->m_pParent = nullptr; |
| 507 delete pNode; | 507 delete pNode; |
| 508 pNode = pNext; | 508 pNode = pNext; |
| 509 } | 509 } |
| 510 if (m_pXMLNode && IsOwnXMLNode()) | 510 if (m_pXMLNode && IsOwnXMLNode()) |
| 511 m_pXMLNode->Release(); | 511 m_pXMLNode->Release(); |
| 512 } | 512 } |
| 513 | 513 |
| 514 CXFA_Node* CXFA_Node::Clone(FX_BOOL bRecursive) { | 514 CXFA_Node* CXFA_Node::Clone(bool bRecursive) { |
| 515 CXFA_Node* pClone = m_pDocument->CreateNode(m_ePacket, m_elementType); | 515 CXFA_Node* pClone = m_pDocument->CreateNode(m_ePacket, m_elementType); |
| 516 if (!pClone) | 516 if (!pClone) |
| 517 return nullptr; | 517 return nullptr; |
| 518 | 518 |
| 519 MergeAllData(pClone); | 519 MergeAllData(pClone); |
| 520 pClone->UpdateNameHash(); | 520 pClone->UpdateNameHash(); |
| 521 if (IsNeedSavingXMLNode()) { | 521 if (IsNeedSavingXMLNode()) { |
| 522 CFDE_XMLNode* pCloneXML = nullptr; | 522 CFDE_XMLNode* pCloneXML = nullptr; |
| 523 if (IsAttributeInXML()) { | 523 if (IsAttributeInXML()) { |
| 524 CFX_WideString wsName; | 524 CFX_WideString wsName; |
| 525 GetAttribute(XFA_ATTRIBUTE_Name, wsName, FALSE); | 525 GetAttribute(XFA_ATTRIBUTE_Name, wsName, false); |
| 526 CFDE_XMLElement* pCloneXMLElement = new CFDE_XMLElement(wsName); | 526 CFDE_XMLElement* pCloneXMLElement = new CFDE_XMLElement(wsName); |
| 527 CFX_WideStringC wsValue = GetCData(XFA_ATTRIBUTE_Value); | 527 CFX_WideStringC wsValue = GetCData(XFA_ATTRIBUTE_Value); |
| 528 if (!wsValue.IsEmpty()) { | 528 if (!wsValue.IsEmpty()) { |
| 529 pCloneXMLElement->SetTextData(CFX_WideString(wsValue)); | 529 pCloneXMLElement->SetTextData(CFX_WideString(wsValue)); |
| 530 } | 530 } |
| 531 pCloneXML = pCloneXMLElement; | 531 pCloneXML = pCloneXMLElement; |
| 532 pCloneXMLElement = nullptr; | 532 pCloneXMLElement = nullptr; |
| 533 pClone->SetEnum(XFA_ATTRIBUTE_Contains, XFA_ATTRIBUTEENUM_Unknown); | 533 pClone->SetEnum(XFA_ATTRIBUTE_Contains, XFA_ATTRIBUTEENUM_Unknown); |
| 534 } else { | 534 } else { |
| 535 pCloneXML = m_pXMLNode->Clone(FALSE); | 535 pCloneXML = m_pXMLNode->Clone(false); |
| 536 } | 536 } |
| 537 pClone->SetXMLMappingNode(pCloneXML); | 537 pClone->SetXMLMappingNode(pCloneXML); |
| 538 pClone->SetFlag(XFA_NodeFlag_OwnXMLNode, false); | 538 pClone->SetFlag(XFA_NodeFlag_OwnXMLNode, false); |
| 539 } | 539 } |
| 540 if (bRecursive) { | 540 if (bRecursive) { |
| 541 for (CXFA_Node* pChild = GetNodeItem(XFA_NODEITEM_FirstChild); pChild; | 541 for (CXFA_Node* pChild = GetNodeItem(XFA_NODEITEM_FirstChild); pChild; |
| 542 pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { | 542 pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { |
| 543 pClone->InsertChild(pChild->Clone(bRecursive)); | 543 pClone->InsertChild(pChild->Clone(bRecursive)); |
| 544 } | 544 } |
| 545 } | 545 } |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 686 return nodes.GetSize(); | 686 return nodes.GetSize(); |
| 687 } | 687 } |
| 688 | 688 |
| 689 CXFA_Node* CXFA_Node::CreateSamePacketNode(XFA_Element eType, | 689 CXFA_Node* CXFA_Node::CreateSamePacketNode(XFA_Element eType, |
| 690 uint32_t dwFlags) { | 690 uint32_t dwFlags) { |
| 691 CXFA_Node* pNode = m_pDocument->CreateNode(m_ePacket, eType); | 691 CXFA_Node* pNode = m_pDocument->CreateNode(m_ePacket, eType); |
| 692 pNode->SetFlag(dwFlags, true); | 692 pNode->SetFlag(dwFlags, true); |
| 693 return pNode; | 693 return pNode; |
| 694 } | 694 } |
| 695 | 695 |
| 696 CXFA_Node* CXFA_Node::CloneTemplateToForm(FX_BOOL bRecursive) { | 696 CXFA_Node* CXFA_Node::CloneTemplateToForm(bool bRecursive) { |
| 697 ASSERT(m_ePacket == XFA_XDPPACKET_Template); | 697 ASSERT(m_ePacket == XFA_XDPPACKET_Template); |
| 698 CXFA_Node* pClone = | 698 CXFA_Node* pClone = |
| 699 m_pDocument->CreateNode(XFA_XDPPACKET_Form, m_elementType); | 699 m_pDocument->CreateNode(XFA_XDPPACKET_Form, m_elementType); |
| 700 if (!pClone) | 700 if (!pClone) |
| 701 return nullptr; | 701 return nullptr; |
| 702 | 702 |
| 703 pClone->SetTemplateNode(this); | 703 pClone->SetTemplateNode(this); |
| 704 pClone->UpdateNameHash(); | 704 pClone->UpdateNameHash(); |
| 705 pClone->SetXMLMappingNode(GetXMLMappingNode()); | 705 pClone->SetXMLMappingNode(GetXMLMappingNode()); |
| 706 if (bRecursive) { | 706 if (bRecursive) { |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 789 } | 789 } |
| 790 CXFA_Node* pOldFormItem = | 790 CXFA_Node* pOldFormItem = |
| 791 static_cast<CXFA_Node*>(GetObject(XFA_ATTRIBUTE_BindingNode)); | 791 static_cast<CXFA_Node*>(GetObject(XFA_ATTRIBUTE_BindingNode)); |
| 792 if (pOldFormItem == pFormNode) { | 792 if (pOldFormItem == pFormNode) { |
| 793 SetObject(XFA_ATTRIBUTE_BindingNode, nullptr); | 793 SetObject(XFA_ATTRIBUTE_BindingNode, nullptr); |
| 794 pOldFormItem = nullptr; | 794 pOldFormItem = nullptr; |
| 795 } | 795 } |
| 796 return pOldFormItem ? 1 : 0; | 796 return pOldFormItem ? 1 : 0; |
| 797 } | 797 } |
| 798 | 798 |
| 799 FX_BOOL CXFA_Node::HasBindItem() { | 799 bool CXFA_Node::HasBindItem() { |
| 800 return GetPacketID() == XFA_XDPPACKET_Datasets && | 800 return GetPacketID() == XFA_XDPPACKET_Datasets && |
| 801 GetObject(XFA_ATTRIBUTE_BindingNode); | 801 GetObject(XFA_ATTRIBUTE_BindingNode); |
| 802 } | 802 } |
| 803 | 803 |
| 804 CXFA_WidgetData* CXFA_Node::GetWidgetData() { | 804 CXFA_WidgetData* CXFA_Node::GetWidgetData() { |
| 805 return (CXFA_WidgetData*)GetObject(XFA_ATTRIBUTE_WidgetData); | 805 return (CXFA_WidgetData*)GetObject(XFA_ATTRIBUTE_WidgetData); |
| 806 } | 806 } |
| 807 | 807 |
| 808 CXFA_WidgetData* CXFA_Node::GetContainerWidgetData() { | 808 CXFA_WidgetData* CXFA_Node::GetContainerWidgetData() { |
| 809 if (GetPacketID() != XFA_XDPPACKET_Form) | 809 if (GetPacketID() != XFA_XDPPACKET_Form) |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 862 (pGrandNode && pGrandNode->GetElementType() == XFA_Element::Value) | 862 (pGrandNode && pGrandNode->GetElementType() == XFA_Element::Value) |
| 863 ? pGrandNode | 863 ? pGrandNode |
| 864 : nullptr; | 864 : nullptr; |
| 865 } | 865 } |
| 866 CXFA_Node* pParentOfValueNode = | 866 CXFA_Node* pParentOfValueNode = |
| 867 pValueNode ? pValueNode->GetNodeItem(XFA_NODEITEM_Parent) : nullptr; | 867 pValueNode ? pValueNode->GetNodeItem(XFA_NODEITEM_Parent) : nullptr; |
| 868 return pParentOfValueNode ? pParentOfValueNode->GetContainerWidgetData() | 868 return pParentOfValueNode ? pParentOfValueNode->GetContainerWidgetData() |
| 869 : nullptr; | 869 : nullptr; |
| 870 } | 870 } |
| 871 | 871 |
| 872 FX_BOOL CXFA_Node::GetLocaleName(CFX_WideString& wsLocaleName) { | 872 bool CXFA_Node::GetLocaleName(CFX_WideString& wsLocaleName) { |
| 873 CXFA_Node* pForm = GetDocument()->GetXFAObject(XFA_HASHCODE_Form)->AsNode(); | 873 CXFA_Node* pForm = GetDocument()->GetXFAObject(XFA_HASHCODE_Form)->AsNode(); |
| 874 CXFA_Node* pTopSubform = pForm->GetFirstChildByClass(XFA_Element::Subform); | 874 CXFA_Node* pTopSubform = pForm->GetFirstChildByClass(XFA_Element::Subform); |
| 875 ASSERT(pTopSubform); | 875 ASSERT(pTopSubform); |
| 876 CXFA_Node* pLocaleNode = this; | 876 CXFA_Node* pLocaleNode = this; |
| 877 FX_BOOL bLocale = FALSE; | 877 bool bLocale = false; |
| 878 do { | 878 do { |
| 879 bLocale = pLocaleNode->TryCData(XFA_ATTRIBUTE_Locale, wsLocaleName, FALSE); | 879 bLocale = pLocaleNode->TryCData(XFA_ATTRIBUTE_Locale, wsLocaleName, false); |
| 880 if (!bLocale) { | 880 if (!bLocale) { |
| 881 pLocaleNode = pLocaleNode->GetNodeItem(XFA_NODEITEM_Parent); | 881 pLocaleNode = pLocaleNode->GetNodeItem(XFA_NODEITEM_Parent); |
| 882 } | 882 } |
| 883 } while (pLocaleNode && pLocaleNode != pTopSubform && !bLocale); | 883 } while (pLocaleNode && pLocaleNode != pTopSubform && !bLocale); |
| 884 if (bLocale) | 884 if (bLocale) |
| 885 return TRUE; | 885 return true; |
| 886 CXFA_Node* pConfig = ToNode(GetDocument()->GetXFAObject(XFA_HASHCODE_Config)); | 886 CXFA_Node* pConfig = ToNode(GetDocument()->GetXFAObject(XFA_HASHCODE_Config)); |
| 887 wsLocaleName = GetDocument()->GetLocalMgr()->GetConfigLocaleName(pConfig); | 887 wsLocaleName = GetDocument()->GetLocalMgr()->GetConfigLocaleName(pConfig); |
| 888 if (!wsLocaleName.IsEmpty()) | 888 if (!wsLocaleName.IsEmpty()) |
| 889 return TRUE; | 889 return true; |
| 890 if (pTopSubform && | 890 if (pTopSubform && |
| 891 pTopSubform->TryCData(XFA_ATTRIBUTE_Locale, wsLocaleName, FALSE)) { | 891 pTopSubform->TryCData(XFA_ATTRIBUTE_Locale, wsLocaleName, false)) { |
| 892 return TRUE; | 892 return true; |
| 893 } | 893 } |
| 894 IFX_Locale* pLocale = GetDocument()->GetLocalMgr()->GetDefLocale(); | 894 IFX_Locale* pLocale = GetDocument()->GetLocalMgr()->GetDefLocale(); |
| 895 if (pLocale) { | 895 if (pLocale) { |
| 896 wsLocaleName = pLocale->GetName(); | 896 wsLocaleName = pLocale->GetName(); |
| 897 return TRUE; | 897 return true; |
| 898 } | 898 } |
| 899 return FALSE; | 899 return false; |
| 900 } | 900 } |
| 901 | 901 |
| 902 XFA_ATTRIBUTEENUM CXFA_Node::GetIntact() { | 902 XFA_ATTRIBUTEENUM CXFA_Node::GetIntact() { |
| 903 CXFA_Node* pKeep = GetFirstChildByClass(XFA_Element::Keep); | 903 CXFA_Node* pKeep = GetFirstChildByClass(XFA_Element::Keep); |
| 904 XFA_ATTRIBUTEENUM eLayoutType = GetEnum(XFA_ATTRIBUTE_Layout); | 904 XFA_ATTRIBUTEENUM eLayoutType = GetEnum(XFA_ATTRIBUTE_Layout); |
| 905 if (pKeep) { | 905 if (pKeep) { |
| 906 XFA_ATTRIBUTEENUM eIntact; | 906 XFA_ATTRIBUTEENUM eIntact; |
| 907 if (pKeep->TryEnum(XFA_ATTRIBUTE_Intact, eIntact, FALSE)) { | 907 if (pKeep->TryEnum(XFA_ATTRIBUTE_Intact, eIntact, false)) { |
| 908 if (eIntact == XFA_ATTRIBUTEENUM_None && | 908 if (eIntact == XFA_ATTRIBUTEENUM_None && |
| 909 eLayoutType == XFA_ATTRIBUTEENUM_Row && | 909 eLayoutType == XFA_ATTRIBUTEENUM_Row && |
| 910 m_pDocument->GetCurVersionMode() < XFA_VERSION_208) { | 910 m_pDocument->GetCurVersionMode() < XFA_VERSION_208) { |
| 911 CXFA_Node* pPreviewRow = GetNodeItem(XFA_NODEITEM_PrevSibling, | 911 CXFA_Node* pPreviewRow = GetNodeItem(XFA_NODEITEM_PrevSibling, |
| 912 XFA_ObjectType::ContainerNode); | 912 XFA_ObjectType::ContainerNode); |
| 913 if (pPreviewRow && | 913 if (pPreviewRow && |
| 914 pPreviewRow->GetEnum(XFA_ATTRIBUTE_Layout) == | 914 pPreviewRow->GetEnum(XFA_ATTRIBUTE_Layout) == |
| 915 XFA_ATTRIBUTEENUM_Row) { | 915 XFA_ATTRIBUTEENUM_Row) { |
| 916 XFA_ATTRIBUTEENUM eValue; | 916 XFA_ATTRIBUTEENUM eValue; |
| 917 if (pKeep->TryEnum(XFA_ATTRIBUTE_Previous, eValue, FALSE) && | 917 if (pKeep->TryEnum(XFA_ATTRIBUTE_Previous, eValue, false) && |
| 918 (eValue == XFA_ATTRIBUTEENUM_ContentArea || | 918 (eValue == XFA_ATTRIBUTEENUM_ContentArea || |
| 919 eValue == XFA_ATTRIBUTEENUM_PageArea)) { | 919 eValue == XFA_ATTRIBUTEENUM_PageArea)) { |
| 920 return XFA_ATTRIBUTEENUM_ContentArea; | 920 return XFA_ATTRIBUTEENUM_ContentArea; |
| 921 } | 921 } |
| 922 CXFA_Node* pNode = | 922 CXFA_Node* pNode = |
| 923 pPreviewRow->GetFirstChildByClass(XFA_Element::Keep); | 923 pPreviewRow->GetFirstChildByClass(XFA_Element::Keep); |
| 924 if (pNode && pNode->TryEnum(XFA_ATTRIBUTE_Next, eValue, FALSE) && | 924 if (pNode && pNode->TryEnum(XFA_ATTRIBUTE_Next, eValue, false) && |
| 925 (eValue == XFA_ATTRIBUTEENUM_ContentArea || | 925 (eValue == XFA_ATTRIBUTEENUM_ContentArea || |
| 926 eValue == XFA_ATTRIBUTEENUM_PageArea)) { | 926 eValue == XFA_ATTRIBUTEENUM_PageArea)) { |
| 927 return XFA_ATTRIBUTEENUM_ContentArea; | 927 return XFA_ATTRIBUTEENUM_ContentArea; |
| 928 } | 928 } |
| 929 } | 929 } |
| 930 } | 930 } |
| 931 return eIntact; | 931 return eIntact; |
| 932 } | 932 } |
| 933 } | 933 } |
| 934 switch (GetElementType()) { | 934 switch (GetElementType()) { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 955 XFA_ATTRIBUTEENUM eParLayout = | 955 XFA_ATTRIBUTEENUM eParLayout = |
| 956 pParentNode->GetEnum(XFA_ATTRIBUTE_Layout); | 956 pParentNode->GetEnum(XFA_ATTRIBUTE_Layout); |
| 957 if (eParLayout == XFA_ATTRIBUTEENUM_Position || | 957 if (eParLayout == XFA_ATTRIBUTEENUM_Position || |
| 958 eParLayout == XFA_ATTRIBUTEENUM_Row || | 958 eParLayout == XFA_ATTRIBUTEENUM_Row || |
| 959 eParLayout == XFA_ATTRIBUTEENUM_Table) { | 959 eParLayout == XFA_ATTRIBUTEENUM_Table) { |
| 960 return XFA_ATTRIBUTEENUM_None; | 960 return XFA_ATTRIBUTEENUM_None; |
| 961 } | 961 } |
| 962 XFA_VERSION version = m_pDocument->GetCurVersionMode(); | 962 XFA_VERSION version = m_pDocument->GetCurVersionMode(); |
| 963 if (eParLayout == XFA_ATTRIBUTEENUM_Tb && version < XFA_VERSION_208) { | 963 if (eParLayout == XFA_ATTRIBUTEENUM_Tb && version < XFA_VERSION_208) { |
| 964 CXFA_Measurement measureH; | 964 CXFA_Measurement measureH; |
| 965 if (TryMeasure(XFA_ATTRIBUTE_H, measureH, FALSE)) | 965 if (TryMeasure(XFA_ATTRIBUTE_H, measureH, false)) |
| 966 return XFA_ATTRIBUTEENUM_ContentArea; | 966 return XFA_ATTRIBUTEENUM_ContentArea; |
| 967 } | 967 } |
| 968 return XFA_ATTRIBUTEENUM_None; | 968 return XFA_ATTRIBUTEENUM_None; |
| 969 } | 969 } |
| 970 return XFA_ATTRIBUTEENUM_ContentArea; | 970 return XFA_ATTRIBUTEENUM_ContentArea; |
| 971 } | 971 } |
| 972 case XFA_Element::Draw: | 972 case XFA_Element::Draw: |
| 973 return XFA_ATTRIBUTEENUM_ContentArea; | 973 return XFA_ATTRIBUTEENUM_ContentArea; |
| 974 default: | 974 default: |
| 975 break; | 975 break; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1016 CXFA_Object* pNode = resoveNodeRS.nodes[0]; | 1016 CXFA_Object* pNode = resoveNodeRS.nodes[0]; |
| 1017 pArguments->GetReturnValue()->Assign( | 1017 pArguments->GetReturnValue()->Assign( |
| 1018 pScriptContext->GetJSValueFromMap(pNode)); | 1018 pScriptContext->GetJSValueFromMap(pNode)); |
| 1019 } else { | 1019 } else { |
| 1020 const XFA_SCRIPTATTRIBUTEINFO* lpAttributeInfo = | 1020 const XFA_SCRIPTATTRIBUTEINFO* lpAttributeInfo = |
| 1021 resoveNodeRS.pScriptAttribute; | 1021 resoveNodeRS.pScriptAttribute; |
| 1022 if (lpAttributeInfo && lpAttributeInfo->eValueType == XFA_SCRIPT_Object) { | 1022 if (lpAttributeInfo && lpAttributeInfo->eValueType == XFA_SCRIPT_Object) { |
| 1023 std::unique_ptr<CFXJSE_Value> pValue( | 1023 std::unique_ptr<CFXJSE_Value> pValue( |
| 1024 new CFXJSE_Value(pScriptContext->GetRuntime())); | 1024 new CFXJSE_Value(pScriptContext->GetRuntime())); |
| 1025 (resoveNodeRS.nodes[0]->*(lpAttributeInfo->lpfnCallback))( | 1025 (resoveNodeRS.nodes[0]->*(lpAttributeInfo->lpfnCallback))( |
| 1026 pValue.get(), FALSE, (XFA_ATTRIBUTE)lpAttributeInfo->eAttribute); | 1026 pValue.get(), false, (XFA_ATTRIBUTE)lpAttributeInfo->eAttribute); |
| 1027 pArguments->GetReturnValue()->Assign(pValue.get()); | 1027 pArguments->GetReturnValue()->Assign(pValue.get()); |
| 1028 } else { | 1028 } else { |
| 1029 pArguments->GetReturnValue()->SetNull(); | 1029 pArguments->GetReturnValue()->SetNull(); |
| 1030 } | 1030 } |
| 1031 } | 1031 } |
| 1032 } | 1032 } |
| 1033 | 1033 |
| 1034 void CXFA_Node::Script_TreeClass_ResolveNodes(CFXJSE_Arguments* pArguments) { | 1034 void CXFA_Node::Script_TreeClass_ResolveNodes(CFXJSE_Arguments* pArguments) { |
| 1035 int32_t iLength = pArguments->GetLength(); | 1035 int32_t iLength = pArguments->GetLength(); |
| 1036 if (iLength != 1) { | 1036 if (iLength != 1) { |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1077 for (int32_t i = 0; i < objectArray.GetSize(); i++) { | 1077 for (int32_t i = 0; i < objectArray.GetSize(); i++) { |
| 1078 if (objectArray[i]->IsNode()) | 1078 if (objectArray[i]->IsNode()) |
| 1079 pNodeList->Append(objectArray[i]->AsNode()); | 1079 pNodeList->Append(objectArray[i]->AsNode()); |
| 1080 } | 1080 } |
| 1081 } | 1081 } |
| 1082 } | 1082 } |
| 1083 pValue->SetObject(pNodeList, pScriptContext->GetJseNormalClass()); | 1083 pValue->SetObject(pNodeList, pScriptContext->GetJseNormalClass()); |
| 1084 } | 1084 } |
| 1085 | 1085 |
| 1086 void CXFA_Node::Script_TreeClass_All(CFXJSE_Value* pValue, | 1086 void CXFA_Node::Script_TreeClass_All(CFXJSE_Value* pValue, |
| 1087 FX_BOOL bSetting, | 1087 bool bSetting, |
| 1088 XFA_ATTRIBUTE eAttribute) { | 1088 XFA_ATTRIBUTE eAttribute) { |
| 1089 if (bSetting) { | 1089 if (bSetting) { |
| 1090 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1090 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1091 } else { | 1091 } else { |
| 1092 uint32_t dwFlag = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL; | 1092 uint32_t dwFlag = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL; |
| 1093 CFX_WideString wsName; | 1093 CFX_WideString wsName; |
| 1094 GetAttribute(XFA_ATTRIBUTE_Name, wsName); | 1094 GetAttribute(XFA_ATTRIBUTE_Name, wsName); |
| 1095 CFX_WideString wsExpression = wsName + FX_WSTRC(L"[*]"); | 1095 CFX_WideString wsExpression = wsName + FX_WSTRC(L"[*]"); |
| 1096 Script_Som_ResolveNodeList(pValue, wsExpression, dwFlag); | 1096 Script_Som_ResolveNodeList(pValue, wsExpression, dwFlag); |
| 1097 } | 1097 } |
| 1098 } | 1098 } |
| 1099 | 1099 |
| 1100 void CXFA_Node::Script_TreeClass_Nodes(CFXJSE_Value* pValue, | 1100 void CXFA_Node::Script_TreeClass_Nodes(CFXJSE_Value* pValue, |
| 1101 FX_BOOL bSetting, | 1101 bool bSetting, |
| 1102 XFA_ATTRIBUTE eAttribute) { | 1102 XFA_ATTRIBUTE eAttribute) { |
| 1103 CXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); | 1103 CXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); |
| 1104 if (!pScriptContext) | 1104 if (!pScriptContext) |
| 1105 return; | 1105 return; |
| 1106 if (bSetting) { | 1106 if (bSetting) { |
| 1107 IXFA_AppProvider* pAppProvider = m_pDocument->GetNotify()->GetAppProvider(); | 1107 IXFA_AppProvider* pAppProvider = m_pDocument->GetNotify()->GetAppProvider(); |
| 1108 ASSERT(pAppProvider); | 1108 ASSERT(pAppProvider); |
| 1109 CFX_WideString wsMessage; | 1109 CFX_WideString wsMessage; |
| 1110 pAppProvider->LoadString(XFA_IDS_Unable_TO_SET, wsMessage); | 1110 pAppProvider->LoadString(XFA_IDS_Unable_TO_SET, wsMessage); |
| 1111 FXJSE_ThrowMessage( | 1111 FXJSE_ThrowMessage( |
| 1112 FX_UTF8Encode(wsMessage.c_str(), wsMessage.GetLength()).AsStringC()); | 1112 FX_UTF8Encode(wsMessage.c_str(), wsMessage.GetLength()).AsStringC()); |
| 1113 } else { | 1113 } else { |
| 1114 CXFA_AttachNodeList* pNodeList = new CXFA_AttachNodeList(m_pDocument, this); | 1114 CXFA_AttachNodeList* pNodeList = new CXFA_AttachNodeList(m_pDocument, this); |
| 1115 pValue->SetObject(pNodeList, pScriptContext->GetJseNormalClass()); | 1115 pValue->SetObject(pNodeList, pScriptContext->GetJseNormalClass()); |
| 1116 } | 1116 } |
| 1117 } | 1117 } |
| 1118 | 1118 |
| 1119 void CXFA_Node::Script_TreeClass_ClassAll(CFXJSE_Value* pValue, | 1119 void CXFA_Node::Script_TreeClass_ClassAll(CFXJSE_Value* pValue, |
| 1120 FX_BOOL bSetting, | 1120 bool bSetting, |
| 1121 XFA_ATTRIBUTE eAttribute) { | 1121 XFA_ATTRIBUTE eAttribute) { |
| 1122 if (bSetting) { | 1122 if (bSetting) { |
| 1123 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1123 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1124 } else { | 1124 } else { |
| 1125 uint32_t dwFlag = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL; | 1125 uint32_t dwFlag = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL; |
| 1126 CFX_WideString wsExpression = | 1126 CFX_WideString wsExpression = |
| 1127 FX_WSTRC(L"#") + GetClassName() + FX_WSTRC(L"[*]"); | 1127 FX_WSTRC(L"#") + GetClassName() + FX_WSTRC(L"[*]"); |
| 1128 Script_Som_ResolveNodeList(pValue, wsExpression, dwFlag); | 1128 Script_Som_ResolveNodeList(pValue, wsExpression, dwFlag); |
| 1129 } | 1129 } |
| 1130 } | 1130 } |
| 1131 | 1131 |
| 1132 void CXFA_Node::Script_TreeClass_Parent(CFXJSE_Value* pValue, | 1132 void CXFA_Node::Script_TreeClass_Parent(CFXJSE_Value* pValue, |
| 1133 FX_BOOL bSetting, | 1133 bool bSetting, |
| 1134 XFA_ATTRIBUTE eAttribute) { | 1134 XFA_ATTRIBUTE eAttribute) { |
| 1135 if (bSetting) { | 1135 if (bSetting) { |
| 1136 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1136 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1137 } else { | 1137 } else { |
| 1138 CXFA_Node* pParent = GetNodeItem(XFA_NODEITEM_Parent); | 1138 CXFA_Node* pParent = GetNodeItem(XFA_NODEITEM_Parent); |
| 1139 if (pParent) { | 1139 if (pParent) { |
| 1140 pValue->Assign( | 1140 pValue->Assign( |
| 1141 m_pDocument->GetScriptContext()->GetJSValueFromMap(pParent)); | 1141 m_pDocument->GetScriptContext()->GetJSValueFromMap(pParent)); |
| 1142 } else { | 1142 } else { |
| 1143 pValue->SetNull(); | 1143 pValue->SetNull(); |
| 1144 } | 1144 } |
| 1145 } | 1145 } |
| 1146 } | 1146 } |
| 1147 | 1147 |
| 1148 void CXFA_Node::Script_TreeClass_Index(CFXJSE_Value* pValue, | 1148 void CXFA_Node::Script_TreeClass_Index(CFXJSE_Value* pValue, |
| 1149 FX_BOOL bSetting, | 1149 bool bSetting, |
| 1150 XFA_ATTRIBUTE eAttribute) { | 1150 XFA_ATTRIBUTE eAttribute) { |
| 1151 if (bSetting) | 1151 if (bSetting) |
| 1152 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1152 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1153 else | 1153 else |
| 1154 pValue->SetInteger(GetNodeSameNameIndex()); | 1154 pValue->SetInteger(GetNodeSameNameIndex()); |
| 1155 } | 1155 } |
| 1156 | 1156 |
| 1157 void CXFA_Node::Script_TreeClass_ClassIndex(CFXJSE_Value* pValue, | 1157 void CXFA_Node::Script_TreeClass_ClassIndex(CFXJSE_Value* pValue, |
| 1158 FX_BOOL bSetting, | 1158 bool bSetting, |
| 1159 XFA_ATTRIBUTE eAttribute) { | 1159 XFA_ATTRIBUTE eAttribute) { |
| 1160 if (bSetting) | 1160 if (bSetting) |
| 1161 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1161 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1162 else | 1162 else |
| 1163 pValue->SetInteger(GetNodeSameClassIndex()); | 1163 pValue->SetInteger(GetNodeSameClassIndex()); |
| 1164 } | 1164 } |
| 1165 | 1165 |
| 1166 void CXFA_Node::Script_TreeClass_SomExpression(CFXJSE_Value* pValue, | 1166 void CXFA_Node::Script_TreeClass_SomExpression(CFXJSE_Value* pValue, |
| 1167 FX_BOOL bSetting, | 1167 bool bSetting, |
| 1168 XFA_ATTRIBUTE eAttribute) { | 1168 XFA_ATTRIBUTE eAttribute) { |
| 1169 if (bSetting) { | 1169 if (bSetting) { |
| 1170 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1170 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1171 } else { | 1171 } else { |
| 1172 CFX_WideString wsSOMExpression; | 1172 CFX_WideString wsSOMExpression; |
| 1173 GetSOMExpression(wsSOMExpression); | 1173 GetSOMExpression(wsSOMExpression); |
| 1174 pValue->SetString(FX_UTF8Encode(wsSOMExpression).AsStringC()); | 1174 pValue->SetString(FX_UTF8Encode(wsSOMExpression).AsStringC()); |
| 1175 } | 1175 } |
| 1176 } | 1176 } |
| 1177 | 1177 |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1266 } | 1266 } |
| 1267 CFX_WideString wsExpression; | 1267 CFX_WideString wsExpression; |
| 1268 bool bParent = true; | 1268 bool bParent = true; |
| 1269 int32_t iIndex = 0; | 1269 int32_t iIndex = 0; |
| 1270 wsExpression = | 1270 wsExpression = |
| 1271 CFX_WideString::FromUTF8(pArguments->GetUTF8String(0).AsStringC()); | 1271 CFX_WideString::FromUTF8(pArguments->GetUTF8String(0).AsStringC()); |
| 1272 if (iLength >= 2) | 1272 if (iLength >= 2) |
| 1273 bParent = !!pArguments->GetInt32(1); | 1273 bParent = !!pArguments->GetInt32(1); |
| 1274 if (iLength >= 3) | 1274 if (iLength >= 3) |
| 1275 iIndex = pArguments->GetInt32(2); | 1275 iIndex = pArguments->GetInt32(2); |
| 1276 FX_BOOL bHas = FALSE; | 1276 bool bHas = false; |
| 1277 const XFA_ATTRIBUTEINFO* pAttributeInfo = | 1277 const XFA_ATTRIBUTEINFO* pAttributeInfo = |
| 1278 XFA_GetAttributeByName(wsExpression.AsStringC()); | 1278 XFA_GetAttributeByName(wsExpression.AsStringC()); |
| 1279 CFX_WideString wsValue; | 1279 CFX_WideString wsValue; |
| 1280 if (pAttributeInfo) | 1280 if (pAttributeInfo) |
| 1281 bHas = HasAttribute(pAttributeInfo->eName); | 1281 bHas = HasAttribute(pAttributeInfo->eName); |
| 1282 if (!bHas) { | 1282 if (!bHas) { |
| 1283 XFA_Element eType = XFA_GetElementTypeForName(wsExpression.AsStringC()); | 1283 XFA_Element eType = XFA_GetElementTypeForName(wsExpression.AsStringC()); |
| 1284 bHas = !!GetProperty(iIndex, eType); | 1284 bHas = !!GetProperty(iIndex, eType); |
| 1285 if (!bHas && bParent && m_pParent) { | 1285 if (!bHas && bParent && m_pParent) { |
| 1286 // Also check on the parent. | 1286 // Also check on the parent. |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1318 CFDE_XMLNode* pXMLNode = nullptr; | 1318 CFDE_XMLNode* pXMLNode = nullptr; |
| 1319 int32_t iParserStatus = | 1319 int32_t iParserStatus = |
| 1320 pParser->ParseXMLData(wsExpression, pXMLNode, nullptr); | 1320 pParser->ParseXMLData(wsExpression, pXMLNode, nullptr); |
| 1321 if (iParserStatus != XFA_PARSESTATUS_Done || !pXMLNode) | 1321 if (iParserStatus != XFA_PARSESTATUS_Done || !pXMLNode) |
| 1322 return; | 1322 return; |
| 1323 if (bIgnoreRoot && | 1323 if (bIgnoreRoot && |
| 1324 (pXMLNode->GetType() != FDE_XMLNODE_Element || | 1324 (pXMLNode->GetType() != FDE_XMLNODE_Element || |
| 1325 XFA_RecognizeRichText(static_cast<CFDE_XMLElement*>(pXMLNode)))) { | 1325 XFA_RecognizeRichText(static_cast<CFDE_XMLElement*>(pXMLNode)))) { |
| 1326 bIgnoreRoot = false; | 1326 bIgnoreRoot = false; |
| 1327 } | 1327 } |
| 1328 CXFA_Node* pFakeRoot = Clone(FALSE); | 1328 CXFA_Node* pFakeRoot = Clone(false); |
| 1329 CFX_WideStringC wsContentType = GetCData(XFA_ATTRIBUTE_ContentType); | 1329 CFX_WideStringC wsContentType = GetCData(XFA_ATTRIBUTE_ContentType); |
| 1330 if (!wsContentType.IsEmpty()) { | 1330 if (!wsContentType.IsEmpty()) { |
| 1331 pFakeRoot->SetCData(XFA_ATTRIBUTE_ContentType, | 1331 pFakeRoot->SetCData(XFA_ATTRIBUTE_ContentType, |
| 1332 CFX_WideString(wsContentType)); | 1332 CFX_WideString(wsContentType)); |
| 1333 } | 1333 } |
| 1334 CFDE_XMLNode* pFakeXMLRoot = pFakeRoot->GetXMLMappingNode(); | 1334 CFDE_XMLNode* pFakeXMLRoot = pFakeRoot->GetXMLMappingNode(); |
| 1335 if (!pFakeXMLRoot) { | 1335 if (!pFakeXMLRoot) { |
| 1336 CFDE_XMLNode* pThisXMLRoot = GetXMLMappingNode(); | 1336 CFDE_XMLNode* pThisXMLRoot = GetXMLMappingNode(); |
| 1337 pFakeXMLRoot = pThisXMLRoot ? pThisXMLRoot->Clone(FALSE) : nullptr; | 1337 pFakeXMLRoot = pThisXMLRoot ? pThisXMLRoot->Clone(false) : nullptr; |
| 1338 } | 1338 } |
| 1339 if (!pFakeXMLRoot) | 1339 if (!pFakeXMLRoot) |
| 1340 pFakeXMLRoot = new CFDE_XMLElement(CFX_WideString(GetClassName())); | 1340 pFakeXMLRoot = new CFDE_XMLElement(CFX_WideString(GetClassName())); |
| 1341 | 1341 |
| 1342 if (bIgnoreRoot) { | 1342 if (bIgnoreRoot) { |
| 1343 CFDE_XMLNode* pXMLChild = pXMLNode->GetNodeItem(CFDE_XMLNode::FirstChild); | 1343 CFDE_XMLNode* pXMLChild = pXMLNode->GetNodeItem(CFDE_XMLNode::FirstChild); |
| 1344 while (pXMLChild) { | 1344 while (pXMLChild) { |
| 1345 CFDE_XMLNode* pXMLSibling = | 1345 CFDE_XMLNode* pXMLSibling = |
| 1346 pXMLChild->GetNodeItem(CFDE_XMLNode::NextSibling); | 1346 pXMLChild->GetNodeItem(CFDE_XMLNode::NextSibling); |
| 1347 pXMLNode->RemoveChildNode(pXMLChild); | 1347 pXMLNode->RemoveChildNode(pXMLChild); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1379 GetElementType() == XFA_Element::ExData) { | 1379 GetElementType() == XFA_Element::ExData) { |
| 1380 CFDE_XMLNode* pTempXMLNode = GetXMLMappingNode(); | 1380 CFDE_XMLNode* pTempXMLNode = GetXMLMappingNode(); |
| 1381 SetXMLMappingNode(pFakeXMLRoot); | 1381 SetXMLMappingNode(pFakeXMLRoot); |
| 1382 SetFlag(XFA_NodeFlag_OwnXMLNode, false); | 1382 SetFlag(XFA_NodeFlag_OwnXMLNode, false); |
| 1383 if (pTempXMLNode && !pTempXMLNode->GetNodeItem(CFDE_XMLNode::Parent)) { | 1383 if (pTempXMLNode && !pTempXMLNode->GetNodeItem(CFDE_XMLNode::Parent)) { |
| 1384 pFakeXMLRoot = pTempXMLNode; | 1384 pFakeXMLRoot = pTempXMLNode; |
| 1385 } else { | 1385 } else { |
| 1386 pFakeXMLRoot = nullptr; | 1386 pFakeXMLRoot = nullptr; |
| 1387 } | 1387 } |
| 1388 } | 1388 } |
| 1389 MoveBufferMapData(pFakeRoot, this, XFA_CalcData, TRUE); | 1389 MoveBufferMapData(pFakeRoot, this, XFA_CalcData, true); |
| 1390 } else { | 1390 } else { |
| 1391 CXFA_Node* pChild = pFakeRoot->GetNodeItem(XFA_NODEITEM_FirstChild); | 1391 CXFA_Node* pChild = pFakeRoot->GetNodeItem(XFA_NODEITEM_FirstChild); |
| 1392 while (pChild) { | 1392 while (pChild) { |
| 1393 CXFA_Node* pItem = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); | 1393 CXFA_Node* pItem = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); |
| 1394 pFakeRoot->RemoveChild(pChild); | 1394 pFakeRoot->RemoveChild(pChild); |
| 1395 InsertChild(pChild); | 1395 InsertChild(pChild); |
| 1396 pChild->SetFlag(XFA_NodeFlag_Initialized, true); | 1396 pChild->SetFlag(XFA_NodeFlag_Initialized, true); |
| 1397 pChild = pItem; | 1397 pChild = pItem; |
| 1398 } | 1398 } |
| 1399 } | 1399 } |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1434 CFDE_XMLNode* pElement = nullptr; | 1434 CFDE_XMLNode* pElement = nullptr; |
| 1435 if (GetPacketID() == XFA_XDPPACKET_Datasets) { | 1435 if (GetPacketID() == XFA_XDPPACKET_Datasets) { |
| 1436 pElement = GetXMLMappingNode(); | 1436 pElement = GetXMLMappingNode(); |
| 1437 if (!pElement || pElement->GetType() != FDE_XMLNODE_Element) { | 1437 if (!pElement || pElement->GetType() != FDE_XMLNODE_Element) { |
| 1438 pArguments->GetReturnValue()->SetString(bsXMLHeader); | 1438 pArguments->GetReturnValue()->SetString(bsXMLHeader); |
| 1439 return; | 1439 return; |
| 1440 } | 1440 } |
| 1441 XFA_DataExporter_DealWithDataGroupNode(this); | 1441 XFA_DataExporter_DealWithDataGroupNode(this); |
| 1442 } | 1442 } |
| 1443 std::unique_ptr<IFX_MemoryStream, ReleaseDeleter<IFX_MemoryStream>> | 1443 std::unique_ptr<IFX_MemoryStream, ReleaseDeleter<IFX_MemoryStream>> |
| 1444 pMemoryStream(FX_CreateMemoryStream(TRUE)); | 1444 pMemoryStream(FX_CreateMemoryStream(true)); |
| 1445 std::unique_ptr<IFX_Stream, ReleaseDeleter<IFX_Stream>> pStream( | 1445 std::unique_ptr<IFX_Stream, ReleaseDeleter<IFX_Stream>> pStream( |
| 1446 IFX_Stream::CreateStream( | 1446 IFX_Stream::CreateStream( |
| 1447 static_cast<IFX_SeekableWriteStream*>(pMemoryStream.get()), | 1447 static_cast<IFX_SeekableWriteStream*>(pMemoryStream.get()), |
| 1448 FX_STREAMACCESS_Text | FX_STREAMACCESS_Write | | 1448 FX_STREAMACCESS_Text | FX_STREAMACCESS_Write | |
| 1449 FX_STREAMACCESS_Append)); | 1449 FX_STREAMACCESS_Append)); |
| 1450 if (!pStream) { | 1450 if (!pStream) { |
| 1451 pArguments->GetReturnValue()->SetString(bsXMLHeader); | 1451 pArguments->GetReturnValue()->SetString(bsXMLHeader); |
| 1452 return; | 1452 return; |
| 1453 } | 1453 } |
| 1454 pStream->SetCodePage(FX_CODEPAGE_UTF8); | 1454 pStream->SetCodePage(FX_CODEPAGE_UTF8); |
| 1455 pStream->WriteData(bsXMLHeader.raw_str(), bsXMLHeader.GetLength()); | 1455 pStream->WriteData(bsXMLHeader.raw_str(), bsXMLHeader.GetLength()); |
| 1456 if (GetPacketID() == XFA_XDPPACKET_Form) | 1456 if (GetPacketID() == XFA_XDPPACKET_Form) |
| 1457 XFA_DataExporter_RegenerateFormFile(this, pStream.get(), nullptr, TRUE); | 1457 XFA_DataExporter_RegenerateFormFile(this, pStream.get(), nullptr, true); |
| 1458 else | 1458 else |
| 1459 pElement->SaveXMLNode(pStream.get()); | 1459 pElement->SaveXMLNode(pStream.get()); |
| 1460 // TODO(weili): Check whether we need to save pretty print XML, pdfium:501. | 1460 // TODO(weili): Check whether we need to save pretty print XML, pdfium:501. |
| 1461 // For now, just put it here to avoid unused variable warning. | 1461 // For now, just put it here to avoid unused variable warning. |
| 1462 (void)bPrettyMode; | 1462 (void)bPrettyMode; |
| 1463 pArguments->GetReturnValue()->SetString( | 1463 pArguments->GetReturnValue()->SetString( |
| 1464 CFX_ByteStringC(pMemoryStream->GetBuffer(), pMemoryStream->GetSize())); | 1464 CFX_ByteStringC(pMemoryStream->GetBuffer(), pMemoryStream->GetSize())); |
| 1465 return; | 1465 return; |
| 1466 } | 1466 } |
| 1467 pArguments->GetReturnValue()->SetString(""); | 1467 pArguments->GetReturnValue()->SetString(""); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1491 pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); | 1491 pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); |
| 1492 if (iLength == 2) | 1492 if (iLength == 2) |
| 1493 wsName = CFX_WideString::FromUTF8(pArguments->GetUTF8String(1).AsStringC()); | 1493 wsName = CFX_WideString::FromUTF8(pArguments->GetUTF8String(1).AsStringC()); |
| 1494 // TODO(weili): check whether we need to implement this, pdfium:501. | 1494 // TODO(weili): check whether we need to implement this, pdfium:501. |
| 1495 // For now, just put the variables here to avoid unused variable warning. | 1495 // For now, just put the variables here to avoid unused variable warning. |
| 1496 (void)pNode; | 1496 (void)pNode; |
| 1497 (void)wsName; | 1497 (void)wsName; |
| 1498 } | 1498 } |
| 1499 | 1499 |
| 1500 void CXFA_Node::Script_NodeClass_Ns(CFXJSE_Value* pValue, | 1500 void CXFA_Node::Script_NodeClass_Ns(CFXJSE_Value* pValue, |
| 1501 FX_BOOL bSetting, | 1501 bool bSetting, |
| 1502 XFA_ATTRIBUTE eAttribute) { | 1502 XFA_ATTRIBUTE eAttribute) { |
| 1503 if (bSetting) { | 1503 if (bSetting) { |
| 1504 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1504 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1505 } else { | 1505 } else { |
| 1506 CFX_WideString wsNameSpace; | 1506 CFX_WideString wsNameSpace; |
| 1507 TryNamespace(wsNameSpace); | 1507 TryNamespace(wsNameSpace); |
| 1508 pValue->SetString(FX_UTF8Encode(wsNameSpace).AsStringC()); | 1508 pValue->SetString(FX_UTF8Encode(wsNameSpace).AsStringC()); |
| 1509 } | 1509 } |
| 1510 } | 1510 } |
| 1511 | 1511 |
| 1512 void CXFA_Node::Script_NodeClass_Model(CFXJSE_Value* pValue, | 1512 void CXFA_Node::Script_NodeClass_Model(CFXJSE_Value* pValue, |
| 1513 FX_BOOL bSetting, | 1513 bool bSetting, |
| 1514 XFA_ATTRIBUTE eAttribute) { | 1514 XFA_ATTRIBUTE eAttribute) { |
| 1515 if (bSetting) { | 1515 if (bSetting) { |
| 1516 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1516 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1517 } else { | 1517 } else { |
| 1518 pValue->Assign( | 1518 pValue->Assign( |
| 1519 m_pDocument->GetScriptContext()->GetJSValueFromMap(GetModelNode())); | 1519 m_pDocument->GetScriptContext()->GetJSValueFromMap(GetModelNode())); |
| 1520 } | 1520 } |
| 1521 } | 1521 } |
| 1522 | 1522 |
| 1523 void CXFA_Node::Script_NodeClass_IsContainer(CFXJSE_Value* pValue, | 1523 void CXFA_Node::Script_NodeClass_IsContainer(CFXJSE_Value* pValue, |
| 1524 FX_BOOL bSetting, | 1524 bool bSetting, |
| 1525 XFA_ATTRIBUTE eAttribute) { | 1525 XFA_ATTRIBUTE eAttribute) { |
| 1526 if (bSetting) | 1526 if (bSetting) |
| 1527 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1527 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1528 else | 1528 else |
| 1529 pValue->SetBoolean(IsContainerNode()); | 1529 pValue->SetBoolean(IsContainerNode()); |
| 1530 } | 1530 } |
| 1531 | 1531 |
| 1532 void CXFA_Node::Script_NodeClass_IsNull(CFXJSE_Value* pValue, | 1532 void CXFA_Node::Script_NodeClass_IsNull(CFXJSE_Value* pValue, |
| 1533 FX_BOOL bSetting, | 1533 bool bSetting, |
| 1534 XFA_ATTRIBUTE eAttribute) { | 1534 XFA_ATTRIBUTE eAttribute) { |
| 1535 if (bSetting) { | 1535 if (bSetting) { |
| 1536 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1536 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1537 } else { | 1537 } else { |
| 1538 if (GetElementType() == XFA_Element::Subform) { | 1538 if (GetElementType() == XFA_Element::Subform) { |
| 1539 pValue->SetBoolean(FALSE); | 1539 pValue->SetBoolean(false); |
| 1540 return; | 1540 return; |
| 1541 } | 1541 } |
| 1542 CFX_WideString strValue; | 1542 CFX_WideString strValue; |
| 1543 pValue->SetBoolean(!TryContent(strValue) || strValue.IsEmpty()); | 1543 pValue->SetBoolean(!TryContent(strValue) || strValue.IsEmpty()); |
| 1544 } | 1544 } |
| 1545 } | 1545 } |
| 1546 | 1546 |
| 1547 void CXFA_Node::Script_NodeClass_OneOfChild(CFXJSE_Value* pValue, | 1547 void CXFA_Node::Script_NodeClass_OneOfChild(CFXJSE_Value* pValue, |
| 1548 FX_BOOL bSetting, | 1548 bool bSetting, |
| 1549 XFA_ATTRIBUTE eAttribute) { | 1549 XFA_ATTRIBUTE eAttribute) { |
| 1550 if (bSetting) { | 1550 if (bSetting) { |
| 1551 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1551 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1552 } else { | 1552 } else { |
| 1553 CXFA_NodeArray properts; | 1553 CXFA_NodeArray properts; |
| 1554 int32_t iSize = GetNodeList(properts, XFA_NODEFILTER_OneOfProperty); | 1554 int32_t iSize = GetNodeList(properts, XFA_NODEFILTER_OneOfProperty); |
| 1555 if (iSize > 0) { | 1555 if (iSize > 0) { |
| 1556 pValue->Assign( | 1556 pValue->Assign( |
| 1557 m_pDocument->GetScriptContext()->GetJSValueFromMap(properts[0])); | 1557 m_pDocument->GetScriptContext()->GetJSValueFromMap(properts[0])); |
| 1558 } | 1558 } |
| (...skipping 26 matching lines...) Expand all Loading... |
| 1585 wsNameSpace = CFX_WideString::FromUTF8(bsNameSpace.AsStringC()); | 1585 wsNameSpace = CFX_WideString::FromUTF8(bsNameSpace.AsStringC()); |
| 1586 } | 1586 } |
| 1587 CFX_WideString wsNodeNameSpace; | 1587 CFX_WideString wsNodeNameSpace; |
| 1588 TryNamespace(wsNodeNameSpace); | 1588 TryNamespace(wsNodeNameSpace); |
| 1589 CFXJSE_Value* pValue = pArguments->GetReturnValue(); | 1589 CFXJSE_Value* pValue = pArguments->GetReturnValue(); |
| 1590 if (pValue) | 1590 if (pValue) |
| 1591 pValue->SetBoolean(wsNodeNameSpace == wsNameSpace); | 1591 pValue->SetBoolean(wsNodeNameSpace == wsNameSpace); |
| 1592 } | 1592 } |
| 1593 | 1593 |
| 1594 void CXFA_Node::Script_ModelClass_Context(CFXJSE_Value* pValue, | 1594 void CXFA_Node::Script_ModelClass_Context(CFXJSE_Value* pValue, |
| 1595 FX_BOOL bSetting, | 1595 bool bSetting, |
| 1596 XFA_ATTRIBUTE eAttribute) {} | 1596 XFA_ATTRIBUTE eAttribute) {} |
| 1597 | 1597 |
| 1598 void CXFA_Node::Script_ModelClass_AliasNode(CFXJSE_Value* pValue, | 1598 void CXFA_Node::Script_ModelClass_AliasNode(CFXJSE_Value* pValue, |
| 1599 FX_BOOL bSetting, | 1599 bool bSetting, |
| 1600 XFA_ATTRIBUTE eAttribute) {} | 1600 XFA_ATTRIBUTE eAttribute) {} |
| 1601 | 1601 |
| 1602 void CXFA_Node::Script_Attribute_Integer(CFXJSE_Value* pValue, | 1602 void CXFA_Node::Script_Attribute_Integer(CFXJSE_Value* pValue, |
| 1603 FX_BOOL bSetting, | 1603 bool bSetting, |
| 1604 XFA_ATTRIBUTE eAttribute) { | 1604 XFA_ATTRIBUTE eAttribute) { |
| 1605 if (bSetting) { | 1605 if (bSetting) { |
| 1606 SetInteger(eAttribute, pValue->ToInteger(), true); | 1606 SetInteger(eAttribute, pValue->ToInteger(), true); |
| 1607 } else { | 1607 } else { |
| 1608 pValue->SetInteger(GetInteger(eAttribute)); | 1608 pValue->SetInteger(GetInteger(eAttribute)); |
| 1609 } | 1609 } |
| 1610 } | 1610 } |
| 1611 | 1611 |
| 1612 void CXFA_Node::Script_Attribute_IntegerRead(CFXJSE_Value* pValue, | 1612 void CXFA_Node::Script_Attribute_IntegerRead(CFXJSE_Value* pValue, |
| 1613 FX_BOOL bSetting, | 1613 bool bSetting, |
| 1614 XFA_ATTRIBUTE eAttribute) { | 1614 XFA_ATTRIBUTE eAttribute) { |
| 1615 if (!bSetting) { | 1615 if (!bSetting) { |
| 1616 pValue->SetInteger(GetInteger(eAttribute)); | 1616 pValue->SetInteger(GetInteger(eAttribute)); |
| 1617 } else { | 1617 } else { |
| 1618 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1618 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1619 } | 1619 } |
| 1620 } | 1620 } |
| 1621 | 1621 |
| 1622 void CXFA_Node::Script_Attribute_BOOL(CFXJSE_Value* pValue, | 1622 void CXFA_Node::Script_Attribute_BOOL(CFXJSE_Value* pValue, |
| 1623 FX_BOOL bSetting, | 1623 bool bSetting, |
| 1624 XFA_ATTRIBUTE eAttribute) { | 1624 XFA_ATTRIBUTE eAttribute) { |
| 1625 if (bSetting) { | 1625 if (bSetting) { |
| 1626 SetBoolean(eAttribute, pValue->ToBoolean(), true); | 1626 SetBoolean(eAttribute, pValue->ToBoolean(), true); |
| 1627 } else { | 1627 } else { |
| 1628 pValue->SetString(GetBoolean(eAttribute) ? "1" : "0"); | 1628 pValue->SetString(GetBoolean(eAttribute) ? "1" : "0"); |
| 1629 } | 1629 } |
| 1630 } | 1630 } |
| 1631 | 1631 |
| 1632 void CXFA_Node::Script_Attribute_BOOLRead(CFXJSE_Value* pValue, | 1632 void CXFA_Node::Script_Attribute_BOOLRead(CFXJSE_Value* pValue, |
| 1633 FX_BOOL bSetting, | 1633 bool bSetting, |
| 1634 XFA_ATTRIBUTE eAttribute) { | 1634 XFA_ATTRIBUTE eAttribute) { |
| 1635 if (!bSetting) { | 1635 if (!bSetting) { |
| 1636 pValue->SetString(GetBoolean(eAttribute) ? "1" : "0"); | 1636 pValue->SetString(GetBoolean(eAttribute) ? "1" : "0"); |
| 1637 } else { | 1637 } else { |
| 1638 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1638 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1639 } | 1639 } |
| 1640 } | 1640 } |
| 1641 | 1641 |
| 1642 void CXFA_Node::Script_Attribute_SendAttributeChangeMessage( | 1642 void CXFA_Node::Script_Attribute_SendAttributeChangeMessage( |
| 1643 XFA_ATTRIBUTE eAttribute, | 1643 XFA_ATTRIBUTE eAttribute, |
| 1644 FX_BOOL bScriptModify) { | 1644 bool bScriptModify) { |
| 1645 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); | 1645 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); |
| 1646 if (!pLayoutPro) | 1646 if (!pLayoutPro) |
| 1647 return; | 1647 return; |
| 1648 | 1648 |
| 1649 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 1649 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 1650 if (!pNotify) | 1650 if (!pNotify) |
| 1651 return; | 1651 return; |
| 1652 | 1652 |
| 1653 uint32_t dwPacket = GetPacketID(); | 1653 uint32_t dwPacket = GetPacketID(); |
| 1654 if (!(dwPacket & XFA_XDPPACKET_Form)) { | 1654 if (!(dwPacket & XFA_XDPPACKET_Form)) { |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1786 | 1786 |
| 1787 pParent = pParent->GetNodeItem(XFA_NODEITEM_Parent); | 1787 pParent = pParent->GetNodeItem(XFA_NODEITEM_Parent); |
| 1788 } | 1788 } |
| 1789 if (pParent) { | 1789 if (pParent) { |
| 1790 pLayoutPro->AddChangedContainer(pParent); | 1790 pLayoutPro->AddChangedContainer(pParent); |
| 1791 } | 1791 } |
| 1792 } | 1792 } |
| 1793 } | 1793 } |
| 1794 | 1794 |
| 1795 void CXFA_Node::Script_Attribute_String(CFXJSE_Value* pValue, | 1795 void CXFA_Node::Script_Attribute_String(CFXJSE_Value* pValue, |
| 1796 FX_BOOL bSetting, | 1796 bool bSetting, |
| 1797 XFA_ATTRIBUTE eAttribute) { | 1797 XFA_ATTRIBUTE eAttribute) { |
| 1798 if (bSetting) { | 1798 if (bSetting) { |
| 1799 CFX_WideString wsValue = pValue->ToWideString(); | 1799 CFX_WideString wsValue = pValue->ToWideString(); |
| 1800 SetAttribute(eAttribute, wsValue.AsStringC(), true); | 1800 SetAttribute(eAttribute, wsValue.AsStringC(), true); |
| 1801 if (eAttribute == XFA_ATTRIBUTE_Use && | 1801 if (eAttribute == XFA_ATTRIBUTE_Use && |
| 1802 GetElementType() == XFA_Element::Desc) { | 1802 GetElementType() == XFA_Element::Desc) { |
| 1803 CXFA_Node* pTemplateNode = | 1803 CXFA_Node* pTemplateNode = |
| 1804 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Template)); | 1804 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Template)); |
| 1805 CXFA_Node* pProtoRoot = | 1805 CXFA_Node* pProtoRoot = |
| 1806 pTemplateNode->GetFirstChildByClass(XFA_Element::Subform) | 1806 pTemplateNode->GetFirstChildByClass(XFA_Element::Subform) |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1831 pProtoNode = m_pDocument->GetNodeByID(pProtoRoot, wsID.AsStringC()); | 1831 pProtoNode = m_pDocument->GetNodeByID(pProtoRoot, wsID.AsStringC()); |
| 1832 } | 1832 } |
| 1833 if (pProtoNode) { | 1833 if (pProtoNode) { |
| 1834 CXFA_Node* pHeadChild = GetNodeItem(XFA_NODEITEM_FirstChild); | 1834 CXFA_Node* pHeadChild = GetNodeItem(XFA_NODEITEM_FirstChild); |
| 1835 while (pHeadChild) { | 1835 while (pHeadChild) { |
| 1836 CXFA_Node* pSibling = | 1836 CXFA_Node* pSibling = |
| 1837 pHeadChild->GetNodeItem(XFA_NODEITEM_NextSibling); | 1837 pHeadChild->GetNodeItem(XFA_NODEITEM_NextSibling); |
| 1838 RemoveChild(pHeadChild); | 1838 RemoveChild(pHeadChild); |
| 1839 pHeadChild = pSibling; | 1839 pHeadChild = pSibling; |
| 1840 } | 1840 } |
| 1841 CXFA_Node* pProtoForm = pProtoNode->CloneTemplateToForm(TRUE); | 1841 CXFA_Node* pProtoForm = pProtoNode->CloneTemplateToForm(true); |
| 1842 pHeadChild = pProtoForm->GetNodeItem(XFA_NODEITEM_FirstChild); | 1842 pHeadChild = pProtoForm->GetNodeItem(XFA_NODEITEM_FirstChild); |
| 1843 while (pHeadChild) { | 1843 while (pHeadChild) { |
| 1844 CXFA_Node* pSibling = | 1844 CXFA_Node* pSibling = |
| 1845 pHeadChild->GetNodeItem(XFA_NODEITEM_NextSibling); | 1845 pHeadChild->GetNodeItem(XFA_NODEITEM_NextSibling); |
| 1846 pProtoForm->RemoveChild(pHeadChild); | 1846 pProtoForm->RemoveChild(pHeadChild); |
| 1847 InsertChild(pHeadChild); | 1847 InsertChild(pHeadChild); |
| 1848 pHeadChild = pSibling; | 1848 pHeadChild = pSibling; |
| 1849 } | 1849 } |
| 1850 m_pDocument->RemovePurgeNode(pProtoForm); | 1850 m_pDocument->RemovePurgeNode(pProtoForm); |
| 1851 delete pProtoForm; | 1851 delete pProtoForm; |
| 1852 } | 1852 } |
| 1853 } | 1853 } |
| 1854 } else { | 1854 } else { |
| 1855 CFX_WideString wsValue; | 1855 CFX_WideString wsValue; |
| 1856 GetAttribute(eAttribute, wsValue); | 1856 GetAttribute(eAttribute, wsValue); |
| 1857 pValue->SetString( | 1857 pValue->SetString( |
| 1858 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC()); | 1858 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC()); |
| 1859 } | 1859 } |
| 1860 } | 1860 } |
| 1861 | 1861 |
| 1862 void CXFA_Node::Script_Attribute_StringRead(CFXJSE_Value* pValue, | 1862 void CXFA_Node::Script_Attribute_StringRead(CFXJSE_Value* pValue, |
| 1863 FX_BOOL bSetting, | 1863 bool bSetting, |
| 1864 XFA_ATTRIBUTE eAttribute) { | 1864 XFA_ATTRIBUTE eAttribute) { |
| 1865 if (!bSetting) { | 1865 if (!bSetting) { |
| 1866 CFX_WideString wsValue; | 1866 CFX_WideString wsValue; |
| 1867 GetAttribute(eAttribute, wsValue); | 1867 GetAttribute(eAttribute, wsValue); |
| 1868 pValue->SetString( | 1868 pValue->SetString( |
| 1869 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC()); | 1869 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC()); |
| 1870 } else { | 1870 } else { |
| 1871 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1871 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1872 } | 1872 } |
| 1873 } | 1873 } |
| 1874 | 1874 |
| 1875 void CXFA_Node::Script_WsdlConnection_Execute(CFXJSE_Arguments* pArguments) { | 1875 void CXFA_Node::Script_WsdlConnection_Execute(CFXJSE_Arguments* pArguments) { |
| 1876 int32_t argc = pArguments->GetLength(); | 1876 int32_t argc = pArguments->GetLength(); |
| 1877 if ((argc == 0) || (argc == 1)) { | 1877 if ((argc == 0) || (argc == 1)) { |
| 1878 pArguments->GetReturnValue()->SetBoolean(FALSE); | 1878 pArguments->GetReturnValue()->SetBoolean(false); |
| 1879 } else { | 1879 } else { |
| 1880 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execute"); | 1880 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execute"); |
| 1881 } | 1881 } |
| 1882 } | 1882 } |
| 1883 | 1883 |
| 1884 void CXFA_Node::Script_Delta_Restore(CFXJSE_Arguments* pArguments) { | 1884 void CXFA_Node::Script_Delta_Restore(CFXJSE_Arguments* pArguments) { |
| 1885 int32_t argc = pArguments->GetLength(); | 1885 int32_t argc = pArguments->GetLength(); |
| 1886 if (argc == 0) { | 1886 if (argc == 0) { |
| 1887 } else { | 1887 } else { |
| 1888 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"restore"); | 1888 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"restore"); |
| 1889 } | 1889 } |
| 1890 } | 1890 } |
| 1891 | 1891 |
| 1892 void CXFA_Node::Script_Delta_CurrentValue(CFXJSE_Value* pValue, | 1892 void CXFA_Node::Script_Delta_CurrentValue(CFXJSE_Value* pValue, |
| 1893 FX_BOOL bSetting, | 1893 bool bSetting, |
| 1894 XFA_ATTRIBUTE eAttribute) {} | 1894 XFA_ATTRIBUTE eAttribute) {} |
| 1895 | 1895 |
| 1896 void CXFA_Node::Script_Delta_SavedValue(CFXJSE_Value* pValue, | 1896 void CXFA_Node::Script_Delta_SavedValue(CFXJSE_Value* pValue, |
| 1897 FX_BOOL bSetting, | 1897 bool bSetting, |
| 1898 XFA_ATTRIBUTE eAttribute) {} | 1898 XFA_ATTRIBUTE eAttribute) {} |
| 1899 | 1899 |
| 1900 void CXFA_Node::Script_Delta_Target(CFXJSE_Value* pValue, | 1900 void CXFA_Node::Script_Delta_Target(CFXJSE_Value* pValue, |
| 1901 FX_BOOL bSetting, | 1901 bool bSetting, |
| 1902 XFA_ATTRIBUTE eAttribute) {} | 1902 XFA_ATTRIBUTE eAttribute) {} |
| 1903 | 1903 |
| 1904 void CXFA_Node::Script_Som_Message(CFXJSE_Value* pValue, | 1904 void CXFA_Node::Script_Som_Message(CFXJSE_Value* pValue, |
| 1905 FX_BOOL bSetting, | 1905 bool bSetting, |
| 1906 XFA_SOM_MESSAGETYPE iMessageType) { | 1906 XFA_SOM_MESSAGETYPE iMessageType) { |
| 1907 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 1907 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 1908 if (!pWidgetData) { | 1908 if (!pWidgetData) { |
| 1909 return; | 1909 return; |
| 1910 } | 1910 } |
| 1911 FX_BOOL bNew = FALSE; | 1911 bool bNew = false; |
| 1912 CXFA_Validate validate = pWidgetData->GetValidate(); | 1912 CXFA_Validate validate = pWidgetData->GetValidate(); |
| 1913 if (!validate) { | 1913 if (!validate) { |
| 1914 validate = pWidgetData->GetValidate(TRUE); | 1914 validate = pWidgetData->GetValidate(true); |
| 1915 bNew = TRUE; | 1915 bNew = true; |
| 1916 } | 1916 } |
| 1917 if (bSetting) { | 1917 if (bSetting) { |
| 1918 switch (iMessageType) { | 1918 switch (iMessageType) { |
| 1919 case XFA_SOM_ValidationMessage: | 1919 case XFA_SOM_ValidationMessage: |
| 1920 validate.SetScriptMessageText(pValue->ToWideString()); | 1920 validate.SetScriptMessageText(pValue->ToWideString()); |
| 1921 break; | 1921 break; |
| 1922 case XFA_SOM_FormatMessage: | 1922 case XFA_SOM_FormatMessage: |
| 1923 validate.SetFormatMessageText(pValue->ToWideString()); | 1923 validate.SetFormatMessageText(pValue->ToWideString()); |
| 1924 break; | 1924 break; |
| 1925 case XFA_SOM_MandatoryMessage: | 1925 case XFA_SOM_MandatoryMessage: |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1948 validate.GetNullMessageText(wsMessage); | 1948 validate.GetNullMessageText(wsMessage); |
| 1949 break; | 1949 break; |
| 1950 default: | 1950 default: |
| 1951 break; | 1951 break; |
| 1952 } | 1952 } |
| 1953 pValue->SetString(FX_UTF8Encode(wsMessage).AsStringC()); | 1953 pValue->SetString(FX_UTF8Encode(wsMessage).AsStringC()); |
| 1954 } | 1954 } |
| 1955 } | 1955 } |
| 1956 | 1956 |
| 1957 void CXFA_Node::Script_Som_ValidationMessage(CFXJSE_Value* pValue, | 1957 void CXFA_Node::Script_Som_ValidationMessage(CFXJSE_Value* pValue, |
| 1958 FX_BOOL bSetting, | 1958 bool bSetting, |
| 1959 XFA_ATTRIBUTE eAttribute) { | 1959 XFA_ATTRIBUTE eAttribute) { |
| 1960 Script_Som_Message(pValue, bSetting, XFA_SOM_ValidationMessage); | 1960 Script_Som_Message(pValue, bSetting, XFA_SOM_ValidationMessage); |
| 1961 } | 1961 } |
| 1962 | 1962 |
| 1963 void CXFA_Node::Script_Field_Length(CFXJSE_Value* pValue, | 1963 void CXFA_Node::Script_Field_Length(CFXJSE_Value* pValue, |
| 1964 FX_BOOL bSetting, | 1964 bool bSetting, |
| 1965 XFA_ATTRIBUTE eAttribute) { | 1965 XFA_ATTRIBUTE eAttribute) { |
| 1966 if (bSetting) { | 1966 if (bSetting) { |
| 1967 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 1967 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 1968 } else { | 1968 } else { |
| 1969 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 1969 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 1970 if (!pWidgetData) { | 1970 if (!pWidgetData) { |
| 1971 pValue->SetInteger(0); | 1971 pValue->SetInteger(0); |
| 1972 return; | 1972 return; |
| 1973 } | 1973 } |
| 1974 pValue->SetInteger(pWidgetData->CountChoiceListItems(TRUE)); | 1974 pValue->SetInteger(pWidgetData->CountChoiceListItems(true)); |
| 1975 } | 1975 } |
| 1976 } | 1976 } |
| 1977 | 1977 |
| 1978 void CXFA_Node::Script_Som_DefaultValue(CFXJSE_Value* pValue, | 1978 void CXFA_Node::Script_Som_DefaultValue(CFXJSE_Value* pValue, |
| 1979 FX_BOOL bSetting, | 1979 bool bSetting, |
| 1980 XFA_ATTRIBUTE eAttribute) { | 1980 XFA_ATTRIBUTE eAttribute) { |
| 1981 XFA_Element eType = GetElementType(); | 1981 XFA_Element eType = GetElementType(); |
| 1982 if (eType == XFA_Element::Field) { | 1982 if (eType == XFA_Element::Field) { |
| 1983 Script_Field_DefaultValue(pValue, bSetting, eAttribute); | 1983 Script_Field_DefaultValue(pValue, bSetting, eAttribute); |
| 1984 return; | 1984 return; |
| 1985 } | 1985 } |
| 1986 if (eType == XFA_Element::Draw) { | 1986 if (eType == XFA_Element::Draw) { |
| 1987 Script_Draw_DefaultValue(pValue, bSetting, eAttribute); | 1987 Script_Draw_DefaultValue(pValue, bSetting, eAttribute); |
| 1988 return; | 1988 return; |
| 1989 } | 1989 } |
| (...skipping 26 matching lines...) Expand all Loading... |
| 2016 break; | 2016 break; |
| 2017 } | 2017 } |
| 2018 pContainerWidgetData = nullptr; | 2018 pContainerWidgetData = nullptr; |
| 2019 } | 2019 } |
| 2020 } else if (GetPacketID() == XFA_XDPPACKET_Form) { | 2020 } else if (GetPacketID() == XFA_XDPPACKET_Form) { |
| 2021 pContainerWidgetData = GetContainerWidgetData(); | 2021 pContainerWidgetData = GetContainerWidgetData(); |
| 2022 } | 2022 } |
| 2023 if (pContainerWidgetData) { | 2023 if (pContainerWidgetData) { |
| 2024 pContainerWidgetData->GetFormatDataValue(wsNewValue, wsFormatValue); | 2024 pContainerWidgetData->GetFormatDataValue(wsNewValue, wsFormatValue); |
| 2025 } | 2025 } |
| 2026 SetScriptContent(wsNewValue, wsFormatValue, true, TRUE); | 2026 SetScriptContent(wsNewValue, wsFormatValue, true, true); |
| 2027 } else { | 2027 } else { |
| 2028 CFX_WideString content = GetScriptContent(TRUE); | 2028 CFX_WideString content = GetScriptContent(true); |
| 2029 if (content.IsEmpty() && eType != XFA_Element::Text && | 2029 if (content.IsEmpty() && eType != XFA_Element::Text && |
| 2030 eType != XFA_Element::SubmitUrl) { | 2030 eType != XFA_Element::SubmitUrl) { |
| 2031 pValue->SetNull(); | 2031 pValue->SetNull(); |
| 2032 } else if (eType == XFA_Element::Integer) { | 2032 } else if (eType == XFA_Element::Integer) { |
| 2033 pValue->SetInteger(FXSYS_wtoi(content.c_str())); | 2033 pValue->SetInteger(FXSYS_wtoi(content.c_str())); |
| 2034 } else if (eType == XFA_Element::Float || eType == XFA_Element::Decimal) { | 2034 } else if (eType == XFA_Element::Float || eType == XFA_Element::Decimal) { |
| 2035 CFX_Decimal decimal(content.AsStringC()); | 2035 CFX_Decimal decimal(content.AsStringC()); |
| 2036 pValue->SetFloat((FX_FLOAT)(double)decimal); | 2036 pValue->SetFloat((FX_FLOAT)(double)decimal); |
| 2037 } else { | 2037 } else { |
| 2038 pValue->SetString( | 2038 pValue->SetString( |
| 2039 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); | 2039 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); |
| 2040 } | 2040 } |
| 2041 } | 2041 } |
| 2042 } | 2042 } |
| 2043 | 2043 |
| 2044 void CXFA_Node::Script_Som_DefaultValue_Read(CFXJSE_Value* pValue, | 2044 void CXFA_Node::Script_Som_DefaultValue_Read(CFXJSE_Value* pValue, |
| 2045 FX_BOOL bSetting, | 2045 bool bSetting, |
| 2046 XFA_ATTRIBUTE eAttribute) { | 2046 XFA_ATTRIBUTE eAttribute) { |
| 2047 if (bSetting) { | 2047 if (bSetting) { |
| 2048 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 2048 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 2049 return; | 2049 return; |
| 2050 } | 2050 } |
| 2051 CFX_WideString content = GetScriptContent(TRUE); | 2051 CFX_WideString content = GetScriptContent(true); |
| 2052 if (content.IsEmpty()) { | 2052 if (content.IsEmpty()) { |
| 2053 pValue->SetNull(); | 2053 pValue->SetNull(); |
| 2054 } else { | 2054 } else { |
| 2055 pValue->SetString( | 2055 pValue->SetString( |
| 2056 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); | 2056 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); |
| 2057 } | 2057 } |
| 2058 } | 2058 } |
| 2059 | 2059 |
| 2060 void CXFA_Node::Script_Boolean_Value(CFXJSE_Value* pValue, | 2060 void CXFA_Node::Script_Boolean_Value(CFXJSE_Value* pValue, |
| 2061 FX_BOOL bSetting, | 2061 bool bSetting, |
| 2062 XFA_ATTRIBUTE eAttribute) { | 2062 XFA_ATTRIBUTE eAttribute) { |
| 2063 if (bSetting) { | 2063 if (bSetting) { |
| 2064 CFX_ByteString newValue; | 2064 CFX_ByteString newValue; |
| 2065 if (!(pValue && (pValue->IsNull() || pValue->IsUndefined()))) | 2065 if (!(pValue && (pValue->IsNull() || pValue->IsUndefined()))) |
| 2066 newValue = pValue->ToString(); | 2066 newValue = pValue->ToString(); |
| 2067 | 2067 |
| 2068 int32_t iValue = FXSYS_atoi(newValue.c_str()); | 2068 int32_t iValue = FXSYS_atoi(newValue.c_str()); |
| 2069 CFX_WideString wsNewValue(iValue == 0 ? L"0" : L"1"); | 2069 CFX_WideString wsNewValue(iValue == 0 ? L"0" : L"1"); |
| 2070 CFX_WideString wsFormatValue(wsNewValue); | 2070 CFX_WideString wsFormatValue(wsNewValue); |
| 2071 CXFA_WidgetData* pContainerWidgetData = GetContainerWidgetData(); | 2071 CXFA_WidgetData* pContainerWidgetData = GetContainerWidgetData(); |
| 2072 if (pContainerWidgetData) { | 2072 if (pContainerWidgetData) { |
| 2073 pContainerWidgetData->GetFormatDataValue(wsNewValue, wsFormatValue); | 2073 pContainerWidgetData->GetFormatDataValue(wsNewValue, wsFormatValue); |
| 2074 } | 2074 } |
| 2075 SetScriptContent(wsNewValue, wsFormatValue, true, TRUE); | 2075 SetScriptContent(wsNewValue, wsFormatValue, true, true); |
| 2076 } else { | 2076 } else { |
| 2077 CFX_WideString wsValue = GetScriptContent(TRUE); | 2077 CFX_WideString wsValue = GetScriptContent(true); |
| 2078 pValue->SetBoolean(wsValue == FX_WSTRC(L"1")); | 2078 pValue->SetBoolean(wsValue == FX_WSTRC(L"1")); |
| 2079 } | 2079 } |
| 2080 } | 2080 } |
| 2081 | 2081 |
| 2082 void CXFA_Node::Script_Som_BorderColor(CFXJSE_Value* pValue, | 2082 void CXFA_Node::Script_Som_BorderColor(CFXJSE_Value* pValue, |
| 2083 FX_BOOL bSetting, | 2083 bool bSetting, |
| 2084 XFA_ATTRIBUTE eAttribute) { | 2084 XFA_ATTRIBUTE eAttribute) { |
| 2085 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2085 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2086 if (!pWidgetData) { | 2086 if (!pWidgetData) { |
| 2087 return; | 2087 return; |
| 2088 } | 2088 } |
| 2089 CXFA_Border border = pWidgetData->GetBorder(TRUE); | 2089 CXFA_Border border = pWidgetData->GetBorder(true); |
| 2090 int32_t iSize = border.CountEdges(); | 2090 int32_t iSize = border.CountEdges(); |
| 2091 if (bSetting) { | 2091 if (bSetting) { |
| 2092 int32_t r = 0; | 2092 int32_t r = 0; |
| 2093 int32_t g = 0; | 2093 int32_t g = 0; |
| 2094 int32_t b = 0; | 2094 int32_t b = 0; |
| 2095 StrToRGB(pValue->ToWideString(), r, g, b); | 2095 StrToRGB(pValue->ToWideString(), r, g, b); |
| 2096 FX_ARGB rgb = ArgbEncode(100, r, g, b); | 2096 FX_ARGB rgb = ArgbEncode(100, r, g, b); |
| 2097 for (int32_t i = 0; i < iSize; ++i) { | 2097 for (int32_t i = 0; i < iSize; ++i) { |
| 2098 CXFA_Edge edge = border.GetEdge(i); | 2098 CXFA_Edge edge = border.GetEdge(i); |
| 2099 edge.SetColor(rgb); | 2099 edge.SetColor(rgb); |
| 2100 } | 2100 } |
| 2101 } else { | 2101 } else { |
| 2102 CXFA_Edge edge = border.GetEdge(0); | 2102 CXFA_Edge edge = border.GetEdge(0); |
| 2103 FX_ARGB color = edge.GetColor(); | 2103 FX_ARGB color = edge.GetColor(); |
| 2104 int32_t a, r, g, b; | 2104 int32_t a, r, g, b; |
| 2105 ArgbDecode(color, a, r, g, b); | 2105 ArgbDecode(color, a, r, g, b); |
| 2106 CFX_WideString strColor; | 2106 CFX_WideString strColor; |
| 2107 strColor.Format(L"%d,%d,%d", r, g, b); | 2107 strColor.Format(L"%d,%d,%d", r, g, b); |
| 2108 pValue->SetString(FX_UTF8Encode(strColor).AsStringC()); | 2108 pValue->SetString(FX_UTF8Encode(strColor).AsStringC()); |
| 2109 } | 2109 } |
| 2110 } | 2110 } |
| 2111 | 2111 |
| 2112 void CXFA_Node::Script_Som_BorderWidth(CFXJSE_Value* pValue, | 2112 void CXFA_Node::Script_Som_BorderWidth(CFXJSE_Value* pValue, |
| 2113 FX_BOOL bSetting, | 2113 bool bSetting, |
| 2114 XFA_ATTRIBUTE eAttribute) { | 2114 XFA_ATTRIBUTE eAttribute) { |
| 2115 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2115 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2116 if (!pWidgetData) { | 2116 if (!pWidgetData) { |
| 2117 return; | 2117 return; |
| 2118 } | 2118 } |
| 2119 CXFA_Border border = pWidgetData->GetBorder(TRUE); | 2119 CXFA_Border border = pWidgetData->GetBorder(true); |
| 2120 int32_t iSize = border.CountEdges(); | 2120 int32_t iSize = border.CountEdges(); |
| 2121 CFX_WideString wsThickness; | 2121 CFX_WideString wsThickness; |
| 2122 if (bSetting) { | 2122 if (bSetting) { |
| 2123 wsThickness = pValue->ToWideString(); | 2123 wsThickness = pValue->ToWideString(); |
| 2124 for (int32_t i = 0; i < iSize; ++i) { | 2124 for (int32_t i = 0; i < iSize; ++i) { |
| 2125 CXFA_Edge edge = border.GetEdge(i); | 2125 CXFA_Edge edge = border.GetEdge(i); |
| 2126 CXFA_Measurement thickness(wsThickness.AsStringC()); | 2126 CXFA_Measurement thickness(wsThickness.AsStringC()); |
| 2127 edge.SetMSThickness(thickness); | 2127 edge.SetMSThickness(thickness); |
| 2128 } | 2128 } |
| 2129 } else { | 2129 } else { |
| 2130 CXFA_Edge edge = border.GetEdge(0); | 2130 CXFA_Edge edge = border.GetEdge(0); |
| 2131 CXFA_Measurement thickness = edge.GetMSThickness(); | 2131 CXFA_Measurement thickness = edge.GetMSThickness(); |
| 2132 thickness.ToString(wsThickness); | 2132 thickness.ToString(wsThickness); |
| 2133 pValue->SetString(FX_UTF8Encode(wsThickness).AsStringC()); | 2133 pValue->SetString(FX_UTF8Encode(wsThickness).AsStringC()); |
| 2134 } | 2134 } |
| 2135 } | 2135 } |
| 2136 | 2136 |
| 2137 void CXFA_Node::Script_Som_FillColor(CFXJSE_Value* pValue, | 2137 void CXFA_Node::Script_Som_FillColor(CFXJSE_Value* pValue, |
| 2138 FX_BOOL bSetting, | 2138 bool bSetting, |
| 2139 XFA_ATTRIBUTE eAttribute) { | 2139 XFA_ATTRIBUTE eAttribute) { |
| 2140 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2140 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2141 if (!pWidgetData) { | 2141 if (!pWidgetData) { |
| 2142 return; | 2142 return; |
| 2143 } | 2143 } |
| 2144 CXFA_Border border = pWidgetData->GetBorder(TRUE); | 2144 CXFA_Border border = pWidgetData->GetBorder(true); |
| 2145 CXFA_Fill borderfill = border.GetFill(TRUE); | 2145 CXFA_Fill borderfill = border.GetFill(true); |
| 2146 CXFA_Node* pNode = borderfill.GetNode(); | 2146 CXFA_Node* pNode = borderfill.GetNode(); |
| 2147 if (!pNode) { | 2147 if (!pNode) { |
| 2148 return; | 2148 return; |
| 2149 } | 2149 } |
| 2150 if (bSetting) { | 2150 if (bSetting) { |
| 2151 int32_t r; | 2151 int32_t r; |
| 2152 int32_t g; | 2152 int32_t g; |
| 2153 int32_t b; | 2153 int32_t b; |
| 2154 StrToRGB(pValue->ToWideString(), r, g, b); | 2154 StrToRGB(pValue->ToWideString(), r, g, b); |
| 2155 FX_ARGB color = ArgbEncode(0xff, r, g, b); | 2155 FX_ARGB color = ArgbEncode(0xff, r, g, b); |
| 2156 borderfill.SetColor(color); | 2156 borderfill.SetColor(color); |
| 2157 } else { | 2157 } else { |
| 2158 FX_ARGB color = borderfill.GetColor(); | 2158 FX_ARGB color = borderfill.GetColor(); |
| 2159 int32_t a; | 2159 int32_t a; |
| 2160 int32_t r; | 2160 int32_t r; |
| 2161 int32_t g; | 2161 int32_t g; |
| 2162 int32_t b; | 2162 int32_t b; |
| 2163 ArgbDecode(color, a, r, g, b); | 2163 ArgbDecode(color, a, r, g, b); |
| 2164 CFX_WideString wsColor; | 2164 CFX_WideString wsColor; |
| 2165 wsColor.Format(L"%d,%d,%d", r, g, b); | 2165 wsColor.Format(L"%d,%d,%d", r, g, b); |
| 2166 pValue->SetString(FX_UTF8Encode(wsColor).AsStringC()); | 2166 pValue->SetString(FX_UTF8Encode(wsColor).AsStringC()); |
| 2167 } | 2167 } |
| 2168 } | 2168 } |
| 2169 | 2169 |
| 2170 void CXFA_Node::Script_Som_DataNode(CFXJSE_Value* pValue, | 2170 void CXFA_Node::Script_Som_DataNode(CFXJSE_Value* pValue, |
| 2171 FX_BOOL bSetting, | 2171 bool bSetting, |
| 2172 XFA_ATTRIBUTE eAttribute) { | 2172 XFA_ATTRIBUTE eAttribute) { |
| 2173 if (!bSetting) { | 2173 if (!bSetting) { |
| 2174 CXFA_Node* pDataNode = GetBindData(); | 2174 CXFA_Node* pDataNode = GetBindData(); |
| 2175 if (pDataNode) { | 2175 if (pDataNode) { |
| 2176 pValue->Assign( | 2176 pValue->Assign( |
| 2177 m_pDocument->GetScriptContext()->GetJSValueFromMap(pDataNode)); | 2177 m_pDocument->GetScriptContext()->GetJSValueFromMap(pDataNode)); |
| 2178 } else { | 2178 } else { |
| 2179 pValue->SetNull(); | 2179 pValue->SetNull(); |
| 2180 } | 2180 } |
| 2181 } else { | 2181 } else { |
| 2182 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 2182 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 2183 } | 2183 } |
| 2184 } | 2184 } |
| 2185 | 2185 |
| 2186 void CXFA_Node::Script_Draw_DefaultValue(CFXJSE_Value* pValue, | 2186 void CXFA_Node::Script_Draw_DefaultValue(CFXJSE_Value* pValue, |
| 2187 FX_BOOL bSetting, | 2187 bool bSetting, |
| 2188 XFA_ATTRIBUTE eAttribute) { | 2188 XFA_ATTRIBUTE eAttribute) { |
| 2189 if (bSetting) { | 2189 if (bSetting) { |
| 2190 if (pValue && pValue->IsString()) { | 2190 if (pValue && pValue->IsString()) { |
| 2191 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2191 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2192 ASSERT(pWidgetData); | 2192 ASSERT(pWidgetData); |
| 2193 XFA_Element uiType = pWidgetData->GetUIType(); | 2193 XFA_Element uiType = pWidgetData->GetUIType(); |
| 2194 if (uiType == XFA_Element::Text) { | 2194 if (uiType == XFA_Element::Text) { |
| 2195 CFX_WideString wsNewValue = pValue->ToWideString(); | 2195 CFX_WideString wsNewValue = pValue->ToWideString(); |
| 2196 CFX_WideString wsFormatValue(wsNewValue); | 2196 CFX_WideString wsFormatValue(wsNewValue); |
| 2197 SetScriptContent(wsNewValue, wsFormatValue, true, TRUE); | 2197 SetScriptContent(wsNewValue, wsFormatValue, true, true); |
| 2198 } | 2198 } |
| 2199 } | 2199 } |
| 2200 } else { | 2200 } else { |
| 2201 CFX_WideString content = GetScriptContent(TRUE); | 2201 CFX_WideString content = GetScriptContent(true); |
| 2202 if (content.IsEmpty()) { | 2202 if (content.IsEmpty()) { |
| 2203 pValue->SetNull(); | 2203 pValue->SetNull(); |
| 2204 } else { | 2204 } else { |
| 2205 pValue->SetString( | 2205 pValue->SetString( |
| 2206 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); | 2206 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); |
| 2207 } | 2207 } |
| 2208 } | 2208 } |
| 2209 } | 2209 } |
| 2210 | 2210 |
| 2211 void CXFA_Node::Script_Field_DefaultValue(CFXJSE_Value* pValue, | 2211 void CXFA_Node::Script_Field_DefaultValue(CFXJSE_Value* pValue, |
| 2212 FX_BOOL bSetting, | 2212 bool bSetting, |
| 2213 XFA_ATTRIBUTE eAttribute) { | 2213 XFA_ATTRIBUTE eAttribute) { |
| 2214 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2214 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2215 if (!pWidgetData) { | 2215 if (!pWidgetData) { |
| 2216 return; | 2216 return; |
| 2217 } | 2217 } |
| 2218 if (bSetting) { | 2218 if (bSetting) { |
| 2219 if (pValue && pValue->IsNull()) { | 2219 if (pValue && pValue->IsNull()) { |
| 2220 pWidgetData->m_bPreNull = pWidgetData->m_bIsNull; | 2220 pWidgetData->m_bPreNull = pWidgetData->m_bIsNull; |
| 2221 pWidgetData->m_bIsNull = TRUE; | 2221 pWidgetData->m_bIsNull = true; |
| 2222 } else { | 2222 } else { |
| 2223 pWidgetData->m_bPreNull = pWidgetData->m_bIsNull; | 2223 pWidgetData->m_bPreNull = pWidgetData->m_bIsNull; |
| 2224 pWidgetData->m_bIsNull = FALSE; | 2224 pWidgetData->m_bIsNull = false; |
| 2225 } | 2225 } |
| 2226 CFX_WideString wsNewText; | 2226 CFX_WideString wsNewText; |
| 2227 if (!(pValue && (pValue->IsNull() || pValue->IsUndefined()))) | 2227 if (!(pValue && (pValue->IsNull() || pValue->IsUndefined()))) |
| 2228 wsNewText = pValue->ToWideString(); | 2228 wsNewText = pValue->ToWideString(); |
| 2229 | 2229 |
| 2230 CXFA_Node* pUIChild = pWidgetData->GetUIChild(); | 2230 CXFA_Node* pUIChild = pWidgetData->GetUIChild(); |
| 2231 if (pUIChild->GetElementType() == XFA_Element::NumericEdit) { | 2231 if (pUIChild->GetElementType() == XFA_Element::NumericEdit) { |
| 2232 int32_t iLeadDigits = 0; | 2232 int32_t iLeadDigits = 0; |
| 2233 int32_t iFracDigits = 0; | 2233 int32_t iFracDigits = 0; |
| 2234 pWidgetData->GetLeadDigits(iLeadDigits); | 2234 pWidgetData->GetLeadDigits(iLeadDigits); |
| 2235 pWidgetData->GetFracDigits(iFracDigits); | 2235 pWidgetData->GetFracDigits(iFracDigits); |
| 2236 wsNewText = | 2236 wsNewText = |
| 2237 pWidgetData->NumericLimit(wsNewText, iLeadDigits, iFracDigits); | 2237 pWidgetData->NumericLimit(wsNewText, iLeadDigits, iFracDigits); |
| 2238 } | 2238 } |
| 2239 CXFA_WidgetData* pContainerWidgetData = GetContainerWidgetData(); | 2239 CXFA_WidgetData* pContainerWidgetData = GetContainerWidgetData(); |
| 2240 CFX_WideString wsFormatText(wsNewText); | 2240 CFX_WideString wsFormatText(wsNewText); |
| 2241 if (pContainerWidgetData) { | 2241 if (pContainerWidgetData) { |
| 2242 pContainerWidgetData->GetFormatDataValue(wsNewText, wsFormatText); | 2242 pContainerWidgetData->GetFormatDataValue(wsNewText, wsFormatText); |
| 2243 } | 2243 } |
| 2244 SetScriptContent(wsNewText, wsFormatText, true, TRUE); | 2244 SetScriptContent(wsNewText, wsFormatText, true, true); |
| 2245 } else { | 2245 } else { |
| 2246 CFX_WideString content = GetScriptContent(TRUE); | 2246 CFX_WideString content = GetScriptContent(true); |
| 2247 if (content.IsEmpty()) { | 2247 if (content.IsEmpty()) { |
| 2248 pValue->SetNull(); | 2248 pValue->SetNull(); |
| 2249 } else { | 2249 } else { |
| 2250 CXFA_Node* pUIChild = pWidgetData->GetUIChild(); | 2250 CXFA_Node* pUIChild = pWidgetData->GetUIChild(); |
| 2251 CXFA_Value defVal = pWidgetData->GetFormValue(); | 2251 CXFA_Value defVal = pWidgetData->GetFormValue(); |
| 2252 CXFA_Node* pNode = defVal.GetNode()->GetNodeItem(XFA_NODEITEM_FirstChild); | 2252 CXFA_Node* pNode = defVal.GetNode()->GetNodeItem(XFA_NODEITEM_FirstChild); |
| 2253 if (pNode && pNode->GetElementType() == XFA_Element::Decimal) { | 2253 if (pNode && pNode->GetElementType() == XFA_Element::Decimal) { |
| 2254 if (pUIChild->GetElementType() == XFA_Element::NumericEdit && | 2254 if (pUIChild->GetElementType() == XFA_Element::NumericEdit && |
| 2255 (pNode->GetInteger(XFA_ATTRIBUTE_FracDigits) == -1)) { | 2255 (pNode->GetInteger(XFA_ATTRIBUTE_FracDigits) == -1)) { |
| 2256 pValue->SetString( | 2256 pValue->SetString( |
| 2257 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); | 2257 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); |
| 2258 } else { | 2258 } else { |
| 2259 CFX_Decimal decimal(content.AsStringC()); | 2259 CFX_Decimal decimal(content.AsStringC()); |
| 2260 pValue->SetFloat((FX_FLOAT)(double)decimal); | 2260 pValue->SetFloat((FX_FLOAT)(double)decimal); |
| 2261 } | 2261 } |
| 2262 } else if (pNode && pNode->GetElementType() == XFA_Element::Integer) { | 2262 } else if (pNode && pNode->GetElementType() == XFA_Element::Integer) { |
| 2263 pValue->SetInteger(FXSYS_wtoi(content.c_str())); | 2263 pValue->SetInteger(FXSYS_wtoi(content.c_str())); |
| 2264 } else if (pNode && pNode->GetElementType() == XFA_Element::Boolean) { | 2264 } else if (pNode && pNode->GetElementType() == XFA_Element::Boolean) { |
| 2265 pValue->SetBoolean(FXSYS_wtoi(content.c_str()) == 0 ? FALSE : TRUE); | 2265 pValue->SetBoolean(FXSYS_wtoi(content.c_str()) == 0 ? false : true); |
| 2266 } else if (pNode && pNode->GetElementType() == XFA_Element::Float) { | 2266 } else if (pNode && pNode->GetElementType() == XFA_Element::Float) { |
| 2267 CFX_Decimal decimal(content.AsStringC()); | 2267 CFX_Decimal decimal(content.AsStringC()); |
| 2268 pValue->SetFloat((FX_FLOAT)(double)decimal); | 2268 pValue->SetFloat((FX_FLOAT)(double)decimal); |
| 2269 } else { | 2269 } else { |
| 2270 pValue->SetString( | 2270 pValue->SetString( |
| 2271 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); | 2271 FX_UTF8Encode(content.c_str(), content.GetLength()).AsStringC()); |
| 2272 } | 2272 } |
| 2273 } | 2273 } |
| 2274 } | 2274 } |
| 2275 } | 2275 } |
| 2276 | 2276 |
| 2277 void CXFA_Node::Script_Field_EditValue(CFXJSE_Value* pValue, | 2277 void CXFA_Node::Script_Field_EditValue(CFXJSE_Value* pValue, |
| 2278 FX_BOOL bSetting, | 2278 bool bSetting, |
| 2279 XFA_ATTRIBUTE eAttribute) { | 2279 XFA_ATTRIBUTE eAttribute) { |
| 2280 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2280 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2281 if (!pWidgetData) { | 2281 if (!pWidgetData) { |
| 2282 return; | 2282 return; |
| 2283 } | 2283 } |
| 2284 if (bSetting) { | 2284 if (bSetting) { |
| 2285 pWidgetData->SetValue(pValue->ToWideString(), XFA_VALUEPICTURE_Edit); | 2285 pWidgetData->SetValue(pValue->ToWideString(), XFA_VALUEPICTURE_Edit); |
| 2286 } else { | 2286 } else { |
| 2287 CFX_WideString wsValue; | 2287 CFX_WideString wsValue; |
| 2288 pWidgetData->GetValue(wsValue, XFA_VALUEPICTURE_Edit); | 2288 pWidgetData->GetValue(wsValue, XFA_VALUEPICTURE_Edit); |
| 2289 pValue->SetString(FX_UTF8Encode(wsValue).AsStringC()); | 2289 pValue->SetString(FX_UTF8Encode(wsValue).AsStringC()); |
| 2290 } | 2290 } |
| 2291 } | 2291 } |
| 2292 | 2292 |
| 2293 void CXFA_Node::Script_Som_FontColor(CFXJSE_Value* pValue, | 2293 void CXFA_Node::Script_Som_FontColor(CFXJSE_Value* pValue, |
| 2294 FX_BOOL bSetting, | 2294 bool bSetting, |
| 2295 XFA_ATTRIBUTE eAttribute) { | 2295 XFA_ATTRIBUTE eAttribute) { |
| 2296 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2296 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2297 if (!pWidgetData) { | 2297 if (!pWidgetData) { |
| 2298 return; | 2298 return; |
| 2299 } | 2299 } |
| 2300 CXFA_Font font = pWidgetData->GetFont(TRUE); | 2300 CXFA_Font font = pWidgetData->GetFont(true); |
| 2301 CXFA_Node* pNode = font.GetNode(); | 2301 CXFA_Node* pNode = font.GetNode(); |
| 2302 if (!pNode) { | 2302 if (!pNode) { |
| 2303 return; | 2303 return; |
| 2304 } | 2304 } |
| 2305 if (bSetting) { | 2305 if (bSetting) { |
| 2306 int32_t r; | 2306 int32_t r; |
| 2307 int32_t g; | 2307 int32_t g; |
| 2308 int32_t b; | 2308 int32_t b; |
| 2309 StrToRGB(pValue->ToWideString(), r, g, b); | 2309 StrToRGB(pValue->ToWideString(), r, g, b); |
| 2310 FX_ARGB color = ArgbEncode(0xff, r, g, b); | 2310 FX_ARGB color = ArgbEncode(0xff, r, g, b); |
| 2311 font.SetColor(color); | 2311 font.SetColor(color); |
| 2312 } else { | 2312 } else { |
| 2313 FX_ARGB color = font.GetColor(); | 2313 FX_ARGB color = font.GetColor(); |
| 2314 int32_t a; | 2314 int32_t a; |
| 2315 int32_t r; | 2315 int32_t r; |
| 2316 int32_t g; | 2316 int32_t g; |
| 2317 int32_t b; | 2317 int32_t b; |
| 2318 ArgbDecode(color, a, r, g, b); | 2318 ArgbDecode(color, a, r, g, b); |
| 2319 CFX_WideString wsColor; | 2319 CFX_WideString wsColor; |
| 2320 wsColor.Format(L"%d,%d,%d", r, g, b); | 2320 wsColor.Format(L"%d,%d,%d", r, g, b); |
| 2321 pValue->SetString(FX_UTF8Encode(wsColor).AsStringC()); | 2321 pValue->SetString(FX_UTF8Encode(wsColor).AsStringC()); |
| 2322 } | 2322 } |
| 2323 } | 2323 } |
| 2324 | 2324 |
| 2325 void CXFA_Node::Script_Field_FormatMessage(CFXJSE_Value* pValue, | 2325 void CXFA_Node::Script_Field_FormatMessage(CFXJSE_Value* pValue, |
| 2326 FX_BOOL bSetting, | 2326 bool bSetting, |
| 2327 XFA_ATTRIBUTE eAttribute) { | 2327 XFA_ATTRIBUTE eAttribute) { |
| 2328 Script_Som_Message(pValue, bSetting, XFA_SOM_FormatMessage); | 2328 Script_Som_Message(pValue, bSetting, XFA_SOM_FormatMessage); |
| 2329 } | 2329 } |
| 2330 | 2330 |
| 2331 void CXFA_Node::Script_Field_FormattedValue(CFXJSE_Value* pValue, | 2331 void CXFA_Node::Script_Field_FormattedValue(CFXJSE_Value* pValue, |
| 2332 FX_BOOL bSetting, | 2332 bool bSetting, |
| 2333 XFA_ATTRIBUTE eAttribute) { | 2333 XFA_ATTRIBUTE eAttribute) { |
| 2334 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2334 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2335 if (!pWidgetData) { | 2335 if (!pWidgetData) { |
| 2336 return; | 2336 return; |
| 2337 } | 2337 } |
| 2338 if (bSetting) { | 2338 if (bSetting) { |
| 2339 pWidgetData->SetValue(pValue->ToWideString(), XFA_VALUEPICTURE_Display); | 2339 pWidgetData->SetValue(pValue->ToWideString(), XFA_VALUEPICTURE_Display); |
| 2340 } else { | 2340 } else { |
| 2341 CFX_WideString wsValue; | 2341 CFX_WideString wsValue; |
| 2342 pWidgetData->GetValue(wsValue, XFA_VALUEPICTURE_Display); | 2342 pWidgetData->GetValue(wsValue, XFA_VALUEPICTURE_Display); |
| 2343 pValue->SetString(FX_UTF8Encode(wsValue).AsStringC()); | 2343 pValue->SetString(FX_UTF8Encode(wsValue).AsStringC()); |
| 2344 } | 2344 } |
| 2345 } | 2345 } |
| 2346 | 2346 |
| 2347 void CXFA_Node::Script_Som_Mandatory(CFXJSE_Value* pValue, | 2347 void CXFA_Node::Script_Som_Mandatory(CFXJSE_Value* pValue, |
| 2348 FX_BOOL bSetting, | 2348 bool bSetting, |
| 2349 XFA_ATTRIBUTE eAttribute) { | 2349 XFA_ATTRIBUTE eAttribute) { |
| 2350 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2350 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2351 if (!pWidgetData) { | 2351 if (!pWidgetData) { |
| 2352 return; | 2352 return; |
| 2353 } | 2353 } |
| 2354 CXFA_Validate validate = pWidgetData->GetValidate(TRUE); | 2354 CXFA_Validate validate = pWidgetData->GetValidate(true); |
| 2355 if (bSetting) { | 2355 if (bSetting) { |
| 2356 validate.SetNullTest(pValue->ToWideString()); | 2356 validate.SetNullTest(pValue->ToWideString()); |
| 2357 } else { | 2357 } else { |
| 2358 int32_t iValue = validate.GetNullTest(); | 2358 int32_t iValue = validate.GetNullTest(); |
| 2359 const XFA_ATTRIBUTEENUMINFO* pInfo = | 2359 const XFA_ATTRIBUTEENUMINFO* pInfo = |
| 2360 GetAttributeEnumByID((XFA_ATTRIBUTEENUM)iValue); | 2360 GetAttributeEnumByID((XFA_ATTRIBUTEENUM)iValue); |
| 2361 CFX_WideString wsValue; | 2361 CFX_WideString wsValue; |
| 2362 if (pInfo) | 2362 if (pInfo) |
| 2363 wsValue = pInfo->pName; | 2363 wsValue = pInfo->pName; |
| 2364 pValue->SetString(FX_UTF8Encode(wsValue).AsStringC()); | 2364 pValue->SetString(FX_UTF8Encode(wsValue).AsStringC()); |
| 2365 } | 2365 } |
| 2366 } | 2366 } |
| 2367 | 2367 |
| 2368 void CXFA_Node::Script_Som_MandatoryMessage(CFXJSE_Value* pValue, | 2368 void CXFA_Node::Script_Som_MandatoryMessage(CFXJSE_Value* pValue, |
| 2369 FX_BOOL bSetting, | 2369 bool bSetting, |
| 2370 XFA_ATTRIBUTE eAttribute) { | 2370 XFA_ATTRIBUTE eAttribute) { |
| 2371 Script_Som_Message(pValue, bSetting, XFA_SOM_MandatoryMessage); | 2371 Script_Som_Message(pValue, bSetting, XFA_SOM_MandatoryMessage); |
| 2372 } | 2372 } |
| 2373 | 2373 |
| 2374 void CXFA_Node::Script_Field_ParentSubform(CFXJSE_Value* pValue, | 2374 void CXFA_Node::Script_Field_ParentSubform(CFXJSE_Value* pValue, |
| 2375 FX_BOOL bSetting, | 2375 bool bSetting, |
| 2376 XFA_ATTRIBUTE eAttribute) { | 2376 XFA_ATTRIBUTE eAttribute) { |
| 2377 if (bSetting) { | 2377 if (bSetting) { |
| 2378 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 2378 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 2379 } else { | 2379 } else { |
| 2380 pValue->SetNull(); | 2380 pValue->SetNull(); |
| 2381 } | 2381 } |
| 2382 } | 2382 } |
| 2383 | 2383 |
| 2384 void CXFA_Node::Script_Field_SelectedIndex(CFXJSE_Value* pValue, | 2384 void CXFA_Node::Script_Field_SelectedIndex(CFXJSE_Value* pValue, |
| 2385 FX_BOOL bSetting, | 2385 bool bSetting, |
| 2386 XFA_ATTRIBUTE eAttribute) { | 2386 XFA_ATTRIBUTE eAttribute) { |
| 2387 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2387 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2388 if (!pWidgetData) { | 2388 if (!pWidgetData) { |
| 2389 return; | 2389 return; |
| 2390 } | 2390 } |
| 2391 if (bSetting) { | 2391 if (bSetting) { |
| 2392 int32_t iIndex = pValue->ToInteger(); | 2392 int32_t iIndex = pValue->ToInteger(); |
| 2393 if (iIndex == -1) { | 2393 if (iIndex == -1) { |
| 2394 pWidgetData->ClearAllSelections(); | 2394 pWidgetData->ClearAllSelections(); |
| 2395 return; | 2395 return; |
| 2396 } | 2396 } |
| 2397 pWidgetData->SetItemState(iIndex, TRUE, true, TRUE, TRUE); | 2397 pWidgetData->SetItemState(iIndex, true, true, true, true); |
| 2398 } else { | 2398 } else { |
| 2399 pValue->SetInteger(pWidgetData->GetSelectedItem()); | 2399 pValue->SetInteger(pWidgetData->GetSelectedItem()); |
| 2400 } | 2400 } |
| 2401 } | 2401 } |
| 2402 | 2402 |
| 2403 void CXFA_Node::Script_Field_ClearItems(CFXJSE_Arguments* pArguments) { | 2403 void CXFA_Node::Script_Field_ClearItems(CFXJSE_Arguments* pArguments) { |
| 2404 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2404 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2405 if (!pWidgetData) { | 2405 if (!pWidgetData) { |
| 2406 return; | 2406 return; |
| 2407 } | 2407 } |
| 2408 pWidgetData->DeleteItem(-1, TRUE); | 2408 pWidgetData->DeleteItem(-1, true); |
| 2409 } | 2409 } |
| 2410 | 2410 |
| 2411 void CXFA_Node::Script_Field_ExecEvent(CFXJSE_Arguments* pArguments) { | 2411 void CXFA_Node::Script_Field_ExecEvent(CFXJSE_Arguments* pArguments) { |
| 2412 int32_t argc = pArguments->GetLength(); | 2412 int32_t argc = pArguments->GetLength(); |
| 2413 if (argc == 1) { | 2413 if (argc == 1) { |
| 2414 CFX_ByteString eventString = pArguments->GetUTF8String(0); | 2414 CFX_ByteString eventString = pArguments->GetUTF8String(0); |
| 2415 int32_t iRet = execSingleEventByName( | 2415 int32_t iRet = execSingleEventByName( |
| 2416 CFX_WideString::FromUTF8(eventString.AsStringC()).AsStringC(), | 2416 CFX_WideString::FromUTF8(eventString.AsStringC()).AsStringC(), |
| 2417 XFA_Element::Field); | 2417 XFA_Element::Field); |
| 2418 if (eventString == "validate") { | 2418 if (eventString == "validate") { |
| 2419 pArguments->GetReturnValue()->SetBoolean( | 2419 pArguments->GetReturnValue()->SetBoolean( |
| 2420 (iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE); | 2420 (iRet == XFA_EVENTERROR_Error) ? false : true); |
| 2421 } | 2421 } |
| 2422 } else { | 2422 } else { |
| 2423 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execEvent"); | 2423 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execEvent"); |
| 2424 } | 2424 } |
| 2425 } | 2425 } |
| 2426 | 2426 |
| 2427 void CXFA_Node::Script_Field_ExecInitialize(CFXJSE_Arguments* pArguments) { | 2427 void CXFA_Node::Script_Field_ExecInitialize(CFXJSE_Arguments* pArguments) { |
| 2428 int32_t argc = pArguments->GetLength(); | 2428 int32_t argc = pArguments->GetLength(); |
| 2429 if (argc == 0) { | 2429 if (argc == 0) { |
| 2430 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 2430 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 2431 if (!pNotify) { | 2431 if (!pNotify) { |
| 2432 return; | 2432 return; |
| 2433 } | 2433 } |
| 2434 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Initialize, FALSE, FALSE); | 2434 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Initialize, false, false); |
| 2435 } else { | 2435 } else { |
| 2436 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execInitialize"); | 2436 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execInitialize"); |
| 2437 } | 2437 } |
| 2438 } | 2438 } |
| 2439 | 2439 |
| 2440 void CXFA_Node::Script_Field_DeleteItem(CFXJSE_Arguments* pArguments) { | 2440 void CXFA_Node::Script_Field_DeleteItem(CFXJSE_Arguments* pArguments) { |
| 2441 int32_t iLength = pArguments->GetLength(); | 2441 int32_t iLength = pArguments->GetLength(); |
| 2442 if (iLength != 1) { | 2442 if (iLength != 1) { |
| 2443 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"deleteItem"); | 2443 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"deleteItem"); |
| 2444 return; | 2444 return; |
| 2445 } | 2445 } |
| 2446 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2446 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2447 if (!pWidgetData) { | 2447 if (!pWidgetData) { |
| 2448 return; | 2448 return; |
| 2449 } | 2449 } |
| 2450 int32_t iIndex = pArguments->GetInt32(0); | 2450 int32_t iIndex = pArguments->GetInt32(0); |
| 2451 FX_BOOL bValue = pWidgetData->DeleteItem(iIndex, TRUE, TRUE); | 2451 bool bValue = pWidgetData->DeleteItem(iIndex, true, true); |
| 2452 CFXJSE_Value* pValue = pArguments->GetReturnValue(); | 2452 CFXJSE_Value* pValue = pArguments->GetReturnValue(); |
| 2453 if (pValue) | 2453 if (pValue) |
| 2454 pValue->SetBoolean(bValue); | 2454 pValue->SetBoolean(bValue); |
| 2455 } | 2455 } |
| 2456 | 2456 |
| 2457 void CXFA_Node::Script_Field_GetSaveItem(CFXJSE_Arguments* pArguments) { | 2457 void CXFA_Node::Script_Field_GetSaveItem(CFXJSE_Arguments* pArguments) { |
| 2458 int32_t iLength = pArguments->GetLength(); | 2458 int32_t iLength = pArguments->GetLength(); |
| 2459 if (iLength != 1) { | 2459 if (iLength != 1) { |
| 2460 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getSaveItem"); | 2460 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getSaveItem"); |
| 2461 return; | 2461 return; |
| 2462 } | 2462 } |
| 2463 int32_t iIndex = pArguments->GetInt32(0); | 2463 int32_t iIndex = pArguments->GetInt32(0); |
| 2464 if (iIndex < 0) { | 2464 if (iIndex < 0) { |
| 2465 pArguments->GetReturnValue()->SetNull(); | 2465 pArguments->GetReturnValue()->SetNull(); |
| 2466 return; | 2466 return; |
| 2467 } | 2467 } |
| 2468 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2468 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2469 if (!pWidgetData) { | 2469 if (!pWidgetData) { |
| 2470 pArguments->GetReturnValue()->SetNull(); | 2470 pArguments->GetReturnValue()->SetNull(); |
| 2471 return; | 2471 return; |
| 2472 } | 2472 } |
| 2473 CFX_WideString wsValue; | 2473 CFX_WideString wsValue; |
| 2474 FX_BOOL bHasItem = pWidgetData->GetChoiceListItem(wsValue, iIndex, TRUE); | 2474 bool bHasItem = pWidgetData->GetChoiceListItem(wsValue, iIndex, true); |
| 2475 if (bHasItem) { | 2475 if (bHasItem) { |
| 2476 pArguments->GetReturnValue()->SetString( | 2476 pArguments->GetReturnValue()->SetString( |
| 2477 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC()); | 2477 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC()); |
| 2478 } else { | 2478 } else { |
| 2479 pArguments->GetReturnValue()->SetNull(); | 2479 pArguments->GetReturnValue()->SetNull(); |
| 2480 } | 2480 } |
| 2481 } | 2481 } |
| 2482 | 2482 |
| 2483 void CXFA_Node::Script_Field_BoundItem(CFXJSE_Arguments* pArguments) { | 2483 void CXFA_Node::Script_Field_BoundItem(CFXJSE_Arguments* pArguments) { |
| 2484 int32_t iLength = pArguments->GetLength(); | 2484 int32_t iLength = pArguments->GetLength(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 2503 int32_t iLength = pArguments->GetLength(); | 2503 int32_t iLength = pArguments->GetLength(); |
| 2504 if (iLength != 1) { | 2504 if (iLength != 1) { |
| 2505 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getItemState"); | 2505 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getItemState"); |
| 2506 return; | 2506 return; |
| 2507 } | 2507 } |
| 2508 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2508 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2509 if (!pWidgetData) { | 2509 if (!pWidgetData) { |
| 2510 return; | 2510 return; |
| 2511 } | 2511 } |
| 2512 int32_t iIndex = pArguments->GetInt32(0); | 2512 int32_t iIndex = pArguments->GetInt32(0); |
| 2513 FX_BOOL bValue = pWidgetData->GetItemState(iIndex); | 2513 bool bValue = pWidgetData->GetItemState(iIndex); |
| 2514 CFXJSE_Value* pValue = pArguments->GetReturnValue(); | 2514 CFXJSE_Value* pValue = pArguments->GetReturnValue(); |
| 2515 if (pValue) | 2515 if (pValue) |
| 2516 pValue->SetBoolean(bValue); | 2516 pValue->SetBoolean(bValue); |
| 2517 } | 2517 } |
| 2518 | 2518 |
| 2519 void CXFA_Node::Script_Field_ExecCalculate(CFXJSE_Arguments* pArguments) { | 2519 void CXFA_Node::Script_Field_ExecCalculate(CFXJSE_Arguments* pArguments) { |
| 2520 int32_t argc = pArguments->GetLength(); | 2520 int32_t argc = pArguments->GetLength(); |
| 2521 if (argc == 0) { | 2521 if (argc == 0) { |
| 2522 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 2522 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 2523 if (!pNotify) { | 2523 if (!pNotify) { |
| 2524 return; | 2524 return; |
| 2525 } | 2525 } |
| 2526 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Calculate, FALSE, FALSE); | 2526 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Calculate, false, false); |
| 2527 } else { | 2527 } else { |
| 2528 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); | 2528 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); |
| 2529 } | 2529 } |
| 2530 } | 2530 } |
| 2531 | 2531 |
| 2532 void CXFA_Node::Script_Field_SetItems(CFXJSE_Arguments* pArguments) {} | 2532 void CXFA_Node::Script_Field_SetItems(CFXJSE_Arguments* pArguments) {} |
| 2533 | 2533 |
| 2534 void CXFA_Node::Script_Field_GetDisplayItem(CFXJSE_Arguments* pArguments) { | 2534 void CXFA_Node::Script_Field_GetDisplayItem(CFXJSE_Arguments* pArguments) { |
| 2535 int32_t iLength = pArguments->GetLength(); | 2535 int32_t iLength = pArguments->GetLength(); |
| 2536 if (iLength != 1) { | 2536 if (iLength != 1) { |
| 2537 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getDisplayItem"); | 2537 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"getDisplayItem"); |
| 2538 return; | 2538 return; |
| 2539 } | 2539 } |
| 2540 int32_t iIndex = pArguments->GetInt32(0); | 2540 int32_t iIndex = pArguments->GetInt32(0); |
| 2541 if (iIndex < 0) { | 2541 if (iIndex < 0) { |
| 2542 pArguments->GetReturnValue()->SetNull(); | 2542 pArguments->GetReturnValue()->SetNull(); |
| 2543 return; | 2543 return; |
| 2544 } | 2544 } |
| 2545 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2545 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2546 if (!pWidgetData) { | 2546 if (!pWidgetData) { |
| 2547 pArguments->GetReturnValue()->SetNull(); | 2547 pArguments->GetReturnValue()->SetNull(); |
| 2548 return; | 2548 return; |
| 2549 } | 2549 } |
| 2550 CFX_WideString wsValue; | 2550 CFX_WideString wsValue; |
| 2551 FX_BOOL bHasItem = pWidgetData->GetChoiceListItem(wsValue, iIndex, FALSE); | 2551 bool bHasItem = pWidgetData->GetChoiceListItem(wsValue, iIndex, false); |
| 2552 if (bHasItem) { | 2552 if (bHasItem) { |
| 2553 pArguments->GetReturnValue()->SetString( | 2553 pArguments->GetReturnValue()->SetString( |
| 2554 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC()); | 2554 FX_UTF8Encode(wsValue.c_str(), wsValue.GetLength()).AsStringC()); |
| 2555 } else { | 2555 } else { |
| 2556 pArguments->GetReturnValue()->SetNull(); | 2556 pArguments->GetReturnValue()->SetNull(); |
| 2557 } | 2557 } |
| 2558 } | 2558 } |
| 2559 | 2559 |
| 2560 void CXFA_Node::Script_Field_SetItemState(CFXJSE_Arguments* pArguments) { | 2560 void CXFA_Node::Script_Field_SetItemState(CFXJSE_Arguments* pArguments) { |
| 2561 int32_t iLength = pArguments->GetLength(); | 2561 int32_t iLength = pArguments->GetLength(); |
| 2562 if (iLength != 2) { | 2562 if (iLength != 2) { |
| 2563 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"setItemState"); | 2563 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"setItemState"); |
| 2564 return; | 2564 return; |
| 2565 } | 2565 } |
| 2566 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2566 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2567 if (!pWidgetData) | 2567 if (!pWidgetData) |
| 2568 return; | 2568 return; |
| 2569 | 2569 |
| 2570 int32_t iIndex = pArguments->GetInt32(0); | 2570 int32_t iIndex = pArguments->GetInt32(0); |
| 2571 if (pArguments->GetInt32(1) != 0) { | 2571 if (pArguments->GetInt32(1) != 0) { |
| 2572 pWidgetData->SetItemState(iIndex, TRUE, true, TRUE, TRUE); | 2572 pWidgetData->SetItemState(iIndex, true, true, true, true); |
| 2573 } else { | 2573 } else { |
| 2574 if (pWidgetData->GetItemState(iIndex)) | 2574 if (pWidgetData->GetItemState(iIndex)) |
| 2575 pWidgetData->SetItemState(iIndex, FALSE, true, TRUE, TRUE); | 2575 pWidgetData->SetItemState(iIndex, false, true, true, true); |
| 2576 } | 2576 } |
| 2577 } | 2577 } |
| 2578 | 2578 |
| 2579 void CXFA_Node::Script_Field_AddItem(CFXJSE_Arguments* pArguments) { | 2579 void CXFA_Node::Script_Field_AddItem(CFXJSE_Arguments* pArguments) { |
| 2580 int32_t iLength = pArguments->GetLength(); | 2580 int32_t iLength = pArguments->GetLength(); |
| 2581 if (iLength < 1 || iLength > 2) { | 2581 if (iLength < 1 || iLength > 2) { |
| 2582 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"addItem"); | 2582 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"addItem"); |
| 2583 return; | 2583 return; |
| 2584 } | 2584 } |
| 2585 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2585 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2586 if (!pWidgetData) { | 2586 if (!pWidgetData) { |
| 2587 return; | 2587 return; |
| 2588 } | 2588 } |
| 2589 CFX_WideString wsLabel; | 2589 CFX_WideString wsLabel; |
| 2590 CFX_WideString wsValue; | 2590 CFX_WideString wsValue; |
| 2591 if (iLength >= 1) { | 2591 if (iLength >= 1) { |
| 2592 CFX_ByteString bsLabel = pArguments->GetUTF8String(0); | 2592 CFX_ByteString bsLabel = pArguments->GetUTF8String(0); |
| 2593 wsLabel = CFX_WideString::FromUTF8(bsLabel.AsStringC()); | 2593 wsLabel = CFX_WideString::FromUTF8(bsLabel.AsStringC()); |
| 2594 } | 2594 } |
| 2595 if (iLength >= 2) { | 2595 if (iLength >= 2) { |
| 2596 CFX_ByteString bsValue = pArguments->GetUTF8String(1); | 2596 CFX_ByteString bsValue = pArguments->GetUTF8String(1); |
| 2597 wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC()); | 2597 wsValue = CFX_WideString::FromUTF8(bsValue.AsStringC()); |
| 2598 } | 2598 } |
| 2599 pWidgetData->InsertItem(wsLabel, wsValue, -1, TRUE); | 2599 pWidgetData->InsertItem(wsLabel, wsValue, -1, true); |
| 2600 } | 2600 } |
| 2601 | 2601 |
| 2602 void CXFA_Node::Script_Field_ExecValidate(CFXJSE_Arguments* pArguments) { | 2602 void CXFA_Node::Script_Field_ExecValidate(CFXJSE_Arguments* pArguments) { |
| 2603 int32_t argc = pArguments->GetLength(); | 2603 int32_t argc = pArguments->GetLength(); |
| 2604 if (argc == 0) { | 2604 if (argc == 0) { |
| 2605 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 2605 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 2606 if (!pNotify) { | 2606 if (!pNotify) { |
| 2607 pArguments->GetReturnValue()->SetBoolean(FALSE); | 2607 pArguments->GetReturnValue()->SetBoolean(false); |
| 2608 } else { | 2608 } else { |
| 2609 int32_t iRet = | 2609 int32_t iRet = |
| 2610 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate, FALSE, FALSE); | 2610 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate, false, false); |
| 2611 pArguments->GetReturnValue()->SetBoolean( | 2611 pArguments->GetReturnValue()->SetBoolean( |
| 2612 (iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE); | 2612 (iRet == XFA_EVENTERROR_Error) ? false : true); |
| 2613 } | 2613 } |
| 2614 } else { | 2614 } else { |
| 2615 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); | 2615 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); |
| 2616 } | 2616 } |
| 2617 } | 2617 } |
| 2618 | 2618 |
| 2619 void CXFA_Node::Script_ExclGroup_ErrorText(CFXJSE_Value* pValue, | 2619 void CXFA_Node::Script_ExclGroup_ErrorText(CFXJSE_Value* pValue, |
| 2620 FX_BOOL bSetting, | 2620 bool bSetting, |
| 2621 XFA_ATTRIBUTE eAttribute) { | 2621 XFA_ATTRIBUTE eAttribute) { |
| 2622 if (!bSetting) { | 2622 if (!bSetting) { |
| 2623 } else { | 2623 } else { |
| 2624 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 2624 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 2625 } | 2625 } |
| 2626 } | 2626 } |
| 2627 | 2627 |
| 2628 void CXFA_Node::Script_ExclGroup_DefaultAndRawValue(CFXJSE_Value* pValue, | 2628 void CXFA_Node::Script_ExclGroup_DefaultAndRawValue(CFXJSE_Value* pValue, |
| 2629 FX_BOOL bSetting, | 2629 bool bSetting, |
| 2630 XFA_ATTRIBUTE eAttribute) { | 2630 XFA_ATTRIBUTE eAttribute) { |
| 2631 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2631 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2632 if (!pWidgetData) { | 2632 if (!pWidgetData) { |
| 2633 return; | 2633 return; |
| 2634 } | 2634 } |
| 2635 if (bSetting) { | 2635 if (bSetting) { |
| 2636 pWidgetData->SetSelectedMemberByValue(pValue->ToWideString().AsStringC(), | 2636 pWidgetData->SetSelectedMemberByValue(pValue->ToWideString().AsStringC(), |
| 2637 true, TRUE, TRUE); | 2637 true, true, true); |
| 2638 } else { | 2638 } else { |
| 2639 CFX_WideString wsValue = GetScriptContent(TRUE); | 2639 CFX_WideString wsValue = GetScriptContent(true); |
| 2640 XFA_VERSION curVersion = GetDocument()->GetCurVersionMode(); | 2640 XFA_VERSION curVersion = GetDocument()->GetCurVersionMode(); |
| 2641 if (wsValue.IsEmpty() && curVersion >= XFA_VERSION_300) { | 2641 if (wsValue.IsEmpty() && curVersion >= XFA_VERSION_300) { |
| 2642 pValue->SetNull(); | 2642 pValue->SetNull(); |
| 2643 } else { | 2643 } else { |
| 2644 pValue->SetString(FX_UTF8Encode(wsValue).AsStringC()); | 2644 pValue->SetString(FX_UTF8Encode(wsValue).AsStringC()); |
| 2645 } | 2645 } |
| 2646 } | 2646 } |
| 2647 } | 2647 } |
| 2648 | 2648 |
| 2649 void CXFA_Node::Script_ExclGroup_Transient(CFXJSE_Value* pValue, | 2649 void CXFA_Node::Script_ExclGroup_Transient(CFXJSE_Value* pValue, |
| 2650 FX_BOOL bSetting, | 2650 bool bSetting, |
| 2651 XFA_ATTRIBUTE eAttribute) {} | 2651 XFA_ATTRIBUTE eAttribute) {} |
| 2652 | 2652 |
| 2653 void CXFA_Node::Script_ExclGroup_ExecEvent(CFXJSE_Arguments* pArguments) { | 2653 void CXFA_Node::Script_ExclGroup_ExecEvent(CFXJSE_Arguments* pArguments) { |
| 2654 int32_t argc = pArguments->GetLength(); | 2654 int32_t argc = pArguments->GetLength(); |
| 2655 if (argc == 1) { | 2655 if (argc == 1) { |
| 2656 CFX_ByteString eventString = pArguments->GetUTF8String(0); | 2656 CFX_ByteString eventString = pArguments->GetUTF8String(0); |
| 2657 execSingleEventByName( | 2657 execSingleEventByName( |
| 2658 CFX_WideString::FromUTF8(eventString.AsStringC()).AsStringC(), | 2658 CFX_WideString::FromUTF8(eventString.AsStringC()).AsStringC(), |
| 2659 XFA_Element::ExclGroup); | 2659 XFA_Element::ExclGroup); |
| 2660 } else { | 2660 } else { |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2716 } else { | 2716 } else { |
| 2717 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); | 2717 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); |
| 2718 } | 2718 } |
| 2719 } | 2719 } |
| 2720 | 2720 |
| 2721 void CXFA_Node::Script_ExclGroup_ExecValidate(CFXJSE_Arguments* pArguments) { | 2721 void CXFA_Node::Script_ExclGroup_ExecValidate(CFXJSE_Arguments* pArguments) { |
| 2722 int32_t argc = pArguments->GetLength(); | 2722 int32_t argc = pArguments->GetLength(); |
| 2723 if (argc == 0) { | 2723 if (argc == 0) { |
| 2724 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 2724 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 2725 if (!pNotify) { | 2725 if (!pNotify) { |
| 2726 pArguments->GetReturnValue()->SetBoolean(FALSE); | 2726 pArguments->GetReturnValue()->SetBoolean(false); |
| 2727 } else { | 2727 } else { |
| 2728 int32_t iRet = pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate); | 2728 int32_t iRet = pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate); |
| 2729 pArguments->GetReturnValue()->SetBoolean( | 2729 pArguments->GetReturnValue()->SetBoolean( |
| 2730 (iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE); | 2730 (iRet == XFA_EVENTERROR_Error) ? false : true); |
| 2731 } | 2731 } |
| 2732 } else { | 2732 } else { |
| 2733 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); | 2733 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); |
| 2734 } | 2734 } |
| 2735 } | 2735 } |
| 2736 | 2736 |
| 2737 void CXFA_Node::Script_Som_InstanceIndex(CFXJSE_Value* pValue, | 2737 void CXFA_Node::Script_Som_InstanceIndex(CFXJSE_Value* pValue, |
| 2738 FX_BOOL bSetting, | 2738 bool bSetting, |
| 2739 XFA_ATTRIBUTE eAttribute) { | 2739 XFA_ATTRIBUTE eAttribute) { |
| 2740 if (bSetting) { | 2740 if (bSetting) { |
| 2741 int32_t iTo = pValue->ToInteger(); | 2741 int32_t iTo = pValue->ToInteger(); |
| 2742 int32_t iFrom = Subform_and_SubformSet_InstanceIndex(); | 2742 int32_t iFrom = Subform_and_SubformSet_InstanceIndex(); |
| 2743 CXFA_Node* pManagerNode = nullptr; | 2743 CXFA_Node* pManagerNode = nullptr; |
| 2744 for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_PrevSibling); pNode; | 2744 for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_PrevSibling); pNode; |
| 2745 pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) { | 2745 pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) { |
| 2746 if (pNode->GetElementType() == XFA_Element::InstanceManager) { | 2746 if (pNode->GetElementType() == XFA_Element::InstanceManager) { |
| 2747 pManagerNode = pNode; | 2747 pManagerNode = pNode; |
| 2748 break; | 2748 break; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 2764 pFromInstance->GetElementType() == XFA_Element::Subform) { | 2764 pFromInstance->GetElementType() == XFA_Element::Subform) { |
| 2765 pNotify->RunSubformIndexChange(pFromInstance); | 2765 pNotify->RunSubformIndexChange(pFromInstance); |
| 2766 } | 2766 } |
| 2767 } | 2767 } |
| 2768 } else { | 2768 } else { |
| 2769 pValue->SetInteger(Subform_and_SubformSet_InstanceIndex()); | 2769 pValue->SetInteger(Subform_and_SubformSet_InstanceIndex()); |
| 2770 } | 2770 } |
| 2771 } | 2771 } |
| 2772 | 2772 |
| 2773 void CXFA_Node::Script_Subform_InstanceManager(CFXJSE_Value* pValue, | 2773 void CXFA_Node::Script_Subform_InstanceManager(CFXJSE_Value* pValue, |
| 2774 FX_BOOL bSetting, | 2774 bool bSetting, |
| 2775 XFA_ATTRIBUTE eAttribute) { | 2775 XFA_ATTRIBUTE eAttribute) { |
| 2776 if (!bSetting) { | 2776 if (!bSetting) { |
| 2777 CFX_WideStringC wsName = GetCData(XFA_ATTRIBUTE_Name); | 2777 CFX_WideStringC wsName = GetCData(XFA_ATTRIBUTE_Name); |
| 2778 CXFA_Node* pInstanceMgr = nullptr; | 2778 CXFA_Node* pInstanceMgr = nullptr; |
| 2779 for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_PrevSibling); pNode; | 2779 for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_PrevSibling); pNode; |
| 2780 pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) { | 2780 pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) { |
| 2781 if (pNode->GetElementType() == XFA_Element::InstanceManager) { | 2781 if (pNode->GetElementType() == XFA_Element::InstanceManager) { |
| 2782 CFX_WideStringC wsInstMgrName = pNode->GetCData(XFA_ATTRIBUTE_Name); | 2782 CFX_WideStringC wsInstMgrName = pNode->GetCData(XFA_ATTRIBUTE_Name); |
| 2783 if (wsInstMgrName.GetLength() >= 1 && wsInstMgrName.GetAt(0) == '_' && | 2783 if (wsInstMgrName.GetLength() >= 1 && wsInstMgrName.GetAt(0) == '_' && |
| 2784 wsInstMgrName.Mid(1) == wsName) { | 2784 wsInstMgrName.Mid(1) == wsName) { |
| 2785 pInstanceMgr = pNode; | 2785 pInstanceMgr = pNode; |
| 2786 } | 2786 } |
| 2787 break; | 2787 break; |
| 2788 } | 2788 } |
| 2789 } | 2789 } |
| 2790 if (pInstanceMgr) { | 2790 if (pInstanceMgr) { |
| 2791 pValue->Assign( | 2791 pValue->Assign( |
| 2792 m_pDocument->GetScriptContext()->GetJSValueFromMap(pInstanceMgr)); | 2792 m_pDocument->GetScriptContext()->GetJSValueFromMap(pInstanceMgr)); |
| 2793 } else { | 2793 } else { |
| 2794 pValue->SetNull(); | 2794 pValue->SetNull(); |
| 2795 } | 2795 } |
| 2796 } else { | 2796 } else { |
| 2797 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 2797 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 2798 } | 2798 } |
| 2799 } | 2799 } |
| 2800 | 2800 |
| 2801 void CXFA_Node::Script_Subform_Locale(CFXJSE_Value* pValue, | 2801 void CXFA_Node::Script_Subform_Locale(CFXJSE_Value* pValue, |
| 2802 FX_BOOL bSetting, | 2802 bool bSetting, |
| 2803 XFA_ATTRIBUTE eAttribute) { | 2803 XFA_ATTRIBUTE eAttribute) { |
| 2804 if (bSetting) { | 2804 if (bSetting) { |
| 2805 SetCData(XFA_ATTRIBUTE_Locale, pValue->ToWideString(), true, TRUE); | 2805 SetCData(XFA_ATTRIBUTE_Locale, pValue->ToWideString(), true, true); |
| 2806 } else { | 2806 } else { |
| 2807 CFX_WideString wsLocaleName; | 2807 CFX_WideString wsLocaleName; |
| 2808 GetLocaleName(wsLocaleName); | 2808 GetLocaleName(wsLocaleName); |
| 2809 pValue->SetString( | 2809 pValue->SetString( |
| 2810 FX_UTF8Encode(wsLocaleName.c_str(), wsLocaleName.GetLength()) | 2810 FX_UTF8Encode(wsLocaleName.c_str(), wsLocaleName.GetLength()) |
| 2811 .AsStringC()); | 2811 .AsStringC()); |
| 2812 } | 2812 } |
| 2813 } | 2813 } |
| 2814 | 2814 |
| 2815 void CXFA_Node::Script_Subform_ExecEvent(CFXJSE_Arguments* pArguments) { | 2815 void CXFA_Node::Script_Subform_ExecEvent(CFXJSE_Arguments* pArguments) { |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2848 } else { | 2848 } else { |
| 2849 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); | 2849 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); |
| 2850 } | 2850 } |
| 2851 } | 2851 } |
| 2852 | 2852 |
| 2853 void CXFA_Node::Script_Subform_ExecValidate(CFXJSE_Arguments* pArguments) { | 2853 void CXFA_Node::Script_Subform_ExecValidate(CFXJSE_Arguments* pArguments) { |
| 2854 int32_t argc = pArguments->GetLength(); | 2854 int32_t argc = pArguments->GetLength(); |
| 2855 if (argc == 0) { | 2855 if (argc == 0) { |
| 2856 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 2856 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 2857 if (!pNotify) { | 2857 if (!pNotify) { |
| 2858 pArguments->GetReturnValue()->SetBoolean(FALSE); | 2858 pArguments->GetReturnValue()->SetBoolean(false); |
| 2859 } else { | 2859 } else { |
| 2860 int32_t iRet = pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate); | 2860 int32_t iRet = pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate); |
| 2861 pArguments->GetReturnValue()->SetBoolean( | 2861 pArguments->GetReturnValue()->SetBoolean( |
| 2862 (iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE); | 2862 (iRet == XFA_EVENTERROR_Error) ? false : true); |
| 2863 } | 2863 } |
| 2864 } else { | 2864 } else { |
| 2865 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); | 2865 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); |
| 2866 } | 2866 } |
| 2867 } | 2867 } |
| 2868 | 2868 |
| 2869 void CXFA_Node::Script_Subform_GetInvalidObjects(CFXJSE_Arguments* pArguments) { | 2869 void CXFA_Node::Script_Subform_GetInvalidObjects(CFXJSE_Arguments* pArguments) { |
| 2870 int32_t argc = pArguments->GetLength(); | 2870 int32_t argc = pArguments->GetLength(); |
| 2871 if (argc == 0) { | 2871 if (argc == 0) { |
| 2872 } else { | 2872 } else { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 2884 } else { | 2884 } else { |
| 2885 break; | 2885 break; |
| 2886 } | 2886 } |
| 2887 } | 2887 } |
| 2888 return index; | 2888 return index; |
| 2889 } | 2889 } |
| 2890 | 2890 |
| 2891 void CXFA_Node::Script_Template_FormNodes(CFXJSE_Arguments* pArguments) { | 2891 void CXFA_Node::Script_Template_FormNodes(CFXJSE_Arguments* pArguments) { |
| 2892 int32_t argc = pArguments->GetLength(); | 2892 int32_t argc = pArguments->GetLength(); |
| 2893 if (argc == 1) { | 2893 if (argc == 1) { |
| 2894 pArguments->GetReturnValue()->SetBoolean(TRUE); | 2894 pArguments->GetReturnValue()->SetBoolean(true); |
| 2895 } else { | 2895 } else { |
| 2896 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"formNodes"); | 2896 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"formNodes"); |
| 2897 } | 2897 } |
| 2898 } | 2898 } |
| 2899 | 2899 |
| 2900 void CXFA_Node::Script_Template_Remerge(CFXJSE_Arguments* pArguments) { | 2900 void CXFA_Node::Script_Template_Remerge(CFXJSE_Arguments* pArguments) { |
| 2901 int32_t argc = pArguments->GetLength(); | 2901 int32_t argc = pArguments->GetLength(); |
| 2902 if (argc == 0) { | 2902 if (argc == 0) { |
| 2903 m_pDocument->DoDataRemerge(TRUE); | 2903 m_pDocument->DoDataRemerge(true); |
| 2904 } else { | 2904 } else { |
| 2905 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"remerge"); | 2905 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"remerge"); |
| 2906 } | 2906 } |
| 2907 } | 2907 } |
| 2908 | 2908 |
| 2909 void CXFA_Node::Script_Template_ExecInitialize(CFXJSE_Arguments* pArguments) { | 2909 void CXFA_Node::Script_Template_ExecInitialize(CFXJSE_Arguments* pArguments) { |
| 2910 int32_t argc = pArguments->GetLength(); | 2910 int32_t argc = pArguments->GetLength(); |
| 2911 if (argc == 0) { | 2911 if (argc == 0) { |
| 2912 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2912 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2913 if (!pWidgetData) { | 2913 if (!pWidgetData) { |
| 2914 pArguments->GetReturnValue()->SetBoolean(FALSE); | 2914 pArguments->GetReturnValue()->SetBoolean(false); |
| 2915 } else { | 2915 } else { |
| 2916 pArguments->GetReturnValue()->SetBoolean(TRUE); | 2916 pArguments->GetReturnValue()->SetBoolean(true); |
| 2917 } | 2917 } |
| 2918 } else { | 2918 } else { |
| 2919 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execInitialize"); | 2919 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execInitialize"); |
| 2920 } | 2920 } |
| 2921 } | 2921 } |
| 2922 | 2922 |
| 2923 void CXFA_Node::Script_Template_CreateNode(CFXJSE_Arguments* pArguments) { | 2923 void CXFA_Node::Script_Template_CreateNode(CFXJSE_Arguments* pArguments) { |
| 2924 int32_t argc = pArguments->GetLength(); | 2924 int32_t argc = pArguments->GetLength(); |
| 2925 if ((argc > 0) && (argc < 4)) { | 2925 if ((argc > 0) && (argc < 4)) { |
| 2926 CFX_WideString strTagName; | 2926 CFX_WideString strTagName; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2959 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewNode)); | 2959 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewNode)); |
| 2960 } | 2960 } |
| 2961 } | 2961 } |
| 2962 } else { | 2962 } else { |
| 2963 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"createNode"); | 2963 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"createNode"); |
| 2964 } | 2964 } |
| 2965 } | 2965 } |
| 2966 | 2966 |
| 2967 void CXFA_Node::Script_Template_Recalculate(CFXJSE_Arguments* pArguments) { | 2967 void CXFA_Node::Script_Template_Recalculate(CFXJSE_Arguments* pArguments) { |
| 2968 if (pArguments->GetLength() == 1) { | 2968 if (pArguments->GetLength() == 1) { |
| 2969 pArguments->GetReturnValue()->SetBoolean(TRUE); | 2969 pArguments->GetReturnValue()->SetBoolean(true); |
| 2970 } else { | 2970 } else { |
| 2971 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"recalculate"); | 2971 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"recalculate"); |
| 2972 } | 2972 } |
| 2973 } | 2973 } |
| 2974 | 2974 |
| 2975 void CXFA_Node::Script_Template_ExecCalculate(CFXJSE_Arguments* pArguments) { | 2975 void CXFA_Node::Script_Template_ExecCalculate(CFXJSE_Arguments* pArguments) { |
| 2976 int32_t argc = pArguments->GetLength(); | 2976 int32_t argc = pArguments->GetLength(); |
| 2977 if (argc == 0) { | 2977 if (argc == 0) { |
| 2978 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2978 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2979 if (!pWidgetData) { | 2979 if (!pWidgetData) { |
| 2980 pArguments->GetReturnValue()->SetBoolean(FALSE); | 2980 pArguments->GetReturnValue()->SetBoolean(false); |
| 2981 } else { | 2981 } else { |
| 2982 pArguments->GetReturnValue()->SetBoolean(TRUE); | 2982 pArguments->GetReturnValue()->SetBoolean(true); |
| 2983 } | 2983 } |
| 2984 } else { | 2984 } else { |
| 2985 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); | 2985 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); |
| 2986 } | 2986 } |
| 2987 } | 2987 } |
| 2988 | 2988 |
| 2989 void CXFA_Node::Script_Template_ExecValidate(CFXJSE_Arguments* pArguments) { | 2989 void CXFA_Node::Script_Template_ExecValidate(CFXJSE_Arguments* pArguments) { |
| 2990 int32_t argc = pArguments->GetLength(); | 2990 int32_t argc = pArguments->GetLength(); |
| 2991 if (argc == 0) { | 2991 if (argc == 0) { |
| 2992 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 2992 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 2993 if (!pWidgetData) { | 2993 if (!pWidgetData) { |
| 2994 pArguments->GetReturnValue()->SetBoolean(FALSE); | 2994 pArguments->GetReturnValue()->SetBoolean(false); |
| 2995 } else { | 2995 } else { |
| 2996 pArguments->GetReturnValue()->SetBoolean(TRUE); | 2996 pArguments->GetReturnValue()->SetBoolean(true); |
| 2997 } | 2997 } |
| 2998 } else { | 2998 } else { |
| 2999 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); | 2999 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); |
| 3000 } | 3000 } |
| 3001 } | 3001 } |
| 3002 | 3002 |
| 3003 void CXFA_Node::Script_Manifest_Evaluate(CFXJSE_Arguments* pArguments) { | 3003 void CXFA_Node::Script_Manifest_Evaluate(CFXJSE_Arguments* pArguments) { |
| 3004 int32_t argc = pArguments->GetLength(); | 3004 int32_t argc = pArguments->GetLength(); |
| 3005 if (argc == 0) { | 3005 if (argc == 0) { |
| 3006 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 3006 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 3007 if (!pWidgetData) { | 3007 if (!pWidgetData) { |
| 3008 pArguments->GetReturnValue()->SetBoolean(FALSE); | 3008 pArguments->GetReturnValue()->SetBoolean(false); |
| 3009 } else { | 3009 } else { |
| 3010 pArguments->GetReturnValue()->SetBoolean(TRUE); | 3010 pArguments->GetReturnValue()->SetBoolean(true); |
| 3011 } | 3011 } |
| 3012 } else { | 3012 } else { |
| 3013 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"evaluate"); | 3013 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"evaluate"); |
| 3014 } | 3014 } |
| 3015 } | 3015 } |
| 3016 | 3016 |
| 3017 void CXFA_Node::Script_InstanceManager_Max(CFXJSE_Value* pValue, | 3017 void CXFA_Node::Script_InstanceManager_Max(CFXJSE_Value* pValue, |
| 3018 FX_BOOL bSetting, | 3018 bool bSetting, |
| 3019 XFA_ATTRIBUTE eAttribute) { | 3019 XFA_ATTRIBUTE eAttribute) { |
| 3020 if (bSetting) { | 3020 if (bSetting) { |
| 3021 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 3021 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 3022 return; | 3022 return; |
| 3023 } | 3023 } |
| 3024 CXFA_Occur nodeOccur(GetOccurNode()); | 3024 CXFA_Occur nodeOccur(GetOccurNode()); |
| 3025 pValue->SetInteger(nodeOccur.GetMax()); | 3025 pValue->SetInteger(nodeOccur.GetMax()); |
| 3026 } | 3026 } |
| 3027 | 3027 |
| 3028 void CXFA_Node::Script_InstanceManager_Min(CFXJSE_Value* pValue, | 3028 void CXFA_Node::Script_InstanceManager_Min(CFXJSE_Value* pValue, |
| 3029 FX_BOOL bSetting, | 3029 bool bSetting, |
| 3030 XFA_ATTRIBUTE eAttribute) { | 3030 XFA_ATTRIBUTE eAttribute) { |
| 3031 if (bSetting) { | 3031 if (bSetting) { |
| 3032 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 3032 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 3033 return; | 3033 return; |
| 3034 } | 3034 } |
| 3035 CXFA_Occur nodeOccur(GetOccurNode()); | 3035 CXFA_Occur nodeOccur(GetOccurNode()); |
| 3036 pValue->SetInteger(nodeOccur.GetMin()); | 3036 pValue->SetInteger(nodeOccur.GetMin()); |
| 3037 } | 3037 } |
| 3038 | 3038 |
| 3039 void CXFA_Node::Script_InstanceManager_Count(CFXJSE_Value* pValue, | 3039 void CXFA_Node::Script_InstanceManager_Count(CFXJSE_Value* pValue, |
| 3040 FX_BOOL bSetting, | 3040 bool bSetting, |
| 3041 XFA_ATTRIBUTE eAttribute) { | 3041 XFA_ATTRIBUTE eAttribute) { |
| 3042 if (bSetting) { | 3042 if (bSetting) { |
| 3043 int32_t iDesired = pValue->ToInteger(); | 3043 int32_t iDesired = pValue->ToInteger(); |
| 3044 InstanceManager_SetInstances(iDesired); | 3044 InstanceManager_SetInstances(iDesired); |
| 3045 } else { | 3045 } else { |
| 3046 pValue->SetInteger(GetCount(this)); | 3046 pValue->SetInteger(GetCount(this)); |
| 3047 } | 3047 } |
| 3048 } | 3048 } |
| 3049 | 3049 |
| 3050 void CXFA_Node::Script_InstanceManager_MoveInstance( | 3050 void CXFA_Node::Script_InstanceManager_MoveInstance( |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3122 InstanceManager_SetInstances(iDesired); | 3122 InstanceManager_SetInstances(iDesired); |
| 3123 } | 3123 } |
| 3124 | 3124 |
| 3125 void CXFA_Node::Script_InstanceManager_AddInstance( | 3125 void CXFA_Node::Script_InstanceManager_AddInstance( |
| 3126 CFXJSE_Arguments* pArguments) { | 3126 CFXJSE_Arguments* pArguments) { |
| 3127 int32_t argc = pArguments->GetLength(); | 3127 int32_t argc = pArguments->GetLength(); |
| 3128 if ((argc != 0) && (argc != 1)) { | 3128 if ((argc != 0) && (argc != 1)) { |
| 3129 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"addInstance"); | 3129 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"addInstance"); |
| 3130 return; | 3130 return; |
| 3131 } | 3131 } |
| 3132 FX_BOOL fFlags = TRUE; | 3132 bool fFlags = true; |
| 3133 if (argc == 1) { | 3133 if (argc == 1) { |
| 3134 fFlags = pArguments->GetInt32(0) == 0 ? FALSE : TRUE; | 3134 fFlags = pArguments->GetInt32(0) == 0 ? false : true; |
| 3135 } | 3135 } |
| 3136 int32_t iCount = GetCount(this); | 3136 int32_t iCount = GetCount(this); |
| 3137 CXFA_Occur nodeOccur(GetOccurNode()); | 3137 CXFA_Occur nodeOccur(GetOccurNode()); |
| 3138 int32_t iMax = nodeOccur.GetMax(); | 3138 int32_t iMax = nodeOccur.GetMax(); |
| 3139 if (iMax >= 0 && iCount >= iMax) { | 3139 if (iMax >= 0 && iCount >= iMax) { |
| 3140 ThrowException(XFA_IDS_VIOLATE_BOUNDARY, L"max"); | 3140 ThrowException(XFA_IDS_VIOLATE_BOUNDARY, L"max"); |
| 3141 return; | 3141 return; |
| 3142 } | 3142 } |
| 3143 CXFA_Node* pNewInstance = CreateInstance(this, fFlags); | 3143 CXFA_Node* pNewInstance = CreateInstance(this, fFlags); |
| 3144 InsertItem(this, pNewInstance, iCount, iCount, FALSE); | 3144 InsertItem(this, pNewInstance, iCount, iCount, false); |
| 3145 pArguments->GetReturnValue()->Assign( | 3145 pArguments->GetReturnValue()->Assign( |
| 3146 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewInstance)); | 3146 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewInstance)); |
| 3147 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 3147 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 3148 if (!pNotify) { | 3148 if (!pNotify) { |
| 3149 return; | 3149 return; |
| 3150 } | 3150 } |
| 3151 pNotify->RunNodeInitialize(pNewInstance); | 3151 pNotify->RunNodeInitialize(pNewInstance); |
| 3152 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); | 3152 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); |
| 3153 if (!pLayoutPro) { | 3153 if (!pLayoutPro) { |
| 3154 return; | 3154 return; |
| 3155 } | 3155 } |
| 3156 pLayoutPro->AddChangedContainer( | 3156 pLayoutPro->AddChangedContainer( |
| 3157 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form))); | 3157 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form))); |
| 3158 } | 3158 } |
| 3159 | 3159 |
| 3160 void CXFA_Node::Script_InstanceManager_InsertInstance( | 3160 void CXFA_Node::Script_InstanceManager_InsertInstance( |
| 3161 CFXJSE_Arguments* pArguments) { | 3161 CFXJSE_Arguments* pArguments) { |
| 3162 int32_t argc = pArguments->GetLength(); | 3162 int32_t argc = pArguments->GetLength(); |
| 3163 if ((argc != 1) && (argc != 2)) { | 3163 if ((argc != 1) && (argc != 2)) { |
| 3164 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"insertInstance"); | 3164 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"insertInstance"); |
| 3165 return; | 3165 return; |
| 3166 } | 3166 } |
| 3167 int32_t iIndex = pArguments->GetInt32(0); | 3167 int32_t iIndex = pArguments->GetInt32(0); |
| 3168 FX_BOOL bBind = FALSE; | 3168 bool bBind = false; |
| 3169 if (argc == 2) { | 3169 if (argc == 2) { |
| 3170 bBind = pArguments->GetInt32(1) == 0 ? FALSE : TRUE; | 3170 bBind = pArguments->GetInt32(1) == 0 ? false : true; |
| 3171 } | 3171 } |
| 3172 CXFA_Occur nodeOccur(GetOccurNode()); | 3172 CXFA_Occur nodeOccur(GetOccurNode()); |
| 3173 int32_t iCount = GetCount(this); | 3173 int32_t iCount = GetCount(this); |
| 3174 if (iIndex < 0 || iIndex > iCount) { | 3174 if (iIndex < 0 || iIndex > iCount) { |
| 3175 ThrowException(XFA_IDS_INDEX_OUT_OF_BOUNDS); | 3175 ThrowException(XFA_IDS_INDEX_OUT_OF_BOUNDS); |
| 3176 return; | 3176 return; |
| 3177 } | 3177 } |
| 3178 int32_t iMax = nodeOccur.GetMax(); | 3178 int32_t iMax = nodeOccur.GetMax(); |
| 3179 if (iMax >= 0 && iCount >= iMax) { | 3179 if (iMax >= 0 && iCount >= iMax) { |
| 3180 ThrowException(XFA_IDS_VIOLATE_BOUNDARY, L"max"); | 3180 ThrowException(XFA_IDS_VIOLATE_BOUNDARY, L"max"); |
| 3181 return; | 3181 return; |
| 3182 } | 3182 } |
| 3183 CXFA_Node* pNewInstance = CreateInstance(this, bBind); | 3183 CXFA_Node* pNewInstance = CreateInstance(this, bBind); |
| 3184 InsertItem(this, pNewInstance, iIndex, iCount, TRUE); | 3184 InsertItem(this, pNewInstance, iIndex, iCount, true); |
| 3185 pArguments->GetReturnValue()->Assign( | 3185 pArguments->GetReturnValue()->Assign( |
| 3186 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewInstance)); | 3186 m_pDocument->GetScriptContext()->GetJSValueFromMap(pNewInstance)); |
| 3187 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 3187 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 3188 if (!pNotify) { | 3188 if (!pNotify) { |
| 3189 return; | 3189 return; |
| 3190 } | 3190 } |
| 3191 pNotify->RunNodeInitialize(pNewInstance); | 3191 pNotify->RunNodeInitialize(pNewInstance); |
| 3192 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); | 3192 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); |
| 3193 if (!pLayoutPro) { | 3193 if (!pLayoutPro) { |
| 3194 return; | 3194 return; |
| (...skipping 28 matching lines...) Expand all Loading... |
| 3223 CXFA_Node* pPrevSibling = | 3223 CXFA_Node* pPrevSibling = |
| 3224 (iDesired == 0) ? this : GetItem(this, iDesired - 1); | 3224 (iDesired == 0) ? this : GetItem(this, iDesired - 1); |
| 3225 while (iCount > iDesired) { | 3225 while (iCount > iDesired) { |
| 3226 CXFA_Node* pRemoveInstance = | 3226 CXFA_Node* pRemoveInstance = |
| 3227 pPrevSibling->GetNodeItem(XFA_NODEITEM_NextSibling); | 3227 pPrevSibling->GetNodeItem(XFA_NODEITEM_NextSibling); |
| 3228 if (pRemoveInstance->GetElementType() != XFA_Element::Subform && | 3228 if (pRemoveInstance->GetElementType() != XFA_Element::Subform && |
| 3229 pRemoveInstance->GetElementType() != XFA_Element::SubformSet) { | 3229 pRemoveInstance->GetElementType() != XFA_Element::SubformSet) { |
| 3230 continue; | 3230 continue; |
| 3231 } | 3231 } |
| 3232 if (pRemoveInstance->GetElementType() == XFA_Element::InstanceManager) { | 3232 if (pRemoveInstance->GetElementType() == XFA_Element::InstanceManager) { |
| 3233 ASSERT(FALSE); | 3233 ASSERT(false); |
| 3234 break; | 3234 break; |
| 3235 } | 3235 } |
| 3236 if (pRemoveInstance->GetNameHash() == dInstanceNameHash) { | 3236 if (pRemoveInstance->GetNameHash() == dInstanceNameHash) { |
| 3237 RemoveItem(this, pRemoveInstance); | 3237 RemoveItem(this, pRemoveInstance); |
| 3238 iCount--; | 3238 iCount--; |
| 3239 } | 3239 } |
| 3240 } | 3240 } |
| 3241 } else if (iDesired > iCount) { | 3241 } else if (iDesired > iCount) { |
| 3242 while (iCount < iDesired) { | 3242 while (iCount < iDesired) { |
| 3243 CXFA_Node* pNewInstance = CreateInstance(this, TRUE); | 3243 CXFA_Node* pNewInstance = CreateInstance(this, true); |
| 3244 InsertItem(this, pNewInstance, iCount, iCount, FALSE); | 3244 InsertItem(this, pNewInstance, iCount, iCount, false); |
| 3245 iCount++; | 3245 iCount++; |
| 3246 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 3246 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 3247 if (!pNotify) { | 3247 if (!pNotify) { |
| 3248 return 0; | 3248 return 0; |
| 3249 } | 3249 } |
| 3250 pNotify->RunNodeInitialize(pNewInstance); | 3250 pNotify->RunNodeInitialize(pNewInstance); |
| 3251 } | 3251 } |
| 3252 } | 3252 } |
| 3253 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); | 3253 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); |
| 3254 if (pLayoutPro) { | 3254 if (pLayoutPro) { |
| 3255 pLayoutPro->AddChangedContainer( | 3255 pLayoutPro->AddChangedContainer( |
| 3256 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form))); | 3256 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form))); |
| 3257 } | 3257 } |
| 3258 return 0; | 3258 return 0; |
| 3259 } | 3259 } |
| 3260 | 3260 |
| 3261 int32_t CXFA_Node::InstanceManager_MoveInstance(int32_t iTo, int32_t iFrom) { | 3261 int32_t CXFA_Node::InstanceManager_MoveInstance(int32_t iTo, int32_t iFrom) { |
| 3262 int32_t iCount = GetCount(this); | 3262 int32_t iCount = GetCount(this); |
| 3263 if (iFrom > iCount || iTo > iCount - 1) { | 3263 if (iFrom > iCount || iTo > iCount - 1) { |
| 3264 ThrowException(XFA_IDS_INDEX_OUT_OF_BOUNDS); | 3264 ThrowException(XFA_IDS_INDEX_OUT_OF_BOUNDS); |
| 3265 return 1; | 3265 return 1; |
| 3266 } | 3266 } |
| 3267 if (iFrom < 0 || iTo < 0 || iFrom == iTo) { | 3267 if (iFrom < 0 || iTo < 0 || iFrom == iTo) { |
| 3268 return 0; | 3268 return 0; |
| 3269 } | 3269 } |
| 3270 CXFA_Node* pMoveInstance = GetItem(this, iFrom); | 3270 CXFA_Node* pMoveInstance = GetItem(this, iFrom); |
| 3271 RemoveItem(this, pMoveInstance, FALSE); | 3271 RemoveItem(this, pMoveInstance, false); |
| 3272 InsertItem(this, pMoveInstance, iTo, iCount - 1, TRUE); | 3272 InsertItem(this, pMoveInstance, iTo, iCount - 1, true); |
| 3273 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); | 3273 CXFA_LayoutProcessor* pLayoutPro = m_pDocument->GetLayoutProcessor(); |
| 3274 if (pLayoutPro) { | 3274 if (pLayoutPro) { |
| 3275 pLayoutPro->AddChangedContainer( | 3275 pLayoutPro->AddChangedContainer( |
| 3276 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form))); | 3276 ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form))); |
| 3277 } | 3277 } |
| 3278 return 0; | 3278 return 0; |
| 3279 } | 3279 } |
| 3280 | 3280 |
| 3281 void CXFA_Node::Script_Occur_Max(CFXJSE_Value* pValue, | 3281 void CXFA_Node::Script_Occur_Max(CFXJSE_Value* pValue, |
| 3282 FX_BOOL bSetting, | 3282 bool bSetting, |
| 3283 XFA_ATTRIBUTE eAttribute) { | 3283 XFA_ATTRIBUTE eAttribute) { |
| 3284 CXFA_Occur occur(this); | 3284 CXFA_Occur occur(this); |
| 3285 if (bSetting) { | 3285 if (bSetting) { |
| 3286 int32_t iMax = pValue->ToInteger(); | 3286 int32_t iMax = pValue->ToInteger(); |
| 3287 occur.SetMax(iMax); | 3287 occur.SetMax(iMax); |
| 3288 } else { | 3288 } else { |
| 3289 pValue->SetInteger(occur.GetMax()); | 3289 pValue->SetInteger(occur.GetMax()); |
| 3290 } | 3290 } |
| 3291 } | 3291 } |
| 3292 | 3292 |
| 3293 void CXFA_Node::Script_Occur_Min(CFXJSE_Value* pValue, | 3293 void CXFA_Node::Script_Occur_Min(CFXJSE_Value* pValue, |
| 3294 FX_BOOL bSetting, | 3294 bool bSetting, |
| 3295 XFA_ATTRIBUTE eAttribute) { | 3295 XFA_ATTRIBUTE eAttribute) { |
| 3296 CXFA_Occur occur(this); | 3296 CXFA_Occur occur(this); |
| 3297 if (bSetting) { | 3297 if (bSetting) { |
| 3298 int32_t iMin = pValue->ToInteger(); | 3298 int32_t iMin = pValue->ToInteger(); |
| 3299 occur.SetMin(iMin); | 3299 occur.SetMin(iMin); |
| 3300 } else { | 3300 } else { |
| 3301 pValue->SetInteger(occur.GetMin()); | 3301 pValue->SetInteger(occur.GetMin()); |
| 3302 } | 3302 } |
| 3303 } | 3303 } |
| 3304 | 3304 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 3325 ThrowException(XFA_IDS_ARGUMENT_MISMATCH); | 3325 ThrowException(XFA_IDS_ARGUMENT_MISMATCH); |
| 3326 } | 3326 } |
| 3327 } else { | 3327 } else { |
| 3328 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"formNodes"); | 3328 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"formNodes"); |
| 3329 } | 3329 } |
| 3330 } | 3330 } |
| 3331 | 3331 |
| 3332 void CXFA_Node::Script_Form_Remerge(CFXJSE_Arguments* pArguments) { | 3332 void CXFA_Node::Script_Form_Remerge(CFXJSE_Arguments* pArguments) { |
| 3333 int32_t argc = pArguments->GetLength(); | 3333 int32_t argc = pArguments->GetLength(); |
| 3334 if (argc == 0) { | 3334 if (argc == 0) { |
| 3335 m_pDocument->DoDataRemerge(TRUE); | 3335 m_pDocument->DoDataRemerge(true); |
| 3336 } else { | 3336 } else { |
| 3337 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"remerge"); | 3337 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"remerge"); |
| 3338 } | 3338 } |
| 3339 } | 3339 } |
| 3340 | 3340 |
| 3341 void CXFA_Node::Script_Form_ExecInitialize(CFXJSE_Arguments* pArguments) { | 3341 void CXFA_Node::Script_Form_ExecInitialize(CFXJSE_Arguments* pArguments) { |
| 3342 int32_t argc = pArguments->GetLength(); | 3342 int32_t argc = pArguments->GetLength(); |
| 3343 if (argc == 0) { | 3343 if (argc == 0) { |
| 3344 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 3344 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 3345 if (!pNotify) { | 3345 if (!pNotify) { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 3361 int32_t argc = pArguments->GetLength(); | 3361 int32_t argc = pArguments->GetLength(); |
| 3362 if (argc == 1) { | 3362 if (argc == 1) { |
| 3363 const bool bScriptFlags = pArguments->GetInt32(0) != 0; | 3363 const bool bScriptFlags = pArguments->GetInt32(0) != 0; |
| 3364 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 3364 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 3365 if (!pNotify) { | 3365 if (!pNotify) { |
| 3366 return; | 3366 return; |
| 3367 } | 3367 } |
| 3368 if (bScriptFlags) { | 3368 if (bScriptFlags) { |
| 3369 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Calculate); | 3369 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Calculate); |
| 3370 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate); | 3370 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate); |
| 3371 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Ready, TRUE); | 3371 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Ready, true); |
| 3372 } else { | 3372 } else { |
| 3373 } | 3373 } |
| 3374 } else { | 3374 } else { |
| 3375 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"recalculate"); | 3375 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"recalculate"); |
| 3376 } | 3376 } |
| 3377 } | 3377 } |
| 3378 | 3378 |
| 3379 void CXFA_Node::Script_Form_ExecCalculate(CFXJSE_Arguments* pArguments) { | 3379 void CXFA_Node::Script_Form_ExecCalculate(CFXJSE_Arguments* pArguments) { |
| 3380 int32_t argc = pArguments->GetLength(); | 3380 int32_t argc = pArguments->GetLength(); |
| 3381 if (argc == 0) { | 3381 if (argc == 0) { |
| 3382 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 3382 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 3383 if (!pNotify) { | 3383 if (!pNotify) { |
| 3384 return; | 3384 return; |
| 3385 } | 3385 } |
| 3386 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Calculate); | 3386 pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Calculate); |
| 3387 } else { | 3387 } else { |
| 3388 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); | 3388 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execCalculate"); |
| 3389 } | 3389 } |
| 3390 } | 3390 } |
| 3391 | 3391 |
| 3392 void CXFA_Node::Script_Form_ExecValidate(CFXJSE_Arguments* pArguments) { | 3392 void CXFA_Node::Script_Form_ExecValidate(CFXJSE_Arguments* pArguments) { |
| 3393 int32_t argc = pArguments->GetLength(); | 3393 int32_t argc = pArguments->GetLength(); |
| 3394 if (argc == 0) { | 3394 if (argc == 0) { |
| 3395 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 3395 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 3396 if (!pNotify) { | 3396 if (!pNotify) { |
| 3397 pArguments->GetReturnValue()->SetBoolean(FALSE); | 3397 pArguments->GetReturnValue()->SetBoolean(false); |
| 3398 } else { | 3398 } else { |
| 3399 int32_t iRet = pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate); | 3399 int32_t iRet = pNotify->ExecEventByDeepFirst(this, XFA_EVENT_Validate); |
| 3400 pArguments->GetReturnValue()->SetBoolean( | 3400 pArguments->GetReturnValue()->SetBoolean( |
| 3401 (iRet == XFA_EVENTERROR_Error) ? FALSE : TRUE); | 3401 (iRet == XFA_EVENTERROR_Error) ? false : true); |
| 3402 } | 3402 } |
| 3403 } else { | 3403 } else { |
| 3404 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); | 3404 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"execValidate"); |
| 3405 } | 3405 } |
| 3406 } | 3406 } |
| 3407 | 3407 |
| 3408 void CXFA_Node::Script_Form_Checksum(CFXJSE_Value* pValue, | 3408 void CXFA_Node::Script_Form_Checksum(CFXJSE_Value* pValue, |
| 3409 FX_BOOL bSetting, | 3409 bool bSetting, |
| 3410 XFA_ATTRIBUTE eAttribute) { | 3410 XFA_ATTRIBUTE eAttribute) { |
| 3411 if (bSetting) { | 3411 if (bSetting) { |
| 3412 SetAttribute(XFA_ATTRIBUTE_Checksum, pValue->ToWideString().AsStringC()); | 3412 SetAttribute(XFA_ATTRIBUTE_Checksum, pValue->ToWideString().AsStringC()); |
| 3413 } else { | 3413 } else { |
| 3414 CFX_WideString wsChecksum; | 3414 CFX_WideString wsChecksum; |
| 3415 GetAttribute(XFA_ATTRIBUTE_Checksum, wsChecksum, FALSE); | 3415 GetAttribute(XFA_ATTRIBUTE_Checksum, wsChecksum, false); |
| 3416 pValue->SetString( | 3416 pValue->SetString( |
| 3417 FX_UTF8Encode(wsChecksum.c_str(), wsChecksum.GetLength()).AsStringC()); | 3417 FX_UTF8Encode(wsChecksum.c_str(), wsChecksum.GetLength()).AsStringC()); |
| 3418 } | 3418 } |
| 3419 } | 3419 } |
| 3420 | 3420 |
| 3421 void CXFA_Node::Script_Packet_GetAttribute(CFXJSE_Arguments* pArguments) { | 3421 void CXFA_Node::Script_Packet_GetAttribute(CFXJSE_Arguments* pArguments) { |
| 3422 int32_t argc = pArguments->GetLength(); | 3422 int32_t argc = pArguments->GetLength(); |
| 3423 if (argc == 1) { | 3423 if (argc == 1) { |
| 3424 CFX_ByteString bsAttributeName = pArguments->GetUTF8String(0); | 3424 CFX_ByteString bsAttributeName = pArguments->GetUTF8String(0); |
| 3425 CFX_WideString wsAttributeValue; | 3425 CFX_WideString wsAttributeValue; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3466 pXMLElement->RemoveAttribute(wsName.c_str()); | 3466 pXMLElement->RemoveAttribute(wsName.c_str()); |
| 3467 } | 3467 } |
| 3468 } | 3468 } |
| 3469 pArguments->GetReturnValue()->SetNull(); | 3469 pArguments->GetReturnValue()->SetNull(); |
| 3470 } else { | 3470 } else { |
| 3471 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"removeAttribute"); | 3471 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"removeAttribute"); |
| 3472 } | 3472 } |
| 3473 } | 3473 } |
| 3474 | 3474 |
| 3475 void CXFA_Node::Script_Packet_Content(CFXJSE_Value* pValue, | 3475 void CXFA_Node::Script_Packet_Content(CFXJSE_Value* pValue, |
| 3476 FX_BOOL bSetting, | 3476 bool bSetting, |
| 3477 XFA_ATTRIBUTE eAttribute) { | 3477 XFA_ATTRIBUTE eAttribute) { |
| 3478 if (bSetting) { | 3478 if (bSetting) { |
| 3479 CFDE_XMLNode* pXMLNode = GetXMLMappingNode(); | 3479 CFDE_XMLNode* pXMLNode = GetXMLMappingNode(); |
| 3480 if (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element) { | 3480 if (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element) { |
| 3481 CFDE_XMLElement* pXMLElement = static_cast<CFDE_XMLElement*>(pXMLNode); | 3481 CFDE_XMLElement* pXMLElement = static_cast<CFDE_XMLElement*>(pXMLNode); |
| 3482 pXMLElement->SetTextData(pValue->ToWideString()); | 3482 pXMLElement->SetTextData(pValue->ToWideString()); |
| 3483 } | 3483 } |
| 3484 } else { | 3484 } else { |
| 3485 CFX_WideString wsTextData; | 3485 CFX_WideString wsTextData; |
| 3486 CFDE_XMLNode* pXMLNode = GetXMLMappingNode(); | 3486 CFDE_XMLNode* pXMLNode = GetXMLMappingNode(); |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3623 | 3623 |
| 3624 void CXFA_Node::Script_Source_HasDataChanged(CFXJSE_Arguments* pArguments) { | 3624 void CXFA_Node::Script_Source_HasDataChanged(CFXJSE_Arguments* pArguments) { |
| 3625 int32_t argc = pArguments->GetLength(); | 3625 int32_t argc = pArguments->GetLength(); |
| 3626 if (argc == 0) { | 3626 if (argc == 0) { |
| 3627 } else { | 3627 } else { |
| 3628 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"hasDataChanged"); | 3628 ThrowException(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"hasDataChanged"); |
| 3629 } | 3629 } |
| 3630 } | 3630 } |
| 3631 | 3631 |
| 3632 void CXFA_Node::Script_Source_Db(CFXJSE_Value* pValue, | 3632 void CXFA_Node::Script_Source_Db(CFXJSE_Value* pValue, |
| 3633 FX_BOOL bSetting, | 3633 bool bSetting, |
| 3634 XFA_ATTRIBUTE eAttribute) {} | 3634 XFA_ATTRIBUTE eAttribute) {} |
| 3635 | 3635 |
| 3636 void CXFA_Node::Script_Xfa_This(CFXJSE_Value* pValue, | 3636 void CXFA_Node::Script_Xfa_This(CFXJSE_Value* pValue, |
| 3637 FX_BOOL bSetting, | 3637 bool bSetting, |
| 3638 XFA_ATTRIBUTE eAttribute) { | 3638 XFA_ATTRIBUTE eAttribute) { |
| 3639 if (!bSetting) { | 3639 if (!bSetting) { |
| 3640 CXFA_Object* pThis = m_pDocument->GetScriptContext()->GetThisObject(); | 3640 CXFA_Object* pThis = m_pDocument->GetScriptContext()->GetThisObject(); |
| 3641 ASSERT(pThis); | 3641 ASSERT(pThis); |
| 3642 pValue->Assign(m_pDocument->GetScriptContext()->GetJSValueFromMap(pThis)); | 3642 pValue->Assign(m_pDocument->GetScriptContext()->GetJSValueFromMap(pThis)); |
| 3643 } | 3643 } |
| 3644 } | 3644 } |
| 3645 | 3645 |
| 3646 void CXFA_Node::Script_Handler_Version(CFXJSE_Value* pValue, | 3646 void CXFA_Node::Script_Handler_Version(CFXJSE_Value* pValue, |
| 3647 FX_BOOL bSetting, | 3647 bool bSetting, |
| 3648 XFA_ATTRIBUTE eAttribute) {} | 3648 XFA_ATTRIBUTE eAttribute) {} |
| 3649 | 3649 |
| 3650 void CXFA_Node::Script_SubmitFormat_Mode(CFXJSE_Value* pValue, | 3650 void CXFA_Node::Script_SubmitFormat_Mode(CFXJSE_Value* pValue, |
| 3651 FX_BOOL bSetting, | 3651 bool bSetting, |
| 3652 XFA_ATTRIBUTE eAttribute) {} | 3652 XFA_ATTRIBUTE eAttribute) {} |
| 3653 | 3653 |
| 3654 void CXFA_Node::Script_Extras_Type(CFXJSE_Value* pValue, | 3654 void CXFA_Node::Script_Extras_Type(CFXJSE_Value* pValue, |
| 3655 FX_BOOL bSetting, | 3655 bool bSetting, |
| 3656 XFA_ATTRIBUTE eAttribute) {} | 3656 XFA_ATTRIBUTE eAttribute) {} |
| 3657 | 3657 |
| 3658 void CXFA_Node::Script_Script_Stateless(CFXJSE_Value* pValue, | 3658 void CXFA_Node::Script_Script_Stateless(CFXJSE_Value* pValue, |
| 3659 FX_BOOL bSetting, | 3659 bool bSetting, |
| 3660 XFA_ATTRIBUTE eAttribute) { | 3660 XFA_ATTRIBUTE eAttribute) { |
| 3661 if (bSetting) { | 3661 if (bSetting) { |
| 3662 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 3662 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 3663 return; | 3663 return; |
| 3664 } | 3664 } |
| 3665 pValue->SetString(FX_UTF8Encode(FX_WSTRC(L"0")).AsStringC()); | 3665 pValue->SetString(FX_UTF8Encode(FX_WSTRC(L"0")).AsStringC()); |
| 3666 } | 3666 } |
| 3667 | 3667 |
| 3668 void CXFA_Node::Script_Encrypt_Format(CFXJSE_Value* pValue, | 3668 void CXFA_Node::Script_Encrypt_Format(CFXJSE_Value* pValue, |
| 3669 FX_BOOL bSetting, | 3669 bool bSetting, |
| 3670 XFA_ATTRIBUTE eAttribute) {} | 3670 XFA_ATTRIBUTE eAttribute) {} |
| 3671 | 3671 |
| 3672 FX_BOOL CXFA_Node::HasAttribute(XFA_ATTRIBUTE eAttr, FX_BOOL bCanInherit) { | 3672 bool CXFA_Node::HasAttribute(XFA_ATTRIBUTE eAttr, bool bCanInherit) { |
| 3673 void* pKey = GetMapKey_Element(GetElementType(), eAttr); | 3673 void* pKey = GetMapKey_Element(GetElementType(), eAttr); |
| 3674 return HasMapModuleKey(pKey, bCanInherit); | 3674 return HasMapModuleKey(pKey, bCanInherit); |
| 3675 } | 3675 } |
| 3676 | 3676 |
| 3677 FX_BOOL CXFA_Node::SetAttribute(XFA_ATTRIBUTE eAttr, | 3677 bool CXFA_Node::SetAttribute(XFA_ATTRIBUTE eAttr, |
| 3678 const CFX_WideStringC& wsValue, | 3678 const CFX_WideStringC& wsValue, |
| 3679 bool bNotify) { | 3679 bool bNotify) { |
| 3680 const XFA_ATTRIBUTEINFO* pAttr = XFA_GetAttributeByID(eAttr); | 3680 const XFA_ATTRIBUTEINFO* pAttr = XFA_GetAttributeByID(eAttr); |
| 3681 if (!pAttr) | 3681 if (!pAttr) |
| 3682 return FALSE; | 3682 return false; |
| 3683 | 3683 |
| 3684 XFA_ATTRIBUTETYPE eType = pAttr->eType; | 3684 XFA_ATTRIBUTETYPE eType = pAttr->eType; |
| 3685 if (eType == XFA_ATTRIBUTETYPE_NOTSURE) { | 3685 if (eType == XFA_ATTRIBUTETYPE_NOTSURE) { |
| 3686 const XFA_NOTSUREATTRIBUTE* pNotsure = | 3686 const XFA_NOTSUREATTRIBUTE* pNotsure = |
| 3687 XFA_GetNotsureAttribute(GetElementType(), pAttr->eName); | 3687 XFA_GetNotsureAttribute(GetElementType(), pAttr->eName); |
| 3688 eType = pNotsure ? pNotsure->eType : XFA_ATTRIBUTETYPE_Cdata; | 3688 eType = pNotsure ? pNotsure->eType : XFA_ATTRIBUTETYPE_Cdata; |
| 3689 } | 3689 } |
| 3690 switch (eType) { | 3690 switch (eType) { |
| 3691 case XFA_ATTRIBUTETYPE_Enum: { | 3691 case XFA_ATTRIBUTETYPE_Enum: { |
| 3692 const XFA_ATTRIBUTEENUMINFO* pEnum = XFA_GetAttributeEnumByName(wsValue); | 3692 const XFA_ATTRIBUTEENUMINFO* pEnum = XFA_GetAttributeEnumByName(wsValue); |
| 3693 return SetEnum(pAttr->eName, | 3693 return SetEnum(pAttr->eName, |
| 3694 pEnum ? pEnum->eName | 3694 pEnum ? pEnum->eName |
| 3695 : (XFA_ATTRIBUTEENUM)(intptr_t)(pAttr->pDefValue), | 3695 : (XFA_ATTRIBUTEENUM)(intptr_t)(pAttr->pDefValue), |
| 3696 bNotify); | 3696 bNotify); |
| 3697 } break; | 3697 } break; |
| 3698 case XFA_ATTRIBUTETYPE_Cdata: | 3698 case XFA_ATTRIBUTETYPE_Cdata: |
| 3699 return SetCData(pAttr->eName, CFX_WideString(wsValue), bNotify); | 3699 return SetCData(pAttr->eName, CFX_WideString(wsValue), bNotify); |
| 3700 case XFA_ATTRIBUTETYPE_Boolean: | 3700 case XFA_ATTRIBUTETYPE_Boolean: |
| 3701 return SetBoolean(pAttr->eName, wsValue != FX_WSTRC(L"0"), bNotify); | 3701 return SetBoolean(pAttr->eName, wsValue != FX_WSTRC(L"0"), bNotify); |
| 3702 case XFA_ATTRIBUTETYPE_Integer: | 3702 case XFA_ATTRIBUTETYPE_Integer: |
| 3703 return SetInteger(pAttr->eName, | 3703 return SetInteger(pAttr->eName, |
| 3704 FXSYS_round(FXSYS_wcstof(wsValue.c_str(), | 3704 FXSYS_round(FXSYS_wcstof(wsValue.c_str(), |
| 3705 wsValue.GetLength(), nullptr)), | 3705 wsValue.GetLength(), nullptr)), |
| 3706 bNotify); | 3706 bNotify); |
| 3707 case XFA_ATTRIBUTETYPE_Measure: | 3707 case XFA_ATTRIBUTETYPE_Measure: |
| 3708 return SetMeasure(pAttr->eName, CXFA_Measurement(wsValue), bNotify); | 3708 return SetMeasure(pAttr->eName, CXFA_Measurement(wsValue), bNotify); |
| 3709 default: | 3709 default: |
| 3710 break; | 3710 break; |
| 3711 } | 3711 } |
| 3712 return FALSE; | 3712 return false; |
| 3713 } | 3713 } |
| 3714 | 3714 |
| 3715 FX_BOOL CXFA_Node::GetAttribute(XFA_ATTRIBUTE eAttr, | 3715 bool CXFA_Node::GetAttribute(XFA_ATTRIBUTE eAttr, |
| 3716 CFX_WideString& wsValue, | 3716 CFX_WideString& wsValue, |
| 3717 FX_BOOL bUseDefault) { | 3717 bool bUseDefault) { |
| 3718 const XFA_ATTRIBUTEINFO* pAttr = XFA_GetAttributeByID(eAttr); | 3718 const XFA_ATTRIBUTEINFO* pAttr = XFA_GetAttributeByID(eAttr); |
| 3719 if (!pAttr) { | 3719 if (!pAttr) { |
| 3720 return FALSE; | 3720 return false; |
| 3721 } | 3721 } |
| 3722 XFA_ATTRIBUTETYPE eType = pAttr->eType; | 3722 XFA_ATTRIBUTETYPE eType = pAttr->eType; |
| 3723 if (eType == XFA_ATTRIBUTETYPE_NOTSURE) { | 3723 if (eType == XFA_ATTRIBUTETYPE_NOTSURE) { |
| 3724 const XFA_NOTSUREATTRIBUTE* pNotsure = | 3724 const XFA_NOTSUREATTRIBUTE* pNotsure = |
| 3725 XFA_GetNotsureAttribute(GetElementType(), pAttr->eName); | 3725 XFA_GetNotsureAttribute(GetElementType(), pAttr->eName); |
| 3726 eType = pNotsure ? pNotsure->eType : XFA_ATTRIBUTETYPE_Cdata; | 3726 eType = pNotsure ? pNotsure->eType : XFA_ATTRIBUTETYPE_Cdata; |
| 3727 } | 3727 } |
| 3728 switch (eType) { | 3728 switch (eType) { |
| 3729 case XFA_ATTRIBUTETYPE_Enum: { | 3729 case XFA_ATTRIBUTETYPE_Enum: { |
| 3730 XFA_ATTRIBUTEENUM eValue; | 3730 XFA_ATTRIBUTEENUM eValue; |
| 3731 if (!TryEnum(pAttr->eName, eValue, bUseDefault)) { | 3731 if (!TryEnum(pAttr->eName, eValue, bUseDefault)) { |
| 3732 return FALSE; | 3732 return false; |
| 3733 } | 3733 } |
| 3734 wsValue = GetAttributeEnumByID(eValue)->pName; | 3734 wsValue = GetAttributeEnumByID(eValue)->pName; |
| 3735 return TRUE; | 3735 return true; |
| 3736 } break; | 3736 } break; |
| 3737 case XFA_ATTRIBUTETYPE_Cdata: { | 3737 case XFA_ATTRIBUTETYPE_Cdata: { |
| 3738 CFX_WideStringC wsValueC; | 3738 CFX_WideStringC wsValueC; |
| 3739 if (!TryCData(pAttr->eName, wsValueC, bUseDefault)) { | 3739 if (!TryCData(pAttr->eName, wsValueC, bUseDefault)) { |
| 3740 return FALSE; | 3740 return false; |
| 3741 } | 3741 } |
| 3742 wsValue = wsValueC; | 3742 wsValue = wsValueC; |
| 3743 return TRUE; | 3743 return true; |
| 3744 } break; | 3744 } break; |
| 3745 case XFA_ATTRIBUTETYPE_Boolean: { | 3745 case XFA_ATTRIBUTETYPE_Boolean: { |
| 3746 FX_BOOL bValue; | 3746 bool bValue; |
| 3747 if (!TryBoolean(pAttr->eName, bValue, bUseDefault)) { | 3747 if (!TryBoolean(pAttr->eName, bValue, bUseDefault)) { |
| 3748 return FALSE; | 3748 return false; |
| 3749 } | 3749 } |
| 3750 wsValue = bValue ? FX_WSTRC(L"1") : FX_WSTRC(L"0"); | 3750 wsValue = bValue ? FX_WSTRC(L"1") : FX_WSTRC(L"0"); |
| 3751 return TRUE; | 3751 return true; |
| 3752 } break; | 3752 } break; |
| 3753 case XFA_ATTRIBUTETYPE_Integer: { | 3753 case XFA_ATTRIBUTETYPE_Integer: { |
| 3754 int32_t iValue; | 3754 int32_t iValue; |
| 3755 if (!TryInteger(pAttr->eName, iValue, bUseDefault)) { | 3755 if (!TryInteger(pAttr->eName, iValue, bUseDefault)) { |
| 3756 return FALSE; | 3756 return false; |
| 3757 } | 3757 } |
| 3758 wsValue.Format(L"%d", iValue); | 3758 wsValue.Format(L"%d", iValue); |
| 3759 return TRUE; | 3759 return true; |
| 3760 } break; | 3760 } break; |
| 3761 case XFA_ATTRIBUTETYPE_Measure: { | 3761 case XFA_ATTRIBUTETYPE_Measure: { |
| 3762 CXFA_Measurement mValue; | 3762 CXFA_Measurement mValue; |
| 3763 if (!TryMeasure(pAttr->eName, mValue, bUseDefault)) { | 3763 if (!TryMeasure(pAttr->eName, mValue, bUseDefault)) { |
| 3764 return FALSE; | 3764 return false; |
| 3765 } | 3765 } |
| 3766 mValue.ToString(wsValue); | 3766 mValue.ToString(wsValue); |
| 3767 return TRUE; | 3767 return true; |
| 3768 } break; | 3768 } break; |
| 3769 default: | 3769 default: |
| 3770 break; | 3770 break; |
| 3771 } | 3771 } |
| 3772 return FALSE; | 3772 return false; |
| 3773 } | 3773 } |
| 3774 | 3774 |
| 3775 FX_BOOL CXFA_Node::SetAttribute(const CFX_WideStringC& wsAttr, | 3775 bool CXFA_Node::SetAttribute(const CFX_WideStringC& wsAttr, |
| 3776 const CFX_WideStringC& wsValue, | 3776 const CFX_WideStringC& wsValue, |
| 3777 bool bNotify) { | 3777 bool bNotify) { |
| 3778 const XFA_ATTRIBUTEINFO* pAttributeInfo = XFA_GetAttributeByName(wsValue); | 3778 const XFA_ATTRIBUTEINFO* pAttributeInfo = XFA_GetAttributeByName(wsValue); |
| 3779 if (pAttributeInfo) { | 3779 if (pAttributeInfo) { |
| 3780 return SetAttribute(pAttributeInfo->eName, wsValue, bNotify); | 3780 return SetAttribute(pAttributeInfo->eName, wsValue, bNotify); |
| 3781 } | 3781 } |
| 3782 void* pKey = GetMapKey_Custom(wsAttr); | 3782 void* pKey = GetMapKey_Custom(wsAttr); |
| 3783 SetMapModuleString(pKey, wsValue); | 3783 SetMapModuleString(pKey, wsValue); |
| 3784 return TRUE; | 3784 return true; |
| 3785 } | 3785 } |
| 3786 | 3786 |
| 3787 FX_BOOL CXFA_Node::GetAttribute(const CFX_WideStringC& wsAttr, | 3787 bool CXFA_Node::GetAttribute(const CFX_WideStringC& wsAttr, |
| 3788 CFX_WideString& wsValue, | 3788 CFX_WideString& wsValue, |
| 3789 FX_BOOL bUseDefault) { | 3789 bool bUseDefault) { |
| 3790 const XFA_ATTRIBUTEINFO* pAttributeInfo = XFA_GetAttributeByName(wsAttr); | 3790 const XFA_ATTRIBUTEINFO* pAttributeInfo = XFA_GetAttributeByName(wsAttr); |
| 3791 if (pAttributeInfo) { | 3791 if (pAttributeInfo) { |
| 3792 return GetAttribute(pAttributeInfo->eName, wsValue, bUseDefault); | 3792 return GetAttribute(pAttributeInfo->eName, wsValue, bUseDefault); |
| 3793 } | 3793 } |
| 3794 void* pKey = GetMapKey_Custom(wsAttr); | 3794 void* pKey = GetMapKey_Custom(wsAttr); |
| 3795 CFX_WideStringC wsValueC; | 3795 CFX_WideStringC wsValueC; |
| 3796 if (GetMapModuleString(pKey, wsValueC)) { | 3796 if (GetMapModuleString(pKey, wsValueC)) { |
| 3797 wsValue = wsValueC; | 3797 wsValue = wsValueC; |
| 3798 } | 3798 } |
| 3799 return TRUE; | 3799 return true; |
| 3800 } | 3800 } |
| 3801 | 3801 |
| 3802 FX_BOOL CXFA_Node::RemoveAttribute(const CFX_WideStringC& wsAttr) { | 3802 bool CXFA_Node::RemoveAttribute(const CFX_WideStringC& wsAttr) { |
| 3803 void* pKey = GetMapKey_Custom(wsAttr); | 3803 void* pKey = GetMapKey_Custom(wsAttr); |
| 3804 RemoveMapModuleKey(pKey); | 3804 RemoveMapModuleKey(pKey); |
| 3805 return TRUE; | 3805 return true; |
| 3806 } | 3806 } |
| 3807 | 3807 |
| 3808 FX_BOOL CXFA_Node::TryBoolean(XFA_ATTRIBUTE eAttr, | 3808 bool CXFA_Node::TryBoolean(XFA_ATTRIBUTE eAttr, |
| 3809 FX_BOOL& bValue, | 3809 bool& bValue, |
| 3810 FX_BOOL bUseDefault) { | 3810 bool bUseDefault) { |
| 3811 void* pValue = nullptr; | 3811 void* pValue = nullptr; |
| 3812 if (!GetValue(eAttr, XFA_ATTRIBUTETYPE_Boolean, bUseDefault, pValue)) | 3812 if (!GetValue(eAttr, XFA_ATTRIBUTETYPE_Boolean, bUseDefault, pValue)) |
| 3813 return FALSE; | 3813 return false; |
| 3814 bValue = !!pValue; | 3814 bValue = !!pValue; |
| 3815 return TRUE; | 3815 return true; |
| 3816 } | 3816 } |
| 3817 | 3817 |
| 3818 FX_BOOL CXFA_Node::TryInteger(XFA_ATTRIBUTE eAttr, | 3818 bool CXFA_Node::TryInteger(XFA_ATTRIBUTE eAttr, |
| 3819 int32_t& iValue, | 3819 int32_t& iValue, |
| 3820 FX_BOOL bUseDefault) { | 3820 bool bUseDefault) { |
| 3821 void* pValue = nullptr; | 3821 void* pValue = nullptr; |
| 3822 if (!GetValue(eAttr, XFA_ATTRIBUTETYPE_Integer, bUseDefault, pValue)) | 3822 if (!GetValue(eAttr, XFA_ATTRIBUTETYPE_Integer, bUseDefault, pValue)) |
| 3823 return FALSE; | 3823 return false; |
| 3824 iValue = (int32_t)(uintptr_t)pValue; | 3824 iValue = (int32_t)(uintptr_t)pValue; |
| 3825 return TRUE; | 3825 return true; |
| 3826 } | 3826 } |
| 3827 | 3827 |
| 3828 FX_BOOL CXFA_Node::TryEnum(XFA_ATTRIBUTE eAttr, | 3828 bool CXFA_Node::TryEnum(XFA_ATTRIBUTE eAttr, |
| 3829 XFA_ATTRIBUTEENUM& eValue, | 3829 XFA_ATTRIBUTEENUM& eValue, |
| 3830 FX_BOOL bUseDefault) { | 3830 bool bUseDefault) { |
| 3831 void* pValue = nullptr; | 3831 void* pValue = nullptr; |
| 3832 if (!GetValue(eAttr, XFA_ATTRIBUTETYPE_Enum, bUseDefault, pValue)) | 3832 if (!GetValue(eAttr, XFA_ATTRIBUTETYPE_Enum, bUseDefault, pValue)) |
| 3833 return FALSE; | 3833 return false; |
| 3834 eValue = (XFA_ATTRIBUTEENUM)(uintptr_t)pValue; | 3834 eValue = (XFA_ATTRIBUTEENUM)(uintptr_t)pValue; |
| 3835 return TRUE; | 3835 return true; |
| 3836 } | 3836 } |
| 3837 | 3837 |
| 3838 FX_BOOL CXFA_Node::SetMeasure(XFA_ATTRIBUTE eAttr, | 3838 bool CXFA_Node::SetMeasure(XFA_ATTRIBUTE eAttr, |
| 3839 CXFA_Measurement mValue, | 3839 CXFA_Measurement mValue, |
| 3840 bool bNotify) { | 3840 bool bNotify) { |
| 3841 void* pKey = GetMapKey_Element(GetElementType(), eAttr); | 3841 void* pKey = GetMapKey_Element(GetElementType(), eAttr); |
| 3842 OnChanging(eAttr, bNotify); | 3842 OnChanging(eAttr, bNotify); |
| 3843 SetMapModuleBuffer(pKey, &mValue, sizeof(CXFA_Measurement)); | 3843 SetMapModuleBuffer(pKey, &mValue, sizeof(CXFA_Measurement)); |
| 3844 OnChanged(eAttr, bNotify, FALSE); | 3844 OnChanged(eAttr, bNotify, false); |
| 3845 return TRUE; | 3845 return true; |
| 3846 } | 3846 } |
| 3847 | 3847 |
| 3848 FX_BOOL CXFA_Node::TryMeasure(XFA_ATTRIBUTE eAttr, | 3848 bool CXFA_Node::TryMeasure(XFA_ATTRIBUTE eAttr, |
| 3849 CXFA_Measurement& mValue, | 3849 CXFA_Measurement& mValue, |
| 3850 FX_BOOL bUseDefault) const { | 3850 bool bUseDefault) const { |
| 3851 void* pKey = GetMapKey_Element(GetElementType(), eAttr); | 3851 void* pKey = GetMapKey_Element(GetElementType(), eAttr); |
| 3852 void* pValue; | 3852 void* pValue; |
| 3853 int32_t iBytes; | 3853 int32_t iBytes; |
| 3854 if (GetMapModuleBuffer(pKey, pValue, iBytes) && iBytes == sizeof(mValue)) { | 3854 if (GetMapModuleBuffer(pKey, pValue, iBytes) && iBytes == sizeof(mValue)) { |
| 3855 FXSYS_memcpy(&mValue, pValue, sizeof(mValue)); | 3855 FXSYS_memcpy(&mValue, pValue, sizeof(mValue)); |
| 3856 return TRUE; | 3856 return true; |
| 3857 } | 3857 } |
| 3858 if (bUseDefault && | 3858 if (bUseDefault && |
| 3859 XFA_GetAttributeDefaultValue(pValue, GetElementType(), eAttr, | 3859 XFA_GetAttributeDefaultValue(pValue, GetElementType(), eAttr, |
| 3860 XFA_ATTRIBUTETYPE_Measure, m_ePacket)) { | 3860 XFA_ATTRIBUTETYPE_Measure, m_ePacket)) { |
| 3861 FXSYS_memcpy(&mValue, pValue, sizeof(mValue)); | 3861 FXSYS_memcpy(&mValue, pValue, sizeof(mValue)); |
| 3862 return TRUE; | 3862 return true; |
| 3863 } | 3863 } |
| 3864 return FALSE; | 3864 return false; |
| 3865 } | 3865 } |
| 3866 | 3866 |
| 3867 CXFA_Measurement CXFA_Node::GetMeasure(XFA_ATTRIBUTE eAttr) const { | 3867 CXFA_Measurement CXFA_Node::GetMeasure(XFA_ATTRIBUTE eAttr) const { |
| 3868 CXFA_Measurement mValue; | 3868 CXFA_Measurement mValue; |
| 3869 return TryMeasure(eAttr, mValue, TRUE) ? mValue : CXFA_Measurement(); | 3869 return TryMeasure(eAttr, mValue, true) ? mValue : CXFA_Measurement(); |
| 3870 } | 3870 } |
| 3871 | 3871 |
| 3872 FX_BOOL CXFA_Node::SetCData(XFA_ATTRIBUTE eAttr, | 3872 bool CXFA_Node::SetCData(XFA_ATTRIBUTE eAttr, |
| 3873 const CFX_WideString& wsValue, | 3873 const CFX_WideString& wsValue, |
| 3874 bool bNotify, | 3874 bool bNotify, |
| 3875 FX_BOOL bScriptModify) { | 3875 bool bScriptModify) { |
| 3876 void* pKey = GetMapKey_Element(GetElementType(), eAttr); | 3876 void* pKey = GetMapKey_Element(GetElementType(), eAttr); |
| 3877 OnChanging(eAttr, bNotify); | 3877 OnChanging(eAttr, bNotify); |
| 3878 if (eAttr == XFA_ATTRIBUTE_Value) { | 3878 if (eAttr == XFA_ATTRIBUTE_Value) { |
| 3879 CFX_WideString* pClone = new CFX_WideString(wsValue); | 3879 CFX_WideString* pClone = new CFX_WideString(wsValue); |
| 3880 SetUserData(pKey, pClone, &deleteWideStringCallBack); | 3880 SetUserData(pKey, pClone, &deleteWideStringCallBack); |
| 3881 } else { | 3881 } else { |
| 3882 SetMapModuleString(pKey, wsValue.AsStringC()); | 3882 SetMapModuleString(pKey, wsValue.AsStringC()); |
| 3883 if (eAttr == XFA_ATTRIBUTE_Name) | 3883 if (eAttr == XFA_ATTRIBUTE_Name) |
| 3884 UpdateNameHash(); | 3884 UpdateNameHash(); |
| 3885 } | 3885 } |
| 3886 OnChanged(eAttr, bNotify, bScriptModify); | 3886 OnChanged(eAttr, bNotify, bScriptModify); |
| 3887 | 3887 |
| 3888 if (!IsNeedSavingXMLNode() || eAttr == XFA_ATTRIBUTE_QualifiedName || | 3888 if (!IsNeedSavingXMLNode() || eAttr == XFA_ATTRIBUTE_QualifiedName || |
| 3889 eAttr == XFA_ATTRIBUTE_BindingNode) { | 3889 eAttr == XFA_ATTRIBUTE_BindingNode) { |
| 3890 return TRUE; | 3890 return true; |
| 3891 } | 3891 } |
| 3892 | 3892 |
| 3893 if (eAttr == XFA_ATTRIBUTE_Name && | 3893 if (eAttr == XFA_ATTRIBUTE_Name && |
| 3894 (m_elementType == XFA_Element::DataValue || | 3894 (m_elementType == XFA_Element::DataValue || |
| 3895 m_elementType == XFA_Element::DataGroup)) { | 3895 m_elementType == XFA_Element::DataGroup)) { |
| 3896 return TRUE; | 3896 return true; |
| 3897 } | 3897 } |
| 3898 | 3898 |
| 3899 if (eAttr == XFA_ATTRIBUTE_Value) { | 3899 if (eAttr == XFA_ATTRIBUTE_Value) { |
| 3900 FDE_XMLNODETYPE eXMLType = m_pXMLNode->GetType(); | 3900 FDE_XMLNODETYPE eXMLType = m_pXMLNode->GetType(); |
| 3901 switch (eXMLType) { | 3901 switch (eXMLType) { |
| 3902 case FDE_XMLNODE_Element: | 3902 case FDE_XMLNODE_Element: |
| 3903 if (IsAttributeInXML()) { | 3903 if (IsAttributeInXML()) { |
| 3904 static_cast<CFDE_XMLElement*>(m_pXMLNode) | 3904 static_cast<CFDE_XMLElement*>(m_pXMLNode) |
| 3905 ->SetString(CFX_WideString(GetCData(XFA_ATTRIBUTE_QualifiedName)), | 3905 ->SetString(CFX_WideString(GetCData(XFA_ATTRIBUTE_QualifiedName)), |
| 3906 wsValue); | 3906 wsValue); |
| 3907 } else { | 3907 } else { |
| 3908 FX_BOOL bDeleteChildren = TRUE; | 3908 bool bDeleteChildren = true; |
| 3909 if (GetPacketID() == XFA_XDPPACKET_Datasets) { | 3909 if (GetPacketID() == XFA_XDPPACKET_Datasets) { |
| 3910 for (CXFA_Node* pChildDataNode = | 3910 for (CXFA_Node* pChildDataNode = |
| 3911 GetNodeItem(XFA_NODEITEM_FirstChild); | 3911 GetNodeItem(XFA_NODEITEM_FirstChild); |
| 3912 pChildDataNode; pChildDataNode = pChildDataNode->GetNodeItem( | 3912 pChildDataNode; pChildDataNode = pChildDataNode->GetNodeItem( |
| 3913 XFA_NODEITEM_NextSibling)) { | 3913 XFA_NODEITEM_NextSibling)) { |
| 3914 CXFA_NodeArray formNodes; | 3914 CXFA_NodeArray formNodes; |
| 3915 if (pChildDataNode->GetBindItems(formNodes) > 0) { | 3915 if (pChildDataNode->GetBindItems(formNodes) > 0) { |
| 3916 bDeleteChildren = FALSE; | 3916 bDeleteChildren = false; |
| 3917 break; | 3917 break; |
| 3918 } | 3918 } |
| 3919 } | 3919 } |
| 3920 } | 3920 } |
| 3921 if (bDeleteChildren) { | 3921 if (bDeleteChildren) { |
| 3922 static_cast<CFDE_XMLElement*>(m_pXMLNode)->DeleteChildren(); | 3922 static_cast<CFDE_XMLElement*>(m_pXMLNode)->DeleteChildren(); |
| 3923 } | 3923 } |
| 3924 static_cast<CFDE_XMLElement*>(m_pXMLNode)->SetTextData(wsValue); | 3924 static_cast<CFDE_XMLElement*>(m_pXMLNode)->SetTextData(wsValue); |
| 3925 } | 3925 } |
| 3926 break; | 3926 break; |
| 3927 case FDE_XMLNODE_Text: | 3927 case FDE_XMLNODE_Text: |
| 3928 static_cast<CFDE_XMLText*>(m_pXMLNode)->SetText(wsValue); | 3928 static_cast<CFDE_XMLText*>(m_pXMLNode)->SetText(wsValue); |
| 3929 break; | 3929 break; |
| 3930 default: | 3930 default: |
| 3931 ASSERT(0); | 3931 ASSERT(0); |
| 3932 } | 3932 } |
| 3933 return TRUE; | 3933 return true; |
| 3934 } | 3934 } |
| 3935 | 3935 |
| 3936 const XFA_ATTRIBUTEINFO* pInfo = XFA_GetAttributeByID(eAttr); | 3936 const XFA_ATTRIBUTEINFO* pInfo = XFA_GetAttributeByID(eAttr); |
| 3937 if (pInfo) { | 3937 if (pInfo) { |
| 3938 ASSERT(m_pXMLNode->GetType() == FDE_XMLNODE_Element); | 3938 ASSERT(m_pXMLNode->GetType() == FDE_XMLNODE_Element); |
| 3939 CFX_WideString wsAttrName = pInfo->pName; | 3939 CFX_WideString wsAttrName = pInfo->pName; |
| 3940 if (pInfo->eName == XFA_ATTRIBUTE_ContentType) { | 3940 if (pInfo->eName == XFA_ATTRIBUTE_ContentType) { |
| 3941 wsAttrName = FX_WSTRC(L"xfa:") + wsAttrName; | 3941 wsAttrName = FX_WSTRC(L"xfa:") + wsAttrName; |
| 3942 } | 3942 } |
| 3943 static_cast<CFDE_XMLElement*>(m_pXMLNode)->SetString(wsAttrName, wsValue); | 3943 static_cast<CFDE_XMLElement*>(m_pXMLNode)->SetString(wsAttrName, wsValue); |
| 3944 } | 3944 } |
| 3945 return TRUE; | 3945 return true; |
| 3946 } | 3946 } |
| 3947 | 3947 |
| 3948 FX_BOOL CXFA_Node::SetAttributeValue(const CFX_WideString& wsValue, | 3948 bool CXFA_Node::SetAttributeValue(const CFX_WideString& wsValue, |
| 3949 const CFX_WideString& wsXMLValue, | 3949 const CFX_WideString& wsXMLValue, |
| 3950 bool bNotify, | 3950 bool bNotify, |
| 3951 FX_BOOL bScriptModify) { | 3951 bool bScriptModify) { |
| 3952 void* pKey = GetMapKey_Element(GetElementType(), XFA_ATTRIBUTE_Value); | 3952 void* pKey = GetMapKey_Element(GetElementType(), XFA_ATTRIBUTE_Value); |
| 3953 OnChanging(XFA_ATTRIBUTE_Value, bNotify); | 3953 OnChanging(XFA_ATTRIBUTE_Value, bNotify); |
| 3954 CFX_WideString* pClone = new CFX_WideString(wsValue); | 3954 CFX_WideString* pClone = new CFX_WideString(wsValue); |
| 3955 SetUserData(pKey, pClone, &deleteWideStringCallBack); | 3955 SetUserData(pKey, pClone, &deleteWideStringCallBack); |
| 3956 OnChanged(XFA_ATTRIBUTE_Value, bNotify, bScriptModify); | 3956 OnChanged(XFA_ATTRIBUTE_Value, bNotify, bScriptModify); |
| 3957 if (IsNeedSavingXMLNode()) { | 3957 if (IsNeedSavingXMLNode()) { |
| 3958 FDE_XMLNODETYPE eXMLType = m_pXMLNode->GetType(); | 3958 FDE_XMLNODETYPE eXMLType = m_pXMLNode->GetType(); |
| 3959 switch (eXMLType) { | 3959 switch (eXMLType) { |
| 3960 case FDE_XMLNODE_Element: | 3960 case FDE_XMLNODE_Element: |
| 3961 if (IsAttributeInXML()) { | 3961 if (IsAttributeInXML()) { |
| 3962 static_cast<CFDE_XMLElement*>(m_pXMLNode) | 3962 static_cast<CFDE_XMLElement*>(m_pXMLNode) |
| 3963 ->SetString(CFX_WideString(GetCData(XFA_ATTRIBUTE_QualifiedName)), | 3963 ->SetString(CFX_WideString(GetCData(XFA_ATTRIBUTE_QualifiedName)), |
| 3964 wsXMLValue); | 3964 wsXMLValue); |
| 3965 } else { | 3965 } else { |
| 3966 FX_BOOL bDeleteChildren = TRUE; | 3966 bool bDeleteChildren = true; |
| 3967 if (GetPacketID() == XFA_XDPPACKET_Datasets) { | 3967 if (GetPacketID() == XFA_XDPPACKET_Datasets) { |
| 3968 for (CXFA_Node* pChildDataNode = | 3968 for (CXFA_Node* pChildDataNode = |
| 3969 GetNodeItem(XFA_NODEITEM_FirstChild); | 3969 GetNodeItem(XFA_NODEITEM_FirstChild); |
| 3970 pChildDataNode; pChildDataNode = pChildDataNode->GetNodeItem( | 3970 pChildDataNode; pChildDataNode = pChildDataNode->GetNodeItem( |
| 3971 XFA_NODEITEM_NextSibling)) { | 3971 XFA_NODEITEM_NextSibling)) { |
| 3972 CXFA_NodeArray formNodes; | 3972 CXFA_NodeArray formNodes; |
| 3973 if (pChildDataNode->GetBindItems(formNodes) > 0) { | 3973 if (pChildDataNode->GetBindItems(formNodes) > 0) { |
| 3974 bDeleteChildren = FALSE; | 3974 bDeleteChildren = false; |
| 3975 break; | 3975 break; |
| 3976 } | 3976 } |
| 3977 } | 3977 } |
| 3978 } | 3978 } |
| 3979 if (bDeleteChildren) { | 3979 if (bDeleteChildren) { |
| 3980 static_cast<CFDE_XMLElement*>(m_pXMLNode)->DeleteChildren(); | 3980 static_cast<CFDE_XMLElement*>(m_pXMLNode)->DeleteChildren(); |
| 3981 } | 3981 } |
| 3982 static_cast<CFDE_XMLElement*>(m_pXMLNode)->SetTextData(wsXMLValue); | 3982 static_cast<CFDE_XMLElement*>(m_pXMLNode)->SetTextData(wsXMLValue); |
| 3983 } | 3983 } |
| 3984 break; | 3984 break; |
| 3985 case FDE_XMLNODE_Text: | 3985 case FDE_XMLNODE_Text: |
| 3986 static_cast<CFDE_XMLText*>(m_pXMLNode)->SetText(wsXMLValue); | 3986 static_cast<CFDE_XMLText*>(m_pXMLNode)->SetText(wsXMLValue); |
| 3987 break; | 3987 break; |
| 3988 default: | 3988 default: |
| 3989 ASSERT(0); | 3989 ASSERT(0); |
| 3990 } | 3990 } |
| 3991 } | 3991 } |
| 3992 return TRUE; | 3992 return true; |
| 3993 } | 3993 } |
| 3994 | 3994 |
| 3995 FX_BOOL CXFA_Node::TryCData(XFA_ATTRIBUTE eAttr, | 3995 bool CXFA_Node::TryCData(XFA_ATTRIBUTE eAttr, |
| 3996 CFX_WideString& wsValue, | 3996 CFX_WideString& wsValue, |
| 3997 FX_BOOL bUseDefault, | 3997 bool bUseDefault, |
| 3998 FX_BOOL bProto) { | 3998 bool bProto) { |
| 3999 void* pKey = GetMapKey_Element(GetElementType(), eAttr); | 3999 void* pKey = GetMapKey_Element(GetElementType(), eAttr); |
| 4000 if (eAttr == XFA_ATTRIBUTE_Value) { | 4000 if (eAttr == XFA_ATTRIBUTE_Value) { |
| 4001 CFX_WideString* pStr = (CFX_WideString*)GetUserData(pKey, bProto); | 4001 CFX_WideString* pStr = (CFX_WideString*)GetUserData(pKey, bProto); |
| 4002 if (pStr) { | 4002 if (pStr) { |
| 4003 wsValue = *pStr; | 4003 wsValue = *pStr; |
| 4004 return TRUE; | 4004 return true; |
| 4005 } | 4005 } |
| 4006 } else { | 4006 } else { |
| 4007 CFX_WideStringC wsValueC; | 4007 CFX_WideStringC wsValueC; |
| 4008 if (GetMapModuleString(pKey, wsValueC)) { | 4008 if (GetMapModuleString(pKey, wsValueC)) { |
| 4009 wsValue = wsValueC; | 4009 wsValue = wsValueC; |
| 4010 return TRUE; | 4010 return true; |
| 4011 } | 4011 } |
| 4012 } | 4012 } |
| 4013 if (!bUseDefault) { | 4013 if (!bUseDefault) { |
| 4014 return FALSE; | 4014 return false; |
| 4015 } | 4015 } |
| 4016 void* pValue = nullptr; | 4016 void* pValue = nullptr; |
| 4017 if (XFA_GetAttributeDefaultValue(pValue, GetElementType(), eAttr, | 4017 if (XFA_GetAttributeDefaultValue(pValue, GetElementType(), eAttr, |
| 4018 XFA_ATTRIBUTETYPE_Cdata, m_ePacket)) { | 4018 XFA_ATTRIBUTETYPE_Cdata, m_ePacket)) { |
| 4019 wsValue = (const FX_WCHAR*)pValue; | 4019 wsValue = (const FX_WCHAR*)pValue; |
| 4020 return TRUE; | 4020 return true; |
| 4021 } | 4021 } |
| 4022 return FALSE; | 4022 return false; |
| 4023 } | 4023 } |
| 4024 | 4024 |
| 4025 FX_BOOL CXFA_Node::TryCData(XFA_ATTRIBUTE eAttr, | 4025 bool CXFA_Node::TryCData(XFA_ATTRIBUTE eAttr, |
| 4026 CFX_WideStringC& wsValue, | 4026 CFX_WideStringC& wsValue, |
| 4027 FX_BOOL bUseDefault, | 4027 bool bUseDefault, |
| 4028 FX_BOOL bProto) { | 4028 bool bProto) { |
| 4029 void* pKey = GetMapKey_Element(GetElementType(), eAttr); | 4029 void* pKey = GetMapKey_Element(GetElementType(), eAttr); |
| 4030 if (eAttr == XFA_ATTRIBUTE_Value) { | 4030 if (eAttr == XFA_ATTRIBUTE_Value) { |
| 4031 CFX_WideString* pStr = (CFX_WideString*)GetUserData(pKey, bProto); | 4031 CFX_WideString* pStr = (CFX_WideString*)GetUserData(pKey, bProto); |
| 4032 if (pStr) { | 4032 if (pStr) { |
| 4033 wsValue = pStr->AsStringC(); | 4033 wsValue = pStr->AsStringC(); |
| 4034 return TRUE; | 4034 return true; |
| 4035 } | 4035 } |
| 4036 } else { | 4036 } else { |
| 4037 if (GetMapModuleString(pKey, wsValue)) { | 4037 if (GetMapModuleString(pKey, wsValue)) { |
| 4038 return TRUE; | 4038 return true; |
| 4039 } | 4039 } |
| 4040 } | 4040 } |
| 4041 if (!bUseDefault) { | 4041 if (!bUseDefault) { |
| 4042 return FALSE; | 4042 return false; |
| 4043 } | 4043 } |
| 4044 void* pValue = nullptr; | 4044 void* pValue = nullptr; |
| 4045 if (XFA_GetAttributeDefaultValue(pValue, GetElementType(), eAttr, | 4045 if (XFA_GetAttributeDefaultValue(pValue, GetElementType(), eAttr, |
| 4046 XFA_ATTRIBUTETYPE_Cdata, m_ePacket)) { | 4046 XFA_ATTRIBUTETYPE_Cdata, m_ePacket)) { |
| 4047 wsValue = (CFX_WideStringC)(const FX_WCHAR*)pValue; | 4047 wsValue = (CFX_WideStringC)(const FX_WCHAR*)pValue; |
| 4048 return TRUE; | 4048 return true; |
| 4049 } | 4049 } |
| 4050 return FALSE; | 4050 return false; |
| 4051 } | 4051 } |
| 4052 | 4052 |
| 4053 FX_BOOL CXFA_Node::SetObject(XFA_ATTRIBUTE eAttr, | 4053 bool CXFA_Node::SetObject(XFA_ATTRIBUTE eAttr, |
| 4054 void* pData, | 4054 void* pData, |
| 4055 XFA_MAPDATABLOCKCALLBACKINFO* pCallbackInfo) { | 4055 XFA_MAPDATABLOCKCALLBACKINFO* pCallbackInfo) { |
| 4056 void* pKey = GetMapKey_Element(GetElementType(), eAttr); | 4056 void* pKey = GetMapKey_Element(GetElementType(), eAttr); |
| 4057 return SetUserData(pKey, pData, pCallbackInfo); | 4057 return SetUserData(pKey, pData, pCallbackInfo); |
| 4058 } | 4058 } |
| 4059 | 4059 |
| 4060 FX_BOOL CXFA_Node::TryObject(XFA_ATTRIBUTE eAttr, void*& pData) { | 4060 bool CXFA_Node::TryObject(XFA_ATTRIBUTE eAttr, void*& pData) { |
| 4061 void* pKey = GetMapKey_Element(GetElementType(), eAttr); | 4061 void* pKey = GetMapKey_Element(GetElementType(), eAttr); |
| 4062 pData = GetUserData(pKey); | 4062 pData = GetUserData(pKey); |
| 4063 return !!pData; | 4063 return !!pData; |
| 4064 } | 4064 } |
| 4065 | 4065 |
| 4066 FX_BOOL CXFA_Node::SetValue(XFA_ATTRIBUTE eAttr, | 4066 bool CXFA_Node::SetValue(XFA_ATTRIBUTE eAttr, |
| 4067 XFA_ATTRIBUTETYPE eType, | 4067 XFA_ATTRIBUTETYPE eType, |
| 4068 void* pValue, | 4068 void* pValue, |
| 4069 bool bNotify) { | 4069 bool bNotify) { |
| 4070 void* pKey = GetMapKey_Element(GetElementType(), eAttr); | 4070 void* pKey = GetMapKey_Element(GetElementType(), eAttr); |
| 4071 OnChanging(eAttr, bNotify); | 4071 OnChanging(eAttr, bNotify); |
| 4072 SetMapModuleValue(pKey, pValue); | 4072 SetMapModuleValue(pKey, pValue); |
| 4073 OnChanged(eAttr, bNotify, FALSE); | 4073 OnChanged(eAttr, bNotify, false); |
| 4074 if (IsNeedSavingXMLNode()) { | 4074 if (IsNeedSavingXMLNode()) { |
| 4075 ASSERT(m_pXMLNode->GetType() == FDE_XMLNODE_Element); | 4075 ASSERT(m_pXMLNode->GetType() == FDE_XMLNODE_Element); |
| 4076 const XFA_ATTRIBUTEINFO* pInfo = XFA_GetAttributeByID(eAttr); | 4076 const XFA_ATTRIBUTEINFO* pInfo = XFA_GetAttributeByID(eAttr); |
| 4077 if (pInfo) { | 4077 if (pInfo) { |
| 4078 switch (eType) { | 4078 switch (eType) { |
| 4079 case XFA_ATTRIBUTETYPE_Enum: | 4079 case XFA_ATTRIBUTETYPE_Enum: |
| 4080 static_cast<CFDE_XMLElement*>(m_pXMLNode) | 4080 static_cast<CFDE_XMLElement*>(m_pXMLNode) |
| 4081 ->SetString( | 4081 ->SetString( |
| 4082 pInfo->pName, | 4082 pInfo->pName, |
| 4083 GetAttributeEnumByID((XFA_ATTRIBUTEENUM)(uintptr_t)pValue) | 4083 GetAttributeEnumByID((XFA_ATTRIBUTEENUM)(uintptr_t)pValue) |
| 4084 ->pName); | 4084 ->pName); |
| 4085 break; | 4085 break; |
| 4086 case XFA_ATTRIBUTETYPE_Boolean: | 4086 case XFA_ATTRIBUTETYPE_Boolean: |
| 4087 static_cast<CFDE_XMLElement*>(m_pXMLNode) | 4087 static_cast<CFDE_XMLElement*>(m_pXMLNode) |
| 4088 ->SetString(pInfo->pName, pValue ? L"1" : L"0"); | 4088 ->SetString(pInfo->pName, pValue ? L"1" : L"0"); |
| 4089 break; | 4089 break; |
| 4090 case XFA_ATTRIBUTETYPE_Integer: | 4090 case XFA_ATTRIBUTETYPE_Integer: |
| 4091 static_cast<CFDE_XMLElement*>(m_pXMLNode) | 4091 static_cast<CFDE_XMLElement*>(m_pXMLNode) |
| 4092 ->SetInteger(pInfo->pName, (int32_t)(uintptr_t)pValue); | 4092 ->SetInteger(pInfo->pName, (int32_t)(uintptr_t)pValue); |
| 4093 break; | 4093 break; |
| 4094 default: | 4094 default: |
| 4095 ASSERT(0); | 4095 ASSERT(0); |
| 4096 } | 4096 } |
| 4097 } | 4097 } |
| 4098 } | 4098 } |
| 4099 return TRUE; | 4099 return true; |
| 4100 } | 4100 } |
| 4101 | 4101 |
| 4102 FX_BOOL CXFA_Node::GetValue(XFA_ATTRIBUTE eAttr, | 4102 bool CXFA_Node::GetValue(XFA_ATTRIBUTE eAttr, |
| 4103 XFA_ATTRIBUTETYPE eType, | 4103 XFA_ATTRIBUTETYPE eType, |
| 4104 FX_BOOL bUseDefault, | 4104 bool bUseDefault, |
| 4105 void*& pValue) { | 4105 void*& pValue) { |
| 4106 void* pKey = GetMapKey_Element(GetElementType(), eAttr); | 4106 void* pKey = GetMapKey_Element(GetElementType(), eAttr); |
| 4107 if (GetMapModuleValue(pKey, pValue)) { | 4107 if (GetMapModuleValue(pKey, pValue)) { |
| 4108 return TRUE; | 4108 return true; |
| 4109 } | 4109 } |
| 4110 if (!bUseDefault) { | 4110 if (!bUseDefault) { |
| 4111 return FALSE; | 4111 return false; |
| 4112 } | 4112 } |
| 4113 return XFA_GetAttributeDefaultValue(pValue, GetElementType(), eAttr, eType, | 4113 return XFA_GetAttributeDefaultValue(pValue, GetElementType(), eAttr, eType, |
| 4114 m_ePacket); | 4114 m_ePacket); |
| 4115 } | 4115 } |
| 4116 | 4116 |
| 4117 FX_BOOL CXFA_Node::SetUserData(void* pKey, | 4117 bool CXFA_Node::SetUserData(void* pKey, |
| 4118 void* pData, | 4118 void* pData, |
| 4119 XFA_MAPDATABLOCKCALLBACKINFO* pCallbackInfo) { | 4119 XFA_MAPDATABLOCKCALLBACKINFO* pCallbackInfo) { |
| 4120 SetMapModuleBuffer(pKey, &pData, sizeof(void*), | 4120 SetMapModuleBuffer(pKey, &pData, sizeof(void*), |
| 4121 pCallbackInfo ? pCallbackInfo : &gs_XFADefaultFreeData); | 4121 pCallbackInfo ? pCallbackInfo : &gs_XFADefaultFreeData); |
| 4122 return TRUE; | 4122 return true; |
| 4123 } | 4123 } |
| 4124 | 4124 |
| 4125 FX_BOOL CXFA_Node::TryUserData(void* pKey, void*& pData, FX_BOOL bProtoAlso) { | 4125 bool CXFA_Node::TryUserData(void* pKey, void*& pData, bool bProtoAlso) { |
| 4126 int32_t iBytes = 0; | 4126 int32_t iBytes = 0; |
| 4127 if (!GetMapModuleBuffer(pKey, pData, iBytes, bProtoAlso)) { | 4127 if (!GetMapModuleBuffer(pKey, pData, iBytes, bProtoAlso)) { |
| 4128 return FALSE; | 4128 return false; |
| 4129 } | 4129 } |
| 4130 return iBytes == sizeof(void*) && FXSYS_memcpy(&pData, pData, iBytes); | 4130 return iBytes == sizeof(void*) && FXSYS_memcpy(&pData, pData, iBytes); |
| 4131 } | 4131 } |
| 4132 | 4132 |
| 4133 FX_BOOL CXFA_Node::SetScriptContent(const CFX_WideString& wsContent, | 4133 bool CXFA_Node::SetScriptContent(const CFX_WideString& wsContent, |
| 4134 const CFX_WideString& wsXMLValue, | 4134 const CFX_WideString& wsXMLValue, |
| 4135 bool bNotify, | 4135 bool bNotify, |
| 4136 FX_BOOL bScriptModify, | 4136 bool bScriptModify, |
| 4137 FX_BOOL bSyncData) { | 4137 bool bSyncData) { |
| 4138 CXFA_Node* pNode = nullptr; | 4138 CXFA_Node* pNode = nullptr; |
| 4139 CXFA_Node* pBindNode = nullptr; | 4139 CXFA_Node* pBindNode = nullptr; |
| 4140 switch (GetObjectType()) { | 4140 switch (GetObjectType()) { |
| 4141 case XFA_ObjectType::ContainerNode: { | 4141 case XFA_ObjectType::ContainerNode: { |
| 4142 if (XFA_FieldIsMultiListBox(this)) { | 4142 if (XFA_FieldIsMultiListBox(this)) { |
| 4143 CXFA_Node* pValue = GetProperty(0, XFA_Element::Value); | 4143 CXFA_Node* pValue = GetProperty(0, XFA_Element::Value); |
| 4144 CXFA_Node* pChildValue = pValue->GetNodeItem(XFA_NODEITEM_FirstChild); | 4144 CXFA_Node* pChildValue = pValue->GetNodeItem(XFA_NODEITEM_FirstChild); |
| 4145 ASSERT(pChildValue); | 4145 ASSERT(pChildValue); |
| 4146 pChildValue->SetCData(XFA_ATTRIBUTE_ContentType, L"text/xml"); | 4146 pChildValue->SetCData(XFA_ATTRIBUTE_ContentType, L"text/xml"); |
| 4147 pChildValue->SetScriptContent(wsContent, wsContent, bNotify, | 4147 pChildValue->SetScriptContent(wsContent, wsContent, bNotify, |
| 4148 bScriptModify, FALSE); | 4148 bScriptModify, false); |
| 4149 CXFA_Node* pBind = GetBindData(); | 4149 CXFA_Node* pBind = GetBindData(); |
| 4150 if (bSyncData && pBind) { | 4150 if (bSyncData && pBind) { |
| 4151 CFX_WideStringArray wsSaveTextArray; | 4151 CFX_WideStringArray wsSaveTextArray; |
| 4152 int32_t iSize = 0; | 4152 int32_t iSize = 0; |
| 4153 if (!wsContent.IsEmpty()) { | 4153 if (!wsContent.IsEmpty()) { |
| 4154 int32_t iStart = 0; | 4154 int32_t iStart = 0; |
| 4155 int32_t iLength = wsContent.GetLength(); | 4155 int32_t iLength = wsContent.GetLength(); |
| 4156 int32_t iEnd = wsContent.Find(L'\n', iStart); | 4156 int32_t iEnd = wsContent.Find(L'\n', iStart); |
| 4157 iEnd = (iEnd == -1) ? iLength : iEnd; | 4157 iEnd = (iEnd == -1) ? iLength : iEnd; |
| 4158 while (iEnd >= iStart) { | 4158 while (iEnd >= iStart) { |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4193 while (iDelNodes-- > 0) { | 4193 while (iDelNodes-- > 0) { |
| 4194 pBind->RemoveChild(pBind->GetNodeItem(XFA_NODEITEM_FirstChild)); | 4194 pBind->RemoveChild(pBind->GetNodeItem(XFA_NODEITEM_FirstChild)); |
| 4195 } | 4195 } |
| 4196 } | 4196 } |
| 4197 int32_t i = 0; | 4197 int32_t i = 0; |
| 4198 for (CXFA_Node* pValueNode = | 4198 for (CXFA_Node* pValueNode = |
| 4199 pBind->GetNodeItem(XFA_NODEITEM_FirstChild); | 4199 pBind->GetNodeItem(XFA_NODEITEM_FirstChild); |
| 4200 pValueNode; pValueNode = pValueNode->GetNodeItem( | 4200 pValueNode; pValueNode = pValueNode->GetNodeItem( |
| 4201 XFA_NODEITEM_NextSibling)) { | 4201 XFA_NODEITEM_NextSibling)) { |
| 4202 pValueNode->SetAttributeValue(wsSaveTextArray[i], | 4202 pValueNode->SetAttributeValue(wsSaveTextArray[i], |
| 4203 wsSaveTextArray[i], FALSE); | 4203 wsSaveTextArray[i], false); |
| 4204 i++; | 4204 i++; |
| 4205 } | 4205 } |
| 4206 } | 4206 } |
| 4207 CXFA_NodeArray nodeArray; | 4207 CXFA_NodeArray nodeArray; |
| 4208 pBind->GetBindItems(nodeArray); | 4208 pBind->GetBindItems(nodeArray); |
| 4209 for (int32_t i = 0; i < nodeArray.GetSize(); i++) { | 4209 for (int32_t i = 0; i < nodeArray.GetSize(); i++) { |
| 4210 if (nodeArray[i] != this) { | 4210 if (nodeArray[i] != this) { |
| 4211 nodeArray[i]->SetScriptContent(wsContent, wsContent, bNotify, | 4211 nodeArray[i]->SetScriptContent(wsContent, wsContent, bNotify, |
| 4212 bScriptModify, FALSE); | 4212 bScriptModify, false); |
| 4213 } | 4213 } |
| 4214 } | 4214 } |
| 4215 } | 4215 } |
| 4216 break; | 4216 break; |
| 4217 } else if (GetElementType() == XFA_Element::ExclGroup) { | 4217 } else if (GetElementType() == XFA_Element::ExclGroup) { |
| 4218 pNode = this; | 4218 pNode = this; |
| 4219 } else { | 4219 } else { |
| 4220 CXFA_Node* pValue = GetProperty(0, XFA_Element::Value); | 4220 CXFA_Node* pValue = GetProperty(0, XFA_Element::Value); |
| 4221 CXFA_Node* pChildValue = pValue->GetNodeItem(XFA_NODEITEM_FirstChild); | 4221 CXFA_Node* pChildValue = pValue->GetNodeItem(XFA_NODEITEM_FirstChild); |
| 4222 ASSERT(pChildValue); | 4222 ASSERT(pChildValue); |
| 4223 pChildValue->SetScriptContent(wsContent, wsContent, bNotify, | 4223 pChildValue->SetScriptContent(wsContent, wsContent, bNotify, |
| 4224 bScriptModify, FALSE); | 4224 bScriptModify, false); |
| 4225 } | 4225 } |
| 4226 pBindNode = GetBindData(); | 4226 pBindNode = GetBindData(); |
| 4227 if (pBindNode && bSyncData) { | 4227 if (pBindNode && bSyncData) { |
| 4228 pBindNode->SetScriptContent(wsContent, wsXMLValue, bNotify, | 4228 pBindNode->SetScriptContent(wsContent, wsXMLValue, bNotify, |
| 4229 bScriptModify, FALSE); | 4229 bScriptModify, false); |
| 4230 CXFA_NodeArray nodeArray; | 4230 CXFA_NodeArray nodeArray; |
| 4231 pBindNode->GetBindItems(nodeArray); | 4231 pBindNode->GetBindItems(nodeArray); |
| 4232 for (int32_t i = 0; i < nodeArray.GetSize(); i++) { | 4232 for (int32_t i = 0; i < nodeArray.GetSize(); i++) { |
| 4233 if (nodeArray[i] != this) { | 4233 if (nodeArray[i] != this) { |
| 4234 nodeArray[i]->SetScriptContent(wsContent, wsContent, bNotify, true, | 4234 nodeArray[i]->SetScriptContent(wsContent, wsContent, bNotify, true, |
| 4235 FALSE); | 4235 false); |
| 4236 } | 4236 } |
| 4237 } | 4237 } |
| 4238 } | 4238 } |
| 4239 pBindNode = nullptr; | 4239 pBindNode = nullptr; |
| 4240 break; | 4240 break; |
| 4241 } | 4241 } |
| 4242 case XFA_ObjectType::ContentNode: { | 4242 case XFA_ObjectType::ContentNode: { |
| 4243 CFX_WideString wsContentType; | 4243 CFX_WideString wsContentType; |
| 4244 if (GetElementType() == XFA_Element::ExData) { | 4244 if (GetElementType() == XFA_Element::ExData) { |
| 4245 GetAttribute(XFA_ATTRIBUTE_ContentType, wsContentType, FALSE); | 4245 GetAttribute(XFA_ATTRIBUTE_ContentType, wsContentType, false); |
| 4246 if (wsContentType == FX_WSTRC(L"text/html")) { | 4246 if (wsContentType == FX_WSTRC(L"text/html")) { |
| 4247 wsContentType = FX_WSTRC(L""); | 4247 wsContentType = FX_WSTRC(L""); |
| 4248 SetAttribute(XFA_ATTRIBUTE_ContentType, wsContentType.AsStringC()); | 4248 SetAttribute(XFA_ATTRIBUTE_ContentType, wsContentType.AsStringC()); |
| 4249 } | 4249 } |
| 4250 } | 4250 } |
| 4251 CXFA_Node* pContentRawDataNode = GetNodeItem(XFA_NODEITEM_FirstChild); | 4251 CXFA_Node* pContentRawDataNode = GetNodeItem(XFA_NODEITEM_FirstChild); |
| 4252 if (!pContentRawDataNode) { | 4252 if (!pContentRawDataNode) { |
| 4253 pContentRawDataNode = CreateSamePacketNode( | 4253 pContentRawDataNode = CreateSamePacketNode( |
| 4254 (wsContentType == FX_WSTRC(L"text/xml")) ? XFA_Element::Sharpxml | 4254 (wsContentType == FX_WSTRC(L"text/xml")) ? XFA_Element::Sharpxml |
| 4255 : XFA_Element::Sharptext); | 4255 : XFA_Element::Sharptext); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 4268 CXFA_Node* pParent = GetNodeItem(XFA_NODEITEM_Parent); | 4268 CXFA_Node* pParent = GetNodeItem(XFA_NODEITEM_Parent); |
| 4269 if (pParent) { | 4269 if (pParent) { |
| 4270 pParent = pParent->GetNodeItem(XFA_NODEITEM_Parent); | 4270 pParent = pParent->GetNodeItem(XFA_NODEITEM_Parent); |
| 4271 } | 4271 } |
| 4272 if (pParent && pParent->GetElementType() == XFA_Element::Value) { | 4272 if (pParent && pParent->GetElementType() == XFA_Element::Value) { |
| 4273 pParent = pParent->GetNodeItem(XFA_NODEITEM_Parent); | 4273 pParent = pParent->GetNodeItem(XFA_NODEITEM_Parent); |
| 4274 if (pParent && pParent->IsContainerNode()) { | 4274 if (pParent && pParent->IsContainerNode()) { |
| 4275 pBindNode = pParent->GetBindData(); | 4275 pBindNode = pParent->GetBindData(); |
| 4276 if (pBindNode) { | 4276 if (pBindNode) { |
| 4277 pBindNode->SetScriptContent(wsContent, wsXMLValue, bNotify, | 4277 pBindNode->SetScriptContent(wsContent, wsXMLValue, bNotify, |
| 4278 bScriptModify, FALSE); | 4278 bScriptModify, false); |
| 4279 } | 4279 } |
| 4280 } | 4280 } |
| 4281 } | 4281 } |
| 4282 } | 4282 } |
| 4283 break; | 4283 break; |
| 4284 default: | 4284 default: |
| 4285 if (GetElementType() == XFA_Element::DataValue) { | 4285 if (GetElementType() == XFA_Element::DataValue) { |
| 4286 pNode = this; | 4286 pNode = this; |
| 4287 pBindNode = this; | 4287 pBindNode = this; |
| 4288 } | 4288 } |
| 4289 break; | 4289 break; |
| 4290 } | 4290 } |
| 4291 if (pNode) { | 4291 if (pNode) { |
| 4292 SetAttributeValue(wsContent, wsXMLValue, bNotify, bScriptModify); | 4292 SetAttributeValue(wsContent, wsXMLValue, bNotify, bScriptModify); |
| 4293 if (pBindNode && bSyncData) { | 4293 if (pBindNode && bSyncData) { |
| 4294 CXFA_NodeArray nodeArray; | 4294 CXFA_NodeArray nodeArray; |
| 4295 pBindNode->GetBindItems(nodeArray); | 4295 pBindNode->GetBindItems(nodeArray); |
| 4296 for (int32_t i = 0; i < nodeArray.GetSize(); i++) { | 4296 for (int32_t i = 0; i < nodeArray.GetSize(); i++) { |
| 4297 nodeArray[i]->SetScriptContent(wsContent, wsContent, bNotify, | 4297 nodeArray[i]->SetScriptContent(wsContent, wsContent, bNotify, |
| 4298 bScriptModify, FALSE); | 4298 bScriptModify, false); |
| 4299 } | 4299 } |
| 4300 } | 4300 } |
| 4301 return TRUE; | 4301 return true; |
| 4302 } | 4302 } |
| 4303 return FALSE; | 4303 return false; |
| 4304 } | 4304 } |
| 4305 | 4305 |
| 4306 FX_BOOL CXFA_Node::SetContent(const CFX_WideString& wsContent, | 4306 bool CXFA_Node::SetContent(const CFX_WideString& wsContent, |
| 4307 const CFX_WideString& wsXMLValue, | 4307 const CFX_WideString& wsXMLValue, |
| 4308 bool bNotify, | 4308 bool bNotify, |
| 4309 FX_BOOL bScriptModify, | 4309 bool bScriptModify, |
| 4310 FX_BOOL bSyncData) { | 4310 bool bSyncData) { |
| 4311 return SetScriptContent(wsContent, wsXMLValue, bNotify, bScriptModify, | 4311 return SetScriptContent(wsContent, wsXMLValue, bNotify, bScriptModify, |
| 4312 bSyncData); | 4312 bSyncData); |
| 4313 } | 4313 } |
| 4314 | 4314 |
| 4315 CFX_WideString CXFA_Node::GetScriptContent(FX_BOOL bScriptModify) { | 4315 CFX_WideString CXFA_Node::GetScriptContent(bool bScriptModify) { |
| 4316 CFX_WideString wsContent; | 4316 CFX_WideString wsContent; |
| 4317 return TryContent(wsContent, bScriptModify) ? wsContent : CFX_WideString(); | 4317 return TryContent(wsContent, bScriptModify) ? wsContent : CFX_WideString(); |
| 4318 } | 4318 } |
| 4319 | 4319 |
| 4320 CFX_WideString CXFA_Node::GetContent() { | 4320 CFX_WideString CXFA_Node::GetContent() { |
| 4321 return GetScriptContent(); | 4321 return GetScriptContent(); |
| 4322 } | 4322 } |
| 4323 | 4323 |
| 4324 FX_BOOL CXFA_Node::TryContent(CFX_WideString& wsContent, | 4324 bool CXFA_Node::TryContent(CFX_WideString& wsContent, |
| 4325 FX_BOOL bScriptModify, | 4325 bool bScriptModify, |
| 4326 FX_BOOL bProto) { | 4326 bool bProto) { |
| 4327 CXFA_Node* pNode = nullptr; | 4327 CXFA_Node* pNode = nullptr; |
| 4328 switch (GetObjectType()) { | 4328 switch (GetObjectType()) { |
| 4329 case XFA_ObjectType::ContainerNode: | 4329 case XFA_ObjectType::ContainerNode: |
| 4330 if (GetElementType() == XFA_Element::ExclGroup) { | 4330 if (GetElementType() == XFA_Element::ExclGroup) { |
| 4331 pNode = this; | 4331 pNode = this; |
| 4332 } else { | 4332 } else { |
| 4333 CXFA_Node* pValue = GetChild(0, XFA_Element::Value); | 4333 CXFA_Node* pValue = GetChild(0, XFA_Element::Value); |
| 4334 if (!pValue) { | 4334 if (!pValue) { |
| 4335 return FALSE; | 4335 return false; |
| 4336 } | 4336 } |
| 4337 CXFA_Node* pChildValue = pValue->GetNodeItem(XFA_NODEITEM_FirstChild); | 4337 CXFA_Node* pChildValue = pValue->GetNodeItem(XFA_NODEITEM_FirstChild); |
| 4338 if (pChildValue && XFA_FieldIsMultiListBox(this)) { | 4338 if (pChildValue && XFA_FieldIsMultiListBox(this)) { |
| 4339 pChildValue->SetAttribute(XFA_ATTRIBUTE_ContentType, | 4339 pChildValue->SetAttribute(XFA_ATTRIBUTE_ContentType, |
| 4340 FX_WSTRC(L"text/xml")); | 4340 FX_WSTRC(L"text/xml")); |
| 4341 } | 4341 } |
| 4342 return pChildValue | 4342 return pChildValue |
| 4343 ? pChildValue->TryContent(wsContent, bScriptModify, bProto) | 4343 ? pChildValue->TryContent(wsContent, bScriptModify, bProto) |
| 4344 : FALSE; | 4344 : false; |
| 4345 } | 4345 } |
| 4346 break; | 4346 break; |
| 4347 case XFA_ObjectType::ContentNode: { | 4347 case XFA_ObjectType::ContentNode: { |
| 4348 CXFA_Node* pContentRawDataNode = GetNodeItem(XFA_NODEITEM_FirstChild); | 4348 CXFA_Node* pContentRawDataNode = GetNodeItem(XFA_NODEITEM_FirstChild); |
| 4349 if (!pContentRawDataNode) { | 4349 if (!pContentRawDataNode) { |
| 4350 XFA_Element element = XFA_Element::Sharptext; | 4350 XFA_Element element = XFA_Element::Sharptext; |
| 4351 if (GetElementType() == XFA_Element::ExData) { | 4351 if (GetElementType() == XFA_Element::ExData) { |
| 4352 CFX_WideString wsContentType; | 4352 CFX_WideString wsContentType; |
| 4353 GetAttribute(XFA_ATTRIBUTE_ContentType, wsContentType, FALSE); | 4353 GetAttribute(XFA_ATTRIBUTE_ContentType, wsContentType, false); |
| 4354 if (wsContentType == FX_WSTRC(L"text/html")) { | 4354 if (wsContentType == FX_WSTRC(L"text/html")) { |
| 4355 element = XFA_Element::SharpxHTML; | 4355 element = XFA_Element::SharpxHTML; |
| 4356 } else if (wsContentType == FX_WSTRC(L"text/xml")) { | 4356 } else if (wsContentType == FX_WSTRC(L"text/xml")) { |
| 4357 element = XFA_Element::Sharpxml; | 4357 element = XFA_Element::Sharpxml; |
| 4358 } | 4358 } |
| 4359 } | 4359 } |
| 4360 pContentRawDataNode = CreateSamePacketNode(element); | 4360 pContentRawDataNode = CreateSamePacketNode(element); |
| 4361 InsertChild(pContentRawDataNode); | 4361 InsertChild(pContentRawDataNode); |
| 4362 } | 4362 } |
| 4363 return pContentRawDataNode->TryContent(wsContent, bScriptModify, bProto); | 4363 return pContentRawDataNode->TryContent(wsContent, bScriptModify, bProto); |
| 4364 } | 4364 } |
| 4365 case XFA_ObjectType::NodeC: | 4365 case XFA_ObjectType::NodeC: |
| 4366 case XFA_ObjectType::NodeV: | 4366 case XFA_ObjectType::NodeV: |
| 4367 case XFA_ObjectType::TextNode: | 4367 case XFA_ObjectType::TextNode: |
| 4368 pNode = this; | 4368 pNode = this; |
| 4369 default: | 4369 default: |
| 4370 if (GetElementType() == XFA_Element::DataValue) { | 4370 if (GetElementType() == XFA_Element::DataValue) { |
| 4371 pNode = this; | 4371 pNode = this; |
| 4372 } | 4372 } |
| 4373 break; | 4373 break; |
| 4374 } | 4374 } |
| 4375 if (pNode) { | 4375 if (pNode) { |
| 4376 if (bScriptModify) { | 4376 if (bScriptModify) { |
| 4377 CXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); | 4377 CXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); |
| 4378 if (pScriptContext) { | 4378 if (pScriptContext) { |
| 4379 m_pDocument->GetScriptContext()->AddNodesOfRunScript(this); | 4379 m_pDocument->GetScriptContext()->AddNodesOfRunScript(this); |
| 4380 } | 4380 } |
| 4381 } | 4381 } |
| 4382 return TryCData(XFA_ATTRIBUTE_Value, wsContent, FALSE, bProto); | 4382 return TryCData(XFA_ATTRIBUTE_Value, wsContent, false, bProto); |
| 4383 } | 4383 } |
| 4384 return FALSE; | 4384 return false; |
| 4385 } | 4385 } |
| 4386 | 4386 |
| 4387 CXFA_Node* CXFA_Node::GetModelNode() { | 4387 CXFA_Node* CXFA_Node::GetModelNode() { |
| 4388 switch (GetPacketID()) { | 4388 switch (GetPacketID()) { |
| 4389 case XFA_XDPPACKET_XDP: | 4389 case XFA_XDPPACKET_XDP: |
| 4390 return m_pDocument->GetRoot(); | 4390 return m_pDocument->GetRoot(); |
| 4391 case XFA_XDPPACKET_Config: | 4391 case XFA_XDPPACKET_Config: |
| 4392 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Config)); | 4392 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Config)); |
| 4393 case XFA_XDPPACKET_Template: | 4393 case XFA_XDPPACKET_Template: |
| 4394 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Template)); | 4394 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Template)); |
| 4395 case XFA_XDPPACKET_Form: | 4395 case XFA_XDPPACKET_Form: |
| 4396 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form)); | 4396 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form)); |
| 4397 case XFA_XDPPACKET_Datasets: | 4397 case XFA_XDPPACKET_Datasets: |
| 4398 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Datasets)); | 4398 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Datasets)); |
| 4399 case XFA_XDPPACKET_LocaleSet: | 4399 case XFA_XDPPACKET_LocaleSet: |
| 4400 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_LocaleSet)); | 4400 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_LocaleSet)); |
| 4401 case XFA_XDPPACKET_ConnectionSet: | 4401 case XFA_XDPPACKET_ConnectionSet: |
| 4402 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_ConnectionSet)); | 4402 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_ConnectionSet)); |
| 4403 case XFA_XDPPACKET_SourceSet: | 4403 case XFA_XDPPACKET_SourceSet: |
| 4404 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_SourceSet)); | 4404 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_SourceSet)); |
| 4405 case XFA_XDPPACKET_Xdc: | 4405 case XFA_XDPPACKET_Xdc: |
| 4406 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Xdc)); | 4406 return ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Xdc)); |
| 4407 default: | 4407 default: |
| 4408 return this; | 4408 return this; |
| 4409 } | 4409 } |
| 4410 } | 4410 } |
| 4411 | 4411 |
| 4412 FX_BOOL CXFA_Node::TryNamespace(CFX_WideString& wsNamespace) { | 4412 bool CXFA_Node::TryNamespace(CFX_WideString& wsNamespace) { |
| 4413 wsNamespace.clear(); | 4413 wsNamespace.clear(); |
| 4414 if (IsModelNode() || GetElementType() == XFA_Element::Packet) { | 4414 if (IsModelNode() || GetElementType() == XFA_Element::Packet) { |
| 4415 CFDE_XMLNode* pXMLNode = GetXMLMappingNode(); | 4415 CFDE_XMLNode* pXMLNode = GetXMLMappingNode(); |
| 4416 if (!pXMLNode || pXMLNode->GetType() != FDE_XMLNODE_Element) { | 4416 if (!pXMLNode || pXMLNode->GetType() != FDE_XMLNODE_Element) { |
| 4417 return FALSE; | 4417 return false; |
| 4418 } | 4418 } |
| 4419 static_cast<CFDE_XMLElement*>(pXMLNode)->GetNamespaceURI(wsNamespace); | 4419 static_cast<CFDE_XMLElement*>(pXMLNode)->GetNamespaceURI(wsNamespace); |
| 4420 return TRUE; | 4420 return true; |
| 4421 } else if (GetPacketID() == XFA_XDPPACKET_Datasets) { | 4421 } else if (GetPacketID() == XFA_XDPPACKET_Datasets) { |
| 4422 CFDE_XMLNode* pXMLNode = GetXMLMappingNode(); | 4422 CFDE_XMLNode* pXMLNode = GetXMLMappingNode(); |
| 4423 if (!pXMLNode) { | 4423 if (!pXMLNode) { |
| 4424 return FALSE; | 4424 return false; |
| 4425 } | 4425 } |
| 4426 if (pXMLNode->GetType() != FDE_XMLNODE_Element) { | 4426 if (pXMLNode->GetType() != FDE_XMLNODE_Element) { |
| 4427 return TRUE; | 4427 return true; |
| 4428 } | 4428 } |
| 4429 if (GetElementType() == XFA_Element::DataValue && | 4429 if (GetElementType() == XFA_Element::DataValue && |
| 4430 GetEnum(XFA_ATTRIBUTE_Contains) == XFA_ATTRIBUTEENUM_MetaData) { | 4430 GetEnum(XFA_ATTRIBUTE_Contains) == XFA_ATTRIBUTEENUM_MetaData) { |
| 4431 return XFA_FDEExtension_ResolveNamespaceQualifier( | 4431 return XFA_FDEExtension_ResolveNamespaceQualifier( |
| 4432 static_cast<CFDE_XMLElement*>(pXMLNode), | 4432 static_cast<CFDE_XMLElement*>(pXMLNode), |
| 4433 GetCData(XFA_ATTRIBUTE_QualifiedName), wsNamespace); | 4433 GetCData(XFA_ATTRIBUTE_QualifiedName), wsNamespace); |
| 4434 } | 4434 } |
| 4435 static_cast<CFDE_XMLElement*>(pXMLNode)->GetNamespaceURI(wsNamespace); | 4435 static_cast<CFDE_XMLElement*>(pXMLNode)->GetNamespaceURI(wsNamespace); |
| 4436 return TRUE; | 4436 return true; |
| 4437 } else { | 4437 } else { |
| 4438 CXFA_Node* pModelNode = GetModelNode(); | 4438 CXFA_Node* pModelNode = GetModelNode(); |
| 4439 return pModelNode->TryNamespace(wsNamespace); | 4439 return pModelNode->TryNamespace(wsNamespace); |
| 4440 } | 4440 } |
| 4441 } | 4441 } |
| 4442 | 4442 |
| 4443 CXFA_Node* CXFA_Node::GetProperty(int32_t index, | 4443 CXFA_Node* CXFA_Node::GetProperty(int32_t index, |
| 4444 XFA_Element eProperty, | 4444 XFA_Element eProperty, |
| 4445 FX_BOOL bCreateProperty) { | 4445 bool bCreateProperty) { |
| 4446 XFA_Element eType = GetElementType(); | 4446 XFA_Element eType = GetElementType(); |
| 4447 uint32_t dwPacket = GetPacketID(); | 4447 uint32_t dwPacket = GetPacketID(); |
| 4448 const XFA_PROPERTY* pProperty = | 4448 const XFA_PROPERTY* pProperty = |
| 4449 XFA_GetPropertyOfElement(eType, eProperty, dwPacket); | 4449 XFA_GetPropertyOfElement(eType, eProperty, dwPacket); |
| 4450 if (!pProperty || index >= pProperty->uOccur) | 4450 if (!pProperty || index >= pProperty->uOccur) |
| 4451 return nullptr; | 4451 return nullptr; |
| 4452 | 4452 |
| 4453 CXFA_Node* pNode = m_pChild; | 4453 CXFA_Node* pNode = m_pChild; |
| 4454 int32_t iCount = 0; | 4454 int32_t iCount = 0; |
| 4455 for (; pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { | 4455 for (; pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 4478 for (; iCount <= index; iCount++) { | 4478 for (; iCount <= index; iCount++) { |
| 4479 pNewNode = m_pDocument->CreateNode(pPacket, eProperty); | 4479 pNewNode = m_pDocument->CreateNode(pPacket, eProperty); |
| 4480 if (!pNewNode) | 4480 if (!pNewNode) |
| 4481 return nullptr; | 4481 return nullptr; |
| 4482 InsertChild(pNewNode, nullptr); | 4482 InsertChild(pNewNode, nullptr); |
| 4483 pNewNode->SetFlag(XFA_NodeFlag_Initialized, true); | 4483 pNewNode->SetFlag(XFA_NodeFlag_Initialized, true); |
| 4484 } | 4484 } |
| 4485 return pNewNode; | 4485 return pNewNode; |
| 4486 } | 4486 } |
| 4487 | 4487 |
| 4488 int32_t CXFA_Node::CountChildren(XFA_Element eType, FX_BOOL bOnlyChild) { | 4488 int32_t CXFA_Node::CountChildren(XFA_Element eType, bool bOnlyChild) { |
| 4489 CXFA_Node* pNode = m_pChild; | 4489 CXFA_Node* pNode = m_pChild; |
| 4490 int32_t iCount = 0; | 4490 int32_t iCount = 0; |
| 4491 for (; pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { | 4491 for (; pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { |
| 4492 if (pNode->GetElementType() == eType || eType == XFA_Element::Unknown) { | 4492 if (pNode->GetElementType() == eType || eType == XFA_Element::Unknown) { |
| 4493 if (bOnlyChild) { | 4493 if (bOnlyChild) { |
| 4494 const XFA_PROPERTY* pProperty = XFA_GetPropertyOfElement( | 4494 const XFA_PROPERTY* pProperty = XFA_GetPropertyOfElement( |
| 4495 GetElementType(), pNode->GetElementType(), XFA_XDPPACKET_UNKNOWN); | 4495 GetElementType(), pNode->GetElementType(), XFA_XDPPACKET_UNKNOWN); |
| 4496 if (pProperty) { | 4496 if (pProperty) { |
| 4497 continue; | 4497 continue; |
| 4498 } | 4498 } |
| 4499 } | 4499 } |
| 4500 iCount++; | 4500 iCount++; |
| 4501 } | 4501 } |
| 4502 } | 4502 } |
| 4503 return iCount; | 4503 return iCount; |
| 4504 } | 4504 } |
| 4505 | 4505 |
| 4506 CXFA_Node* CXFA_Node::GetChild(int32_t index, | 4506 CXFA_Node* CXFA_Node::GetChild(int32_t index, |
| 4507 XFA_Element eType, | 4507 XFA_Element eType, |
| 4508 FX_BOOL bOnlyChild) { | 4508 bool bOnlyChild) { |
| 4509 ASSERT(index > -1); | 4509 ASSERT(index > -1); |
| 4510 CXFA_Node* pNode = m_pChild; | 4510 CXFA_Node* pNode = m_pChild; |
| 4511 int32_t iCount = 0; | 4511 int32_t iCount = 0; |
| 4512 for (; pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { | 4512 for (; pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { |
| 4513 if (pNode->GetElementType() == eType || eType == XFA_Element::Unknown) { | 4513 if (pNode->GetElementType() == eType || eType == XFA_Element::Unknown) { |
| 4514 if (bOnlyChild) { | 4514 if (bOnlyChild) { |
| 4515 const XFA_PROPERTY* pProperty = XFA_GetPropertyOfElement( | 4515 const XFA_PROPERTY* pProperty = XFA_GetPropertyOfElement( |
| 4516 GetElementType(), pNode->GetElementType(), XFA_XDPPACKET_UNKNOWN); | 4516 GetElementType(), pNode->GetElementType(), XFA_XDPPACKET_UNKNOWN); |
| 4517 if (pProperty) { | 4517 if (pProperty) { |
| 4518 continue; | 4518 continue; |
| 4519 } | 4519 } |
| 4520 } | 4520 } |
| 4521 iCount++; | 4521 iCount++; |
| 4522 if (iCount > index) { | 4522 if (iCount > index) { |
| 4523 return pNode; | 4523 return pNode; |
| 4524 } | 4524 } |
| 4525 } | 4525 } |
| 4526 } | 4526 } |
| 4527 return nullptr; | 4527 return nullptr; |
| 4528 } | 4528 } |
| 4529 | 4529 |
| 4530 int32_t CXFA_Node::InsertChild(int32_t index, CXFA_Node* pNode) { | 4530 int32_t CXFA_Node::InsertChild(int32_t index, CXFA_Node* pNode) { |
| 4531 ASSERT(!pNode->m_pNext); | 4531 ASSERT(!pNode->m_pNext); |
| 4532 pNode->m_pParent = this; | 4532 pNode->m_pParent = this; |
| 4533 FX_BOOL ret = m_pDocument->RemovePurgeNode(pNode); | 4533 bool ret = m_pDocument->RemovePurgeNode(pNode); |
| 4534 ASSERT(ret); | 4534 ASSERT(ret); |
| 4535 (void)ret; // Avoid unused variable warning. | 4535 (void)ret; // Avoid unused variable warning. |
| 4536 | 4536 |
| 4537 if (!m_pChild || index == 0) { | 4537 if (!m_pChild || index == 0) { |
| 4538 if (index > 0) { | 4538 if (index > 0) { |
| 4539 return -1; | 4539 return -1; |
| 4540 } | 4540 } |
| 4541 pNode->m_pNext = m_pChild; | 4541 pNode->m_pNext = m_pChild; |
| 4542 m_pChild = pNode; | 4542 m_pChild = pNode; |
| 4543 index = 0; | 4543 index = 0; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 4567 pNotify->OnChildAdded(this); | 4567 pNotify->OnChildAdded(this); |
| 4568 | 4568 |
| 4569 if (IsNeedSavingXMLNode() && pNode->m_pXMLNode) { | 4569 if (IsNeedSavingXMLNode() && pNode->m_pXMLNode) { |
| 4570 ASSERT(!pNode->m_pXMLNode->GetNodeItem(CFDE_XMLNode::Parent)); | 4570 ASSERT(!pNode->m_pXMLNode->GetNodeItem(CFDE_XMLNode::Parent)); |
| 4571 m_pXMLNode->InsertChildNode(pNode->m_pXMLNode, index); | 4571 m_pXMLNode->InsertChildNode(pNode->m_pXMLNode, index); |
| 4572 pNode->ClearFlag(XFA_NodeFlag_OwnXMLNode); | 4572 pNode->ClearFlag(XFA_NodeFlag_OwnXMLNode); |
| 4573 } | 4573 } |
| 4574 return index; | 4574 return index; |
| 4575 } | 4575 } |
| 4576 | 4576 |
| 4577 FX_BOOL CXFA_Node::InsertChild(CXFA_Node* pNode, CXFA_Node* pBeforeNode) { | 4577 bool CXFA_Node::InsertChild(CXFA_Node* pNode, CXFA_Node* pBeforeNode) { |
| 4578 if (!pNode || pNode->m_pParent || | 4578 if (!pNode || pNode->m_pParent || |
| 4579 (pBeforeNode && pBeforeNode->m_pParent != this)) { | 4579 (pBeforeNode && pBeforeNode->m_pParent != this)) { |
| 4580 ASSERT(false); | 4580 ASSERT(false); |
| 4581 return FALSE; | 4581 return false; |
| 4582 } | 4582 } |
| 4583 FX_BOOL ret = m_pDocument->RemovePurgeNode(pNode); | 4583 bool ret = m_pDocument->RemovePurgeNode(pNode); |
| 4584 ASSERT(ret); | 4584 ASSERT(ret); |
| 4585 (void)ret; // Avoid unused variable warning. | 4585 (void)ret; // Avoid unused variable warning. |
| 4586 | 4586 |
| 4587 int32_t nIndex = -1; | 4587 int32_t nIndex = -1; |
| 4588 pNode->m_pParent = this; | 4588 pNode->m_pParent = this; |
| 4589 if (!m_pChild || pBeforeNode == m_pChild) { | 4589 if (!m_pChild || pBeforeNode == m_pChild) { |
| 4590 pNode->m_pNext = m_pChild; | 4590 pNode->m_pNext = m_pChild; |
| 4591 m_pChild = pNode; | 4591 m_pChild = pNode; |
| 4592 nIndex = 0; | 4592 nIndex = 0; |
| 4593 } else if (!pBeforeNode) { | 4593 } else if (!pBeforeNode) { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 4611 pNode->ClearFlag(XFA_NodeFlag_HasRemovedChildren); | 4611 pNode->ClearFlag(XFA_NodeFlag_HasRemovedChildren); |
| 4612 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 4612 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 4613 if (pNotify) | 4613 if (pNotify) |
| 4614 pNotify->OnChildAdded(this); | 4614 pNotify->OnChildAdded(this); |
| 4615 | 4615 |
| 4616 if (IsNeedSavingXMLNode() && pNode->m_pXMLNode) { | 4616 if (IsNeedSavingXMLNode() && pNode->m_pXMLNode) { |
| 4617 ASSERT(!pNode->m_pXMLNode->GetNodeItem(CFDE_XMLNode::Parent)); | 4617 ASSERT(!pNode->m_pXMLNode->GetNodeItem(CFDE_XMLNode::Parent)); |
| 4618 m_pXMLNode->InsertChildNode(pNode->m_pXMLNode, nIndex); | 4618 m_pXMLNode->InsertChildNode(pNode->m_pXMLNode, nIndex); |
| 4619 pNode->ClearFlag(XFA_NodeFlag_OwnXMLNode); | 4619 pNode->ClearFlag(XFA_NodeFlag_OwnXMLNode); |
| 4620 } | 4620 } |
| 4621 return TRUE; | 4621 return true; |
| 4622 } | 4622 } |
| 4623 | 4623 |
| 4624 CXFA_Node* CXFA_Node::Deprecated_GetPrevSibling() { | 4624 CXFA_Node* CXFA_Node::Deprecated_GetPrevSibling() { |
| 4625 if (!m_pParent) { | 4625 if (!m_pParent) { |
| 4626 return nullptr; | 4626 return nullptr; |
| 4627 } | 4627 } |
| 4628 for (CXFA_Node* pSibling = m_pParent->m_pChild; pSibling; | 4628 for (CXFA_Node* pSibling = m_pParent->m_pChild; pSibling; |
| 4629 pSibling = pSibling->m_pNext) { | 4629 pSibling = pSibling->m_pNext) { |
| 4630 if (pSibling->m_pNext == this) { | 4630 if (pSibling->m_pNext == this) { |
| 4631 return pSibling; | 4631 return pSibling; |
| 4632 } | 4632 } |
| 4633 } | 4633 } |
| 4634 return nullptr; | 4634 return nullptr; |
| 4635 } | 4635 } |
| 4636 | 4636 |
| 4637 FX_BOOL CXFA_Node::RemoveChild(CXFA_Node* pNode, bool bNotify) { | 4637 bool CXFA_Node::RemoveChild(CXFA_Node* pNode, bool bNotify) { |
| 4638 if (!pNode || pNode->m_pParent != this) { | 4638 if (!pNode || pNode->m_pParent != this) { |
| 4639 ASSERT(FALSE); | 4639 ASSERT(false); |
| 4640 return FALSE; | 4640 return false; |
| 4641 } | 4641 } |
| 4642 if (m_pChild == pNode) { | 4642 if (m_pChild == pNode) { |
| 4643 m_pChild = pNode->m_pNext; | 4643 m_pChild = pNode->m_pNext; |
| 4644 if (m_pLastChild == pNode) { | 4644 if (m_pLastChild == pNode) { |
| 4645 m_pLastChild = pNode->m_pNext; | 4645 m_pLastChild = pNode->m_pNext; |
| 4646 } | 4646 } |
| 4647 pNode->m_pNext = nullptr; | 4647 pNode->m_pNext = nullptr; |
| 4648 pNode->m_pParent = nullptr; | 4648 pNode->m_pParent = nullptr; |
| 4649 } else { | 4649 } else { |
| 4650 CXFA_Node* pPrev = pNode->Deprecated_GetPrevSibling(); | 4650 CXFA_Node* pPrev = pNode->Deprecated_GetPrevSibling(); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 4664 ASSERT(pNode->m_pXMLNode == m_pXMLNode && | 4664 ASSERT(pNode->m_pXMLNode == m_pXMLNode && |
| 4665 m_pXMLNode->GetType() == FDE_XMLNODE_Element); | 4665 m_pXMLNode->GetType() == FDE_XMLNODE_Element); |
| 4666 if (pNode->m_pXMLNode->GetType() == FDE_XMLNODE_Element) { | 4666 if (pNode->m_pXMLNode->GetType() == FDE_XMLNODE_Element) { |
| 4667 CFDE_XMLElement* pXMLElement = | 4667 CFDE_XMLElement* pXMLElement = |
| 4668 static_cast<CFDE_XMLElement*>(pNode->m_pXMLNode); | 4668 static_cast<CFDE_XMLElement*>(pNode->m_pXMLNode); |
| 4669 CFX_WideStringC wsAttributeName = | 4669 CFX_WideStringC wsAttributeName = |
| 4670 pNode->GetCData(XFA_ATTRIBUTE_QualifiedName); | 4670 pNode->GetCData(XFA_ATTRIBUTE_QualifiedName); |
| 4671 pXMLElement->RemoveAttribute(wsAttributeName.c_str()); | 4671 pXMLElement->RemoveAttribute(wsAttributeName.c_str()); |
| 4672 } | 4672 } |
| 4673 CFX_WideString wsName; | 4673 CFX_WideString wsName; |
| 4674 pNode->GetAttribute(XFA_ATTRIBUTE_Name, wsName, FALSE); | 4674 pNode->GetAttribute(XFA_ATTRIBUTE_Name, wsName, false); |
| 4675 CFDE_XMLElement* pNewXMLElement = new CFDE_XMLElement(wsName); | 4675 CFDE_XMLElement* pNewXMLElement = new CFDE_XMLElement(wsName); |
| 4676 CFX_WideStringC wsValue = GetCData(XFA_ATTRIBUTE_Value); | 4676 CFX_WideStringC wsValue = GetCData(XFA_ATTRIBUTE_Value); |
| 4677 if (!wsValue.IsEmpty()) { | 4677 if (!wsValue.IsEmpty()) { |
| 4678 pNewXMLElement->SetTextData(CFX_WideString(wsValue)); | 4678 pNewXMLElement->SetTextData(CFX_WideString(wsValue)); |
| 4679 } | 4679 } |
| 4680 pNode->m_pXMLNode = pNewXMLElement; | 4680 pNode->m_pXMLNode = pNewXMLElement; |
| 4681 pNode->SetEnum(XFA_ATTRIBUTE_Contains, XFA_ATTRIBUTEENUM_Unknown); | 4681 pNode->SetEnum(XFA_ATTRIBUTE_Contains, XFA_ATTRIBUTEENUM_Unknown); |
| 4682 } else { | 4682 } else { |
| 4683 m_pXMLNode->RemoveChildNode(pNode->m_pXMLNode); | 4683 m_pXMLNode->RemoveChildNode(pNode->m_pXMLNode); |
| 4684 } | 4684 } |
| 4685 pNode->SetFlag(XFA_NodeFlag_OwnXMLNode, false); | 4685 pNode->SetFlag(XFA_NodeFlag_OwnXMLNode, false); |
| 4686 } | 4686 } |
| 4687 return TRUE; | 4687 return true; |
| 4688 } | 4688 } |
| 4689 | 4689 |
| 4690 CXFA_Node* CXFA_Node::GetFirstChildByName(const CFX_WideStringC& wsName) const { | 4690 CXFA_Node* CXFA_Node::GetFirstChildByName(const CFX_WideStringC& wsName) const { |
| 4691 return GetFirstChildByName(FX_HashCode_GetW(wsName, false)); | 4691 return GetFirstChildByName(FX_HashCode_GetW(wsName, false)); |
| 4692 } | 4692 } |
| 4693 | 4693 |
| 4694 CXFA_Node* CXFA_Node::GetFirstChildByName(uint32_t dwNameHash) const { | 4694 CXFA_Node* CXFA_Node::GetFirstChildByName(uint32_t dwNameHash) const { |
| 4695 for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_FirstChild); pNode; | 4695 for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_FirstChild); pNode; |
| 4696 pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { | 4696 pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { |
| 4697 if (pNode->GetNameHash() == dwNameHash) { | 4697 if (pNode->GetNameHash() == dwNameHash) { |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4807 pNotify->OnNodeReady(this); | 4807 pNotify->OnNodeReady(this); |
| 4808 } | 4808 } |
| 4809 } | 4809 } |
| 4810 m_uNodeFlags |= dwFlag; | 4810 m_uNodeFlags |= dwFlag; |
| 4811 } | 4811 } |
| 4812 | 4812 |
| 4813 void CXFA_Node::ClearFlag(uint32_t dwFlag) { | 4813 void CXFA_Node::ClearFlag(uint32_t dwFlag) { |
| 4814 m_uNodeFlags &= ~dwFlag; | 4814 m_uNodeFlags &= ~dwFlag; |
| 4815 } | 4815 } |
| 4816 | 4816 |
| 4817 FX_BOOL CXFA_Node::IsAttributeInXML() { | 4817 bool CXFA_Node::IsAttributeInXML() { |
| 4818 return GetEnum(XFA_ATTRIBUTE_Contains) == XFA_ATTRIBUTEENUM_MetaData; | 4818 return GetEnum(XFA_ATTRIBUTE_Contains) == XFA_ATTRIBUTEENUM_MetaData; |
| 4819 } | 4819 } |
| 4820 | 4820 |
| 4821 void CXFA_Node::OnRemoved(bool bNotify) { | 4821 void CXFA_Node::OnRemoved(bool bNotify) { |
| 4822 if (!bNotify) | 4822 if (!bNotify) |
| 4823 return; | 4823 return; |
| 4824 | 4824 |
| 4825 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 4825 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 4826 if (pNotify) | 4826 if (pNotify) |
| 4827 pNotify->OnChildRemoved(); | 4827 pNotify->OnChildRemoved(); |
| 4828 } | 4828 } |
| 4829 | 4829 |
| 4830 void CXFA_Node::OnChanging(XFA_ATTRIBUTE eAttr, bool bNotify) { | 4830 void CXFA_Node::OnChanging(XFA_ATTRIBUTE eAttr, bool bNotify) { |
| 4831 if (bNotify && IsInitialized()) { | 4831 if (bNotify && IsInitialized()) { |
| 4832 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 4832 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 4833 if (pNotify) { | 4833 if (pNotify) { |
| 4834 pNotify->OnValueChanging(this, eAttr); | 4834 pNotify->OnValueChanging(this, eAttr); |
| 4835 } | 4835 } |
| 4836 } | 4836 } |
| 4837 } | 4837 } |
| 4838 | 4838 |
| 4839 void CXFA_Node::OnChanged(XFA_ATTRIBUTE eAttr, | 4839 void CXFA_Node::OnChanged(XFA_ATTRIBUTE eAttr, |
| 4840 bool bNotify, | 4840 bool bNotify, |
| 4841 FX_BOOL bScriptModify) { | 4841 bool bScriptModify) { |
| 4842 if (bNotify && IsInitialized()) { | 4842 if (bNotify && IsInitialized()) { |
| 4843 Script_Attribute_SendAttributeChangeMessage(eAttr, bScriptModify); | 4843 Script_Attribute_SendAttributeChangeMessage(eAttr, bScriptModify); |
| 4844 } | 4844 } |
| 4845 } | 4845 } |
| 4846 | 4846 |
| 4847 int32_t CXFA_Node::execSingleEventByName(const CFX_WideStringC& wsEventName, | 4847 int32_t CXFA_Node::execSingleEventByName(const CFX_WideStringC& wsEventName, |
| 4848 XFA_Element eType) { | 4848 XFA_Element eType) { |
| 4849 int32_t iRet = XFA_EVENTERROR_NotExist; | 4849 int32_t iRet = XFA_EVENTERROR_NotExist; |
| 4850 const XFA_ExecEventParaInfo* eventParaInfo = | 4850 const XFA_ExecEventParaInfo* eventParaInfo = |
| 4851 GetEventParaInfoByName(wsEventName); | 4851 GetEventParaInfoByName(wsEventName); |
| 4852 if (eventParaInfo) { | 4852 if (eventParaInfo) { |
| 4853 uint32_t validFlags = eventParaInfo->m_validFlags; | 4853 uint32_t validFlags = eventParaInfo->m_validFlags; |
| 4854 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); | 4854 CXFA_FFNotify* pNotify = m_pDocument->GetNotify(); |
| 4855 if (!pNotify) { | 4855 if (!pNotify) { |
| 4856 return iRet; | 4856 return iRet; |
| 4857 } | 4857 } |
| 4858 if (validFlags == 1) { | 4858 if (validFlags == 1) { |
| 4859 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType); | 4859 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType); |
| 4860 } else if (validFlags == 2) { | 4860 } else if (validFlags == 2) { |
| 4861 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType, | 4861 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType, |
| 4862 FALSE, FALSE); | 4862 false, false); |
| 4863 } else if (validFlags == 3) { | 4863 } else if (validFlags == 3) { |
| 4864 if (eType == XFA_Element::Subform) { | 4864 if (eType == XFA_Element::Subform) { |
| 4865 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType, | 4865 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType, |
| 4866 FALSE, FALSE); | 4866 false, false); |
| 4867 } | 4867 } |
| 4868 } else if (validFlags == 4) { | 4868 } else if (validFlags == 4) { |
| 4869 if (eType == XFA_Element::ExclGroup || eType == XFA_Element::Field) { | 4869 if (eType == XFA_Element::ExclGroup || eType == XFA_Element::Field) { |
| 4870 CXFA_Node* pParentNode = GetNodeItem(XFA_NODEITEM_Parent); | 4870 CXFA_Node* pParentNode = GetNodeItem(XFA_NODEITEM_Parent); |
| 4871 if (pParentNode && | 4871 if (pParentNode && |
| 4872 pParentNode->GetElementType() == XFA_Element::ExclGroup) { | 4872 pParentNode->GetElementType() == XFA_Element::ExclGroup) { |
| 4873 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType, | 4873 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType, |
| 4874 FALSE, FALSE); | 4874 false, false); |
| 4875 } | 4875 } |
| 4876 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType, | 4876 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType, |
| 4877 FALSE, FALSE); | 4877 false, false); |
| 4878 } | 4878 } |
| 4879 } else if (validFlags == 5) { | 4879 } else if (validFlags == 5) { |
| 4880 if (eType == XFA_Element::Field) { | 4880 if (eType == XFA_Element::Field) { |
| 4881 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType, | 4881 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType, |
| 4882 FALSE, FALSE); | 4882 false, false); |
| 4883 } | 4883 } |
| 4884 } else if (validFlags == 6) { | 4884 } else if (validFlags == 6) { |
| 4885 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 4885 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 4886 if (pWidgetData) { | 4886 if (pWidgetData) { |
| 4887 CXFA_Node* pUINode = pWidgetData->GetUIChild(); | 4887 CXFA_Node* pUINode = pWidgetData->GetUIChild(); |
| 4888 if (pUINode->m_elementType == XFA_Element::Signature) { | 4888 if (pUINode->m_elementType == XFA_Element::Signature) { |
| 4889 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType, | 4889 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType, |
| 4890 FALSE, FALSE); | 4890 false, false); |
| 4891 } | 4891 } |
| 4892 } | 4892 } |
| 4893 } else if (validFlags == 7) { | 4893 } else if (validFlags == 7) { |
| 4894 CXFA_WidgetData* pWidgetData = GetWidgetData(); | 4894 CXFA_WidgetData* pWidgetData = GetWidgetData(); |
| 4895 if (pWidgetData) { | 4895 if (pWidgetData) { |
| 4896 CXFA_Node* pUINode = pWidgetData->GetUIChild(); | 4896 CXFA_Node* pUINode = pWidgetData->GetUIChild(); |
| 4897 if ((pUINode->m_elementType == XFA_Element::ChoiceList) && | 4897 if ((pUINode->m_elementType == XFA_Element::ChoiceList) && |
| 4898 (!pWidgetData->IsListBox())) { | 4898 (!pWidgetData->IsListBox())) { |
| 4899 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType, | 4899 iRet = pNotify->ExecEventByDeepFirst(this, eventParaInfo->m_eventType, |
| 4900 FALSE, FALSE); | 4900 false, false); |
| 4901 } | 4901 } |
| 4902 } | 4902 } |
| 4903 } | 4903 } |
| 4904 } | 4904 } |
| 4905 return iRet; | 4905 return iRet; |
| 4906 } | 4906 } |
| 4907 | 4907 |
| 4908 void CXFA_Node::UpdateNameHash() { | 4908 void CXFA_Node::UpdateNameHash() { |
| 4909 const XFA_NOTSUREATTRIBUTE* pNotsure = | 4909 const XFA_NOTSUREATTRIBUTE* pNotsure = |
| 4910 XFA_GetNotsureAttribute(GetElementType(), XFA_ATTRIBUTE_Name); | 4910 XFA_GetNotsureAttribute(GetElementType(), XFA_ATTRIBUTE_Name); |
| 4911 CFX_WideStringC wsName; | 4911 CFX_WideStringC wsName; |
| 4912 if (!pNotsure || pNotsure->eType == XFA_ATTRIBUTETYPE_Cdata) { | 4912 if (!pNotsure || pNotsure->eType == XFA_ATTRIBUTETYPE_Cdata) { |
| 4913 wsName = GetCData(XFA_ATTRIBUTE_Name); | 4913 wsName = GetCData(XFA_ATTRIBUTE_Name); |
| 4914 m_dwNameHash = FX_HashCode_GetW(wsName, false); | 4914 m_dwNameHash = FX_HashCode_GetW(wsName, false); |
| 4915 } else if (pNotsure->eType == XFA_ATTRIBUTETYPE_Enum) { | 4915 } else if (pNotsure->eType == XFA_ATTRIBUTETYPE_Enum) { |
| 4916 wsName = GetAttributeEnumByID(GetEnum(XFA_ATTRIBUTE_Name))->pName; | 4916 wsName = GetAttributeEnumByID(GetEnum(XFA_ATTRIBUTE_Name))->pName; |
| 4917 m_dwNameHash = FX_HashCode_GetW(wsName, false); | 4917 m_dwNameHash = FX_HashCode_GetW(wsName, false); |
| 4918 } | 4918 } |
| 4919 } | 4919 } |
| 4920 | 4920 |
| 4921 CFDE_XMLNode* CXFA_Node::CreateXMLMappingNode() { | 4921 CFDE_XMLNode* CXFA_Node::CreateXMLMappingNode() { |
| 4922 if (!m_pXMLNode) { | 4922 if (!m_pXMLNode) { |
| 4923 CFX_WideString wsTag(GetCData(XFA_ATTRIBUTE_Name)); | 4923 CFX_WideString wsTag(GetCData(XFA_ATTRIBUTE_Name)); |
| 4924 m_pXMLNode = new CFDE_XMLElement(wsTag); | 4924 m_pXMLNode = new CFDE_XMLElement(wsTag); |
| 4925 SetFlag(XFA_NodeFlag_OwnXMLNode, false); | 4925 SetFlag(XFA_NodeFlag_OwnXMLNode, false); |
| 4926 } | 4926 } |
| 4927 return m_pXMLNode; | 4927 return m_pXMLNode; |
| 4928 } | 4928 } |
| 4929 | 4929 |
| 4930 FX_BOOL CXFA_Node::IsNeedSavingXMLNode() { | 4930 bool CXFA_Node::IsNeedSavingXMLNode() { |
| 4931 return m_pXMLNode && (GetPacketID() == XFA_XDPPACKET_Datasets || | 4931 return m_pXMLNode && (GetPacketID() == XFA_XDPPACKET_Datasets || |
| 4932 GetElementType() == XFA_Element::Xfa); | 4932 GetElementType() == XFA_Element::Xfa); |
| 4933 } | 4933 } |
| 4934 | 4934 |
| 4935 XFA_MAPMODULEDATA* CXFA_Node::CreateMapModuleData() { | 4935 XFA_MAPMODULEDATA* CXFA_Node::CreateMapModuleData() { |
| 4936 if (!m_pMapModuleData) | 4936 if (!m_pMapModuleData) |
| 4937 m_pMapModuleData = new XFA_MAPMODULEDATA; | 4937 m_pMapModuleData = new XFA_MAPMODULEDATA; |
| 4938 return m_pMapModuleData; | 4938 return m_pMapModuleData; |
| 4939 } | 4939 } |
| 4940 | 4940 |
| 4941 XFA_MAPMODULEDATA* CXFA_Node::GetMapModuleData() const { | 4941 XFA_MAPMODULEDATA* CXFA_Node::GetMapModuleData() const { |
| 4942 return m_pMapModuleData; | 4942 return m_pMapModuleData; |
| 4943 } | 4943 } |
| 4944 | 4944 |
| 4945 void CXFA_Node::SetMapModuleValue(void* pKey, void* pValue) { | 4945 void CXFA_Node::SetMapModuleValue(void* pKey, void* pValue) { |
| 4946 XFA_MAPMODULEDATA* pModule = CreateMapModuleData(); | 4946 XFA_MAPMODULEDATA* pModule = CreateMapModuleData(); |
| 4947 pModule->m_ValueMap.SetAt(pKey, pValue); | 4947 pModule->m_ValueMap.SetAt(pKey, pValue); |
| 4948 } | 4948 } |
| 4949 | 4949 |
| 4950 FX_BOOL CXFA_Node::GetMapModuleValue(void* pKey, void*& pValue) { | 4950 bool CXFA_Node::GetMapModuleValue(void* pKey, void*& pValue) { |
| 4951 CXFA_Node* pNode = this; | 4951 CXFA_Node* pNode = this; |
| 4952 while (pNode) { | 4952 while (pNode) { |
| 4953 XFA_MAPMODULEDATA* pModule = pNode->GetMapModuleData(); | 4953 XFA_MAPMODULEDATA* pModule = pNode->GetMapModuleData(); |
| 4954 if (pModule && pModule->m_ValueMap.Lookup(pKey, pValue)) { | 4954 if (pModule && pModule->m_ValueMap.Lookup(pKey, pValue)) { |
| 4955 return TRUE; | 4955 return true; |
| 4956 } | 4956 } |
| 4957 pNode = pNode->GetPacketID() != XFA_XDPPACKET_Datasets | 4957 pNode = pNode->GetPacketID() != XFA_XDPPACKET_Datasets |
| 4958 ? pNode->GetTemplateNode() | 4958 ? pNode->GetTemplateNode() |
| 4959 : nullptr; | 4959 : nullptr; |
| 4960 } | 4960 } |
| 4961 return FALSE; | 4961 return false; |
| 4962 } | 4962 } |
| 4963 | 4963 |
| 4964 void CXFA_Node::SetMapModuleString(void* pKey, const CFX_WideStringC& wsValue) { | 4964 void CXFA_Node::SetMapModuleString(void* pKey, const CFX_WideStringC& wsValue) { |
| 4965 SetMapModuleBuffer(pKey, (void*)wsValue.c_str(), | 4965 SetMapModuleBuffer(pKey, (void*)wsValue.c_str(), |
| 4966 wsValue.GetLength() * sizeof(FX_WCHAR)); | 4966 wsValue.GetLength() * sizeof(FX_WCHAR)); |
| 4967 } | 4967 } |
| 4968 | 4968 |
| 4969 FX_BOOL CXFA_Node::GetMapModuleString(void* pKey, CFX_WideStringC& wsValue) { | 4969 bool CXFA_Node::GetMapModuleString(void* pKey, CFX_WideStringC& wsValue) { |
| 4970 void* pValue; | 4970 void* pValue; |
| 4971 int32_t iBytes; | 4971 int32_t iBytes; |
| 4972 if (!GetMapModuleBuffer(pKey, pValue, iBytes)) { | 4972 if (!GetMapModuleBuffer(pKey, pValue, iBytes)) { |
| 4973 return FALSE; | 4973 return false; |
| 4974 } | 4974 } |
| 4975 wsValue = CFX_WideStringC((const FX_WCHAR*)pValue, iBytes / sizeof(FX_WCHAR)); | 4975 wsValue = CFX_WideStringC((const FX_WCHAR*)pValue, iBytes / sizeof(FX_WCHAR)); |
| 4976 return TRUE; | 4976 return true; |
| 4977 } | 4977 } |
| 4978 | 4978 |
| 4979 void CXFA_Node::SetMapModuleBuffer( | 4979 void CXFA_Node::SetMapModuleBuffer( |
| 4980 void* pKey, | 4980 void* pKey, |
| 4981 void* pValue, | 4981 void* pValue, |
| 4982 int32_t iBytes, | 4982 int32_t iBytes, |
| 4983 XFA_MAPDATABLOCKCALLBACKINFO* pCallbackInfo) { | 4983 XFA_MAPDATABLOCKCALLBACKINFO* pCallbackInfo) { |
| 4984 XFA_MAPMODULEDATA* pModule = CreateMapModuleData(); | 4984 XFA_MAPMODULEDATA* pModule = CreateMapModuleData(); |
| 4985 XFA_MAPDATABLOCK*& pBuffer = pModule->m_BufferMap[pKey]; | 4985 XFA_MAPDATABLOCK*& pBuffer = pModule->m_BufferMap[pKey]; |
| 4986 if (!pBuffer) { | 4986 if (!pBuffer) { |
| 4987 pBuffer = | 4987 pBuffer = |
| 4988 (XFA_MAPDATABLOCK*)FX_Alloc(uint8_t, sizeof(XFA_MAPDATABLOCK) + iBytes); | 4988 (XFA_MAPDATABLOCK*)FX_Alloc(uint8_t, sizeof(XFA_MAPDATABLOCK) + iBytes); |
| 4989 } else if (pBuffer->iBytes != iBytes) { | 4989 } else if (pBuffer->iBytes != iBytes) { |
| 4990 if (pBuffer->pCallbackInfo && pBuffer->pCallbackInfo->pFree) { | 4990 if (pBuffer->pCallbackInfo && pBuffer->pCallbackInfo->pFree) { |
| 4991 pBuffer->pCallbackInfo->pFree(*(void**)pBuffer->GetData()); | 4991 pBuffer->pCallbackInfo->pFree(*(void**)pBuffer->GetData()); |
| 4992 } | 4992 } |
| 4993 pBuffer = (XFA_MAPDATABLOCK*)FX_Realloc(uint8_t, pBuffer, | 4993 pBuffer = (XFA_MAPDATABLOCK*)FX_Realloc(uint8_t, pBuffer, |
| 4994 sizeof(XFA_MAPDATABLOCK) + iBytes); | 4994 sizeof(XFA_MAPDATABLOCK) + iBytes); |
| 4995 } else if (pBuffer->pCallbackInfo && pBuffer->pCallbackInfo->pFree) { | 4995 } else if (pBuffer->pCallbackInfo && pBuffer->pCallbackInfo->pFree) { |
| 4996 pBuffer->pCallbackInfo->pFree(*(void**)pBuffer->GetData()); | 4996 pBuffer->pCallbackInfo->pFree(*(void**)pBuffer->GetData()); |
| 4997 } | 4997 } |
| 4998 if (!pBuffer) | 4998 if (!pBuffer) |
| 4999 return; | 4999 return; |
| 5000 | 5000 |
| 5001 pBuffer->pCallbackInfo = pCallbackInfo; | 5001 pBuffer->pCallbackInfo = pCallbackInfo; |
| 5002 pBuffer->iBytes = iBytes; | 5002 pBuffer->iBytes = iBytes; |
| 5003 FXSYS_memcpy(pBuffer->GetData(), pValue, iBytes); | 5003 FXSYS_memcpy(pBuffer->GetData(), pValue, iBytes); |
| 5004 } | 5004 } |
| 5005 | 5005 |
| 5006 FX_BOOL CXFA_Node::GetMapModuleBuffer(void* pKey, | 5006 bool CXFA_Node::GetMapModuleBuffer(void* pKey, |
| 5007 void*& pValue, | 5007 void*& pValue, |
| 5008 int32_t& iBytes, | 5008 int32_t& iBytes, |
| 5009 FX_BOOL bProtoAlso) const { | 5009 bool bProtoAlso) const { |
| 5010 XFA_MAPDATABLOCK* pBuffer = nullptr; | 5010 XFA_MAPDATABLOCK* pBuffer = nullptr; |
| 5011 const CXFA_Node* pNode = this; | 5011 const CXFA_Node* pNode = this; |
| 5012 while (pNode) { | 5012 while (pNode) { |
| 5013 XFA_MAPMODULEDATA* pModule = pNode->GetMapModuleData(); | 5013 XFA_MAPMODULEDATA* pModule = pNode->GetMapModuleData(); |
| 5014 if (pModule && pModule->m_BufferMap.Lookup(pKey, pBuffer)) { | 5014 if (pModule && pModule->m_BufferMap.Lookup(pKey, pBuffer)) { |
| 5015 break; | 5015 break; |
| 5016 } | 5016 } |
| 5017 pNode = (bProtoAlso && pNode->GetPacketID() != XFA_XDPPACKET_Datasets) | 5017 pNode = (bProtoAlso && pNode->GetPacketID() != XFA_XDPPACKET_Datasets) |
| 5018 ? pNode->GetTemplateNode() | 5018 ? pNode->GetTemplateNode() |
| 5019 : nullptr; | 5019 : nullptr; |
| 5020 } | 5020 } |
| 5021 if (!pBuffer) { | 5021 if (!pBuffer) { |
| 5022 return FALSE; | 5022 return false; |
| 5023 } | 5023 } |
| 5024 pValue = pBuffer->GetData(); | 5024 pValue = pBuffer->GetData(); |
| 5025 iBytes = pBuffer->iBytes; | 5025 iBytes = pBuffer->iBytes; |
| 5026 return TRUE; | 5026 return true; |
| 5027 } | 5027 } |
| 5028 | 5028 |
| 5029 FX_BOOL CXFA_Node::HasMapModuleKey(void* pKey, FX_BOOL bProtoAlso) { | 5029 bool CXFA_Node::HasMapModuleKey(void* pKey, bool bProtoAlso) { |
| 5030 CXFA_Node* pNode = this; | 5030 CXFA_Node* pNode = this; |
| 5031 while (pNode) { | 5031 while (pNode) { |
| 5032 void* pVal; | 5032 void* pVal; |
| 5033 XFA_MAPMODULEDATA* pModule = pNode->GetMapModuleData(); | 5033 XFA_MAPMODULEDATA* pModule = pNode->GetMapModuleData(); |
| 5034 if (pModule && | 5034 if (pModule && |
| 5035 (pModule->m_ValueMap.Lookup(pKey, pVal) || | 5035 (pModule->m_ValueMap.Lookup(pKey, pVal) || |
| 5036 pModule->m_BufferMap.Lookup(pKey, (XFA_MAPDATABLOCK*&)pVal))) { | 5036 pModule->m_BufferMap.Lookup(pKey, (XFA_MAPDATABLOCK*&)pVal))) { |
| 5037 return TRUE; | 5037 return true; |
| 5038 } | 5038 } |
| 5039 pNode = (bProtoAlso && pNode->GetPacketID() != XFA_XDPPACKET_Datasets) | 5039 pNode = (bProtoAlso && pNode->GetPacketID() != XFA_XDPPACKET_Datasets) |
| 5040 ? pNode->GetTemplateNode() | 5040 ? pNode->GetTemplateNode() |
| 5041 : nullptr; | 5041 : nullptr; |
| 5042 } | 5042 } |
| 5043 return FALSE; | 5043 return false; |
| 5044 } | 5044 } |
| 5045 | 5045 |
| 5046 void CXFA_Node::RemoveMapModuleKey(void* pKey) { | 5046 void CXFA_Node::RemoveMapModuleKey(void* pKey) { |
| 5047 XFA_MAPMODULEDATA* pModule = GetMapModuleData(); | 5047 XFA_MAPMODULEDATA* pModule = GetMapModuleData(); |
| 5048 if (!pModule) | 5048 if (!pModule) |
| 5049 return; | 5049 return; |
| 5050 | 5050 |
| 5051 if (pKey) { | 5051 if (pKey) { |
| 5052 XFA_MAPDATABLOCK* pBuffer = nullptr; | 5052 XFA_MAPDATABLOCK* pBuffer = nullptr; |
| 5053 pModule->m_BufferMap.Lookup(pKey, pBuffer); | 5053 pModule->m_BufferMap.Lookup(pKey, pBuffer); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 5070 } | 5070 } |
| 5071 FX_Free(pBuffer); | 5071 FX_Free(pBuffer); |
| 5072 } | 5072 } |
| 5073 } | 5073 } |
| 5074 pModule->m_BufferMap.RemoveAll(); | 5074 pModule->m_BufferMap.RemoveAll(); |
| 5075 pModule->m_ValueMap.RemoveAll(); | 5075 pModule->m_ValueMap.RemoveAll(); |
| 5076 delete pModule; | 5076 delete pModule; |
| 5077 } | 5077 } |
| 5078 } | 5078 } |
| 5079 | 5079 |
| 5080 void CXFA_Node::MergeAllData(void* pDstModule, FX_BOOL bUseSrcAttr) { | 5080 void CXFA_Node::MergeAllData(void* pDstModule, bool bUseSrcAttr) { |
| 5081 XFA_MAPMODULEDATA* pDstModuleData = | 5081 XFA_MAPMODULEDATA* pDstModuleData = |
| 5082 static_cast<CXFA_Node*>(pDstModule)->CreateMapModuleData(); | 5082 static_cast<CXFA_Node*>(pDstModule)->CreateMapModuleData(); |
| 5083 XFA_MAPMODULEDATA* pSrcModuleData = GetMapModuleData(); | 5083 XFA_MAPMODULEDATA* pSrcModuleData = GetMapModuleData(); |
| 5084 if (!pSrcModuleData) { | 5084 if (!pSrcModuleData) { |
| 5085 return; | 5085 return; |
| 5086 } | 5086 } |
| 5087 FX_POSITION psValue = pSrcModuleData->m_ValueMap.GetStartPosition(); | 5087 FX_POSITION psValue = pSrcModuleData->m_ValueMap.GetStartPosition(); |
| 5088 while (psValue) { | 5088 while (psValue) { |
| 5089 void* pKey; | 5089 void* pKey; |
| 5090 void* pValue; | 5090 void* pValue; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5131 if (pBuffer->pCallbackInfo && pBuffer->pCallbackInfo->pCopy) { | 5131 if (pBuffer->pCallbackInfo && pBuffer->pCallbackInfo->pCopy) { |
| 5132 pBuffer->pCallbackInfo->pCopy(*(void**)pBuffer->GetData()); | 5132 pBuffer->pCallbackInfo->pCopy(*(void**)pBuffer->GetData()); |
| 5133 } | 5133 } |
| 5134 } | 5134 } |
| 5135 } | 5135 } |
| 5136 | 5136 |
| 5137 void CXFA_Node::MoveBufferMapData(CXFA_Node* pDstModule, void* pKey) { | 5137 void CXFA_Node::MoveBufferMapData(CXFA_Node* pDstModule, void* pKey) { |
| 5138 if (!pDstModule) { | 5138 if (!pDstModule) { |
| 5139 return; | 5139 return; |
| 5140 } | 5140 } |
| 5141 FX_BOOL bNeedMove = TRUE; | 5141 bool bNeedMove = true; |
| 5142 if (!pKey) { | 5142 if (!pKey) { |
| 5143 bNeedMove = FALSE; | 5143 bNeedMove = false; |
| 5144 } | 5144 } |
| 5145 if (pDstModule->GetElementType() != GetElementType()) { | 5145 if (pDstModule->GetElementType() != GetElementType()) { |
| 5146 bNeedMove = FALSE; | 5146 bNeedMove = false; |
| 5147 } | 5147 } |
| 5148 XFA_MAPMODULEDATA* pSrcModuleData = nullptr; | 5148 XFA_MAPMODULEDATA* pSrcModuleData = nullptr; |
| 5149 XFA_MAPMODULEDATA* pDstModuleData = nullptr; | 5149 XFA_MAPMODULEDATA* pDstModuleData = nullptr; |
| 5150 if (bNeedMove) { | 5150 if (bNeedMove) { |
| 5151 pSrcModuleData = GetMapModuleData(); | 5151 pSrcModuleData = GetMapModuleData(); |
| 5152 if (!pSrcModuleData) { | 5152 if (!pSrcModuleData) { |
| 5153 bNeedMove = FALSE; | 5153 bNeedMove = false; |
| 5154 } | 5154 } |
| 5155 pDstModuleData = pDstModule->CreateMapModuleData(); | 5155 pDstModuleData = pDstModule->CreateMapModuleData(); |
| 5156 } | 5156 } |
| 5157 if (bNeedMove) { | 5157 if (bNeedMove) { |
| 5158 void* pBufferBlockData = pSrcModuleData->m_BufferMap.GetValueAt(pKey); | 5158 void* pBufferBlockData = pSrcModuleData->m_BufferMap.GetValueAt(pKey); |
| 5159 if (pBufferBlockData) { | 5159 if (pBufferBlockData) { |
| 5160 pSrcModuleData->m_BufferMap.RemoveKey(pKey); | 5160 pSrcModuleData->m_BufferMap.RemoveKey(pKey); |
| 5161 pDstModuleData->m_BufferMap.RemoveKey(pKey); | 5161 pDstModuleData->m_BufferMap.RemoveKey(pKey); |
| 5162 pDstModuleData->m_BufferMap.SetAt(pKey, | 5162 pDstModuleData->m_BufferMap.SetAt(pKey, |
| 5163 (XFA_MAPDATABLOCK*)pBufferBlockData); | 5163 (XFA_MAPDATABLOCK*)pBufferBlockData); |
| 5164 } | 5164 } |
| 5165 } | 5165 } |
| 5166 if (pDstModule->IsNodeV()) { | 5166 if (pDstModule->IsNodeV()) { |
| 5167 CFX_WideString wsValue = pDstModule->GetScriptContent(FALSE); | 5167 CFX_WideString wsValue = pDstModule->GetScriptContent(false); |
| 5168 CFX_WideString wsFormatValue(wsValue); | 5168 CFX_WideString wsFormatValue(wsValue); |
| 5169 CXFA_WidgetData* pWidgetData = pDstModule->GetContainerWidgetData(); | 5169 CXFA_WidgetData* pWidgetData = pDstModule->GetContainerWidgetData(); |
| 5170 if (pWidgetData) { | 5170 if (pWidgetData) { |
| 5171 pWidgetData->GetFormatDataValue(wsValue, wsFormatValue); | 5171 pWidgetData->GetFormatDataValue(wsValue, wsFormatValue); |
| 5172 } | 5172 } |
| 5173 pDstModule->SetScriptContent(wsValue, wsFormatValue, true, TRUE); | 5173 pDstModule->SetScriptContent(wsValue, wsFormatValue, true, true); |
| 5174 } | 5174 } |
| 5175 } | 5175 } |
| 5176 | 5176 |
| 5177 void CXFA_Node::MoveBufferMapData(CXFA_Node* pSrcModule, | 5177 void CXFA_Node::MoveBufferMapData(CXFA_Node* pSrcModule, |
| 5178 CXFA_Node* pDstModule, | 5178 CXFA_Node* pDstModule, |
| 5179 void* pKey, | 5179 void* pKey, |
| 5180 FX_BOOL bRecursive) { | 5180 bool bRecursive) { |
| 5181 if (!pSrcModule || !pDstModule || !pKey) { | 5181 if (!pSrcModule || !pDstModule || !pKey) { |
| 5182 return; | 5182 return; |
| 5183 } | 5183 } |
| 5184 if (bRecursive) { | 5184 if (bRecursive) { |
| 5185 CXFA_Node* pSrcChild = pSrcModule->GetNodeItem(XFA_NODEITEM_FirstChild); | 5185 CXFA_Node* pSrcChild = pSrcModule->GetNodeItem(XFA_NODEITEM_FirstChild); |
| 5186 CXFA_Node* pDstChild = pDstModule->GetNodeItem(XFA_NODEITEM_FirstChild); | 5186 CXFA_Node* pDstChild = pDstModule->GetNodeItem(XFA_NODEITEM_FirstChild); |
| 5187 for (; pSrcChild && pDstChild; | 5187 for (; pSrcChild && pDstChild; |
| 5188 pSrcChild = pSrcChild->GetNodeItem(XFA_NODEITEM_NextSibling), | 5188 pSrcChild = pSrcChild->GetNodeItem(XFA_NODEITEM_NextSibling), |
| 5189 pDstChild = pDstChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { | 5189 pDstChild = pDstChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { |
| 5190 MoveBufferMapData(pSrcChild, pDstChild, pKey, TRUE); | 5190 MoveBufferMapData(pSrcChild, pDstChild, pKey, true); |
| 5191 } | 5191 } |
| 5192 } | 5192 } |
| 5193 pSrcModule->MoveBufferMapData(pDstModule, pKey); | 5193 pSrcModule->MoveBufferMapData(pDstModule, pKey); |
| 5194 } | 5194 } |
| OLD | NEW |