| // 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 <stddef.h> |
| |
| #include <optional> |
| |
| #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<v8::Value>* 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_PACKETINFO> 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_ATTRIBUTEINFO> XFA_GetAttributeByName(WideStringView name); |
| |
| ByteStringView XFA_AttributeValueToName(XFA_AttributeValue item); |
| std::optional<XFA_AttributeValue> XFA_GetAttributeValueByName( |
| WideStringView name); |
| |
| std::optional<XFA_SCRIPTATTRIBUTEINFO> XFA_GetScriptAttributeByName( |
| XFA_Element eElement, |
| WideStringView wsAttributeName); |
| |
| #endif // XFA_FXFA_PARSER_XFA_BASIC_DATA_H_ |