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 "xfa/fxfa/parser/xfa_script_hostpseudomodel.h" | 7 #include "xfa/fxfa/parser/xfa_script_hostpseudomodel.h" |
8 | 8 |
9 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h" | 9 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h" |
10 #include "xfa/fxfa/parser/xfa_docdata.h" | 10 #include "xfa/fxfa/parser/xfa_docdata.h" |
11 #include "xfa/fxfa/parser/xfa_doclayout.h" | 11 #include "xfa/fxfa/parser/xfa_doclayout.h" |
12 #include "xfa/fxfa/parser/xfa_document.h" | 12 #include "xfa/fxfa/parser/xfa_document.h" |
13 #include "xfa/fxfa/parser/xfa_localemgr.h" | 13 #include "xfa/fxfa/parser/xfa_localemgr.h" |
14 #include "xfa/fxfa/parser/xfa_object.h" | 14 #include "xfa/fxfa/parser/xfa_object.h" |
15 #include "xfa/fxfa/parser/xfa_parser.h" | 15 #include "xfa/fxfa/parser/xfa_parser.h" |
16 #include "xfa/fxfa/parser/xfa_script.h" | 16 #include "xfa/fxfa/parser/xfa_script.h" |
17 #include "xfa/fxfa/parser/xfa_utils.h" | 17 #include "xfa/fxfa/parser/xfa_utils.h" |
18 #include "xfa/fxjse/cfxjse_arguments.h" | 18 #include "xfa/fxjse/cfxjse_arguments.h" |
19 | 19 |
20 CScript_HostPseudoModel::CScript_HostPseudoModel(CXFA_Document* pDocument) | 20 CScript_HostPseudoModel::CScript_HostPseudoModel(CXFA_Document* pDocument) |
21 : CXFA_OrdinaryObject(pDocument, XFA_ELEMENT_HostPseudoModel) { | 21 : CXFA_OrdinaryObject(pDocument, XFA_ELEMENT_HostPseudoModel) { |
22 m_uScriptHash = XFA_HASHCODE_Host; | 22 m_uScriptHash = XFA_HASHCODE_Host; |
23 } | 23 } |
24 CScript_HostPseudoModel::~CScript_HostPseudoModel() {} | 24 CScript_HostPseudoModel::~CScript_HostPseudoModel() {} |
25 void CScript_HostPseudoModel::Script_HostPseudoModel_LoadString( | 25 void CScript_HostPseudoModel::Script_HostPseudoModel_LoadString( |
26 FXJSE_HVALUE hValue, | 26 FXJSE_HVALUE hValue, |
27 IXFA_Notify* pNotify, | 27 IXFA_Notify* pNotify, |
28 FX_DWORD dwFlag) { | 28 uint32_t dwFlag) { |
29 CFX_WideString wsValue; | 29 CFX_WideString wsValue; |
30 pNotify->GetAppProvider()->LoadString(dwFlag, wsValue); | 30 pNotify->GetAppProvider()->LoadString(dwFlag, wsValue); |
31 FXJSE_Value_SetUTF8String(hValue, FX_UTF8Encode(wsValue)); | 31 FXJSE_Value_SetUTF8String(hValue, FX_UTF8Encode(wsValue)); |
32 } | 32 } |
33 void CScript_HostPseudoModel::Script_HostPseudoModel_AppType( | 33 void CScript_HostPseudoModel::Script_HostPseudoModel_AppType( |
34 FXJSE_HVALUE hValue, | 34 FXJSE_HVALUE hValue, |
35 FX_BOOL bSetting, | 35 FX_BOOL bSetting, |
36 XFA_ATTRIBUTE eAttribute) { | 36 XFA_ATTRIBUTE eAttribute) { |
37 IXFA_Notify* pNotify = m_pDocument->GetParser()->GetNotify(); | 37 IXFA_Notify* pNotify = m_pDocument->GetParser()->GetNotify(); |
38 if (!pNotify) { | 38 if (!pNotify) { |
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
316 IXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); | 316 IXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); |
317 if (!pScriptContext) { | 317 if (!pScriptContext) { |
318 FXJSE_Value_Release(hValue); | 318 FXJSE_Value_Release(hValue); |
319 return; | 319 return; |
320 } | 320 } |
321 CXFA_Object* pObject = pScriptContext->GetThisObject(); | 321 CXFA_Object* pObject = pScriptContext->GetThisObject(); |
322 if (!pObject) { | 322 if (!pObject) { |
323 FXJSE_Value_Release(hValue); | 323 FXJSE_Value_Release(hValue); |
324 return; | 324 return; |
325 } | 325 } |
326 FX_DWORD dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Parent | | 326 uint32_t dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Parent | |
327 XFA_RESOLVENODE_Siblings; | 327 XFA_RESOLVENODE_Siblings; |
328 XFA_RESOLVENODE_RS resoveNodeRS; | 328 XFA_RESOLVENODE_RS resoveNodeRS; |
329 int32_t iRet = pScriptContext->ResolveObjects(pObject, wsExpression, | 329 int32_t iRet = pScriptContext->ResolveObjects(pObject, wsExpression, |
330 resoveNodeRS, dwFlag); | 330 resoveNodeRS, dwFlag); |
331 if (iRet < 1 || !resoveNodeRS.nodes[0]->IsNode()) { | 331 if (iRet < 1 || !resoveNodeRS.nodes[0]->IsNode()) { |
332 FXJSE_Value_Release(hValue); | 332 FXJSE_Value_Release(hValue); |
333 return; | 333 return; |
334 } | 334 } |
335 pNode = resoveNodeRS.nodes[0]->AsNode(); | 335 pNode = resoveNodeRS.nodes[0]->AsNode(); |
336 } | 336 } |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
450 while (iStart < iExpLength) { | 450 while (iStart < iExpLength) { |
451 iStart = XFA_FilterName(wsExpression, iStart, wsName); | 451 iStart = XFA_FilterName(wsExpression, iStart, wsName); |
452 IXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); | 452 IXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); |
453 if (!pScriptContext) { | 453 if (!pScriptContext) { |
454 return; | 454 return; |
455 } | 455 } |
456 CXFA_Object* pObject = pScriptContext->GetThisObject(); | 456 CXFA_Object* pObject = pScriptContext->GetThisObject(); |
457 if (!pObject) { | 457 if (!pObject) { |
458 return; | 458 return; |
459 } | 459 } |
460 FX_DWORD dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Parent | | 460 uint32_t dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Parent | |
461 XFA_RESOLVENODE_Siblings; | 461 XFA_RESOLVENODE_Siblings; |
462 XFA_RESOLVENODE_RS resoveNodeRS; | 462 XFA_RESOLVENODE_RS resoveNodeRS; |
463 int32_t iRet = | 463 int32_t iRet = |
464 pScriptContext->ResolveObjects(pObject, wsName, resoveNodeRS, dwFlag); | 464 pScriptContext->ResolveObjects(pObject, wsName, resoveNodeRS, dwFlag); |
465 if (iRet < 1 || !resoveNodeRS.nodes[0]->IsNode()) { | 465 if (iRet < 1 || !resoveNodeRS.nodes[0]->IsNode()) { |
466 continue; | 466 continue; |
467 } | 467 } |
468 pNode = resoveNodeRS.nodes[0]->AsNode(); | 468 pNode = resoveNodeRS.nodes[0]->AsNode(); |
469 pNotify->ResetData(pNode->GetWidgetData()); | 469 pNotify->ResetData(pNode->GetWidgetData()); |
470 } | 470 } |
471 if (!pNode) { | 471 if (!pNode) { |
472 pNotify->ResetData(); | 472 pNotify->ResetData(); |
473 } | 473 } |
474 } | 474 } |
475 void CScript_HostPseudoModel::Script_HostPseudoModel_Beep( | 475 void CScript_HostPseudoModel::Script_HostPseudoModel_Beep( |
476 CFXJSE_Arguments* pArguments) { | 476 CFXJSE_Arguments* pArguments) { |
477 if (!m_pDocument->GetScriptContext()->IsRunAtClient()) { | 477 if (!m_pDocument->GetScriptContext()->IsRunAtClient()) { |
478 return; | 478 return; |
479 } | 479 } |
480 int32_t iLength = pArguments->GetLength(); | 480 int32_t iLength = pArguments->GetLength(); |
481 if (iLength < 0 || iLength > 1) { | 481 if (iLength < 0 || iLength > 1) { |
482 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"beep"); | 482 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"beep"); |
483 return; | 483 return; |
484 } | 484 } |
485 IXFA_Notify* pNotify = m_pDocument->GetParser()->GetNotify(); | 485 IXFA_Notify* pNotify = m_pDocument->GetParser()->GetNotify(); |
486 if (!pNotify) { | 486 if (!pNotify) { |
487 return; | 487 return; |
488 } | 488 } |
489 FX_DWORD dwType = 4; | 489 uint32_t dwType = 4; |
490 if (iLength >= 1) { | 490 if (iLength >= 1) { |
491 dwType = pArguments->GetInt32(0); | 491 dwType = pArguments->GetInt32(0); |
492 } | 492 } |
493 pNotify->GetAppProvider()->Beep(dwType); | 493 pNotify->GetAppProvider()->Beep(dwType); |
494 } | 494 } |
495 void CScript_HostPseudoModel::Script_HostPseudoModel_SetFocus( | 495 void CScript_HostPseudoModel::Script_HostPseudoModel_SetFocus( |
496 CFXJSE_Arguments* pArguments) { | 496 CFXJSE_Arguments* pArguments) { |
497 if (!m_pDocument->GetScriptContext()->IsRunAtClient()) { | 497 if (!m_pDocument->GetScriptContext()->IsRunAtClient()) { |
498 return; | 498 return; |
499 } | 499 } |
(...skipping 19 matching lines...) Expand all Loading... |
519 IXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); | 519 IXFA_ScriptContext* pScriptContext = m_pDocument->GetScriptContext(); |
520 if (!pScriptContext) { | 520 if (!pScriptContext) { |
521 FXJSE_Value_Release(hValue); | 521 FXJSE_Value_Release(hValue); |
522 return; | 522 return; |
523 } | 523 } |
524 CXFA_Object* pObject = pScriptContext->GetThisObject(); | 524 CXFA_Object* pObject = pScriptContext->GetThisObject(); |
525 if (!pObject) { | 525 if (!pObject) { |
526 FXJSE_Value_Release(hValue); | 526 FXJSE_Value_Release(hValue); |
527 return; | 527 return; |
528 } | 528 } |
529 FX_DWORD dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Parent | | 529 uint32_t dwFlag = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Parent | |
530 XFA_RESOLVENODE_Siblings; | 530 XFA_RESOLVENODE_Siblings; |
531 XFA_RESOLVENODE_RS resoveNodeRS; | 531 XFA_RESOLVENODE_RS resoveNodeRS; |
532 int32_t iRet = pScriptContext->ResolveObjects(pObject, wsExpression, | 532 int32_t iRet = pScriptContext->ResolveObjects(pObject, wsExpression, |
533 resoveNodeRS, dwFlag); | 533 resoveNodeRS, dwFlag); |
534 if (iRet < 1 || !resoveNodeRS.nodes[0]->IsNode()) { | 534 if (iRet < 1 || !resoveNodeRS.nodes[0]->IsNode()) { |
535 FXJSE_Value_Release(hValue); | 535 FXJSE_Value_Release(hValue); |
536 return; | 536 return; |
537 } | 537 } |
538 pNode = resoveNodeRS.nodes[0]->AsNode(); | 538 pNode = resoveNodeRS.nodes[0]->AsNode(); |
539 } | 539 } |
(...skipping 23 matching lines...) Expand all Loading... |
563 if (iLength < 1 || iLength > 4) { | 563 if (iLength < 1 || iLength > 4) { |
564 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"messageBox"); | 564 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"messageBox"); |
565 return; | 565 return; |
566 } | 566 } |
567 IXFA_Notify* pNotify = m_pDocument->GetParser()->GetNotify(); | 567 IXFA_Notify* pNotify = m_pDocument->GetParser()->GetNotify(); |
568 if (!pNotify) { | 568 if (!pNotify) { |
569 return; | 569 return; |
570 } | 570 } |
571 CFX_WideString wsMessage; | 571 CFX_WideString wsMessage; |
572 CFX_WideString bsTitle; | 572 CFX_WideString bsTitle; |
573 FX_DWORD dwMessageType = XFA_MBICON_Error; | 573 uint32_t dwMessageType = XFA_MBICON_Error; |
574 FX_DWORD dwButtonType = XFA_MB_OK; | 574 uint32_t dwButtonType = XFA_MB_OK; |
575 if (iLength >= 1) { | 575 if (iLength >= 1) { |
576 if (!Script_HostPseudoModel_ValidateArgsForMsg(pArguments, 0, wsMessage)) { | 576 if (!Script_HostPseudoModel_ValidateArgsForMsg(pArguments, 0, wsMessage)) { |
577 return; | 577 return; |
578 } | 578 } |
579 } | 579 } |
580 if (iLength >= 2) { | 580 if (iLength >= 2) { |
581 if (!Script_HostPseudoModel_ValidateArgsForMsg(pArguments, 1, bsTitle)) { | 581 if (!Script_HostPseudoModel_ValidateArgsForMsg(pArguments, 1, bsTitle)) { |
582 return; | 582 return; |
583 } | 583 } |
584 } | 584 } |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
649 int32_t iLength = pArguments->GetLength(); | 649 int32_t iLength = pArguments->GetLength(); |
650 if (iLength != 8) { | 650 if (iLength != 8) { |
651 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"print"); | 651 ThrowScriptErrorMessage(XFA_IDS_INCORRECT_NUMBER_OF_METHOD, L"print"); |
652 return; | 652 return; |
653 } | 653 } |
654 IXFA_Notify* pNotify = m_pDocument->GetParser()->GetNotify(); | 654 IXFA_Notify* pNotify = m_pDocument->GetParser()->GetNotify(); |
655 if (!pNotify) { | 655 if (!pNotify) { |
656 return; | 656 return; |
657 } | 657 } |
658 IXFA_Doc* hDoc = pNotify->GetHDOC(); | 658 IXFA_Doc* hDoc = pNotify->GetHDOC(); |
659 FX_DWORD dwOptions = 0; | 659 uint32_t dwOptions = 0; |
660 FX_BOOL bShowDialog = TRUE; | 660 FX_BOOL bShowDialog = TRUE; |
661 if (iLength >= 1) { | 661 if (iLength >= 1) { |
662 bShowDialog = pArguments->GetInt32(0) == 0 ? FALSE : TRUE; | 662 bShowDialog = pArguments->GetInt32(0) == 0 ? FALSE : TRUE; |
663 } | 663 } |
664 if (bShowDialog) { | 664 if (bShowDialog) { |
665 dwOptions |= XFA_PRINTOPT_ShowDialog; | 665 dwOptions |= XFA_PRINTOPT_ShowDialog; |
666 } | 666 } |
667 int32_t nStartPage = 0; | 667 int32_t nStartPage = 0; |
668 if (iLength >= 2) { | 668 if (iLength >= 2) { |
669 nStartPage = pArguments->GetInt32(1); | 669 nStartPage = pArguments->GetInt32(1); |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
792 IXFA_Notify* pNotify = m_pDocument->GetParser()->GetNotify(); | 792 IXFA_Notify* pNotify = m_pDocument->GetParser()->GetNotify(); |
793 if (!pNotify) { | 793 if (!pNotify) { |
794 return; | 794 return; |
795 } | 795 } |
796 CFX_WideString wsDataTime = pNotify->GetCurrentDateTime(); | 796 CFX_WideString wsDataTime = pNotify->GetCurrentDateTime(); |
797 FXJSE_HVALUE hValue = pArguments->GetReturnValue(); | 797 FXJSE_HVALUE hValue = pArguments->GetReturnValue(); |
798 if (hValue) { | 798 if (hValue) { |
799 FXJSE_Value_SetUTF8String(hValue, FX_UTF8Encode(wsDataTime)); | 799 FXJSE_Value_SetUTF8String(hValue, FX_UTF8Encode(wsDataTime)); |
800 } | 800 } |
801 } | 801 } |
OLD | NEW |