Home | History | Annotate | Download | only in parser
      1 // Copyright 2017 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #include "xfa/fxfa/parser/cxfa_bind.h"
      8 
      9 #include "fxjs/xfa/cjx_bind.h"
     10 #include "fxjs/xfa/cjx_object.h"
     11 #include "third_party/base/ptr_util.h"
     12 #include "xfa/fxfa/parser/cxfa_picture.h"
     13 
     14 namespace {
     15 
     16 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Picture, 1, 0},
     17                                                  {XFA_Element::Unknown, 0, 0}};
     18 const CXFA_Node::AttributeData kAttributeData[] = {
     19     {XFA_Attribute::Id, XFA_AttributeType::CData, nullptr},
     20     {XFA_Attribute::Name, XFA_AttributeType::CData, nullptr},
     21     {XFA_Attribute::Ref, XFA_AttributeType::CData, nullptr},
     22     {XFA_Attribute::Use, XFA_AttributeType::CData, nullptr},
     23     {XFA_Attribute::ContentType, XFA_AttributeType::CData, nullptr},
     24     {XFA_Attribute::TransferEncoding, XFA_AttributeType::Enum,
     25      (void*)XFA_AttributeEnum::None},
     26     {XFA_Attribute::Usehref, XFA_AttributeType::CData, nullptr},
     27     {XFA_Attribute::Match, XFA_AttributeType::Enum,
     28      (void*)XFA_AttributeEnum::Once},
     29     {XFA_Attribute::Unknown, XFA_AttributeType::Integer, nullptr}};
     30 
     31 constexpr wchar_t kName[] = L"bind";
     32 
     33 }  // namespace
     34 
     35 CXFA_Bind::CXFA_Bind(CXFA_Document* doc, XFA_PacketType packet)
     36     : CXFA_Node(doc,
     37                 packet,
     38                 (XFA_XDPPACKET_SourceSet | XFA_XDPPACKET_Template |
     39                  XFA_XDPPACKET_Form),
     40                 XFA_ObjectType::Node,
     41                 XFA_Element::Bind,
     42                 kPropertyData,
     43                 kAttributeData,
     44                 kName,
     45                 pdfium::MakeUnique<CJX_Bind>(this)) {}
     46 
     47 CXFA_Bind::~CXFA_Bind() {}
     48 
     49 WideString CXFA_Bind::GetPicture() {
     50   CXFA_Picture* pPicture =
     51       GetChild<CXFA_Picture>(0, XFA_Element::Picture, false);
     52   return pPicture ? pPicture->JSObject()->GetContent(false) : L"";
     53 }
     54