diff options
Diffstat (limited to 'xfa/fxfa/parser/cxfa_eventdata.cpp')
-rw-r--r-- | xfa/fxfa/parser/cxfa_eventdata.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/xfa/fxfa/parser/cxfa_eventdata.cpp b/xfa/fxfa/parser/cxfa_eventdata.cpp new file mode 100644 index 0000000000..5b48df6d88 --- /dev/null +++ b/xfa/fxfa/parser/cxfa_eventdata.cpp @@ -0,0 +1,50 @@ +// Copyright 2016 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#include "xfa/fxfa/parser/cxfa_eventdata.h" + +#include "xfa/fxfa/parser/cxfa_node.h" + +CXFA_EventData::CXFA_EventData(CXFA_Node* pNode) : CXFA_Data(pNode) {} + +int32_t CXFA_EventData::GetActivity() { + return m_pNode->JSNode()->GetEnum(XFA_ATTRIBUTE_Activity); +} + +XFA_Element CXFA_EventData::GetEventType() const { + CXFA_Node* pChild = m_pNode->GetNodeItem(XFA_NODEITEM_FirstChild); + while (pChild) { + XFA_Element eType = pChild->GetElementType(); + if (eType != XFA_Element::Extras) + return eType; + + pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); + } + return XFA_Element::Unknown; +} + +void CXFA_EventData::GetRef(WideStringView& wsRef) { + m_pNode->JSNode()->TryCData(XFA_ATTRIBUTE_Ref, wsRef, true); +} + +CXFA_Script CXFA_EventData::GetScript() const { + return CXFA_Script(m_pNode->GetChild(0, XFA_Element::Script, false)); +} + +CXFA_Submit CXFA_EventData::GetSubmit() const { + return CXFA_Submit(m_pNode->GetChild(0, XFA_Element::Submit, false)); +} + +void CXFA_EventData::GetSignDataTarget(WideString& wsTarget) { + CXFA_Node* pNode = + m_pNode->JSNode()->GetProperty(0, XFA_Element::SignData, true); + if (!pNode) + return; + + WideStringView wsCData; + pNode->JSNode()->TryCData(XFA_ATTRIBUTE_Target, wsCData, true); + wsTarget = wsCData; +} |