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/fsdk_define.h" | 7 #include "../include/fsdk_define.h" |
8 #include "../include/fsdk_mgr.h" | 8 #include "../include/fsdk_mgr.h" |
9 #include "../include/fsdk_actionhandler.h" | 9 #include "../include/fsdk_actionhandler.h" |
10 #include "../include/javascript/IJavaScript.h" | 10 #include "../include/javascript/IJavaScript.h" |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 return FALSE; | 141 return FALSE; |
142 | 142 |
143 list.AddTail(pDict); | 143 list.AddTail(pDict); |
144 | 144 |
145 CPDFDoc_Environment* pEnv = pDocument->GetEnv(); | 145 CPDFDoc_Environment* pEnv = pDocument->GetEnv(); |
146 ASSERT(pEnv); | 146 ASSERT(pEnv); |
147 if (action.GetType() == CPDF_Action::JavaScript) { | 147 if (action.GetType() == CPDF_Action::JavaScript) { |
148 if (pEnv->IsJSInitiated()) { | 148 if (pEnv->IsJSInitiated()) { |
149 CFX_WideString swJS = action.GetJavaScript(); | 149 CFX_WideString swJS = action.GetJavaScript(); |
150 if (!swJS.IsEmpty()) { | 150 if (!swJS.IsEmpty()) { |
151 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); //???? | 151 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); |
152 ASSERT(pRuntime != NULL); | |
153 | |
154 pRuntime->SetReaderDocument(pDocument); | 152 pRuntime->SetReaderDocument(pDocument); |
155 | 153 |
156 IJS_Context* pContext = pRuntime->NewContext(); | 154 IJS_Context* pContext = pRuntime->NewContext(); |
157 ASSERT(pContext != NULL); | |
158 | |
159 pContext->OnLink_MouseUp(pDocument); | 155 pContext->OnLink_MouseUp(pDocument); |
160 | 156 |
161 CFX_WideString csInfo; | 157 CFX_WideString csInfo; |
162 FX_BOOL bRet = pContext->RunScript(swJS, csInfo); | 158 FX_BOOL bRet = pContext->RunScript(swJS, &csInfo); |
163 if (!bRet) { | 159 if (!bRet) { |
164 // FIXME: return error. | 160 // FIXME: return error. |
165 } | 161 } |
166 | 162 |
167 pRuntime->ReleaseContext(pContext); | 163 pRuntime->ReleaseContext(pContext); |
168 } | 164 } |
169 } | 165 } |
170 } else { | 166 } else { |
171 DoAction_NoJs(action, pDocument); | 167 DoAction_NoJs(action, pDocument); |
172 } | 168 } |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
285 | 281 |
286 list.AddTail(pDict); | 282 list.AddTail(pDict); |
287 | 283 |
288 CPDFDoc_Environment* pEnv = pDocument->GetEnv(); | 284 CPDFDoc_Environment* pEnv = pDocument->GetEnv(); |
289 ASSERT(pEnv); | 285 ASSERT(pEnv); |
290 if (action.GetType() == CPDF_Action::JavaScript) { | 286 if (action.GetType() == CPDF_Action::JavaScript) { |
291 if (pEnv->IsJSInitiated()) { | 287 if (pEnv->IsJSInitiated()) { |
292 CFX_WideString swJS = action.GetJavaScript(); | 288 CFX_WideString swJS = action.GetJavaScript(); |
293 if (!swJS.IsEmpty()) { | 289 if (!swJS.IsEmpty()) { |
294 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); | 290 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); |
295 ASSERT(pRuntime != NULL); | |
296 | |
297 pRuntime->SetReaderDocument(pDocument); | 291 pRuntime->SetReaderDocument(pDocument); |
298 | 292 |
299 IJS_Context* pContext = pRuntime->NewContext(); | 293 IJS_Context* pContext = pRuntime->NewContext(); |
300 ASSERT(pContext != NULL); | |
301 | |
302 // switch (type) | |
303 // { | |
304 // case CPDF_AAction::CursorEnter: | |
305 // pContext->OnScreen_MouseEnter(IsCTRLpres
sed(), | |
306 // IsSHIFTpressed(), pScreen); | |
307 // break; | |
308 // case CPDF_AAction::CursorExit: | |
309 // pContext->OnScreen_MouseExit(IsCTRLpress
ed(), | |
310 // IsSHIFTpressed(), pScreen); | |
311 // break; | |
312 // case CPDF_AAction::ButtonDown: | |
313 // pContext->OnScreen_MouseDown(IsCTRLpress
ed(), | |
314 // IsSHIFTpressed(), pScreen); | |
315 // break; | |
316 // case CPDF_AAction::ButtonUp: | |
317 // pContext->OnScreen_MouseUp(IsCTRLpressed
(), | |
318 // IsSHIFTpressed(), pScreen); | |
319 // break; | |
320 // case CPDF_AAction::GetFocus: | |
321 // pContext->OnScreen_Focus(IsCTRLpressed()
, | |
322 // IsSHIFTpressed(), pScreen); | |
323 // break; | |
324 // case CPDF_AAction::LoseFocus: | |
325 // pContext->OnScreen_Blur(IsCTRLpressed(), | |
326 // IsSHIFTpressed(), pScreen); | |
327 // break; | |
328 // case CPDF_AAction::PageOpen: | |
329 // pContext->OnScreen_Open(IsCTRLpressed(), | |
330 // IsSHIFTpressed(), pScreen); | |
331 // break; | |
332 // case CPDF_AAction::PageClose: | |
333 // pContext->OnScreen_Close(IsCTRLpressed()
, | |
334 // IsSHIFTpressed(), pScreen); | |
335 // break; | |
336 // case CPDF_AAction::PageVisible: | |
337 // pContext->OnScreen_InView(IsCTRLpressed(
), | |
338 // IsSHIFTpressed(), pScreen); | |
339 // break; | |
340 // case CPDF_AAction::PageInvisible: | |
341 // pContext->OnScreen_OutView(IsCTRLpressed
(), | |
342 // IsSHIFTpressed(), pScreen); | |
343 // break; | |
344 // default: | |
345 // ASSERT(FALSE); | |
346 // break; | |
347 // } | |
348 | |
349 CFX_WideString csInfo; | 294 CFX_WideString csInfo; |
350 FX_BOOL bRet = pContext->RunScript(swJS, csInfo); | 295 FX_BOOL bRet = pContext->RunScript(swJS, &csInfo); |
351 if (!bRet) { | 296 if (!bRet) { |
352 // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), | 297 // FIXME: return error. |
353 // csInfo); | |
354 } | 298 } |
355 | 299 |
356 pRuntime->ReleaseContext(pContext); | 300 pRuntime->ReleaseContext(pContext); |
357 } | 301 } |
358 } | 302 } |
359 } else { | 303 } else { |
360 DoAction_NoJs(action, pDocument); | 304 DoAction_NoJs(action, pDocument); |
361 } | 305 } |
362 | 306 |
363 for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) { | 307 for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) { |
(...skipping 17 matching lines...) Expand all Loading... |
381 | 325 |
382 list.AddTail(pDict); | 326 list.AddTail(pDict); |
383 | 327 |
384 CPDFDoc_Environment* pEnv = pDocument->GetEnv(); | 328 CPDFDoc_Environment* pEnv = pDocument->GetEnv(); |
385 ASSERT(pEnv); | 329 ASSERT(pEnv); |
386 if (action.GetType() == CPDF_Action::JavaScript) { | 330 if (action.GetType() == CPDF_Action::JavaScript) { |
387 if (pEnv->IsJSInitiated()) { | 331 if (pEnv->IsJSInitiated()) { |
388 CFX_WideString swJS = action.GetJavaScript(); | 332 CFX_WideString swJS = action.GetJavaScript(); |
389 if (!swJS.IsEmpty()) { | 333 if (!swJS.IsEmpty()) { |
390 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); | 334 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); |
391 ASSERT(pRuntime != NULL); | |
392 | |
393 pRuntime->SetReaderDocument(pDocument); | 335 pRuntime->SetReaderDocument(pDocument); |
394 | 336 |
395 IJS_Context* pContext = pRuntime->NewContext(); | 337 IJS_Context* pContext = pRuntime->NewContext(); |
396 ASSERT(pContext != NULL); | |
397 | |
398 pContext->OnBookmark_MouseUp(pBookmark); | 338 pContext->OnBookmark_MouseUp(pBookmark); |
399 | 339 |
400 CFX_WideString csInfo; | 340 CFX_WideString csInfo; |
401 FX_BOOL bRet = pContext->RunScript(swJS, csInfo); | 341 FX_BOOL bRet = pContext->RunScript(swJS, &csInfo); |
402 if (!bRet) { | 342 if (!bRet) { |
403 // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), | 343 // FIXME: return error. |
404 // csInfo); | |
405 } | 344 } |
406 | 345 |
407 pRuntime->ReleaseContext(pContext); | 346 pRuntime->ReleaseContext(pContext); |
408 } | 347 } |
409 } | 348 } |
410 } else { | 349 } else { |
411 DoAction_NoJs(action, pDocument); | 350 DoAction_NoJs(action, pDocument); |
412 } | 351 } |
413 | 352 |
414 for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) { | 353 for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) { |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
594 pContext->OnField_Validate(data.sChange, data.sChangeEx, data.bKeyDown, | 533 pContext->OnField_Validate(data.sChange, data.sChangeEx, data.bKeyDown, |
595 data.bModifier, data.bShift, pFormField, | 534 data.bModifier, data.bShift, pFormField, |
596 data.sValue, data.bRC); | 535 data.sValue, data.bRC); |
597 break; | 536 break; |
598 default: | 537 default: |
599 ASSERT(FALSE); | 538 ASSERT(FALSE); |
600 break; | 539 break; |
601 } | 540 } |
602 | 541 |
603 CFX_WideString csInfo; | 542 CFX_WideString csInfo; |
604 FX_BOOL bRet = pContext->RunScript(script, csInfo); | 543 FX_BOOL bRet = pContext->RunScript(script, &csInfo); |
605 if (!bRet) { | 544 if (!bRet) { |
606 // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo); | 545 // FIXME: return error. |
607 } | 546 } |
608 | 547 |
609 pRuntime->ReleaseContext(pContext); | 548 pRuntime->ReleaseContext(pContext); |
610 } | 549 } |
611 | 550 |
612 void CPDFSDK_ActionHandler::RunDocumentOpenJavaScript( | 551 void CPDFSDK_ActionHandler::RunDocumentOpenJavaScript( |
613 CPDFSDK_Document* pDocument, | 552 CPDFSDK_Document* pDocument, |
614 const CFX_WideString& sScriptName, | 553 const CFX_WideString& sScriptName, |
615 const CFX_WideString& script) { | 554 const CFX_WideString& script) { |
616 ASSERT(pDocument != NULL); | 555 ASSERT(pDocument != NULL); |
617 | 556 |
618 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); | 557 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); |
619 ASSERT(pRuntime != NULL); | 558 ASSERT(pRuntime != NULL); |
620 | 559 |
621 pRuntime->SetReaderDocument(pDocument); | 560 pRuntime->SetReaderDocument(pDocument); |
622 | 561 |
623 IJS_Context* pContext = pRuntime->NewContext(); | 562 IJS_Context* pContext = pRuntime->NewContext(); |
624 ASSERT(pContext != NULL); | 563 ASSERT(pContext != NULL); |
625 | 564 |
626 pContext->OnDoc_Open(pDocument, sScriptName); | 565 pContext->OnDoc_Open(pDocument, sScriptName); |
627 | 566 |
628 CFX_WideString csInfo; | 567 CFX_WideString csInfo; |
629 FX_BOOL bRet = pContext->RunScript(script, csInfo); | 568 FX_BOOL bRet = pContext->RunScript(script, &csInfo); |
630 if (!bRet) { | 569 if (!bRet) { |
631 // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo); | 570 // FIXME: return error. |
632 } | 571 } |
633 | 572 |
634 pRuntime->ReleaseContext(pContext); | 573 pRuntime->ReleaseContext(pContext); |
635 } | 574 } |
636 | 575 |
637 void CPDFSDK_ActionHandler::RunDocumentPageJavaScript( | 576 void CPDFSDK_ActionHandler::RunDocumentPageJavaScript( |
638 CPDFSDK_Document* pDocument, | 577 CPDFSDK_Document* pDocument, |
639 CPDF_AAction::AActionType type, | 578 CPDF_AAction::AActionType type, |
640 const CFX_WideString& script) { | 579 const CFX_WideString& script) { |
641 ASSERT(pDocument != NULL); | 580 ASSERT(pDocument != NULL); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
675 break; | 614 break; |
676 case CPDF_AAction::PageInvisible: | 615 case CPDF_AAction::PageInvisible: |
677 pContext->OnPage_OutView(pDocument); | 616 pContext->OnPage_OutView(pDocument); |
678 break; | 617 break; |
679 default: | 618 default: |
680 ASSERT(FALSE); | 619 ASSERT(FALSE); |
681 break; | 620 break; |
682 } | 621 } |
683 | 622 |
684 CFX_WideString csInfo; | 623 CFX_WideString csInfo; |
685 FX_BOOL bRet = pContext->RunScript(script, csInfo); | 624 FX_BOOL bRet = pContext->RunScript(script, &csInfo); |
686 if (!bRet) { | 625 if (!bRet) { |
687 // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo); | 626 // FIXME: return error. |
688 } | 627 } |
689 | 628 |
690 pRuntime->ReleaseContext(pContext); | 629 pRuntime->ReleaseContext(pContext); |
691 } | 630 } |
692 | 631 |
693 FX_BOOL CPDFSDK_FormActionHandler::DoAction_Hide(const CPDF_Action& action, | 632 FX_BOOL CPDFSDK_FormActionHandler::DoAction_Hide(const CPDF_Action& action, |
694 CPDFSDK_Document* pDocument) { | 633 CPDFSDK_Document* pDocument) { |
695 ASSERT(pDocument != NULL); | 634 ASSERT(pDocument != NULL); |
696 | 635 |
697 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm(); | 636 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm(); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
739 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm(); | 678 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm(); |
740 ASSERT(pInterForm != NULL); | 679 ASSERT(pInterForm != NULL); |
741 | 680 |
742 if (pInterForm->DoAction_ImportData(action)) { | 681 if (pInterForm->DoAction_ImportData(action)) { |
743 pDocument->SetChangeMark(); | 682 pDocument->SetChangeMark(); |
744 return TRUE; | 683 return TRUE; |
745 } | 684 } |
746 | 685 |
747 return FALSE; | 686 return FALSE; |
748 } | 687 } |
OLD | NEW |