| 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 "public/fpdf_formfill.h" | 7 #include "public/fpdf_formfill.h" |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 473 | 473 |
| 474 IXFA_MenuHandler* pXFAMenuHander = | 474 IXFA_MenuHandler* pXFAMenuHander = |
| 475 CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler(); | 475 CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler(); |
| 476 if (pXFAMenuHander == NULL) | 476 if (pXFAMenuHander == NULL) |
| 477 return; | 477 return; |
| 478 | 478 |
| 479 CFX_WideString wsCpText; | 479 CFX_WideString wsCpText; |
| 480 pXFAMenuHander->Copy((IXFA_Widget*)hWidget, wsCpText); | 480 pXFAMenuHander->Copy((IXFA_Widget*)hWidget, wsCpText); |
| 481 | 481 |
| 482 CFX_ByteString bsCpText = wsCpText.UTF16LE_Encode(); | 482 CFX_ByteString bsCpText = wsCpText.UTF16LE_Encode(); |
| 483 int len = bsCpText.GetLength() / sizeof(unsigned short); | 483 uint32_t len = bsCpText.GetLength() / sizeof(unsigned short); |
| 484 if (wsText == NULL) { | 484 if (wsText == NULL) { |
| 485 *size = len; | 485 *size = len; |
| 486 return; | 486 return; |
| 487 } | 487 } |
| 488 | 488 |
| 489 int real_size = len < *size ? len : *size; | 489 uint32_t real_size = len < *size ? len : *size; |
| 490 if (real_size > 0) { | 490 if (real_size > 0) { |
| 491 FXSYS_memcpy((void*)wsText, | 491 FXSYS_memcpy((void*)wsText, |
| 492 bsCpText.GetBuffer(real_size * sizeof(unsigned short)), | 492 bsCpText.GetBuffer(real_size * sizeof(unsigned short)), |
| 493 real_size * sizeof(unsigned short)); | 493 real_size * sizeof(unsigned short)); |
| 494 bsCpText.ReleaseBuffer(real_size * sizeof(unsigned short)); | 494 bsCpText.ReleaseBuffer(real_size * sizeof(unsigned short)); |
| 495 } | 495 } |
| 496 *size = real_size; | 496 *size = real_size; |
| 497 } | 497 } |
| 498 | 498 |
| 499 DLLEXPORT void STDCALL FPDF_Widget_Cut(FPDF_DOCUMENT document, | 499 DLLEXPORT void STDCALL FPDF_Widget_Cut(FPDF_DOCUMENT document, |
| 500 FPDF_WIDGET hWidget, | 500 FPDF_WIDGET hWidget, |
| 501 FPDF_WIDESTRING wsText, | 501 FPDF_WIDESTRING wsText, |
| 502 FPDF_DWORD* size) { | 502 FPDF_DWORD* size) { |
| 503 if (NULL == hWidget || NULL == document) | 503 if (NULL == hWidget || NULL == document) |
| 504 return; | 504 return; |
| 505 CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document; | 505 CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document; |
| 506 if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && | 506 if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && |
| 507 pDocument->GetDocType() != XFA_DOCTYPE_Static) | 507 pDocument->GetDocType() != XFA_DOCTYPE_Static) |
| 508 return; | 508 return; |
| 509 | 509 |
| 510 IXFA_MenuHandler* pXFAMenuHander = | 510 IXFA_MenuHandler* pXFAMenuHander = |
| 511 CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler(); | 511 CPDFXFA_App::GetInstance()->GetXFAApp()->GetMenuHandler(); |
| 512 if (pXFAMenuHander == NULL) | 512 if (pXFAMenuHander == NULL) |
| 513 return; | 513 return; |
| 514 | 514 |
| 515 CFX_WideString wsCpText; | 515 CFX_WideString wsCpText; |
| 516 pXFAMenuHander->Cut((IXFA_Widget*)hWidget, wsCpText); | 516 pXFAMenuHander->Cut((IXFA_Widget*)hWidget, wsCpText); |
| 517 | 517 |
| 518 CFX_ByteString bsCpText = wsCpText.UTF16LE_Encode(); | 518 CFX_ByteString bsCpText = wsCpText.UTF16LE_Encode(); |
| 519 int len = bsCpText.GetLength() / sizeof(unsigned short); | 519 uint32_t len = bsCpText.GetLength() / sizeof(unsigned short); |
| 520 if (wsText == NULL) { | 520 if (wsText == NULL) { |
| 521 *size = len; | 521 *size = len; |
| 522 return; | 522 return; |
| 523 } | 523 } |
| 524 | 524 |
| 525 int real_size = len < *size ? len : *size; | 525 uint32_t real_size = len < *size ? len : *size; |
| 526 if (real_size > 0) { | 526 if (real_size > 0) { |
| 527 FXSYS_memcpy((void*)wsText, | 527 FXSYS_memcpy((void*)wsText, |
| 528 bsCpText.GetBuffer(real_size * sizeof(unsigned short)), | 528 bsCpText.GetBuffer(real_size * sizeof(unsigned short)), |
| 529 real_size * sizeof(unsigned short)); | 529 real_size * sizeof(unsigned short)); |
| 530 bsCpText.ReleaseBuffer(real_size * sizeof(unsigned short)); | 530 bsCpText.ReleaseBuffer(real_size * sizeof(unsigned short)); |
| 531 } | 531 } |
| 532 *size = real_size; | 532 *size = real_size; |
| 533 } | 533 } |
| 534 | 534 |
| 535 DLLEXPORT void STDCALL FPDF_Widget_Paste(FPDF_DOCUMENT document, | 535 DLLEXPORT void STDCALL FPDF_Widget_Paste(FPDF_DOCUMENT document, |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 618 FPDF_BYTESTRING bsText, | 618 FPDF_BYTESTRING bsText, |
| 619 FPDF_DWORD* size) { | 619 FPDF_DWORD* size) { |
| 620 if (!sHandle || !size) | 620 if (!sHandle || !size) |
| 621 return FALSE; | 621 return FALSE; |
| 622 | 622 |
| 623 int count = FPDF_StringHandleCounts(sHandle); | 623 int count = FPDF_StringHandleCounts(sHandle); |
| 624 if (index < 0 || index >= count) | 624 if (index < 0 || index >= count) |
| 625 return FALSE; | 625 return FALSE; |
| 626 | 626 |
| 627 std::vector<CFX_ByteString>* sSuggestWords = FromFPDFStringHandle(sHandle); | 627 std::vector<CFX_ByteString>* sSuggestWords = FromFPDFStringHandle(sHandle); |
| 628 int len = (*sSuggestWords)[index].GetLength(); | 628 uint32_t len = (*sSuggestWords)[index].GetLength(); |
| 629 if (!bsText) { | 629 if (!bsText) { |
| 630 *size = len; | 630 *size = len; |
| 631 return TRUE; | 631 return TRUE; |
| 632 } | 632 } |
| 633 | 633 |
| 634 int real_size = len < *size ? len : *size; | 634 uint32_t real_size = len < *size ? len : *size; |
| 635 if (real_size > 0) | 635 if (real_size > 0) |
| 636 FXSYS_memcpy((void*)bsText, (const FX_CHAR*)(*sSuggestWords)[index], | 636 FXSYS_memcpy((void*)bsText, (const FX_CHAR*)(*sSuggestWords)[index], |
| 637 real_size); | 637 real_size); |
| 638 *size = real_size; | 638 *size = real_size; |
| 639 return TRUE; | 639 return TRUE; |
| 640 } | 640 } |
| 641 | 641 |
| 642 DLLEXPORT void STDCALL | 642 DLLEXPORT void STDCALL |
| 643 FPDF_StringHandleRelease(FPDF_STRINGHANDLE stringHandle) { | 643 FPDF_StringHandleRelease(FPDF_STRINGHANDLE stringHandle) { |
| 644 delete FromFPDFStringHandle(stringHandle); | 644 delete FromFPDFStringHandle(stringHandle); |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 755 pActionHandler->DoAction_Page(action, CPDF_AAction::OpenPage, pSDKDoc); | 755 pActionHandler->DoAction_Page(action, CPDF_AAction::OpenPage, pSDKDoc); |
| 756 } | 756 } |
| 757 } else { | 757 } else { |
| 758 if (aa.ActionExist(CPDF_AAction::ClosePage)) { | 758 if (aa.ActionExist(CPDF_AAction::ClosePage)) { |
| 759 CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage); | 759 CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage); |
| 760 pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, pSDKDoc); | 760 pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, pSDKDoc); |
| 761 } | 761 } |
| 762 } | 762 } |
| 763 } | 763 } |
| 764 } | 764 } |
| OLD | NEW |