Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(576)

Side by Side Diff: xfa/include/fxjse/fxjse.h

Issue 1807623002: Move xfa/include/fxjse/fxjse.h into xfa/fxjse/include. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/include/fxfa/fxfa_basic.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 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 #ifndef XFA_INCLUDE_FXJSE_FXJSE_H_
8 #define XFA_INCLUDE_FXJSE_FXJSE_H_
9
10 #include "core/include/fxcrt/fx_string.h"
11 #include "core/include/fxcrt/fx_system.h"
12
13 struct FXJSE_CLASS;
14
15 typedef struct FXJSE_HRUNTIME_ { void* pData; } * FXJSE_HRUNTIME;
16 typedef struct FXJSE_HCONTEXT_ { void* pData; } * FXJSE_HCONTEXT;
17 typedef struct FXJSE_HCLASS_ { void* pData; } * FXJSE_HCLASS;
18 typedef struct FXJSE_HVALUE_ { void* pData; } * FXJSE_HVALUE;
19 // NOLINTNEXTLINE
20 typedef struct FXJSE_HOBJECT_ : public FXJSE_HVALUE_{} * FXJSE_HOBJECT;
21 typedef double FXJSE_DOUBLE;
22
23 void FXJSE_Initialize();
24 void FXJSE_Finalize();
25 FXJSE_HRUNTIME FXJSE_Runtime_Create();
26 void FXJSE_Runtime_Release(FXJSE_HRUNTIME hRuntime, bool bOwnedRuntime);
27
28 FXJSE_HCONTEXT FXJSE_Context_Create(FXJSE_HRUNTIME hRuntime,
29 const FXJSE_CLASS* lpGlobalClass = nullptr,
30 void* lpGlobalObject = nullptr);
31 void FXJSE_Context_Release(FXJSE_HCONTEXT hContext);
32 FXJSE_HVALUE FXJSE_Context_GetGlobalObject(FXJSE_HCONTEXT hContext);
33 FXJSE_HRUNTIME FXJSE_Context_GetRuntime(FXJSE_HCONTEXT hContext);
34 enum FXJSE_CompatibleModeFlags {
35 FXJSE_COMPATIBLEMODEFLAG_CONSTRUCTOREXTRAMETHODS = (1 << 0),
36 FXJSE_COMPATIBLEMODEFLAGCOUNT = 1,
37 };
38 void FXJSE_Context_EnableCompatibleMode(FXJSE_HCONTEXT hContext,
39 FX_DWORD dwCompatibleFlags);
40 class CFXJSE_Arguments {
41 public:
42 FXJSE_HRUNTIME GetRuntime() const;
43 int32_t GetLength() const;
44 FXJSE_HVALUE GetValue(int32_t index) const;
45 FX_BOOL GetBoolean(int32_t index) const;
46 int32_t GetInt32(int32_t index) const;
47 FX_FLOAT GetFloat(int32_t index) const;
48 CFX_ByteString GetUTF8String(int32_t index) const;
49 void* GetObject(int32_t index, FXJSE_HCLASS hClass = nullptr) const;
50 FXJSE_HVALUE GetReturnValue();
51 };
52 typedef void (*FXJSE_FuncCallback)(FXJSE_HOBJECT hThis,
53 const CFX_ByteStringC& szFuncName,
54 CFXJSE_Arguments& args);
55 typedef void (*FXJSE_PropAccessor)(FXJSE_HOBJECT hObject,
56 const CFX_ByteStringC& szPropName,
57 FXJSE_HVALUE hValue);
58 typedef int32_t (*FXJSE_PropTypeGetter)(FXJSE_HOBJECT hObject,
59 const CFX_ByteStringC& szPropName,
60 FX_BOOL bQueryIn);
61 typedef FX_BOOL (*FXJSE_PropDeleter)(FXJSE_HOBJECT hObject,
62 const CFX_ByteStringC& szPropName);
63 struct FXJSE_FUNCTION {
64 const FX_CHAR* name;
65 FXJSE_FuncCallback callbackProc;
66 };
67 #define FXJSE_DEF_FUNCTION(functionName, functionCallback) \
68 { functionName, functionCallback }
69 void FXJSE_DefineFunctions(FXJSE_HCONTEXT hContext,
70 const FXJSE_FUNCTION* lpFunctions,
71 int nNum);
72 struct FXJSE_PROPERTY {
73 const FX_CHAR* name;
74 FXJSE_PropAccessor getProc;
75 FXJSE_PropAccessor setProc;
76 };
77 enum FXJSE_ClassPropTypes {
78 FXJSE_ClassPropType_None,
79 FXJSE_ClassPropType_Property,
80 FXJSE_ClassPropType_Method
81 };
82 struct FXJSE_CLASS {
83 const FX_CHAR* name;
84 FXJSE_FuncCallback constructor;
85 FXJSE_PROPERTY* properties;
86 FXJSE_FUNCTION* methods;
87 int32_t propNum;
88 int32_t methNum;
89 FXJSE_PropTypeGetter dynPropTypeGetter;
90 FXJSE_PropAccessor dynPropGetter;
91 FXJSE_PropAccessor dynPropSetter;
92 FXJSE_PropDeleter dynPropDeleter;
93 FXJSE_FuncCallback dynMethodCall;
94 };
95 FXJSE_HCLASS FXJSE_DefineClass(FXJSE_HCONTEXT hContext,
96 const FXJSE_CLASS* lpClass);
97 FXJSE_HCLASS FXJSE_GetClass(FXJSE_HCONTEXT hContext,
98 const CFX_ByteStringC& szName);
99 FXJSE_HVALUE FXJSE_Value_Create(FXJSE_HRUNTIME hRuntime);
100 void FXJSE_Value_Release(FXJSE_HVALUE hValue);
101 FXJSE_HRUNTIME FXJSE_Value_GetRuntime(FXJSE_HVALUE hValue);
102 FX_BOOL FXJSE_Value_IsUndefined(FXJSE_HVALUE hValue);
103 FX_BOOL FXJSE_Value_IsNull(FXJSE_HVALUE hValue);
104 FX_BOOL FXJSE_Value_IsBoolean(FXJSE_HVALUE hValue);
105 FX_BOOL FXJSE_Value_IsUTF8String(FXJSE_HVALUE hValue);
106 FX_BOOL FXJSE_Value_IsNumber(FXJSE_HVALUE hValue);
107 FX_BOOL FXJSE_Value_IsInteger(FXJSE_HVALUE hValue);
108 FX_BOOL FXJSE_Value_IsObject(FXJSE_HVALUE hValue);
109 FX_BOOL FXJSE_Value_IsArray(FXJSE_HVALUE hValue);
110 FX_BOOL FXJSE_Value_IsFunction(FXJSE_HVALUE hValue);
111 FX_BOOL FXJSE_Value_IsDate(FXJSE_HVALUE hValue);
112 FX_BOOL FXJSE_Value_ToBoolean(FXJSE_HVALUE hValue);
113 FX_FLOAT FXJSE_Value_ToFloat(FXJSE_HVALUE hValue);
114 FXJSE_DOUBLE FXJSE_Value_ToDouble(FXJSE_HVALUE hValue);
115 int32_t FXJSE_Value_ToInteger(FXJSE_HVALUE hValue);
116 void FXJSE_Value_ToUTF8String(FXJSE_HVALUE hValue, CFX_ByteString& szStrOutput);
117 void* FXJSE_Value_ToObject(FXJSE_HVALUE hValue, FXJSE_HCLASS hClass);
118 void FXJSE_Value_SetUndefined(FXJSE_HVALUE hValue);
119 void FXJSE_Value_SetNull(FXJSE_HVALUE hValue);
120 void FXJSE_Value_SetBoolean(FXJSE_HVALUE hValue, FX_BOOL bBoolean);
121 void FXJSE_Value_SetUTF8String(FXJSE_HVALUE hValue,
122 const CFX_ByteStringC& szString);
123 void FXJSE_Value_SetInteger(FXJSE_HVALUE hValue, int32_t nInteger);
124 void FXJSE_Value_SetFloat(FXJSE_HVALUE hValue, FX_FLOAT fFloat);
125 void FXJSE_Value_SetDouble(FXJSE_HVALUE hValue, FXJSE_DOUBLE dDouble);
126 void FXJSE_Value_SetObject(FXJSE_HVALUE hValue,
127 void* lpObject,
128 FXJSE_HCLASS hClass);
129 void FXJSE_Value_SetArray(FXJSE_HVALUE hValue,
130 uint32_t uValueCount,
131 FXJSE_HVALUE* rgValues);
132 void FXJSE_Value_SetDate(FXJSE_HVALUE hValue, FXJSE_DOUBLE dDouble);
133 void FXJSE_Value_Set(FXJSE_HVALUE hValue, FXJSE_HVALUE hOriginalValue);
134 FX_BOOL FXJSE_Value_GetObjectProp(FXJSE_HVALUE hValue,
135 const CFX_ByteStringC& szPropName,
136 FXJSE_HVALUE hPropValue);
137 FX_BOOL FXJSE_Value_SetObjectProp(FXJSE_HVALUE hValue,
138 const CFX_ByteStringC& szPropName,
139 FXJSE_HVALUE hPropValue);
140 FX_BOOL FXJSE_Value_GetObjectPropByIdx(FXJSE_HVALUE hValue,
141 uint32_t uPropIdx,
142 FXJSE_HVALUE hPropValue);
143 FX_BOOL FXJSE_Value_SetObjectPropByIdx(FXJSE_HVALUE hValue,
144 uint32_t uPropIdx,
145 FXJSE_HVALUE hPropValue);
146 FX_BOOL FXJSE_Value_DeleteObjectProp(FXJSE_HVALUE hValue,
147 const CFX_ByteStringC& szPropName);
148 FX_BOOL FXJSE_Value_ObjectHasOwnProp(FXJSE_HVALUE hValue,
149 const CFX_ByteStringC& szPropName,
150 FX_BOOL bUseTypeGetter);
151 FX_BOOL FXJSE_Value_SetObjectOwnProp(FXJSE_HVALUE hValue,
152 const CFX_ByteStringC& szPropName,
153 FXJSE_HVALUE hPropValue);
154 FX_BOOL FXJSE_Value_CallFunction(FXJSE_HVALUE hFunction,
155 FXJSE_HVALUE hThis,
156 FXJSE_HVALUE hRetValue,
157 uint32_t nArgCount,
158 FXJSE_HVALUE* lpArgs);
159 FX_BOOL FXJSE_Value_SetFunctionBind(FXJSE_HVALUE hValue,
160 FXJSE_HVALUE hOldFunction,
161 FXJSE_HVALUE hNewThis);
162 FX_BOOL FXJSE_ExecuteScript(FXJSE_HCONTEXT hContext,
163 const FX_CHAR* szScript,
164 FXJSE_HVALUE hRetValue,
165 FXJSE_HVALUE hNewThisObject = nullptr);
166 void FXJSE_ThrowMessage(const CFX_ByteStringC& utf8Name,
167 const CFX_ByteStringC& utf8Message);
168 FX_BOOL FXJSE_ReturnValue_GetMessage(FXJSE_HVALUE hRetValue,
169 CFX_ByteString& utf8Name,
170 CFX_ByteString& utf8Message);
171 FX_BOOL FXJSE_ReturnValue_GetLineInfo(FXJSE_HVALUE hRetValue,
172 int32_t& nLine,
173 int32_t& nCol);
174
175 #endif // XFA_INCLUDE_FXJSE_FXJSE_H_
OLDNEW
« no previous file with comments | « xfa/include/fxfa/fxfa_basic.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698