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

Side by Side Diff: fpdfsdk/src/javascript/app.cpp

Issue 883393007: Kill off some dodgy JS callbacks (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: remove more now-unreachable code. Created 5 years, 10 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 | « fpdfsdk/src/javascript/JS_Object.cpp ('k') | fpdfsdk/src/javascript/report.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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"
11 #include "../../include/javascript/JS_Value.h" 11 #include "../../include/javascript/JS_Value.h"
12 #include "../../include/javascript/app.h" 12 #include "../../include/javascript/app.h"
13 #include "../../include/javascript/JS_EventHandler.h" 13 #include "../../include/javascript/JS_EventHandler.h"
14 #include "../../include/javascript/resource.h" 14 #include "../../include/javascript/resource.h"
(...skipping 23 matching lines...) Expand all
38 38
39 BEGIN_JS_STATIC_METHOD(CJS_TimerObj) 39 BEGIN_JS_STATIC_METHOD(CJS_TimerObj)
40 END_JS_STATIC_METHOD() 40 END_JS_STATIC_METHOD()
41 41
42 IMPLEMENT_JS_CLASS(CJS_TimerObj, TimerObj) 42 IMPLEMENT_JS_CLASS(CJS_TimerObj, TimerObj)
43 43
44 TimerObj::TimerObj(CJS_Object* pJSObject) 44 TimerObj::TimerObj(CJS_Object* pJSObject)
45 : CJS_EmbedObj(pJSObject), 45 : CJS_EmbedObj(pJSObject),
46 m_pTimer(NULL) 46 m_pTimer(NULL)
47 { 47 {
48 » 48
49 } 49 }
50 50
51 TimerObj::~TimerObj() 51 TimerObj::~TimerObj()
52 { 52 {
53 } 53 }
54 54
55 void TimerObj::SetTimer(CJS_Timer* pTimer) 55 void TimerObj::SetTimer(CJS_Timer* pTimer)
56 { 56 {
57 m_pTimer = pTimer; 57 m_pTimer = pTimer;
58 } 58 }
(...skipping 24 matching lines...) Expand all
83 JS_STATIC_PROP_ENTRY(calculate) 83 JS_STATIC_PROP_ENTRY(calculate)
84 JS_STATIC_PROP_ENTRY(formsVersion) 84 JS_STATIC_PROP_ENTRY(formsVersion)
85 JS_STATIC_PROP_ENTRY(fs) 85 JS_STATIC_PROP_ENTRY(fs)
86 JS_STATIC_PROP_ENTRY(fullscreen) 86 JS_STATIC_PROP_ENTRY(fullscreen)
87 JS_STATIC_PROP_ENTRY(language) 87 JS_STATIC_PROP_ENTRY(language)
88 JS_STATIC_PROP_ENTRY(media) 88 JS_STATIC_PROP_ENTRY(media)
89 JS_STATIC_PROP_ENTRY(platform) 89 JS_STATIC_PROP_ENTRY(platform)
90 JS_STATIC_PROP_ENTRY(runtimeHighlight) 90 JS_STATIC_PROP_ENTRY(runtimeHighlight)
91 JS_STATIC_PROP_ENTRY(viewerType) 91 JS_STATIC_PROP_ENTRY(viewerType)
92 JS_STATIC_PROP_ENTRY(viewerVariation) 92 JS_STATIC_PROP_ENTRY(viewerVariation)
93 » JS_STATIC_PROP_ENTRY(viewerVersion)» 93 » JS_STATIC_PROP_ENTRY(viewerVersion)
94 END_JS_STATIC_PROP() 94 END_JS_STATIC_PROP()
95 95
96 BEGIN_JS_STATIC_METHOD(CJS_App) 96 BEGIN_JS_STATIC_METHOD(CJS_App)
97 JS_STATIC_METHOD_ENTRY(alert, 6) 97 JS_STATIC_METHOD_ENTRY(alert, 6)
98 JS_STATIC_METHOD_ENTRY(beep, 1) 98 JS_STATIC_METHOD_ENTRY(beep, 1)
99 JS_STATIC_METHOD_ENTRY(browseForDoc, 0) 99 JS_STATIC_METHOD_ENTRY(browseForDoc, 0)
100 JS_STATIC_METHOD_ENTRY(clearInterval, 1) 100 JS_STATIC_METHOD_ENTRY(clearInterval, 1)
101 JS_STATIC_METHOD_ENTRY(clearTimeOut, 1) 101 JS_STATIC_METHOD_ENTRY(clearTimeOut, 1)
102 JS_STATIC_METHOD_ENTRY(execDialog, 3) 102 JS_STATIC_METHOD_ENTRY(execDialog, 3)
103 JS_STATIC_METHOD_ENTRY(execMenuItem, 1) 103 JS_STATIC_METHOD_ENTRY(execMenuItem, 1)
104 JS_STATIC_METHOD_ENTRY(findComponent, 1) 104 JS_STATIC_METHOD_ENTRY(findComponent, 1)
105 JS_STATIC_METHOD_ENTRY(goBack, 0) 105 JS_STATIC_METHOD_ENTRY(goBack, 0)
106 JS_STATIC_METHOD_ENTRY(goForward, 0) 106 JS_STATIC_METHOD_ENTRY(goForward, 0)
107 JS_STATIC_METHOD_ENTRY(launchURL, 0) 107 JS_STATIC_METHOD_ENTRY(launchURL, 0)
108 » JS_STATIC_METHOD_ENTRY(mailMsg, 0)» 108 » JS_STATIC_METHOD_ENTRY(mailMsg, 0)
109 JS_STATIC_METHOD_ENTRY(newFDF, 0) 109 JS_STATIC_METHOD_ENTRY(newFDF, 0)
110 JS_STATIC_METHOD_ENTRY(newDoc, 0) 110 JS_STATIC_METHOD_ENTRY(newDoc, 0)
111 JS_STATIC_METHOD_ENTRY(openDoc, 0) 111 JS_STATIC_METHOD_ENTRY(openDoc, 0)
112 JS_STATIC_METHOD_ENTRY(openFDF, 5) 112 JS_STATIC_METHOD_ENTRY(openFDF, 5)
113 JS_STATIC_METHOD_ENTRY(popUpMenuEx, 0) 113 JS_STATIC_METHOD_ENTRY(popUpMenuEx, 0)
114 JS_STATIC_METHOD_ENTRY(popUpMenu, 0) 114 JS_STATIC_METHOD_ENTRY(popUpMenu, 0)
115 JS_STATIC_METHOD_ENTRY(response, 0) 115 JS_STATIC_METHOD_ENTRY(response, 0)
116 JS_STATIC_METHOD_ENTRY(setInterval, 2) 116 JS_STATIC_METHOD_ENTRY(setInterval, 2)
117 JS_STATIC_METHOD_ENTRY(setTimeOut, 2) 117 JS_STATIC_METHOD_ENTRY(setTimeOut, 2)
118 END_JS_STATIC_METHOD() 118 END_JS_STATIC_METHOD()
(...skipping 15 matching lines...) Expand all
134 m_aTimer.RemoveAll(); 134 m_aTimer.RemoveAll();
135 } 135 }
136 136
137 FX_BOOL app::activeDocs(OBJ_PROP_PARAMS) 137 FX_BOOL app::activeDocs(OBJ_PROP_PARAMS)
138 { 138 {
139 if (vp.IsGetting()) 139 if (vp.IsGetting())
140 { 140 {
141 141
142 CJS_Context* pContext = (CJS_Context *)cc; 142 CJS_Context* pContext = (CJS_Context *)cc;
143 ASSERT(pContext != NULL); 143 ASSERT(pContext != NULL);
144 » » 144
145 CPDFDoc_Environment* pApp = pContext->GetReaderApp(); 145 CPDFDoc_Environment* pApp = pContext->GetReaderApp();
146 ASSERT(pApp != NULL); 146 ASSERT(pApp != NULL);
147 147
148 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 148 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
149 ASSERT(pRuntime != NULL); 149 ASSERT(pRuntime != NULL);
150 » » 150
151 CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument(); 151 CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument();
152 » » 152
153 CJS_Array aDocs(pRuntime->GetIsolate()); 153 CJS_Array aDocs(pRuntime->GetIsolate());
154 // int iNumDocs = pApp->CountDocuments(); 154 // int iNumDocs = pApp->CountDocuments();
155 » » 155
156 // for(int iIndex = 0; iIndex<iNumDocs; iIndex++) 156 // for(int iIndex = 0; iIndex<iNumDocs; iIndex++)
157 // { 157 // {
158 CPDFSDK_Document* pDoc = pApp->GetCurrentDoc(); 158 CPDFSDK_Document* pDoc = pApp->GetCurrentDoc();
159 if (pDoc) 159 if (pDoc)
160 { 160 {
161 CJS_Document * pJSDocument = NULL; 161 CJS_Document * pJSDocument = NULL;
162 » » » » 162
163 if (pDoc == pCurDoc) 163 if (pDoc == pCurDoc)
164 { 164 {
165 JSFXObject pObj = JS_GetThisObj(*pRuntim e); 165 JSFXObject pObj = JS_GetThisObj(*pRuntim e);
166 » » » » » 166
167 if (JS_GetObjDefnID(pObj) == JS_GetObjDe fnID(*pRuntime, L"Document")) 167 if (JS_GetObjDefnID(pObj) == JS_GetObjDe fnID(*pRuntime, L"Document"))
168 { 168 {
169 pJSDocument = (CJS_Document*)JS_ GetPrivate(pRuntime->GetIsolate(),pObj); 169 pJSDocument = (CJS_Document*)JS_ GetPrivate(pRuntime->GetIsolate(),pObj);
170 } 170 }
171 } 171 }
172 else 172 else
173 { 173 {
174 JSFXObject pObj = JS_NewFxDynamicObj(*pR untime, pContext, JS_GetObjDefnID(*pRuntime,L"Document")); 174 JSFXObject pObj = JS_NewFxDynamicObj(*pR untime, pContext, JS_GetObjDefnID(*pRuntime,L"Document"));
175 pJSDocument = (CJS_Document*)JS_GetPriva te(pRuntime->GetIsolate(),pObj); 175 pJSDocument = (CJS_Document*)JS_GetPriva te(pRuntime->GetIsolate(),pObj);
176 ASSERT(pJSDocument != NULL); 176 ASSERT(pJSDocument != NULL);
177 » » » » » 177
178 » » » » » 178
179 // pDocument->Attac hDoc(pDoc); 179 // pDocument->Attac hDoc(pDoc);
180 } 180 }
181 » » » » 181
182 aDocs.SetElement(0,CJS_Value(pRuntime->GetIsolat e(),pJSDocument)); 182 aDocs.SetElement(0,CJS_Value(pRuntime->GetIsolat e(),pJSDocument));
183 } 183 }
184 // } 184 // }
185 » » 185
186 if (aDocs.GetLength() > 0) 186 if (aDocs.GetLength() > 0)
187 vp << aDocs; 187 vp << aDocs;
188 else 188 else
189 vp.SetNull(); 189 vp.SetNull();
190 return TRUE; 190 return TRUE;
191 } 191 }
192 return FALSE; 192 return FALSE;
193 } 193 }
194 194
195 FX_BOOL app::calculate(OBJ_PROP_PARAMS) 195 FX_BOOL app::calculate(OBJ_PROP_PARAMS)
196 { 196 {
197 if (vp.IsSetting()) 197 if (vp.IsSetting())
198 { 198 {
199 bool bVP; 199 bool bVP;
200 vp >> bVP; 200 vp >> bVP;
201 m_bCalculate = (FX_BOOL)bVP; 201 m_bCalculate = (FX_BOOL)bVP;
202 202
203 CJS_Context* pContext = (CJS_Context*)cc; 203 CJS_Context* pContext = (CJS_Context*)cc;
204 ASSERT(pContext != NULL); 204 ASSERT(pContext != NULL);
205 » » 205
206 CPDFDoc_Environment* pApp = pContext->GetReaderApp(); 206 CPDFDoc_Environment* pApp = pContext->GetReaderApp();
207 ASSERT(pApp != NULL); 207 ASSERT(pApp != NULL);
208 » » 208
209 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 209 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
210 ASSERT(pRuntime != NULL); 210 ASSERT(pRuntime != NULL);
211 211
212 CJS_Array aDocs(pRuntime->GetIsolate()); 212 CJS_Array aDocs(pRuntime->GetIsolate());
213 // int iNumDocs = pApp->CountDocuments(); 213 // int iNumDocs = pApp->CountDocuments();
214 //» » 214 //
215 // for (int iIndex = 0;iIndex < iNumDocs; iIndex++) 215 // for (int iIndex = 0;iIndex < iNumDocs; iIndex++)
216 // { 216 // {
217 if (CPDFSDK_Document* pDoc = pApp->GetCurrentDoc()) 217 if (CPDFSDK_Document* pDoc = pApp->GetCurrentDoc())
218 { 218 {
219 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterFo rm*)pDoc->GetInterForm(); 219 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterFo rm*)pDoc->GetInterForm();
220 ASSERT(pInterForm != NULL); 220 ASSERT(pInterForm != NULL);
221 pInterForm->EnableCalculate((FX_BOOL)m_bCalculat e); 221 pInterForm->EnableCalculate((FX_BOOL)m_bCalculat e);
222 » » » }» » » 222 » » » }
223 // } 223 // }
224 } 224 }
225 else 225 else
226 { 226 {
227 vp << (bool)m_bCalculate; 227 vp << (bool)m_bCalculate;
228 } 228 }
229 » 229
230 return TRUE; 230 return TRUE;
231 } 231 }
232 232
233 FX_BOOL app::formsVersion(OBJ_PROP_PARAMS) 233 FX_BOOL app::formsVersion(OBJ_PROP_PARAMS)
234 { 234 {
235 if (vp.IsGetting()) 235 if (vp.IsGetting())
236 { 236 {
237 vp << JS_NUM_FORMSVERSION; 237 vp << JS_NUM_FORMSVERSION;
238 return TRUE; 238 return TRUE;
239 } 239 }
240 » 240
241 return FALSE; 241 return FALSE;
242 } 242 }
243 243
244 FX_BOOL app::viewerType(OBJ_PROP_PARAMS) 244 FX_BOOL app::viewerType(OBJ_PROP_PARAMS)
245 { 245 {
246
247
248
249
250
251
252 if (vp.IsGetting()) 246 if (vp.IsGetting())
253 { 247 {
254 // if (pApp->GetAppName() == PHANTOM)
255 // vp << JS_STR_VIEWERTYPE_STANDARD;
256 // else
257 // vp << JS_STR_VIEWERTYPE_READER;
258 vp << L"unknown"; 248 vp << L"unknown";
259
260 //vp << pApp->GetAppTitle();
261 return TRUE; 249 return TRUE;
262 } 250 }
263 » 251
264 return FALSE; 252 return FALSE;
265 } 253 }
266 254
267 FX_BOOL app::viewerVariation(OBJ_PROP_PARAMS) 255 FX_BOOL app::viewerVariation(OBJ_PROP_PARAMS)
268 { 256 {
269 if (vp.IsGetting()) 257 if (vp.IsGetting())
270 { 258 {
271 vp << JS_STR_VIEWERVARIATION; 259 vp << JS_STR_VIEWERVARIATION;
272 return TRUE; 260 return TRUE;
273 } 261 }
274 » 262
275 return FALSE; 263 return FALSE;
276 } 264 }
277 265
278 FX_BOOL app::viewerVersion(OBJ_PROP_PARAMS) 266 FX_BOOL app::viewerVersion(OBJ_PROP_PARAMS)
279 { 267 {
280 if (vp.IsGetting()) 268 if (vp.IsGetting())
281 { 269 {
282 CJS_Context* pContext = (CJS_Context *)cc; 270 CJS_Context* pContext = (CJS_Context *)cc;
283 ASSERT(pContext != NULL); 271 ASSERT(pContext != NULL);
284 » » 272
285 CPDFDoc_Environment* pApp = pContext->GetReaderApp(); 273 CPDFDoc_Environment* pApp = pContext->GetReaderApp();
286 ASSERT(pApp != NULL); 274 ASSERT(pApp != NULL);
287 » » 275
288 CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument(); 276 CPDFSDK_Document* pCurDoc = pContext->GetReaderDocument();
289 277
290 CPDFXFA_Document* pDoc = pCurDoc->GetDocument(); 278 CPDFXFA_Document* pDoc = pCurDoc->GetDocument();
291 if (pDoc->GetDocType() == 1 || pDoc->GetDocType() == 2) 279 if (pDoc->GetDocType() == 1 || pDoc->GetDocType() == 2)
292 vp << JS_STR_VIEWERVERSION_XFA; 280 vp << JS_STR_VIEWERVERSION_XFA;
293 else 281 else
294 vp << JS_STR_VIEWERVERSION; 282 vp << JS_STR_VIEWERVERSION;
295 return TRUE; 283 return TRUE;
296 } 284 }
297 » 285
298 return FALSE; 286 return FALSE;
299 } 287 }
300 288
301 FX_BOOL app::platform(OBJ_PROP_PARAMS) 289 FX_BOOL app::platform(OBJ_PROP_PARAMS)
302 { 290 {
303 if (vp.IsGetting()) 291 if (vp.IsGetting())
304 { 292 {
305 vp << JS_STR_PLATFORM; 293 vp << JS_STR_PLATFORM;
306 return TRUE; 294 return TRUE;
307 } 295 }
308 » 296
309 return FALSE; 297 return FALSE;
310 } 298 }
311 299
312 FX_BOOL app::language(OBJ_PROP_PARAMS) 300 FX_BOOL app::language(OBJ_PROP_PARAMS)
313 { 301 {
314 if (vp.IsGetting()) 302 if (vp.IsGetting())
315 { 303 {
316 vp << JS_STR_LANGUANGE; 304 vp << JS_STR_LANGUANGE;
317 return TRUE; 305 return TRUE;
318 } 306 }
319 » 307
320 return FALSE; 308 return FALSE;
321 } 309 }
322 310
323 //creates a new fdf object that contains no data 311 //creates a new fdf object that contains no data
324 //comment: need reader support 312 //comment: need reader support
325 //note: 313 //note:
326 //CFDF_Document * CPDFDoc_Environment::NewFDF(); 314 //CFDF_Document * CPDFDoc_Environment::NewFDF();
327 FX_BOOL app::newFDF(OBJ_METHOD_PARAMS) 315 FX_BOOL app::newFDF(OBJ_METHOD_PARAMS)
328 { 316 {
329 return TRUE; 317 return TRUE;
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 if (bGet) 419 if (bGet)
432 swMsg = L"true"; 420 swMsg = L"true";
433 else 421 else
434 swMsg = L"false"; 422 swMsg = L"false";
435 } 423 }
436 else 424 else
437 { 425 {
438 swMsg = params[0]; 426 swMsg = params[0];
439 } 427 }
440 swTitle = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSALERT ); 428 swTitle = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSALERT );
441 » » 429
442 for(int i = 1;i<iSize;i++) 430 for(int i = 1;i<iSize;i++)
443 { 431 {
444 if (i == 1) 432 if (i == 1)
445 iIcon = int(params[i]); 433 iIcon = int(params[i]);
446 if (i == 2) 434 if (i == 2)
447 iType = int(params[i]); 435 iType = int(params[i]);
448 if (i == 3) 436 if (i == 3)
449 » » » » swTitle = params[i];» » » 437 » » » » swTitle = params[i];
450 } 438 }
451 } 439 }
452 440
453 441
454 CJS_Context* pContext = (CJS_Context*)cc; 442 CJS_Context* pContext = (CJS_Context*)cc;
455 ASSERT(pContext != NULL); 443 ASSERT(pContext != NULL);
456 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 444 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
457 ASSERT(pRuntime != NULL); 445 ASSERT(pRuntime != NULL);
458 pRuntime->BeginBlock(); 446 pRuntime->BeginBlock();
459 vRet = MsgBox(pRuntime->GetReaderApp(), JSGetPageView(cc),swMsg,swTitle, iType,iIcon); 447 vRet = MsgBox(pRuntime->GetReaderApp(), JSGetPageView(cc),swMsg,swTitle, iType,iIcon);
460 pRuntime->EndBlock(); 448 pRuntime->EndBlock();
461 » 449
462 return TRUE; 450 return TRUE;
463 } 451 }
464 452
465 453
466 FX_BOOL app::beep(OBJ_METHOD_PARAMS) 454 FX_BOOL app::beep(OBJ_METHOD_PARAMS)
467 { 455 {
468 if (params.size() == 1) 456 if (params.size() == 1)
469 { 457 {
470 CJS_Context* pContext = (CJS_Context*)cc; 458 CJS_Context* pContext = (CJS_Context*)cc;
471 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 459 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
472 CPDFDoc_Environment * pEnv = pRuntime->GetReaderApp(); 460 CPDFDoc_Environment * pEnv = pRuntime->GetReaderApp();
473 pEnv->JS_appBeep((int)params[0]); 461 pEnv->JS_appBeep((int)params[0]);
474 462
475 return TRUE; 463 return TRUE;
476 } 464 }
477 else 465 else
478 { 466 {
479 sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAME RROR); 467 sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAME RROR);
480 return FALSE; 468 return FALSE;
481 } 469 }
482 } 470 }
483 471
484 FX_BOOL app::findComponent(OBJ_METHOD_PARAMS) 472 FX_BOOL app::findComponent(OBJ_METHOD_PARAMS)
485 { 473 {
486 return TRUE; 474 return TRUE;
487 } 475 }
488 476
489 FX_BOOL app::popUpMenuEx(OBJ_METHOD_PARAMS) 477 FX_BOOL app::popUpMenuEx(OBJ_METHOD_PARAMS)
490 {» 478 {
491 return FALSE; 479 return FALSE;
492 } 480 }
493 481
494 FX_BOOL app::fs(OBJ_PROP_PARAMS) 482 FX_BOOL app::fs(OBJ_PROP_PARAMS)
495 { 483 {
496 return FALSE; 484 return FALSE;
497 } 485 }
498 486
499 FX_BOOL app::setInterval(OBJ_METHOD_PARAMS) 487 FX_BOOL app::setInterval(OBJ_METHOD_PARAMS)
500 { 488 {
501 » if (params.size() > 2 || params.size() == 0) 489 » if (params.size() > 2 || params.size() == 0)
502 { 490 {
503 » » sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAME RROR);» 491 » » sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAME RROR);
504 return FALSE; 492 return FALSE;
505 } 493 }
506 » 494
507 CJS_Context* pContext = (CJS_Context*)cc; 495 CJS_Context* pContext = (CJS_Context*)cc;
508 ASSERT(pContext != NULL); 496 ASSERT(pContext != NULL);
509 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 497 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
510 ASSERT(pRuntime != NULL); 498 ASSERT(pRuntime != NULL);
511 499
512 CFX_WideString script = params.size() > 0 ? (FX_LPCWSTR)(params[0].oper ator CFX_WideString()) : L""; 500 CFX_WideString script = params.size() > 0 ? (FX_LPCWSTR)(params[0].oper ator CFX_WideString()) : L"";
513 » if (script.IsEmpty()) 501 » if (script.IsEmpty())
514 { 502 {
515 sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSAFNUMB ER_KEYSTROKE); 503 sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSAFNUMB ER_KEYSTROKE);
516 return TRUE; 504 return TRUE;
517 } 505 }
518 506
519 FX_DWORD dwInterval = params.size() > 1 ? (int)params[1] : 1000; 507 FX_DWORD dwInterval = params.size() > 1 ? (int)params[1] : 1000;
520 » 508
521 CPDFDoc_Environment* pApp = pRuntime->GetReaderApp(); 509 CPDFDoc_Environment* pApp = pRuntime->GetReaderApp();
522 ASSERT(pApp); 510 ASSERT(pApp);
523 CJS_Timer* pTimer = new CJS_Timer(this, pApp); 511 CJS_Timer* pTimer = new CJS_Timer(this, pApp);
524 m_aTimer.Add(pTimer); 512 m_aTimer.Add(pTimer);
525 513
526 pTimer->SetType(0); 514 pTimer->SetType(0);
527 pTimer->SetRuntime(pRuntime); 515 pTimer->SetRuntime(pRuntime);
528 pTimer->SetJScript(script); 516 pTimer->SetJScript(script);
529 pTimer->SetTimeOut(0); 517 pTimer->SetTimeOut(0);
530 // pTimer->SetStartTime(GetTickCount()); 518 // pTimer->SetStartTime(GetTickCount());
531 pTimer->SetJSTimer(dwInterval); 519 pTimer->SetJSTimer(dwInterval);
532 » 520
533 JSFXObject pRetObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDe fnID(*pRuntime, L"TimerObj")); 521 JSFXObject pRetObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDe fnID(*pRuntime, L"TimerObj"));
534 » 522
535 CJS_TimerObj* pJS_TimerObj = (CJS_TimerObj*)JS_GetPrivate(pRuntime->GetI solate(),pRetObj); 523 CJS_TimerObj* pJS_TimerObj = (CJS_TimerObj*)JS_GetPrivate(pRuntime->GetI solate(),pRetObj);
536 ASSERT(pJS_TimerObj != NULL); 524 ASSERT(pJS_TimerObj != NULL);
537 » 525
538 TimerObj* pTimerObj = (TimerObj*)pJS_TimerObj->GetEmbedObject(); 526 TimerObj* pTimerObj = (TimerObj*)pJS_TimerObj->GetEmbedObject();
539 ASSERT(pTimerObj != NULL); 527 ASSERT(pTimerObj != NULL);
540 » 528
541 » pTimerObj->SetTimer(pTimer); 529 » pTimerObj->SetTimer(pTimer);
542 » 530
543 vRet = pRetObj; 531 vRet = pRetObj;
544 » 532
545 return TRUE; 533 return TRUE;
546 } 534 }
547 535
548 FX_BOOL app::setTimeOut(OBJ_METHOD_PARAMS) 536 FX_BOOL app::setTimeOut(OBJ_METHOD_PARAMS)
549 { 537 {
550 if (params.size() > 2 || params.size() == 0) 538 if (params.size() > 2 || params.size() == 0)
551 { 539 {
552 » » sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAME RROR);» 540 » » sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAME RROR);
553 return FALSE; 541 return FALSE;
554 } 542 }
555 » 543
556 CJS_Context* pContext = (CJS_Context*)cc; 544 CJS_Context* pContext = (CJS_Context*)cc;
557 ASSERT(pContext != NULL); 545 ASSERT(pContext != NULL);
558 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 546 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
559 ASSERT(pRuntime != NULL); 547 ASSERT(pRuntime != NULL);
560 » 548
561 CFX_WideString script = params.size() > 0 ? (FX_LPCWSTR)(params[0].oper ator CFX_WideString()) : L""; 549 CFX_WideString script = params.size() > 0 ? (FX_LPCWSTR)(params[0].oper ator CFX_WideString()) : L"";
562 » if (script.IsEmpty()) 550 » if (script.IsEmpty())
563 { 551 {
564 sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSAFNUMB ER_KEYSTROKE); 552 sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSAFNUMB ER_KEYSTROKE);
565 return TRUE; 553 return TRUE;
566 } 554 }
567 » 555
568 FX_DWORD dwTimeOut = params.size() > 1 ? (int)params[1] : 1000; 556 FX_DWORD dwTimeOut = params.size() > 1 ? (int)params[1] : 1000;
569 » 557
570 CPDFDoc_Environment* pApp = pRuntime->GetReaderApp(); 558 CPDFDoc_Environment* pApp = pRuntime->GetReaderApp();
571 ASSERT(pApp); 559 ASSERT(pApp);
572 CJS_Timer* pTimer = new CJS_Timer(this, pApp); 560 CJS_Timer* pTimer = new CJS_Timer(this, pApp);
573 m_aTimer.Add(pTimer); 561 m_aTimer.Add(pTimer);
574 » 562
575 pTimer->SetType(1); 563 pTimer->SetType(1);
576 pTimer->SetRuntime(pRuntime); 564 pTimer->SetRuntime(pRuntime);
577 pTimer->SetJScript(script); 565 pTimer->SetJScript(script);
578 pTimer->SetTimeOut(dwTimeOut); 566 pTimer->SetTimeOut(dwTimeOut);
579 // pTimer->SetStartTime(GetTickCount()); 567 // pTimer->SetStartTime(GetTickCount());
580 // pTimer->SetJSTimer(1000); 568 // pTimer->SetJSTimer(1000);
581 pTimer->SetJSTimer(dwTimeOut); 569 pTimer->SetJSTimer(dwTimeOut);
582 » 570
583 JSFXObject pRetObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDe fnID(*pRuntime, L"TimerObj")); 571 JSFXObject pRetObj = JS_NewFxDynamicObj(*pRuntime, pContext, JS_GetObjDe fnID(*pRuntime, L"TimerObj"));
584 // ASSERT(pRetObj != NULL); 572 // ASSERT(pRetObj != NULL);
585 » 573
586 CJS_TimerObj* pJS_TimerObj = (CJS_TimerObj*)JS_GetPrivate(pRuntime->GetI solate(),pRetObj); 574 CJS_TimerObj* pJS_TimerObj = (CJS_TimerObj*)JS_GetPrivate(pRuntime->GetI solate(),pRetObj);
587 ASSERT(pJS_TimerObj != NULL); 575 ASSERT(pJS_TimerObj != NULL);
588 » 576
589 TimerObj* pTimerObj = (TimerObj*)pJS_TimerObj->GetEmbedObject(); 577 TimerObj* pTimerObj = (TimerObj*)pJS_TimerObj->GetEmbedObject();
590 ASSERT(pTimerObj != NULL); 578 ASSERT(pTimerObj != NULL);
591 » 579
592 » pTimerObj->SetTimer(pTimer); 580 » pTimerObj->SetTimer(pTimer);
593 » 581
594 vRet = pRetObj; 582 vRet = pRetObj;
595 » 583
596 return TRUE; 584 return TRUE;
597 } 585 }
598 586
599 FX_BOOL app::clearTimeOut(OBJ_METHOD_PARAMS) 587 FX_BOOL app::clearTimeOut(OBJ_METHOD_PARAMS)
600 { 588 {
601 CJS_Context* pContext = (CJS_Context*)cc; 589 CJS_Context* pContext = (CJS_Context*)cc;
602 ASSERT(pContext != NULL); 590 ASSERT(pContext != NULL);
603 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 591 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
604 ASSERT(pRuntime != NULL); 592 ASSERT(pRuntime != NULL);
605 » 593
606 if (params.size() != 1) 594 if (params.size() != 1)
607 { 595 {
608 » » sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAME RROR);» 596 » » sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAME RROR);
609 return FALSE; 597 return FALSE;
610 } 598 }
611 » 599
612 if (params[0].GetType() == VT_fxobject) 600 if (params[0].GetType() == VT_fxobject)
613 { 601 {
614 JSFXObject pObj = (JSFXObject)params[0]; 602 JSFXObject pObj = (JSFXObject)params[0];
615 { 603 {
616 if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"TimerObj")) 604 if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"TimerObj"))
617 { 605 {
618 if (CJS_Object* pJSObj = (CJS_Object*)params[0]) 606 if (CJS_Object* pJSObj = (CJS_Object*)params[0])
619 { 607 {
620 if (TimerObj* pTimerObj = (TimerObj*)pJS Obj->GetEmbedObject()) 608 if (TimerObj* pTimerObj = (TimerObj*)pJS Obj->GetEmbedObject())
621 { 609 {
622 if (CJS_Timer* pTimer = pTimerOb j->GetTimer()) 610 if (CJS_Timer* pTimer = pTimerOb j->GetTimer())
623 { 611 {
624 pTimer->KillJSTimer(); 612 pTimer->KillJSTimer();
625 » » » » » » » 613
626 for (int i=0,sz=m_aTimer .GetSize(); i<sz; i++) 614 for (int i=0,sz=m_aTimer .GetSize(); i<sz; i++)
627 { 615 {
628 if (m_aTimer[i] == pTimer) 616 if (m_aTimer[i] == pTimer)
629 { 617 {
630 m_aTimer .RemoveAt(i); 618 m_aTimer .RemoveAt(i);
631 break; 619 break;
632 } 620 }
633 } 621 }
634 » » » » » » » 622
635 delete pTimer; 623 delete pTimer;
636 pTimerObj->SetTimer(NULL ); 624 pTimerObj->SetTimer(NULL );
637 } 625 }
638 } 626 }
639 } 627 }
640 } 628 }
641 } 629 }
642 } 630 }
643 » 631
644 return TRUE; 632 return TRUE;
645 } 633 }
646 634
647 FX_BOOL app::clearInterval(OBJ_METHOD_PARAMS) 635 FX_BOOL app::clearInterval(OBJ_METHOD_PARAMS)
648 { 636 {
649 CJS_Context* pContext = (CJS_Context*)cc; 637 CJS_Context* pContext = (CJS_Context*)cc;
650 ASSERT(pContext != NULL); 638 ASSERT(pContext != NULL);
651 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 639 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
652 ASSERT(pRuntime != NULL); 640 ASSERT(pRuntime != NULL);
653 641
654 if (params.size() != 1) 642 if (params.size() != 1)
655 { 643 {
656 » » sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAME RROR);» 644 » » sError = JSGetStringFromID((CJS_Context*)cc, IDS_STRING_JSPARAME RROR);
657 return FALSE; 645 return FALSE;
658 } 646 }
659 » 647
660 if (params[0].GetType() == VT_fxobject) 648 if (params[0].GetType() == VT_fxobject)
661 { 649 {
662 JSFXObject pObj = (JSFXObject)params[0]; 650 JSFXObject pObj = (JSFXObject)params[0];
663 { 651 {
664 if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"TimerObj")) 652 if (JS_GetObjDefnID(pObj) == JS_GetObjDefnID(*pRuntime, L"TimerObj"))
665 { 653 {
666 if (CJS_Object* pJSObj = (CJS_Object*)params[0]) 654 if (CJS_Object* pJSObj = (CJS_Object*)params[0])
667 { 655 {
668 if (TimerObj* pTimerObj = (TimerObj*)pJS Obj->GetEmbedObject()) 656 if (TimerObj* pTimerObj = (TimerObj*)pJS Obj->GetEmbedObject())
669 { 657 {
670 if (CJS_Timer* pTimer = pTimerOb j->GetTimer()) 658 if (CJS_Timer* pTimer = pTimerOb j->GetTimer())
671 { 659 {
672 pTimer->KillJSTimer(); 660 pTimer->KillJSTimer();
673 » » » » » » » 661
674 for (int i=0,sz=m_aTimer .GetSize(); i<sz; i++) 662 for (int i=0,sz=m_aTimer .GetSize(); i<sz; i++)
675 { 663 {
676 if (m_aTimer[i] == pTimer) 664 if (m_aTimer[i] == pTimer)
677 { 665 {
678 m_aTimer .RemoveAt(i); 666 m_aTimer .RemoveAt(i);
679 break; 667 break;
680 } 668 }
681 } 669 }
682 » » » » » » » 670
683 delete pTimer; 671 delete pTimer;
684 pTimerObj->SetTimer(NULL ); 672 pTimerObj->SetTimer(NULL );
685 } 673 }
686 } 674 }
687 } 675 }
688 } 676 }
689 } 677 }
690 } 678 }
691 » 679
692 return TRUE; 680 return TRUE;
693 } 681 }
694 682
695 FX_BOOL app::execMenuItem(OBJ_METHOD_PARAMS) 683 FX_BOOL app::execMenuItem(OBJ_METHOD_PARAMS)
696 {» 684 {
697 return FALSE; 685 return FALSE;
698 } 686 }
699 687
700 void app::TimerProc(CJS_Timer* pTimer) 688 void app::TimerProc(CJS_Timer* pTimer)
701 { 689 {
702 ASSERT(pTimer != NULL); 690 ASSERT(pTimer != NULL);
703 691
704 switch (pTimer->GetType()) 692 switch (pTimer->GetType())
705 { 693 {
706 case 0: //interval 694 case 0: //interval
707 RunJsScript(pTimer->GetRuntime(), pTimer->GetJScript()); 695 RunJsScript(pTimer->GetRuntime(), pTimer->GetJScript());
708 break; 696 break;
709 case 1: 697 case 1:
710 if (pTimer->GetTimeOut() > 0) 698 if (pTimer->GetTimeOut() > 0)
711 { 699 {
712 RunJsScript(pTimer->GetRuntime(), pTimer->GetJScript()); 700 RunJsScript(pTimer->GetRuntime(), pTimer->GetJScript());
713 pTimer->KillJSTimer(); 701 pTimer->KillJSTimer();
714 } 702 }
715 break; 703 break;
716 } 704 }
717 » 705
718 } 706 }
719 707
720 void app::RunJsScript(CJS_Runtime* pRuntime,const CFX_WideString& wsScript) 708 void app::RunJsScript(CJS_Runtime* pRuntime,const CFX_WideString& wsScript)
721 { 709 {
722 ASSERT(pRuntime != NULL); 710 ASSERT(pRuntime != NULL);
723 711
724 if (!pRuntime->IsBlocking()) 712 if (!pRuntime->IsBlocking())
725 { 713 {
726 IFXJS_Context* pContext = pRuntime->NewContext(); 714 IFXJS_Context* pContext = pRuntime->NewContext();
727 ASSERT(pContext != NULL); 715 ASSERT(pContext != NULL);
728 pContext->OnExternal_Exec(); 716 pContext->OnExternal_Exec();
729 CFX_WideString wtInfo; 717 CFX_WideString wtInfo;
730 pContext->RunScript(wsScript,wtInfo); 718 pContext->RunScript(wsScript,wtInfo);
731 pRuntime->ReleaseContext(pContext); 719 pRuntime->ReleaseContext(pContext);
732 } 720 }
733 } 721 }
734 722
735 FX_BOOL app::goBack(OBJ_METHOD_PARAMS) 723 FX_BOOL app::goBack(OBJ_METHOD_PARAMS)
736 { 724 {
737 725 // Not supported.
738 726 return TRUE;
739 »
740 »
741 »
742 »
743 » return TRUE;
744 } 727 }
745 728
746 FX_BOOL app::goForward(OBJ_METHOD_PARAMS) 729 FX_BOOL app::goForward(OBJ_METHOD_PARAMS)
747 {» 730 {
748 731 // Not supported.
749 732 return TRUE;
750
751
752
753
754 » return TRUE;
755 } 733 }
756 734
757 FX_BOOL app::mailMsg(OBJ_METHOD_PARAMS) 735 FX_BOOL app::mailMsg(OBJ_METHOD_PARAMS)
758 { 736 {
759 CJS_Context* pContext = (CJS_Context*)cc; 737 CJS_Context* pContext = (CJS_Context*)cc;
760 ASSERT(pContext != NULL); 738 ASSERT(pContext != NULL);
761 739
762 v8::Isolate* isolate = GetIsolate(cc); 740 v8::Isolate* isolate = GetIsolate(cc);
763 741
764 FX_BOOL bUI = TRUE; 742 FX_BOOL bUI = TRUE;
765 CFX_WideString cTo = L""; 743 CFX_WideString cTo = L"";
766 CFX_WideString cCc = L""; 744 CFX_WideString cCc = L"";
767 CFX_WideString cBcc = L""; 745 CFX_WideString cBcc = L"";
768 CFX_WideString cSubject = L""; 746 CFX_WideString cSubject = L"";
769 CFX_WideString cMsg = L""; 747 CFX_WideString cMsg = L"";
770 if(params.size() < 2) 748 if(params.size() < 2)
771 return FALSE; 749 return FALSE;
772 750
773 bUI = params.size()>=1?(int)params[0]:TRUE; 751 bUI = params.size()>=1?(int)params[0]:TRUE;
774 cTo = params.size()>=2?(const wchar_t*)(FX_LPCWSTR)params[1].operator CF X_WideString():L""; 752 cTo = params.size()>=2?(const wchar_t*)(FX_LPCWSTR)params[1].operator CF X_WideString():L"";
775 cCc = params.size()>=3?(const wchar_t*)(FX_LPCWSTR)params[2].operator CF X_WideString():L""; 753 cCc = params.size()>=3?(const wchar_t*)(FX_LPCWSTR)params[2].operator CF X_WideString():L"";
776 cBcc = params.size()>=4?(const wchar_t*)(FX_LPCWSTR)params[3].operator C FX_WideString():L""; 754 cBcc = params.size()>=4?(const wchar_t*)(FX_LPCWSTR)params[3].operator C FX_WideString():L"";
777 cSubject = params.size()>=5?(const wchar_t*)(FX_LPCWSTR)params[4].operat or CFX_WideString():L""; 755 cSubject = params.size()>=5?(const wchar_t*)(FX_LPCWSTR)params[4].operat or CFX_WideString():L"";
778 » cMsg = params.size()>=6?(const wchar_t*)(FX_LPCWSTR)params[5].operator C FX_WideString():L"";» » 756 » cMsg = params.size()>=6?(const wchar_t*)(FX_LPCWSTR)params[5].operator C FX_WideString():L"";
779 757
780 758
781 if (params[0].GetType() == VT_object) 759 if (params[0].GetType() == VT_object)
782 { 760 {
783 JSObject pObj = (JSObject)params[0]; 761 JSObject pObj = (JSObject)params[0];
784 762
785 v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj, L"bUI"); 763 v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj, L"bUI");
786 bUI = (int)CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValu e)); 764 bUI = (int)CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValu e));
787 765
788 pValue = JS_GetObjectElement(isolate, pObj, L"cTo"); 766 pValue = JS_GetObjectElement(isolate, pObj, L"cTo");
789 cTo = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).o perator CFX_WideString(); 767 cTo = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).o perator CFX_WideString();
790 768
791 pValue = JS_GetObjectElement(isolate,pObj, L"cCc"); 769 pValue = JS_GetObjectElement(isolate,pObj, L"cCc");
792 cCc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).o perator CFX_WideString(); 770 cCc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)).o perator CFX_WideString();
793 771
794 pValue = JS_GetObjectElement(isolate,pObj, L"cBcc"); 772 pValue = JS_GetObjectElement(isolate,pObj, L"cBcc");
795 cBcc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)). operator CFX_WideString(); 773 cBcc = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)). operator CFX_WideString();
796 774
797 pValue = JS_GetObjectElement(isolate,pObj, L"cSubject"); 775 pValue = JS_GetObjectElement(isolate,pObj, L"cSubject");
798 cSubject = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValu e)).operator CFX_WideString(); 776 cSubject = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValu e)).operator CFX_WideString();
799 777
800 pValue = JS_GetObjectElement(isolate,pObj, L"cMsg"); 778 pValue = JS_GetObjectElement(isolate,pObj, L"cMsg");
801 cMsg = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)). operator CFX_WideString(); 779 cMsg = CJS_Value(isolate,pValue,GET_VALUE_TYPE(pValue)). operator CFX_WideString();
802 } 780 }
803 » 781
804 » 782
805 783
806 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 784 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
807 ASSERT(pRuntime != NULL); 785 ASSERT(pRuntime != NULL);
808 786
809 CPDFDoc_Environment* pApp = pContext->GetReaderApp(); 787 CPDFDoc_Environment* pApp = pContext->GetReaderApp();
810 ASSERT(pApp != NULL); 788 ASSERT(pApp != NULL);
811 789
812 pRuntime->BeginBlock(); 790 pRuntime->BeginBlock();
813 pApp->JS_docmailForm(NULL, 0, bUI, cTo.c_str(), cSubject.c_str(), cCc.c_ str(), cBcc.c_str(), cMsg.c_str()); 791 pApp->JS_docmailForm(NULL, 0, bUI, cTo.c_str(), cSubject.c_str(), cCc.c_ str(), cBcc.c_str(), cMsg.c_str());
814 //////////////////////////////////////////////////////////////////////// /////////////////////// 792 //////////////////////////////////////////////////////////////////////// ///////////////////////
815 pRuntime->EndBlock(); 793 pRuntime->EndBlock();
816 794
817 //return bRet; 795 //return bRet;
818 return FALSE; 796 return FALSE;
819 } 797 }
820 798
821 FX_BOOL app::launchURL(OBJ_METHOD_PARAMS) 799 FX_BOOL app::launchURL(OBJ_METHOD_PARAMS)
822 { 800 {
823 » if (IsSafeMode(cc)) return TRUE; 801 // Unsafe, not supported.
824 802 return TRUE;
825 » CJS_Context* pContext = (CJS_Context*)cc;
826 » ASSERT(pContext != NULL);
827
828 »
829
830
831 » CFX_WideString swURL = params[0].operator CFX_WideString();
832
833 » CJS_Runtime* pRuntime = pContext->GetJSRuntime();
834 » ASSERT(pRuntime != NULL);
835
836 » pRuntime->BeginBlock();
837 //» FX_BOOL bRet = pApp->OpenURL(swURL);
838 » pRuntime->EndBlock();
839
840 //» return bRet;
841 » return FALSE;
842 } 803 }
843 804
844 FX_BOOL app::runtimeHighlight(OBJ_PROP_PARAMS) 805 FX_BOOL app::runtimeHighlight(OBJ_PROP_PARAMS)
845 { 806 {
846 if (vp.IsSetting()) 807 if (vp.IsSetting())
847 { 808 {
848 vp>>m_bRuntimeHighLight; 809 vp>>m_bRuntimeHighLight;
849 } 810 }
850 else 811 else
851 { 812 {
852 vp<<m_bRuntimeHighLight; 813 vp<<m_bRuntimeHighLight;
853 } 814 }
854 815
855 return TRUE; 816 return TRUE;
856 } 817 }
857 818
858 FX_BOOL app::fullscreen(OBJ_PROP_PARAMS) 819 FX_BOOL app::fullscreen(OBJ_PROP_PARAMS)
859 { 820 {
860 return FALSE; 821 return FALSE;
861 } 822 }
862 823
863 FX_BOOL app::popUpMenu(OBJ_METHOD_PARAMS) 824 FX_BOOL app::popUpMenu(OBJ_METHOD_PARAMS)
864 { 825 {
865 return FALSE; 826 return FALSE;
866 } 827 }
867 828
868 829
869 FX_BOOL app::browseForDoc(OBJ_METHOD_PARAMS) 830 FX_BOOL app::browseForDoc(OBJ_METHOD_PARAMS)
870 { 831 {
871 » //This method may trigger a "file save" dialog,while enable user to save contents of the document. 832 // Unsafe, not supported.
872 » //Such action is considered to be unsafe. 833 return TRUE;
873 » if (IsSafeMode(cc)) return TRUE;
874
875 » v8::Isolate* isolate = GetIsolate(cc);
876
877 » bool bSave = false;
878 » CFX_ByteString cFilenameInit = CFX_ByteString();
879 » CFX_ByteString cFSInit = CFX_ByteString();
880
881 » if(params.size()>0 && (params[0].GetType() == VT_object))
882 » {
883 » » JSObject pObj = (JSObject )params[0];
884
885 » » v8::Handle<v8::Value> pValue = JS_GetObjectElement(isolate,pObj, L"bSave");
886 » » » bSave = (bool)CJS_Value(isolate,pValue,GET_VALUE_TYPE(pV alue));
887 » »
888 » » pValue = JS_GetObjectElement(isolate, pObj,L"cFilenameInit");
889 » » {
890 » » » CJS_Value t = CJS_Value(isolate, pValue, GET_VALUE_TYPE( pValue));
891 » » » cFilenameInit = t.operator CFX_ByteString();
892 » » }
893 » »
894 » » pValue = JS_GetObjectElement(isolate,pObj,L"cFSInit");
895 » » {
896 » » » CJS_Value t = CJS_Value(isolate, pValue, GET_VALUE_TYPE( pValue));
897 » » » cFSInit = t.operator CFX_ByteString();
898 » » }
899 » }
900 » else
901 » {
902 » » if(params.size() >= 1)
903 » » {
904 » » » bSave = (bool)params[0];
905 » » }
906 » » if(params.size() >= 2)
907 » » {
908 » » » CJS_Value t = params[1];
909 » » » cFilenameInit = t.operator CFX_ByteString();
910 » » }
911 » » if(params.size() >= 3)
912 » » {
913 » » » CJS_Value t = params[2];
914 » » » cFSInit = t.operator CFX_ByteString();
915 » » }
916 » }
917 » CJS_Context* pContext = (CJS_Context *)cc;
918 » ASSERT(pContext != NULL);
919 »
920 » CPDFDoc_Environment* pApp = pContext->GetReaderApp();
921 » ASSERT(pApp != NULL);
922
923 » CJS_Runtime* pRuntime = pContext->GetJSRuntime();
924 » ASSERT(pRuntime != NULL);
925
926 » CFX_WideString wsFileNameInit = CFX_WideString::FromLocal(cFilenameInit) ;
927 » CFX_WideString wsFSInit = CFX_WideString::FromLocal(cFSInit);
928 » CFX_WideString wsFilePath = pApp->JS_appbrowseForDoc(bSave, wsFileNameIn it);
929 » if(wsFilePath.IsEmpty())
930 » » return FALSE;
931
932 » JSFXObject pRetObj = JS_NewFxDynamicObj(*pRuntime, pContext, -1);
933
934 » JS_PutObjectString(isolate,pRetObj, L"cPath", SysPathToPDFPath(wsFilePat h));»
935 » JS_PutObjectString(isolate,pRetObj, L"cURL", SysPathToPDFPath(wsFilePath ));
936
937 » if (!cFSInit.IsEmpty())
938 » {
939 » » JS_PutObjectString(isolate,pRetObj, L"cFS", CFX_WideString::From Local(cFSInit.GetBuffer(cFSInit.GetLength())));
940 » }
941 » else
942 » {
943 » » JS_PutObjectString(isolate,pRetObj, L"cFS", CFX_WideString::From Local("DOS"));
944 » }
945 »
946 » vRet =» pRetObj;
947
948 » return TRUE;
949 } 834 }
950 835
951 CFX_WideString app::SysPathToPDFPath(const CFX_WideString& sOldPath) 836 CFX_WideString app::SysPathToPDFPath(const CFX_WideString& sOldPath)
952 { 837 {
953 CFX_WideString sRet = L"/"; 838 CFX_WideString sRet = L"/";
954 » 839
955 for (int i=0,sz=sOldPath.GetLength(); i<sz; i++) 840 for (int i=0,sz=sOldPath.GetLength(); i<sz; i++)
956 { 841 {
957 wchar_t c = sOldPath.GetAt(i); 842 wchar_t c = sOldPath.GetAt(i);
958 if (c == L':') 843 if (c == L':')
959 { 844 {
960 } 845 }
961 else 846 else
962 { 847 {
963 if (c == L'\\') 848 if (c == L'\\')
964 { 849 {
965 sRet += L"/"; 850 sRet += L"/";
966 } 851 }
967 else 852 else
968 { 853 {
969 sRet += c; 854 sRet += c;
970 } 855 }
971 } 856 }
972 } 857 }
973 » 858
974 return sRet; 859 return sRet;
975 } 860 }
976 861
977 CFX_WideString app::PDFPathToSysPath(const CFX_WideString& sOldPath)
978 {
979 //strLPath = "D:\temporay.fdf";
980 CFX_WideString strOPath = sOldPath;
981 strOPath.TrimLeft();
982 strOPath.TrimRight();
983
984 if (strOPath.GetAt(0) == L'/' && strOPath.GetAt(2) == L'/')
985 {
986 wchar_t c_Drive = strOPath.GetAt(1);
987 if ((c_Drive >= L'a' && c_Drive <= L'z' )||( c_Drive >= L'A' && c_Drive <= L'Z'))
988 {
989 strOPath.Replace(L"/",L"\\");
990 //strOPath.SetAt(0,'');
991 strOPath.Insert(2,':');
992 strOPath.Delete(0);
993 }
994 }
995
996 return strOPath;
997 }
998
999 CFX_WideString app::RelativePathToSysPath(const CFX_WideString& sOldPath, const CFX_WideString& sFilePath)
1000 {
1001 // if (!PathIsRelative(sOldPath)) return sOldPath;
1002
1003 int nSplit = 0;
1004 for (int i=sFilePath.GetLength()-1; i>=0; i--)
1005 {
1006 if (sFilePath[i] == '\\' || sFilePath[i] == '/')
1007 {
1008 nSplit = i;
1009 break;
1010 }
1011 }
1012
1013 return sFilePath.Left(nSplit+1) + sOldPath;
1014 }
1015
1016 FX_BOOL app::newDoc(OBJ_METHOD_PARAMS) 862 FX_BOOL app::newDoc(OBJ_METHOD_PARAMS)
1017 { 863 {
1018 return FALSE; 864 return FALSE;
1019 } 865 }
1020 866
1021 FX_BOOL app::openDoc(OBJ_METHOD_PARAMS) 867 FX_BOOL app::openDoc(OBJ_METHOD_PARAMS)
1022 { 868 {
1023 return FALSE; 869 return FALSE;
1024 } 870 }
1025 871
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
1105 951
1106 FX_BOOL app::media(OBJ_PROP_PARAMS) 952 FX_BOOL app::media(OBJ_PROP_PARAMS)
1107 { 953 {
1108 return FALSE; 954 return FALSE;
1109 } 955 }
1110 956
1111 FX_BOOL app::execDialog(OBJ_METHOD_PARAMS) 957 FX_BOOL app::execDialog(OBJ_METHOD_PARAMS)
1112 { 958 {
1113 return TRUE; 959 return TRUE;
1114 } 960 }
1115
OLDNEW
« no previous file with comments | « fpdfsdk/src/javascript/JS_Object.cpp ('k') | fpdfsdk/src/javascript/report.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698