OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "../../include/javascript/JavaScript.h" | 7 #include "../../include/javascript/JavaScript.h" |
8 #include "../../include/javascript/IJavaScript.h" | 8 #include "../../include/javascript/IJavaScript.h" |
9 #include "../../include/javascript/JS_Define.h" | 9 #include "../../include/javascript/JS_Define.h" |
10 #include "../../include/javascript/JS_Object.h" | 10 #include "../../include/javascript/JS_Object.h" |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 JS_STATIC_METHOD_ENTRY(openFDF) | 112 JS_STATIC_METHOD_ENTRY(openFDF) |
113 JS_STATIC_METHOD_ENTRY(popUpMenuEx) | 113 JS_STATIC_METHOD_ENTRY(popUpMenuEx) |
114 JS_STATIC_METHOD_ENTRY(popUpMenu) | 114 JS_STATIC_METHOD_ENTRY(popUpMenu) |
115 JS_STATIC_METHOD_ENTRY(response) | 115 JS_STATIC_METHOD_ENTRY(response) |
116 JS_STATIC_METHOD_ENTRY(setInterval) | 116 JS_STATIC_METHOD_ENTRY(setInterval) |
117 JS_STATIC_METHOD_ENTRY(setTimeOut) | 117 JS_STATIC_METHOD_ENTRY(setTimeOut) |
118 END_JS_STATIC_METHOD() | 118 END_JS_STATIC_METHOD() |
119 | 119 |
120 IMPLEMENT_JS_CLASS(CJS_App,app) | 120 IMPLEMENT_JS_CLASS(CJS_App,app) |
121 | 121 |
122 app::app(CJS_Object * pJSObject) : CJS_EmbedObj(pJSObject) , | 122 app::app(CJS_Object * pJSObject) |
123 » m_bCalculate(true), | 123 : CJS_EmbedObj(pJSObject), |
124 » m_bRuntimeHighLight(false) | 124 m_bCalculate(true), |
125 //» m_pMenuHead(NULL) | 125 m_bRuntimeHighLight(false) |
126 { | 126 { |
127 } | 127 } |
128 | 128 |
129 app::~app(void) | 129 app::~app(void) |
130 { | 130 { |
131 for (int i=0,sz=m_aTimer.GetSize(); i<sz; i++) | 131 for (int i=0,sz=m_aTimer.GetSize(); i<sz; i++) |
132 delete m_aTimer[i]; | 132 delete m_aTimer[i]; |
133 | 133 |
134 m_aTimer.RemoveAll(); | 134 m_aTimer.RemoveAll(); |
135 } | 135 } |
136 | 136 |
137 FX_BOOL app::activeDocs(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE
rror) | 137 FX_BOOL app::activeDocs(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE
rror) |
138 { | 138 { |
139 » if (vp.IsGetting()) | 139 if (!vp.IsGetting()) |
140 » { | 140 return FALSE; |
141 | 141 |
142 » » CJS_Context* pContext = (CJS_Context *)cc; | 142 CJS_Context* pContext = (CJS_Context *)cc; |
143 » » ASSERT(pContext != NULL); | 143 CPDFDoc_Environment* pApp = pContext->GetReaderApp(); |
| 144 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); |
| 145 CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument(); |
| 146 CJS_Array aDocs(pRuntime->GetIsolate()); |
| 147 if (CPDFSDK_Document* pDoc = pApp->GetSDKDocument()) |
| 148 { |
| 149 CJS_Document* pJSDocument = NULL; |
| 150 if (pDoc == pCurDoc) |
| 151 { |
| 152 JSFXObject pObj = JS_GetThisObj(*pRuntime); |
| 153 if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"Document")
) |
| 154 pJSDocument = (CJS_Document*)JS_GetPrivate(pRuntime->GetIsolate(
),pObj); |
| 155 } |
| 156 else |
| 157 { |
| 158 JSFXObject pObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjD
efnID(*pRuntime,L"Document")); |
| 159 pJSDocument = (CJS_Document*)JS_GetPrivate(pRuntime->GetIsolate(),pO
bj); |
| 160 ASSERT(pJSDocument != NULL); |
| 161 } |
| 162 aDocs.SetElement(0,CJS_Value(pRuntime->GetIsolate(),pJSDocument)); |
| 163 } |
| 164 if (aDocs.GetLength() > 0) |
| 165 vp << aDocs; |
| 166 else |
| 167 vp.SetNull(); |
144 | 168 |
145 » » CPDFDoc_Environment* pApp = pContext->GetReaderApp(); | 169 return TRUE; |
146 » » ASSERT(pApp != NULL); | |
147 | |
148 » » CJS_Runtime* pRuntime = pContext->GetJSRuntime(); | |
149 » » ASSERT(pRuntime != NULL); | |
150 | |
151 » » CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument(); | |
152 | |
153 » » CJS_Array aDocs(pRuntime->GetIsolate()); | |
154 //» » int iNumDocs = pApp->CountDocuments(); | |
155 | |
156 // » » for(int iIndex = 0; iIndex<iNumDocs; iIndex++) | |
157 // » » { | |
158 » » » CPDFSDK_Document* pDoc = pApp->GetCurrentDoc(); | |
159 » » » if (pDoc) | |
160 » » » { | |
161 » » » » CJS_Document * pJSDocument = NULL; | |
162 | |
163 » » » » if (pDoc == pCurDoc) | |
164 » » » » { | |
165 » » » » » JSFXObject pObj = JS_GetThisObj(*pRuntim
e); | |
166 | |
167 » » » » » if (JS_GetObjDefnID(pObj) == JS_GetObjDe
fnID(*pRuntime, L"Document")) | |
168 » » » » » { | |
169 » » » » » » pJSDocument = (CJS_Document*)JS_
GetPrivate(pRuntime->GetIsolate(),pObj); | |
170 » » » » » } | |
171 » » » » } | |
172 » » » » else | |
173 » » » » { | |
174 » » » » » JSFXObject pObj = JS_NewFxDynamicObj(*pR
untime, pContext, JS_GetObjDefnID(*pRuntime,L"Document")); | |
175 » » » » » pJSDocument = (CJS_Document*)JS_GetPriva
te(pRuntime->GetIsolate(),pObj); | |
176 » » » » » ASSERT(pJSDocument != NULL); | |
177 | |
178 | |
179 » » » » » //» » » pDocument->Attac
hDoc(pDoc); | |
180 » » » » } | |
181 | |
182 » » » » aDocs.SetElement(0,CJS_Value(pRuntime->GetIsolat
e(),pJSDocument)); | |
183 » » » } | |
184 » //» » } | |
185 | |
186 » » if (aDocs.GetLength() > 0) | |
187 » » » vp << aDocs; | |
188 » » else | |
189 » » » vp.SetNull(); | |
190 » » return TRUE; | |
191 » } | |
192 » return FALSE; | |
193 } | 170 } |
194 | 171 |
195 FX_BOOL app::calculate(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sEr
ror) | 172 FX_BOOL app::calculate(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sEr
ror) |
196 { | 173 { |
197 if (vp.IsSetting()) | 174 if (vp.IsSetting()) |
198 { | 175 { |
199 bool bVP; | 176 bool bVP; |
200 vp >> bVP; | 177 vp >> bVP; |
201 m_bCalculate = (FX_BOOL)bVP; | 178 m_bCalculate = (FX_BOOL)bVP; |
202 | 179 |
203 CJS_Context* pContext = (CJS_Context*)cc; | 180 CJS_Context* pContext = (CJS_Context*)cc; |
204 ASSERT(pContext != NULL); | |
205 | |
206 CPDFDoc_Environment* pApp = pContext->GetReaderApp(); | 181 CPDFDoc_Environment* pApp = pContext->GetReaderApp(); |
207 ASSERT(pApp != NULL); | |
208 | |
209 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); | 182 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); |
210 ASSERT(pRuntime != NULL); | |
211 | |
212 CJS_Array aDocs(pRuntime->GetIsolate()); | 183 CJS_Array aDocs(pRuntime->GetIsolate()); |
213 » » if (CPDFSDK_Document* pDoc = pApp->GetCurrentDoc()) | 184 » » if (CPDFSDK_Document* pDoc = pApp->GetSDKDocument()) |
214 » » { | 185 » » » pDoc->GetInterForm()->EnableCalculate((FX_BOOL)m_bCalcul
ate); |
215 » » » CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDoc
->GetInterForm(); | |
216 » » » ASSERT(pInterForm != NULL); | |
217 » » » pInterForm->EnableCalculate((FX_BOOL)m_bCalculate); | |
218 » » } | |
219 } | 186 } |
220 else | 187 else |
221 { | 188 { |
222 vp << (bool)m_bCalculate; | 189 vp << (bool)m_bCalculate; |
223 } | 190 } |
224 | |
225 return TRUE; | 191 return TRUE; |
226 } | 192 } |
227 | 193 |
228 FX_BOOL app::formsVersion(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString&
sError) | 194 FX_BOOL app::formsVersion(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString&
sError) |
229 { | 195 { |
230 if (vp.IsGetting()) | 196 if (vp.IsGetting()) |
231 { | 197 { |
232 vp << JS_NUM_FORMSVERSION; | 198 vp << JS_NUM_FORMSVERSION; |
233 return TRUE; | 199 return TRUE; |
234 } | 200 } |
(...skipping 18 matching lines...) Expand all Loading... |
253 { | 219 { |
254 vp << JS_STR_VIEWERVARIATION; | 220 vp << JS_STR_VIEWERVARIATION; |
255 return TRUE; | 221 return TRUE; |
256 } | 222 } |
257 | 223 |
258 return FALSE; | 224 return FALSE; |
259 } | 225 } |
260 | 226 |
261 FX_BOOL app::viewerVersion(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString&
sError) | 227 FX_BOOL app::viewerVersion(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString&
sError) |
262 { | 228 { |
263 » if (vp.IsGetting()) | 229 » if (!vp.IsGetting()) |
264 » { | 230 return FALSE; |
265 » » CJS_Context* pContext = (CJS_Context *)cc; | |
266 » » ASSERT(pContext != NULL); | |
267 | 231 |
268 » » CPDFDoc_Environment* pApp = pContext->GetReaderApp(); | 232 CJS_Context* pContext = (CJS_Context *)cc; |
269 » » ASSERT(pApp != NULL); | 233 CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument(); |
| 234 CPDFXFA_Document* pDoc = pCurDoc->GetDocument(); |
| 235 if (pDoc->GetDocType() == 1 || pDoc->GetDocType() == 2) |
| 236 vp << JS_STR_VIEWERVERSION_XFA; |
| 237 else |
| 238 vp << JS_STR_VIEWERVERSION; |
270 | 239 |
271 » » CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument(); | 240 return TRUE; |
272 | |
273 » » CPDFXFA_Document* pDoc = pCurDoc->GetDocument(); | |
274 » » if (pDoc->GetDocType() == 1 || pDoc->GetDocType() == 2) | |
275 » » » vp << JS_STR_VIEWERVERSION_XFA; | |
276 » » else | |
277 » » » vp << JS_STR_VIEWERVERSION; | |
278 » » return TRUE; | |
279 » } | |
280 | |
281 » return FALSE; | |
282 } | 241 } |
283 | 242 |
284 FX_BOOL app::platform(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErr
or) | 243 FX_BOOL app::platform(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErr
or) |
285 { | 244 { |
286 if (vp.IsGetting()) | 245 if (vp.IsGetting()) |
287 { | 246 { |
288 vp << JS_STR_PLATFORM; | 247 vp << JS_STR_PLATFORM; |
289 return TRUE; | 248 return TRUE; |
290 } | 249 } |
291 | 250 |
(...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
931 | 890 |
932 FX_BOOL app::media(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) | 891 FX_BOOL app::media(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) |
933 { | 892 { |
934 return FALSE; | 893 return FALSE; |
935 } | 894 } |
936 | 895 |
937 FX_BOOL app::execDialog(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val
ue& vRet, CFX_WideString& sError) | 896 FX_BOOL app::execDialog(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Val
ue& vRet, CFX_WideString& sError) |
938 { | 897 { |
939 return TRUE; | 898 return TRUE; |
940 } | 899 } |
OLD | NEW |