Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
jse_define.h
Go to the documentation of this file.
1// Copyright 2017 The PDFium Authors
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#ifndef FXJS_XFA_JSE_DEFINE_H_
8#define FXJS_XFA_JSE_DEFINE_H_
9
10#include <vector>
11
12#include "fxjs/cjs_result.h"
13#include "third_party/base/containers/span.h"
14
15class CFXJSE_Engine;
16
17#define JSE_METHOD(method_name)
18 static CJS_Result method_name##_static(
19 CJX_Object* node, CFXJSE_Engine* runtime,
20 pdfium::span<v8::Local<v8::Value>> params) {
21 if (!node->DynamicTypeIs(static_type__))
22 return CJS_Result::Failure(JSMessage::kBadObjectError);
23 return static_cast<Type__*>(node)->method_name(runtime, params);
24 }
25 CJS_Result method_name(CFXJSE_Engine* runtime,
26 pdfium::span<v8::Local<v8::Value>> params)
27
28#define JSE_PROP(prop_name)
29 static void prop_name##_static(v8::Isolate* pIsolate, CJX_Object* node,
30 v8::Local<v8::Value>* value, bool setting,
31 XFA_Attribute attribute) {
32 if (node->DynamicTypeIs(static_type__))
33 static_cast<Type__*>(node)->prop_name(pIsolate, value, setting,
34 attribute);
35 }
36 void prop_name(v8::Isolate* pIsolate, v8::Local<v8::Value>* pValue,
37 bool bSetting, XFA_Attribute eAttribute)
38
39#endif // FXJS_XFA_JSE_DEFINE_H_
void FXJSE_ClearObjectBinding(v8::Local< v8::Object > hJSObject)
CFXJSE_HostObject * FXJSE_RetrieveObjectBinding(v8::Local< v8::Value > hValue)
void FXJSE_UpdateObjectBinding(v8::Local< v8::Object > hObject, CFXJSE_HostObject *pNewBinding)
static CFXJSE_Class * Create(CFXJSE_Context *pContext, const FXJSE_CLASS_DESCRIPTOR *pClassDescriptor, bool bIsJSGlobal)
v8::Local< v8::Object > GetGlobalObject()
v8::Local< v8::Context > GetContext()
ExecutionResult ExecuteScript(ByteStringView bsScript, v8::Local< v8::Object > pNewThisObject)
void AddClass(std::unique_ptr< CFXJSE_Class > pClass)
CFXJSE_Class * GetClassByName(ByteStringView szName) const
friend class EventParamScope
CFXJSE_ScopeUtil_IsolateHandleContext(CFXJSE_Context *pContext)
void Trace(cppgc::Visitor *visitor) const
virtual void Trace(cppgc::Visitor *visitor) const
WideString GetAttributeByString(WideStringView attr) const
void RemoveAttribute(WideStringView wsAttr)
void ScriptSomMessage(v8::Isolate *pIsolate, v8::Local< v8::Value > *pValue, bool bSetting, SOMMessageType iMessageType)
size_t GetCalcRecursionCount() const
Definition cjx_object.h:116
float GetMeasureInUnit(XFA_Attribute eAttr, XFA_Unit unit) const
void DefineMethods(pdfium::span< const CJX_MethodSpec > methods)
~CJX_Object() override
void SetCDataImpl(XFA_Attribute eAttr, const WideString &wsValue, bool bNotify, bool bScriptModify)
WideString GetContent(bool bScriptModify) const
bool HasMethod(const WideString &func) const
CJX_Object * AsCJXObject() override
CXFA_Object * GetXFAObject() const
Definition cjx_object.h:113
absl::optional< CXFA_Measurement > TryMeasure(XFA_Attribute eAttr, bool bUseDefault) const
CJS_Result RunMethod(CFXJSE_Engine *pScriptContext, const WideString &func, pdfium::span< v8::Local< v8::Value > > params)
void ThrowArgumentMismatchException(v8::Isolate *pIsolate) const
void ThrowIndexOutOfBoundsException(v8::Isolate *pIsolate) const
void SetAttributeByEnum(XFA_Attribute eAttr, const WideString &wsValue, bool bNotify)
void ThrowInvalidPropertyException(v8::Isolate *pIsolate) const
CXFA_Document * GetDocument() const
void ThrowParamCountMismatchException(v8::Isolate *pIsolate, const WideString &method) const
void SetCData(XFA_Attribute eAttr, const WideString &wsValue)
void SetBoolean(XFA_Attribute eAttr, bool bValue, bool bNotify)
absl::optional< WideString > TryCData(XFA_Attribute eAttr, bool bUseDefault) const
T * GetProperty(int32_t index, XFA_Element eType) const
Definition cjx_object.h:146
absl::optional< bool > TryBoolean(XFA_Attribute eAttr, bool bUseDefault) const
void SetInteger(XFA_Attribute eAttr, int32_t iValue, bool bNotify)
XFA_AttributeValue GetEnum(XFA_Attribute eAttr) const
void SetAttributeByString(WideStringView wsAttr, const WideString &wsValue)
bool GetBoolean(XFA_Attribute eAttr) const
virtual bool DynamicTypeIs(TypeTag eType) const
void MoveBufferMapData(CXFA_Object *pSrcObj, CXFA_Object *pDstObj)
void SetLayoutItem(CXFA_LayoutItem *item)
Definition cjx_object.h:118
bool HasAttribute(XFA_Attribute eAttr) const
int32_t GetInteger(XFA_Attribute eAttr) const
WideString GetCData(XFA_Attribute eAttr) const
void TakeCalcDataFrom(CJX_Object *that)
void ThrowException(v8::Isolate *pIsolate, const WideString &str) const
absl::optional< XFA_AttributeValue > TryEnum(XFA_Attribute eAttr, bool bUseDefault) const
absl::optional< WideString > TryAttribute(XFA_Attribute eAttr, bool bUseDefault) const
CXFA_Node * GetXFANode() const
CXFA_LayoutItem * GetLayoutItem() const
Definition cjx_object.h:119
void SetEnum(XFA_Attribute eAttr, XFA_AttributeValue eValue, bool bNotify)
void SetContent(const WideString &wsContent, const WideString &wsXMLValue, bool bNotify, bool bScriptModify, bool bSyncData)
absl::optional< int32_t > TryInteger(XFA_Attribute eAttr, bool bUseDefault) const
CXFA_Measurement GetMeasure(XFA_Attribute eAttr) const
void SetAttributeValue(const WideString &wsValue, const WideString &wsXMLValue)
void SetMeasure(XFA_Attribute eAttr, const CXFA_Measurement &mValue, bool bNotify)
absl::optional< WideString > TryContent(bool bScriptModify, bool bProto) const
absl::optional< float > TryMeasureAsFloat(XFA_Attribute attr) const
void MergeAllData(CXFA_Object *pDstObj)
CalcData * GetCalcData() const
Definition cjx_object.h:207
void SetCalcRecursionCount(size_t count)
Definition cjx_object.h:115
absl::optional< WideString > TryNamespace() const
WideString GetAttributeByEnum(XFA_Attribute attr) const
CalcData * GetOrCreateCalcData(cppgc::Heap *heap)
void SetAttributeValueImpl(const WideString &wsValue, const WideString &wsXMLValue, bool bNotify, bool bScriptModify)
CJX_Object(CXFA_Object *obj)
T * GetOrCreateProperty(int32_t index, XFA_Element eType)
Definition cjx_object.h:150
void ThrowTooManyOccurrencesException(v8::Isolate *pIsolate, const WideString &obj) const
XFA_Unit
Definition fxfa_basic.h:91
XFA_Attribute
Definition fxfa_basic.h:67
XFA_Element
Definition fxfa_basic.h:75
XFA_AttributeValue
Definition fxfa_basic.h:60
#define CONSTRUCT_VIA_MAKE_GARBAGE_COLLECTED
Definition heap.h:32
#define JSE_PROP(prop_name)
Definition jse_define.h:28
Definition heap.h:12
#define CHECK(cvref)
ExecutionResult & operator=(ExecutionResult &&that) noexcept
ExecutionResult(ExecutionResult &&that) noexcept
ExecutionResult(bool sts, std::unique_ptr< CFXJSE_Value > val)
CJX_MethodCall pMethodCall
Definition cjx_object.h:42
const char * pName
Definition cjx_object.h:41