1 // Copyright 2016 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_image.h"
8
9 #include "xfa/fxfa/parser/xfa_object.h"
10
CXFA_Image(CXFA_Node * pNode,bool bDefValue)11 CXFA_Image::CXFA_Image(CXFA_Node* pNode, bool bDefValue)
12 : CXFA_Data(pNode), m_bDefValue(bDefValue) {}
13
GetAspect()14 int32_t CXFA_Image::GetAspect() {
15 return m_pNode->GetEnum(XFA_ATTRIBUTE_Aspect);
16 }
17
GetContentType(CFX_WideString & wsContentType)18 bool CXFA_Image::GetContentType(CFX_WideString& wsContentType) {
19 return m_pNode->TryCData(XFA_ATTRIBUTE_ContentType, wsContentType);
20 }
21
GetHref(CFX_WideString & wsHref)22 bool CXFA_Image::GetHref(CFX_WideString& wsHref) {
23 if (m_bDefValue)
24 return m_pNode->TryCData(XFA_ATTRIBUTE_Href, wsHref);
25 return m_pNode->GetAttribute(L"href", wsHref);
26 }
27
GetTransferEncoding()28 int32_t CXFA_Image::GetTransferEncoding() {
29 if (m_bDefValue)
30 return m_pNode->GetEnum(XFA_ATTRIBUTE_TransferEncoding);
31 return XFA_ATTRIBUTEENUM_Base64;
32 }
33
GetContent(CFX_WideString & wsText)34 bool CXFA_Image::GetContent(CFX_WideString& wsText) {
35 return m_pNode->TryContent(wsText);
36 }
37
SetContentType(const CFX_WideString & wsContentType)38 bool CXFA_Image::SetContentType(const CFX_WideString& wsContentType) {
39 return m_pNode->SetCData(XFA_ATTRIBUTE_ContentType, wsContentType);
40 }
41
SetHref(const CFX_WideString & wsHref)42 bool CXFA_Image::SetHref(const CFX_WideString& wsHref) {
43 if (m_bDefValue)
44 return m_pNode->SetCData(XFA_ATTRIBUTE_Href, wsHref);
45 return m_pNode->SetAttribute(XFA_ATTRIBUTE_Href, wsHref.AsStringC());
46 }
47
SetTransferEncoding(int32_t iTransferEncoding)48 bool CXFA_Image::SetTransferEncoding(int32_t iTransferEncoding) {
49 if (m_bDefValue) {
50 return m_pNode->SetEnum(XFA_ATTRIBUTE_TransferEncoding,
51 (XFA_ATTRIBUTEENUM)iTransferEncoding);
52 }
53 return true;
54 }
55