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 "fpdfsdk/include/fsdk_actionhandler.h" | 7 #include "fpdfsdk/include/fsdk_actionhandler.h" |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 | 10 |
11 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" | 11 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" |
12 #include "core/fpdfdoc/include/cpdf_formfield.h" | 12 #include "core/fpdfdoc/include/cpdf_formfield.h" |
13 #include "core/fpdfdoc/include/cpdf_interform.h" | 13 #include "core/fpdfdoc/include/cpdf_interform.h" |
14 #include "fpdfsdk/include/fsdk_define.h" | 14 #include "fpdfsdk/include/fsdk_define.h" |
15 #include "fpdfsdk/include/fsdk_mgr.h" | 15 #include "fpdfsdk/include/fsdk_mgr.h" |
16 #include "fpdfsdk/javascript/ijs_context.h" | 16 #include "fpdfsdk/javascript/ijs_context.h" |
17 #include "fpdfsdk/javascript/ijs_runtime.h" | 17 #include "fpdfsdk/javascript/ijs_runtime.h" |
18 #include "third_party/base/stl_util.h" | 18 #include "third_party/base/stl_util.h" |
19 | 19 |
20 CPDFSDK_ActionHandler::CPDFSDK_ActionHandler() | |
21 : m_pFormActionHandler(new CPDFSDK_FormActionHandler) {} | |
22 | |
23 CPDFSDK_ActionHandler::~CPDFSDK_ActionHandler() {} | |
24 | |
25 FX_BOOL CPDFSDK_ActionHandler::DoAction_DocOpen(const CPDF_Action& action, | 20 FX_BOOL CPDFSDK_ActionHandler::DoAction_DocOpen(const CPDF_Action& action, |
26 CPDFSDK_Document* pDocument) { | 21 CPDFSDK_Document* pDocument) { |
27 std::set<CPDF_Dictionary*> visited; | 22 std::set<CPDF_Dictionary*> visited; |
28 return ExecuteDocumentOpenAction(action, pDocument, &visited); | 23 return ExecuteDocumentOpenAction(action, pDocument, &visited); |
29 } | 24 } |
30 | 25 |
31 FX_BOOL CPDFSDK_ActionHandler::DoAction_JavaScript( | 26 FX_BOOL CPDFSDK_ActionHandler::DoAction_JavaScript( |
32 const CPDF_Action& JsAction, | 27 const CPDF_Action& JsAction, |
33 CFX_WideString csJSName, | 28 CFX_WideString csJSName, |
34 CPDFSDK_Document* pDocument) { | 29 CPDFSDK_Document* pDocument) { |
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
376 case CPDF_Action::Thread: | 371 case CPDF_Action::Thread: |
377 break; | 372 break; |
378 case CPDF_Action::URI: | 373 case CPDF_Action::URI: |
379 DoAction_URI(pDocument, action); | 374 DoAction_URI(pDocument, action); |
380 break; | 375 break; |
381 case CPDF_Action::Sound: | 376 case CPDF_Action::Sound: |
382 break; | 377 break; |
383 case CPDF_Action::Movie: | 378 case CPDF_Action::Movie: |
384 break; | 379 break; |
385 case CPDF_Action::Hide: | 380 case CPDF_Action::Hide: |
386 if (m_pFormActionHandler) { | 381 DoAction_Hide(action, pDocument); |
387 m_pFormActionHandler->DoAction_Hide(action, pDocument); | |
388 } | |
389 break; | 382 break; |
390 case CPDF_Action::Named: | 383 case CPDF_Action::Named: |
391 DoAction_Named(pDocument, action); | 384 DoAction_Named(pDocument, action); |
392 break; | 385 break; |
393 case CPDF_Action::SubmitForm: | 386 case CPDF_Action::SubmitForm: |
394 if (m_pFormActionHandler) { | 387 DoAction_SubmitForm(action, pDocument); |
395 m_pFormActionHandler->DoAction_SubmitForm(action, pDocument); | |
396 } | |
397 break; | 388 break; |
398 case CPDF_Action::ResetForm: | 389 case CPDF_Action::ResetForm: |
399 if (m_pFormActionHandler) { | 390 DoAction_ResetForm(action, pDocument); |
400 m_pFormActionHandler->DoAction_ResetForm(action, pDocument); | |
401 } | |
402 break; | 391 break; |
403 case CPDF_Action::ImportData: | 392 case CPDF_Action::ImportData: |
404 if (m_pFormActionHandler) { | 393 DoAction_ImportData(action, pDocument); |
405 m_pFormActionHandler->DoAction_ImportData(action, pDocument); | |
406 } | |
407 break; | 394 break; |
408 case CPDF_Action::JavaScript: | 395 case CPDF_Action::JavaScript: |
409 ASSERT(FALSE); | 396 ASSERT(FALSE); |
410 break; | 397 break; |
411 case CPDF_Action::SetOCGState: | 398 case CPDF_Action::SetOCGState: |
412 DoAction_SetOCGState(pDocument, action); | 399 DoAction_SetOCGState(pDocument, action); |
413 break; | 400 break; |
414 case CPDF_Action::Rendition: | 401 case CPDF_Action::Rendition: |
415 break; | 402 break; |
416 case CPDF_Action::Trans: | 403 case CPDF_Action::Trans: |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
599 | 586 |
600 CFX_WideString csInfo; | 587 CFX_WideString csInfo; |
601 FX_BOOL bRet = pContext->RunScript(script, &csInfo); | 588 FX_BOOL bRet = pContext->RunScript(script, &csInfo); |
602 if (!bRet) { | 589 if (!bRet) { |
603 // FIXME: return error. | 590 // FIXME: return error. |
604 } | 591 } |
605 | 592 |
606 pRuntime->ReleaseContext(pContext); | 593 pRuntime->ReleaseContext(pContext); |
607 } | 594 } |
608 | 595 |
609 FX_BOOL CPDFSDK_FormActionHandler::DoAction_Hide(const CPDF_Action& action, | 596 FX_BOOL CPDFSDK_ActionHandler::DoAction_Hide(const CPDF_Action& action, |
610 CPDFSDK_Document* pDocument) { | 597 CPDFSDK_Document* pDocument) { |
611 CPDFSDK_InterForm* pInterForm = pDocument->GetInterForm(); | 598 CPDFSDK_InterForm* pInterForm = pDocument->GetInterForm(); |
612 if (pInterForm->DoAction_Hide(action)) { | 599 if (pInterForm->DoAction_Hide(action)) { |
613 pDocument->SetChangeMark(); | 600 pDocument->SetChangeMark(); |
614 return TRUE; | 601 return TRUE; |
615 } | 602 } |
616 | 603 |
617 return FALSE; | 604 return FALSE; |
618 } | 605 } |
619 | 606 |
620 FX_BOOL CPDFSDK_FormActionHandler::DoAction_SubmitForm( | 607 FX_BOOL CPDFSDK_ActionHandler::DoAction_SubmitForm( |
621 const CPDF_Action& action, | 608 const CPDF_Action& action, |
622 CPDFSDK_Document* pDocument) { | 609 CPDFSDK_Document* pDocument) { |
623 CPDFSDK_InterForm* pInterForm = pDocument->GetInterForm(); | 610 CPDFSDK_InterForm* pInterForm = pDocument->GetInterForm(); |
624 return pInterForm->DoAction_SubmitForm(action); | 611 return pInterForm->DoAction_SubmitForm(action); |
625 } | 612 } |
626 | 613 |
627 FX_BOOL CPDFSDK_FormActionHandler::DoAction_ResetForm( | 614 FX_BOOL CPDFSDK_ActionHandler::DoAction_ResetForm(const CPDF_Action& action, |
628 const CPDF_Action& action, | 615 CPDFSDK_Document* pDocument) { |
629 CPDFSDK_Document* pDocument) { | |
630 CPDFSDK_InterForm* pInterForm = pDocument->GetInterForm(); | 616 CPDFSDK_InterForm* pInterForm = pDocument->GetInterForm(); |
631 return pInterForm->DoAction_ResetForm(action); | 617 return pInterForm->DoAction_ResetForm(action); |
632 } | 618 } |
633 | 619 |
634 FX_BOOL CPDFSDK_FormActionHandler::DoAction_ImportData( | 620 FX_BOOL CPDFSDK_ActionHandler::DoAction_ImportData( |
635 const CPDF_Action& action, | 621 const CPDF_Action& action, |
636 CPDFSDK_Document* pDocument) { | 622 CPDFSDK_Document* pDocument) { |
637 CPDFSDK_InterForm* pInterForm = pDocument->GetInterForm(); | 623 CPDFSDK_InterForm* pInterForm = pDocument->GetInterForm(); |
638 if (pInterForm->DoAction_ImportData(action)) { | 624 if (pInterForm->DoAction_ImportData(action)) { |
639 pDocument->SetChangeMark(); | 625 pDocument->SetChangeMark(); |
640 return TRUE; | 626 return TRUE; |
641 } | 627 } |
642 | 628 |
643 return FALSE; | 629 return FALSE; |
644 } | 630 } |
OLD | NEW |