// Copyright 2016 The PDFium Authors // 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 #ifndef XFA_FXFA_PARSER_XFA_BASIC_DATA_H_ #define XFA_FXFA_PARSER_XFA_BASIC_DATA_H_ #include #include #include "core/fxcrt/widestring.h" #include "fxjs/xfa/cjx_object.h" #include "xfa/fxfa/fxfa_basic.h" using XFA_ATTRIBUTE_CALLBACK = void (*)(v8::Isolate* pIsolate, CJX_Object* pNode, v8::Local* pValue, bool bSetting, XFA_Attribute eAttribute); enum class XFA_PacketMatch : uint8_t { kCompleteMatch = 1, kPrefixMatch, kNoMatch, }; enum class XFA_PacketSupport : uint8_t { kSupportOne = 1, kSupportMany, }; struct XFA_PACKETINFO { XFA_PacketType packet_type; XFA_PacketMatch match; XFA_PacketSupport support; const char* name; const char* uri; }; struct XFA_ATTRIBUTEINFO { XFA_Attribute attribute; XFA_ScriptType eValueType; }; struct XFA_SCRIPTATTRIBUTEINFO { XFA_Attribute attribute; XFA_ScriptType eValueType; XFA_ATTRIBUTE_CALLBACK callback = nullptr; }; XFA_PACKETINFO XFA_GetPacketByIndex(XFA_PacketType ePacket); std::optional XFA_GetPacketByName(WideStringView wsName); ByteStringView XFA_ElementToName(XFA_Element elem); XFA_Element XFA_GetElementByName(WideStringView name); ByteStringView XFA_AttributeToName(XFA_Attribute attr); std::optional XFA_GetAttributeByName(WideStringView name); ByteStringView XFA_AttributeValueToName(XFA_AttributeValue item); std::optional XFA_GetAttributeValueByName( WideStringView name); std::optional XFA_GetScriptAttributeByName( XFA_Element eElement, WideStringView wsAttributeName); #endif // XFA_FXFA_PARSER_XFA_BASIC_DATA_H_