Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(271)

Side by Side Diff: fpdfsdk/fpdfformfill.cpp

Issue 2469813004: Rename CPDFXFA_Document to CPDFXFA_Context (Closed)
Patch Set: Merge to master Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « fpdfsdk/fpdfeditpage.cpp ('k') | fpdfsdk/fpdfsave.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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>
11 11
12 #include "core/fpdfapi/page/cpdf_page.h" 12 #include "core/fpdfapi/page/cpdf_page.h"
13 #include "core/fpdfapi/parser/cpdf_document.h" 13 #include "core/fpdfapi/parser/cpdf_document.h"
14 #include "core/fpdfapi/render/cpdf_renderoptions.h" 14 #include "core/fpdfapi/render/cpdf_renderoptions.h"
15 #include "core/fpdfdoc/cpdf_formcontrol.h" 15 #include "core/fpdfdoc/cpdf_formcontrol.h"
16 #include "core/fpdfdoc/cpdf_formfield.h" 16 #include "core/fpdfdoc/cpdf_formfield.h"
17 #include "core/fpdfdoc/cpdf_interform.h" 17 #include "core/fpdfdoc/cpdf_interform.h"
18 #include "core/fpdfdoc/cpdf_occontext.h" 18 #include "core/fpdfdoc/cpdf_occontext.h"
19 #include "core/fxge/cfx_fxgedevice.h" 19 #include "core/fxge/cfx_fxgedevice.h"
20 #include "fpdfsdk/cpdfsdk_formfillenvironment.h" 20 #include "fpdfsdk/cpdfsdk_formfillenvironment.h"
21 #include "fpdfsdk/cpdfsdk_interform.h" 21 #include "fpdfsdk/cpdfsdk_interform.h"
22 #include "fpdfsdk/cpdfsdk_pageview.h" 22 #include "fpdfsdk/cpdfsdk_pageview.h"
23 #include "fpdfsdk/fsdk_actionhandler.h" 23 #include "fpdfsdk/fsdk_actionhandler.h"
24 #include "fpdfsdk/fsdk_define.h" 24 #include "fpdfsdk/fsdk_define.h"
25 #include "public/fpdfview.h" 25 #include "public/fpdfview.h"
26 #include "third_party/base/ptr_util.h" 26 #include "third_party/base/ptr_util.h"
27 #include "third_party/base/stl_util.h" 27 #include "third_party/base/stl_util.h"
28 28
29 #ifdef PDF_ENABLE_XFA 29 #ifdef PDF_ENABLE_XFA
30 #include "fpdfsdk/fpdfxfa/cpdfxfa_document.h" 30 #include "fpdfsdk/fpdfxfa/cpdfxfa_context.h"
31 #include "fpdfsdk/fpdfxfa/cpdfxfa_page.h" 31 #include "fpdfsdk/fpdfxfa/cpdfxfa_page.h"
32 #include "xfa/fxfa/xfa_ffdocview.h" 32 #include "xfa/fxfa/xfa_ffdocview.h"
33 #include "xfa/fxfa/xfa_ffpageview.h" 33 #include "xfa/fxfa/xfa_ffpageview.h"
34 #include "xfa/fxfa/xfa_ffwidget.h" 34 #include "xfa/fxfa/xfa_ffwidget.h"
35 #endif // PDF_ENABLE_XFA 35 #endif // PDF_ENABLE_XFA
36 36
37 namespace { 37 namespace {
38 38
39 CPDFSDK_FormFillEnvironment* HandleToCPDFSDKEnvironment( 39 CPDFSDK_FormFillEnvironment* HandleToCPDFSDKEnvironment(
40 FPDF_FORMHANDLE handle) { 40 FPDF_FORMHANDLE handle) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 int rotate, 79 int rotate,
80 int flags) { 80 int flags) {
81 if (!hHandle) 81 if (!hHandle)
82 return; 82 return;
83 83
84 UnderlyingPageType* pPage = UnderlyingFromFPDFPage(page); 84 UnderlyingPageType* pPage = UnderlyingFromFPDFPage(page);
85 if (!pPage) 85 if (!pPage)
86 return; 86 return;
87 87
88 #ifdef PDF_ENABLE_XFA 88 #ifdef PDF_ENABLE_XFA
89 CPDFXFA_Document* pDocument = pPage->GetDocument(); 89 CPDFXFA_Context* pContext = pPage->GetContext();
90 if (!pDocument) 90 if (!pContext)
91 return; 91 return;
92 CPDF_Document* pPDFDoc = pDocument->GetPDFDoc(); 92 CPDF_Document* pPDFDoc = pContext->GetPDFDoc();
93 if (!pPDFDoc) 93 if (!pPDFDoc)
94 return; 94 return;
95 CPDFSDK_FormFillEnvironment* pFormFillEnv = 95 CPDFSDK_FormFillEnvironment* pFormFillEnv =
96 HandleToCPDFSDKEnvironment(hHandle); 96 HandleToCPDFSDKEnvironment(hHandle);
97 if (!pFormFillEnv) 97 if (!pFormFillEnv)
98 return; 98 return;
99 #endif // PDF_ENABLE_XFA 99 #endif // PDF_ENABLE_XFA
100 100
101 CFX_Matrix matrix; 101 CFX_Matrix matrix;
102 pPage->GetDisplayMatrix(matrix, start_x, start_y, size_x, size_y, rotate); 102 pPage->GetDisplayMatrix(matrix, start_x, start_y, size_x, size_y, rotate);
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 const int kRequiredVersion = 1; 238 const int kRequiredVersion = 1;
239 #endif // PDF_ENABLE_XFA 239 #endif // PDF_ENABLE_XFA
240 if (!formInfo || formInfo->version != kRequiredVersion) 240 if (!formInfo || formInfo->version != kRequiredVersion)
241 return nullptr; 241 return nullptr;
242 242
243 UnderlyingDocumentType* pDocument = UnderlyingFromFPDFDocument(document); 243 UnderlyingDocumentType* pDocument = UnderlyingFromFPDFDocument(document);
244 if (!pDocument) 244 if (!pDocument)
245 return nullptr; 245 return nullptr;
246 246
247 #ifdef PDF_ENABLE_XFA 247 #ifdef PDF_ENABLE_XFA
248 // If the CPDFXFA_Document has a FormFillEnvironment already then we've done 248 // If the CPDFXFA_Context has a FormFillEnvironment already then we've done
249 // this and can just return the old Env. Otherwise, we'll end up setting a new 249 // this and can just return the old Env. Otherwise, we'll end up setting a new
250 // environment into the XFADocument and, that could get weird. 250 // environment into the XFADocument and, that could get weird.
251 if (pDocument->GetFormFillEnv()) 251 if (pDocument->GetFormFillEnv())
252 return pDocument->GetFormFillEnv(); 252 return pDocument->GetFormFillEnv();
253 #endif 253 #endif
254 254
255 CPDFSDK_FormFillEnvironment* pFormFillEnv = 255 CPDFSDK_FormFillEnvironment* pFormFillEnv =
256 new CPDFSDK_FormFillEnvironment(pDocument, formInfo); 256 new CPDFSDK_FormFillEnvironment(pDocument, formInfo);
257 257
258 #ifdef PDF_ENABLE_XFA 258 #ifdef PDF_ENABLE_XFA
(...skipping 10 matching lines...) Expand all
269 269
270 CPDFSDK_FormFillEnvironment* pFormFillEnv = 270 CPDFSDK_FormFillEnvironment* pFormFillEnv =
271 HandleToCPDFSDKEnvironment(hHandle); 271 HandleToCPDFSDKEnvironment(hHandle);
272 272
273 #ifdef PDF_ENABLE_XFA 273 #ifdef PDF_ENABLE_XFA
274 // Reset the focused annotations and remove the SDK document from the 274 // Reset the focused annotations and remove the SDK document from the
275 // XFA document. 275 // XFA document.
276 pFormFillEnv->ClearAllFocusedAnnots(); 276 pFormFillEnv->ClearAllFocusedAnnots();
277 // If the document was closed first, it's possible the XFA document 277 // If the document was closed first, it's possible the XFA document
278 // is now a nullptr. 278 // is now a nullptr.
279 if (pFormFillEnv->GetXFADocument()) 279 if (pFormFillEnv->GetXFAContext())
280 pFormFillEnv->GetXFADocument()->SetFormFillEnv(nullptr); 280 pFormFillEnv->GetXFAContext()->SetFormFillEnv(nullptr);
281 #endif // PDF_ENABLE_XFA 281 #endif // PDF_ENABLE_XFA
282 282
283 delete pFormFillEnv; 283 delete pFormFillEnv;
284 } 284 }
285 285
286 DLLEXPORT FPDF_BOOL STDCALL FORM_OnMouseMove(FPDF_FORMHANDLE hHandle, 286 DLLEXPORT FPDF_BOOL STDCALL FORM_OnMouseMove(FPDF_FORMHANDLE hHandle,
287 FPDF_PAGE page, 287 FPDF_PAGE page,
288 int modifier, 288 int modifier,
289 double page_x, 289 double page_x,
290 double page_y) { 290 double page_y) {
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 rotate, flags); 418 rotate, flags);
419 } 419 }
420 #endif 420 #endif
421 421
422 #ifdef PDF_ENABLE_XFA 422 #ifdef PDF_ENABLE_XFA
423 DLLEXPORT void STDCALL FPDF_Widget_Undo(FPDF_DOCUMENT document, 423 DLLEXPORT void STDCALL FPDF_Widget_Undo(FPDF_DOCUMENT document,
424 FPDF_WIDGET hWidget) { 424 FPDF_WIDGET hWidget) {
425 if (!hWidget || !document) 425 if (!hWidget || !document)
426 return; 426 return;
427 427
428 CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document; 428 CPDFXFA_Context* pContext = static_cast<CPDFXFA_Context*>(document);
429 if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && 429 if (pContext->GetDocType() != XFA_DOCTYPE_Dynamic &&
430 pDocument->GetDocType() != XFA_DOCTYPE_Static) 430 pContext->GetDocType() != XFA_DOCTYPE_Static)
431 return; 431 return;
432 432
433 static_cast<CXFA_FFWidget*>(hWidget)->Undo(); 433 static_cast<CXFA_FFWidget*>(hWidget)->Undo();
434 } 434 }
435
435 DLLEXPORT void STDCALL FPDF_Widget_Redo(FPDF_DOCUMENT document, 436 DLLEXPORT void STDCALL FPDF_Widget_Redo(FPDF_DOCUMENT document,
436 FPDF_WIDGET hWidget) { 437 FPDF_WIDGET hWidget) {
437 if (!hWidget || !document) 438 if (!hWidget || !document)
438 return; 439 return;
439 440
440 CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document; 441 CPDFXFA_Context* pContext = static_cast<CPDFXFA_Context*>(document);
441 if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && 442 if (pContext->GetDocType() != XFA_DOCTYPE_Dynamic &&
442 pDocument->GetDocType() != XFA_DOCTYPE_Static) 443 pContext->GetDocType() != XFA_DOCTYPE_Static)
443 return; 444 return;
444 445
445 static_cast<CXFA_FFWidget*>(hWidget)->Redo(); 446 static_cast<CXFA_FFWidget*>(hWidget)->Redo();
446 } 447 }
447 448
448 DLLEXPORT void STDCALL FPDF_Widget_SelectAll(FPDF_DOCUMENT document, 449 DLLEXPORT void STDCALL FPDF_Widget_SelectAll(FPDF_DOCUMENT document,
449 FPDF_WIDGET hWidget) { 450 FPDF_WIDGET hWidget) {
450 if (!hWidget || !document) 451 if (!hWidget || !document)
451 return; 452 return;
452 453
453 CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document; 454 CPDFXFA_Context* pContext = static_cast<CPDFXFA_Context*>(document);
454 if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && 455 if (pContext->GetDocType() != XFA_DOCTYPE_Dynamic &&
455 pDocument->GetDocType() != XFA_DOCTYPE_Static) 456 pContext->GetDocType() != XFA_DOCTYPE_Static)
456 return; 457 return;
457 458
458 static_cast<CXFA_FFWidget*>(hWidget)->SelectAll(); 459 static_cast<CXFA_FFWidget*>(hWidget)->SelectAll();
459 } 460 }
461
460 DLLEXPORT void STDCALL FPDF_Widget_Copy(FPDF_DOCUMENT document, 462 DLLEXPORT void STDCALL FPDF_Widget_Copy(FPDF_DOCUMENT document,
461 FPDF_WIDGET hWidget, 463 FPDF_WIDGET hWidget,
462 FPDF_WIDESTRING wsText, 464 FPDF_WIDESTRING wsText,
463 FPDF_DWORD* size) { 465 FPDF_DWORD* size) {
464 if (!hWidget || !document) 466 if (!hWidget || !document)
465 return; 467 return;
466 468
467 CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document; 469 CPDFXFA_Context* pContext = static_cast<CPDFXFA_Context*>(document);
468 if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && 470 if (pContext->GetDocType() != XFA_DOCTYPE_Dynamic &&
469 pDocument->GetDocType() != XFA_DOCTYPE_Static) 471 pContext->GetDocType() != XFA_DOCTYPE_Static)
470 return; 472 return;
471 473
472 CFX_WideString wsCpText; 474 CFX_WideString wsCpText;
473 static_cast<CXFA_FFWidget*>(hWidget)->Copy(wsCpText); 475 static_cast<CXFA_FFWidget*>(hWidget)->Copy(wsCpText);
474 476
475 CFX_ByteString bsCpText = wsCpText.UTF16LE_Encode(); 477 CFX_ByteString bsCpText = wsCpText.UTF16LE_Encode();
476 uint32_t len = bsCpText.GetLength() / sizeof(unsigned short); 478 uint32_t len = bsCpText.GetLength() / sizeof(unsigned short);
477 if (!wsText) { 479 if (!wsText) {
478 *size = len; 480 *size = len;
479 return; 481 return;
480 } 482 }
481 483
482 uint32_t real_size = len < *size ? len : *size; 484 uint32_t real_size = len < *size ? len : *size;
483 if (real_size > 0) { 485 if (real_size > 0) {
484 FXSYS_memcpy((void*)wsText, 486 FXSYS_memcpy((void*)wsText,
485 bsCpText.GetBuffer(real_size * sizeof(unsigned short)), 487 bsCpText.GetBuffer(real_size * sizeof(unsigned short)),
486 real_size * sizeof(unsigned short)); 488 real_size * sizeof(unsigned short));
487 bsCpText.ReleaseBuffer(real_size * sizeof(unsigned short)); 489 bsCpText.ReleaseBuffer(real_size * sizeof(unsigned short));
488 } 490 }
489 *size = real_size; 491 *size = real_size;
490 } 492 }
491 493
492 DLLEXPORT void STDCALL FPDF_Widget_Cut(FPDF_DOCUMENT document, 494 DLLEXPORT void STDCALL FPDF_Widget_Cut(FPDF_DOCUMENT document,
493 FPDF_WIDGET hWidget, 495 FPDF_WIDGET hWidget,
494 FPDF_WIDESTRING wsText, 496 FPDF_WIDESTRING wsText,
495 FPDF_DWORD* size) { 497 FPDF_DWORD* size) {
496 if (!hWidget || !document) 498 if (!hWidget || !document)
497 return; 499 return;
498 500
499 CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document; 501 CPDFXFA_Context* pContext = static_cast<CPDFXFA_Context*>(document);
500 if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && 502 if (pContext->GetDocType() != XFA_DOCTYPE_Dynamic &&
501 pDocument->GetDocType() != XFA_DOCTYPE_Static) 503 pContext->GetDocType() != XFA_DOCTYPE_Static)
502 return; 504 return;
503 505
504 CFX_WideString wsCpText; 506 CFX_WideString wsCpText;
505 static_cast<CXFA_FFWidget*>(hWidget)->Cut(wsCpText); 507 static_cast<CXFA_FFWidget*>(hWidget)->Cut(wsCpText);
506 508
507 CFX_ByteString bsCpText = wsCpText.UTF16LE_Encode(); 509 CFX_ByteString bsCpText = wsCpText.UTF16LE_Encode();
508 uint32_t len = bsCpText.GetLength() / sizeof(unsigned short); 510 uint32_t len = bsCpText.GetLength() / sizeof(unsigned short);
509 if (!wsText) { 511 if (!wsText) {
510 *size = len; 512 *size = len;
511 return; 513 return;
512 } 514 }
513 515
514 uint32_t real_size = len < *size ? len : *size; 516 uint32_t real_size = len < *size ? len : *size;
515 if (real_size > 0) { 517 if (real_size > 0) {
516 FXSYS_memcpy((void*)wsText, 518 FXSYS_memcpy((void*)wsText,
517 bsCpText.GetBuffer(real_size * sizeof(unsigned short)), 519 bsCpText.GetBuffer(real_size * sizeof(unsigned short)),
518 real_size * sizeof(unsigned short)); 520 real_size * sizeof(unsigned short));
519 bsCpText.ReleaseBuffer(real_size * sizeof(unsigned short)); 521 bsCpText.ReleaseBuffer(real_size * sizeof(unsigned short));
520 } 522 }
521 *size = real_size; 523 *size = real_size;
522 } 524 }
523 525
524 DLLEXPORT void STDCALL FPDF_Widget_Paste(FPDF_DOCUMENT document, 526 DLLEXPORT void STDCALL FPDF_Widget_Paste(FPDF_DOCUMENT document,
525 FPDF_WIDGET hWidget, 527 FPDF_WIDGET hWidget,
526 FPDF_WIDESTRING wsText, 528 FPDF_WIDESTRING wsText,
527 FPDF_DWORD size) { 529 FPDF_DWORD size) {
528 if (!hWidget || !document) 530 if (!hWidget || !document)
529 return; 531 return;
530 532
531 CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document; 533 CPDFXFA_Context* pContext = static_cast<CPDFXFA_Context*>(document);
532 if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && 534 if (pContext->GetDocType() != XFA_DOCTYPE_Dynamic &&
533 pDocument->GetDocType() != XFA_DOCTYPE_Static) 535 pContext->GetDocType() != XFA_DOCTYPE_Static)
534 return; 536 return;
535 537
536 CFX_WideString wstr = CFX_WideString::FromUTF16LE(wsText, size); 538 CFX_WideString wstr = CFX_WideString::FromUTF16LE(wsText, size);
537 static_cast<CXFA_FFWidget*>(hWidget)->Paste(wstr); 539 static_cast<CXFA_FFWidget*>(hWidget)->Paste(wstr);
538 } 540 }
539 541
540 DLLEXPORT void STDCALL 542 DLLEXPORT void STDCALL
541 FPDF_Widget_ReplaceSpellCheckWord(FPDF_DOCUMENT document, 543 FPDF_Widget_ReplaceSpellCheckWord(FPDF_DOCUMENT document,
542 FPDF_WIDGET hWidget, 544 FPDF_WIDGET hWidget,
543 float x, 545 float x,
544 float y, 546 float y,
545 FPDF_BYTESTRING bsText) { 547 FPDF_BYTESTRING bsText) {
546 if (!hWidget || !document) 548 if (!hWidget || !document)
547 return; 549 return;
548 550
549 CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document; 551 CPDFXFA_Context* pContext = static_cast<CPDFXFA_Context*>(document);
550 if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && 552 if (pContext->GetDocType() != XFA_DOCTYPE_Dynamic &&
551 pDocument->GetDocType() != XFA_DOCTYPE_Static) 553 pContext->GetDocType() != XFA_DOCTYPE_Static)
552 return; 554 return;
553 555
554 CFX_PointF ptPopup; 556 CFX_PointF ptPopup;
555 ptPopup.x = x; 557 ptPopup.x = x;
556 ptPopup.y = y; 558 ptPopup.y = y;
557 CFX_ByteStringC bs(bsText); 559 CFX_ByteStringC bs(bsText);
558 static_cast<CXFA_FFWidget*>(hWidget)->ReplaceSpellCheckWord(ptPopup, bs); 560 static_cast<CXFA_FFWidget*>(hWidget)->ReplaceSpellCheckWord(ptPopup, bs);
559 } 561 }
560 562
561 DLLEXPORT void STDCALL 563 DLLEXPORT void STDCALL
562 FPDF_Widget_GetSpellCheckWords(FPDF_DOCUMENT document, 564 FPDF_Widget_GetSpellCheckWords(FPDF_DOCUMENT document,
563 FPDF_WIDGET hWidget, 565 FPDF_WIDGET hWidget,
564 float x, 566 float x,
565 float y, 567 float y,
566 FPDF_STRINGHANDLE* stringHandle) { 568 FPDF_STRINGHANDLE* stringHandle) {
567 if (!hWidget || !document) 569 if (!hWidget || !document)
568 return; 570 return;
569 571
570 CPDFXFA_Document* pDocument = (CPDFXFA_Document*)document; 572 CPDFXFA_Context* pContext = static_cast<CPDFXFA_Context*>(document);
571 if (pDocument->GetDocType() != XFA_DOCTYPE_Dynamic && 573 if (pContext->GetDocType() != XFA_DOCTYPE_Dynamic &&
572 pDocument->GetDocType() != XFA_DOCTYPE_Static) 574 pContext->GetDocType() != XFA_DOCTYPE_Static)
573 return; 575 return;
574 576
575 std::vector<CFX_ByteString>* sSuggestWords = new std::vector<CFX_ByteString>; 577 std::vector<CFX_ByteString>* sSuggestWords = new std::vector<CFX_ByteString>;
576 CFX_PointF ptPopup; 578 CFX_PointF ptPopup;
577 ptPopup.x = x; 579 ptPopup.x = x;
578 ptPopup.y = y; 580 ptPopup.y = y;
579 static_cast<CXFA_FFWidget*>(hWidget) 581 static_cast<CXFA_FFWidget*>(hWidget)
580 ->GetSuggestWords(ptPopup, *sSuggestWords); 582 ->GetSuggestWords(ptPopup, *sSuggestWords);
581 *stringHandle = ToFPDFStringHandle(sSuggestWords); 583 *stringHandle = ToFPDFStringHandle(sSuggestWords);
582 } 584 }
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 pFormFillEnv); 742 pFormFillEnv);
741 } 743 }
742 } else { 744 } else {
743 if (aa.ActionExist(CPDF_AAction::ClosePage)) { 745 if (aa.ActionExist(CPDF_AAction::ClosePage)) {
744 CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage); 746 CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage);
745 pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, 747 pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage,
746 pFormFillEnv); 748 pFormFillEnv);
747 } 749 }
748 } 750 }
749 } 751 }
OLDNEW
« no previous file with comments | « fpdfsdk/fpdfeditpage.cpp ('k') | fpdfsdk/fpdfsave.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698