| 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/javascript/JS_EventHandler.h" | 7 #include "fpdfsdk/javascript/JS_EventHandler.h" |
| 8 | 8 |
| 9 #include "fpdfsdk/javascript/Document.h" | 9 #include "fpdfsdk/javascript/Document.h" |
| 10 #include "fpdfsdk/javascript/Field.h" | 10 #include "fpdfsdk/javascript/Field.h" |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 m_bShift(FALSE), | 25 m_bShift(FALSE), |
| 26 m_pISelEnd(nullptr), | 26 m_pISelEnd(nullptr), |
| 27 m_nSelEndDu(0), | 27 m_nSelEndDu(0), |
| 28 m_pISelStart(nullptr), | 28 m_pISelStart(nullptr), |
| 29 m_nSelStartDu(0), | 29 m_nSelStartDu(0), |
| 30 m_bWillCommit(FALSE), | 30 m_bWillCommit(FALSE), |
| 31 m_pValue(nullptr), | 31 m_pValue(nullptr), |
| 32 m_bFieldFull(FALSE), | 32 m_bFieldFull(FALSE), |
| 33 m_pbRc(nullptr), | 33 m_pbRc(nullptr), |
| 34 m_bRcDu(FALSE), | 34 m_bRcDu(FALSE), |
| 35 m_pSourceDoc(nullptr), | |
| 36 m_pTargetBookMark(nullptr), | 35 m_pTargetBookMark(nullptr), |
| 37 m_pTargetDoc(nullptr), | 36 m_pTargetFormFillEnv(nullptr), |
| 38 m_pTargetAnnot(nullptr) {} | 37 m_pTargetAnnot(nullptr) {} |
| 39 | 38 |
| 40 CJS_EventHandler::~CJS_EventHandler() {} | 39 CJS_EventHandler::~CJS_EventHandler() {} |
| 41 | 40 |
| 42 void CJS_EventHandler::OnApp_Init() { | 41 void CJS_EventHandler::OnApp_Init() { |
| 43 Initial(JET_APP_INIT); | 42 Initial(JET_APP_INIT); |
| 44 } | 43 } |
| 45 | 44 |
| 46 void CJS_EventHandler::OnDoc_Open(CPDFSDK_Document* pDoc, | 45 void CJS_EventHandler::OnDoc_Open(CPDFSDK_FormFillEnvironment* pFormFillEnv, |
| 47 const CFX_WideString& strTargetName) { | 46 const CFX_WideString& strTargetName) { |
| 48 Initial(JET_DOC_OPEN); | 47 Initial(JET_DOC_OPEN); |
| 49 | 48 m_pTargetFormFillEnv = pFormFillEnv; |
| 50 m_pTargetDoc = pDoc; | |
| 51 m_strTargetName = strTargetName; | 49 m_strTargetName = strTargetName; |
| 52 } | 50 } |
| 53 | 51 |
| 54 void CJS_EventHandler::OnDoc_WillPrint(CPDFSDK_Document* pDoc) { | 52 void CJS_EventHandler::OnDoc_WillPrint( |
| 53 CPDFSDK_FormFillEnvironment* pFormFillEnv) { |
| 55 Initial(JET_DOC_WILLPRINT); | 54 Initial(JET_DOC_WILLPRINT); |
| 56 | 55 m_pTargetFormFillEnv = pFormFillEnv; |
| 57 m_pTargetDoc = pDoc; | |
| 58 } | 56 } |
| 59 | 57 |
| 60 void CJS_EventHandler::OnDoc_DidPrint(CPDFSDK_Document* pDoc) { | 58 void CJS_EventHandler::OnDoc_DidPrint( |
| 59 CPDFSDK_FormFillEnvironment* pFormFillEnv) { |
| 61 Initial(JET_DOC_DIDPRINT); | 60 Initial(JET_DOC_DIDPRINT); |
| 62 | 61 m_pTargetFormFillEnv = pFormFillEnv; |
| 63 m_pTargetDoc = pDoc; | |
| 64 } | 62 } |
| 65 | 63 |
| 66 void CJS_EventHandler::OnDoc_WillSave(CPDFSDK_Document* pDoc) { | 64 void CJS_EventHandler::OnDoc_WillSave( |
| 65 CPDFSDK_FormFillEnvironment* pFormFillEnv) { |
| 67 Initial(JET_DOC_WILLSAVE); | 66 Initial(JET_DOC_WILLSAVE); |
| 68 m_pTargetDoc = pDoc; | 67 m_pTargetFormFillEnv = pFormFillEnv; |
| 69 } | 68 } |
| 70 | 69 |
| 71 void CJS_EventHandler::OnDoc_DidSave(CPDFSDK_Document* pDoc) { | 70 void CJS_EventHandler::OnDoc_DidSave( |
| 71 CPDFSDK_FormFillEnvironment* pFormFillEnv) { |
| 72 Initial(JET_DOC_DIDSAVE); | 72 Initial(JET_DOC_DIDSAVE); |
| 73 | 73 m_pTargetFormFillEnv = pFormFillEnv; |
| 74 m_pTargetDoc = pDoc; | |
| 75 } | 74 } |
| 76 | 75 |
| 77 void CJS_EventHandler::OnDoc_WillClose(CPDFSDK_Document* pDoc) { | 76 void CJS_EventHandler::OnDoc_WillClose( |
| 77 CPDFSDK_FormFillEnvironment* pFormFillEnv) { |
| 78 Initial(JET_DOC_WILLCLOSE); | 78 Initial(JET_DOC_WILLCLOSE); |
| 79 | 79 m_pTargetFormFillEnv = pFormFillEnv; |
| 80 m_pTargetDoc = pDoc; | |
| 81 } | 80 } |
| 82 | 81 |
| 83 void CJS_EventHandler::OnPage_Open(CPDFSDK_Document* pDoc) { | 82 void CJS_EventHandler::OnPage_Open(CPDFSDK_FormFillEnvironment* pFormFillEnv) { |
| 84 Initial(JET_PAGE_OPEN); | 83 Initial(JET_PAGE_OPEN); |
| 85 | 84 m_pTargetFormFillEnv = pFormFillEnv; |
| 86 m_pTargetDoc = pDoc; | |
| 87 } | 85 } |
| 88 | 86 |
| 89 void CJS_EventHandler::OnPage_Close(CPDFSDK_Document* pDoc) { | 87 void CJS_EventHandler::OnPage_Close(CPDFSDK_FormFillEnvironment* pFormFillEnv) { |
| 90 Initial(JET_PAGE_CLOSE); | 88 Initial(JET_PAGE_CLOSE); |
| 91 | 89 m_pTargetFormFillEnv = pFormFillEnv; |
| 92 m_pTargetDoc = pDoc; | |
| 93 } | 90 } |
| 94 | 91 |
| 95 void CJS_EventHandler::OnPage_InView(CPDFSDK_Document* pDoc) { | 92 void CJS_EventHandler::OnPage_InView( |
| 93 CPDFSDK_FormFillEnvironment* pFormFillEnv) { |
| 96 Initial(JET_PAGE_INVIEW); | 94 Initial(JET_PAGE_INVIEW); |
| 97 | 95 m_pTargetFormFillEnv = pFormFillEnv; |
| 98 m_pTargetDoc = pDoc; | |
| 99 } | 96 } |
| 100 | 97 |
| 101 void CJS_EventHandler::OnPage_OutView(CPDFSDK_Document* pDoc) { | 98 void CJS_EventHandler::OnPage_OutView( |
| 99 CPDFSDK_FormFillEnvironment* pFormFillEnv) { |
| 102 Initial(JET_PAGE_OUTVIEW); | 100 Initial(JET_PAGE_OUTVIEW); |
| 103 | 101 m_pTargetFormFillEnv = pFormFillEnv; |
| 104 m_pTargetDoc = pDoc; | |
| 105 } | 102 } |
| 106 | 103 |
| 107 void CJS_EventHandler::OnField_MouseEnter(FX_BOOL bModifier, | 104 void CJS_EventHandler::OnField_MouseEnter(FX_BOOL bModifier, |
| 108 FX_BOOL bShift, | 105 FX_BOOL bShift, |
| 109 CPDF_FormField* pTarget) { | 106 CPDF_FormField* pTarget) { |
| 110 Initial(JET_FIELD_MOUSEENTER); | 107 Initial(JET_FIELD_MOUSEENTER); |
| 111 | 108 |
| 112 m_bModifier = bModifier; | 109 m_bModifier = bModifier; |
| 113 m_bShift = bShift; | 110 m_bShift = bShift; |
| 114 | 111 |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 void CJS_EventHandler::OnScreen_OutView(FX_BOOL bModifier, | 333 void CJS_EventHandler::OnScreen_OutView(FX_BOOL bModifier, |
| 337 FX_BOOL bShift, | 334 FX_BOOL bShift, |
| 338 CPDFSDK_Annot* pScreen) { | 335 CPDFSDK_Annot* pScreen) { |
| 339 Initial(JET_SCREEN_OUTVIEW); | 336 Initial(JET_SCREEN_OUTVIEW); |
| 340 | 337 |
| 341 m_bModifier = bModifier; | 338 m_bModifier = bModifier; |
| 342 m_bShift = bShift; | 339 m_bShift = bShift; |
| 343 m_pTargetAnnot = pScreen; | 340 m_pTargetAnnot = pScreen; |
| 344 } | 341 } |
| 345 | 342 |
| 346 void CJS_EventHandler::OnLink_MouseUp(CPDFSDK_Document* pTarget) { | 343 void CJS_EventHandler::OnLink_MouseUp( |
| 344 CPDFSDK_FormFillEnvironment* pTargetFormFillEnv) { |
| 347 Initial(JET_LINK_MOUSEUP); | 345 Initial(JET_LINK_MOUSEUP); |
| 348 | 346 m_pTargetFormFillEnv = pTargetFormFillEnv; |
| 349 m_pTargetDoc = pTarget; | |
| 350 } | 347 } |
| 351 | 348 |
| 352 void CJS_EventHandler::OnBookmark_MouseUp(CPDF_Bookmark* pBookMark) { | 349 void CJS_EventHandler::OnBookmark_MouseUp(CPDF_Bookmark* pBookMark) { |
| 353 Initial(JET_BOOKMARK_MOUSEUP); | 350 Initial(JET_BOOKMARK_MOUSEUP); |
| 354 | 351 |
| 355 m_pTargetBookMark = pBookMark; | 352 m_pTargetBookMark = pBookMark; |
| 356 } | 353 } |
| 357 | 354 |
| 358 void CJS_EventHandler::OnMenu_Exec(CPDFSDK_Document* pTarget, | 355 void CJS_EventHandler::OnMenu_Exec( |
| 359 const CFX_WideString& strTargetName) { | 356 CPDFSDK_FormFillEnvironment* pTargetFormFillEnv, |
| 357 const CFX_WideString& strTargetName) { |
| 360 Initial(JET_MENU_EXEC); | 358 Initial(JET_MENU_EXEC); |
| 361 | 359 m_pTargetFormFillEnv = pTargetFormFillEnv; |
| 362 m_pTargetDoc = pTarget; | |
| 363 m_strTargetName = strTargetName; | 360 m_strTargetName = strTargetName; |
| 364 } | 361 } |
| 365 | 362 |
| 366 void CJS_EventHandler::OnExternal_Exec() { | 363 void CJS_EventHandler::OnExternal_Exec() { |
| 367 Initial(JET_EXTERNAL_EXEC); | 364 Initial(JET_EXTERNAL_EXEC); |
| 368 } | 365 } |
| 369 | 366 |
| 370 void CJS_EventHandler::OnBatchExec(CPDFSDK_Document* pTarget) { | 367 void CJS_EventHandler::OnBatchExec( |
| 368 CPDFSDK_FormFillEnvironment* pTargetFormFillEnv) { |
| 371 Initial(JET_BATCH_EXEC); | 369 Initial(JET_BATCH_EXEC); |
| 372 | 370 m_pTargetFormFillEnv = pTargetFormFillEnv; |
| 373 m_pTargetDoc = pTarget; | |
| 374 } | 371 } |
| 375 | 372 |
| 376 void CJS_EventHandler::OnConsole_Exec() { | 373 void CJS_EventHandler::OnConsole_Exec() { |
| 377 Initial(JET_CONSOLE_EXEC); | 374 Initial(JET_CONSOLE_EXEC); |
| 378 } | 375 } |
| 379 | 376 |
| 380 void CJS_EventHandler::Initial(JS_EVENT_T type) { | 377 void CJS_EventHandler::Initial(JS_EVENT_T type) { |
| 381 m_eEventType = type; | 378 m_eEventType = type; |
| 382 | 379 |
| 383 m_strTargetName = L""; | 380 m_strTargetName = L""; |
| 384 m_strSourceName = L""; | 381 m_strSourceName = L""; |
| 385 m_pWideStrChange = nullptr; | 382 m_pWideStrChange = nullptr; |
| 386 m_WideStrChangeDu = L""; | 383 m_WideStrChangeDu = L""; |
| 387 m_WideStrChangeEx = L""; | 384 m_WideStrChangeEx = L""; |
| 388 m_nCommitKey = -1; | 385 m_nCommitKey = -1; |
| 389 m_bKeyDown = FALSE; | 386 m_bKeyDown = FALSE; |
| 390 m_bModifier = FALSE; | 387 m_bModifier = FALSE; |
| 391 m_bShift = FALSE; | 388 m_bShift = FALSE; |
| 392 m_pISelEnd = nullptr; | 389 m_pISelEnd = nullptr; |
| 393 m_nSelEndDu = 0; | 390 m_nSelEndDu = 0; |
| 394 m_pISelStart = nullptr; | 391 m_pISelStart = nullptr; |
| 395 m_nSelStartDu = 0; | 392 m_nSelStartDu = 0; |
| 396 m_bWillCommit = FALSE; | 393 m_bWillCommit = FALSE; |
| 397 m_pValue = nullptr; | 394 m_pValue = nullptr; |
| 398 m_bFieldFull = FALSE; | 395 m_bFieldFull = FALSE; |
| 399 m_pbRc = nullptr; | 396 m_pbRc = nullptr; |
| 400 m_bRcDu = FALSE; | 397 m_bRcDu = FALSE; |
| 401 | 398 |
| 402 m_pSourceDoc = nullptr; | |
| 403 m_pTargetBookMark = nullptr; | 399 m_pTargetBookMark = nullptr; |
| 404 m_pTargetDoc = nullptr; | 400 m_pTargetFormFillEnv = nullptr; |
| 405 m_pTargetAnnot = nullptr; | 401 m_pTargetAnnot = nullptr; |
| 406 | 402 |
| 407 m_bValid = TRUE; | 403 m_bValid = TRUE; |
| 408 } | 404 } |
| 409 | 405 |
| 410 void CJS_EventHandler::Destroy() { | 406 void CJS_EventHandler::Destroy() { |
| 411 m_bValid = FALSE; | 407 m_bValid = FALSE; |
| 412 } | 408 } |
| 413 | 409 |
| 414 FX_BOOL CJS_EventHandler::IsValid() { | 410 FX_BOOL CJS_EventHandler::IsValid() { |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 599 pRuntime->NewFxDynamicObj(CJS_Document::g_nObjDefnID); | 595 pRuntime->NewFxDynamicObj(CJS_Document::g_nObjDefnID); |
| 600 ASSERT(!pDocObj.IsEmpty()); | 596 ASSERT(!pDocObj.IsEmpty()); |
| 601 | 597 |
| 602 v8::Local<v8::Object> pFieldObj = | 598 v8::Local<v8::Object> pFieldObj = |
| 603 pRuntime->NewFxDynamicObj(CJS_Field::g_nObjDefnID); | 599 pRuntime->NewFxDynamicObj(CJS_Field::g_nObjDefnID); |
| 604 ASSERT(!pFieldObj.IsEmpty()); | 600 ASSERT(!pFieldObj.IsEmpty()); |
| 605 | 601 |
| 606 CJS_Document* pJSDocument = | 602 CJS_Document* pJSDocument = |
| 607 static_cast<CJS_Document*>(pRuntime->GetObjectPrivate(pDocObj)); | 603 static_cast<CJS_Document*>(pRuntime->GetObjectPrivate(pDocObj)); |
| 608 Document* pDocument = (Document*)pJSDocument->GetEmbedObject(); | 604 Document* pDocument = (Document*)pJSDocument->GetEmbedObject(); |
| 609 pDocument->AttachDoc(m_pTargetDoc ? m_pTargetDoc | 605 pDocument->AttachDoc(m_pTargetFormFillEnv |
| 610 : m_pJSContext->GetReaderDocument()); | 606 ? m_pTargetFormFillEnv->GetSDKDocument() |
| 607 : m_pJSContext->GetFormFillEnv()->GetSDKDocument()); |
| 611 | 608 |
| 612 CJS_Field* pJSField = | 609 CJS_Field* pJSField = |
| 613 static_cast<CJS_Field*>(pRuntime->GetObjectPrivate(pFieldObj)); | 610 static_cast<CJS_Field*>(pRuntime->GetObjectPrivate(pFieldObj)); |
| 614 Field* pField = (Field*)pJSField->GetEmbedObject(); | 611 Field* pField = (Field*)pJSField->GetEmbedObject(); |
| 615 pField->AttachField(pDocument, m_strSourceName); | 612 pField->AttachField(pDocument, m_strSourceName); |
| 616 return pField; | 613 return pField; |
| 617 } | 614 } |
| 618 | 615 |
| 619 Field* CJS_EventHandler::Target_Field() { | 616 Field* CJS_EventHandler::Target_Field() { |
| 620 CJS_Runtime* pRuntime = m_pJSContext->GetJSRuntime(); | 617 CJS_Runtime* pRuntime = m_pJSContext->GetJSRuntime(); |
| 621 v8::Local<v8::Object> pDocObj = | 618 v8::Local<v8::Object> pDocObj = |
| 622 pRuntime->NewFxDynamicObj(CJS_Document::g_nObjDefnID); | 619 pRuntime->NewFxDynamicObj(CJS_Document::g_nObjDefnID); |
| 623 ASSERT(!pDocObj.IsEmpty()); | 620 ASSERT(!pDocObj.IsEmpty()); |
| 624 | 621 |
| 625 v8::Local<v8::Object> pFieldObj = | 622 v8::Local<v8::Object> pFieldObj = |
| 626 pRuntime->NewFxDynamicObj(CJS_Field::g_nObjDefnID); | 623 pRuntime->NewFxDynamicObj(CJS_Field::g_nObjDefnID); |
| 627 ASSERT(!pFieldObj.IsEmpty()); | 624 ASSERT(!pFieldObj.IsEmpty()); |
| 628 | 625 |
| 629 CJS_Document* pJSDocument = | 626 CJS_Document* pJSDocument = |
| 630 static_cast<CJS_Document*>(pRuntime->GetObjectPrivate(pDocObj)); | 627 static_cast<CJS_Document*>(pRuntime->GetObjectPrivate(pDocObj)); |
| 631 Document* pDocument = (Document*)pJSDocument->GetEmbedObject(); | 628 Document* pDocument = (Document*)pJSDocument->GetEmbedObject(); |
| 632 pDocument->AttachDoc(m_pTargetDoc ? m_pTargetDoc | 629 pDocument->AttachDoc(m_pTargetFormFillEnv |
| 633 : m_pJSContext->GetReaderDocument()); | 630 ? m_pTargetFormFillEnv->GetSDKDocument() |
| 631 : m_pJSContext->GetFormFillEnv()->GetSDKDocument()); |
| 634 | 632 |
| 635 CJS_Field* pJSField = | 633 CJS_Field* pJSField = |
| 636 static_cast<CJS_Field*>(pRuntime->GetObjectPrivate(pFieldObj)); | 634 static_cast<CJS_Field*>(pRuntime->GetObjectPrivate(pFieldObj)); |
| 637 Field* pField = (Field*)pJSField->GetEmbedObject(); | 635 Field* pField = (Field*)pJSField->GetEmbedObject(); |
| 638 pField->AttachField(pDocument, m_strTargetName); | 636 pField->AttachField(pDocument, m_strTargetName); |
| 639 return pField; | 637 return pField; |
| 640 } | 638 } |
| 641 | 639 |
| 642 CFX_WideString& CJS_EventHandler::Value() { | 640 CFX_WideString& CJS_EventHandler::Value() { |
| 643 return *m_pValue; | 641 return *m_pValue; |
| 644 } | 642 } |
| 645 | 643 |
| 646 FX_BOOL CJS_EventHandler::WillCommit() { | 644 FX_BOOL CJS_EventHandler::WillCommit() { |
| 647 return m_bWillCommit; | 645 return m_bWillCommit; |
| 648 } | 646 } |
| 649 | 647 |
| 650 CFX_WideString CJS_EventHandler::TargetName() { | 648 CFX_WideString CJS_EventHandler::TargetName() { |
| 651 return m_strTargetName; | 649 return m_strTargetName; |
| 652 } | 650 } |
| OLD | NEW |