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

Side by Side Diff: fpdfsdk/formfiller/cffl_iformfiller.cpp

Issue 2173253002: Use smart pointers for class owned pointers (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: address comments Created 4 years, 4 months 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/formfiller/cffl_iformfiller.h ('k') | fpdfsdk/formfiller/cffl_listbox.h » ('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 "fpdfsdk/formfiller/cffl_iformfiller.h" 7 #include "fpdfsdk/formfiller/cffl_iformfiller.h"
8 8
9 #include "core/fpdfapi/fpdf_page/include/cpdf_page.h" 9 #include "core/fpdfapi/fpdf_page/include/cpdf_page.h"
10 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" 10 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h"
11 #include "core/fxge/include/fx_ge.h" 11 #include "core/fxge/include/fx_ge.h"
12 #include "fpdfsdk/formfiller/cffl_checkbox.h" 12 #include "fpdfsdk/formfiller/cffl_checkbox.h"
13 #include "fpdfsdk/formfiller/cffl_combobox.h" 13 #include "fpdfsdk/formfiller/cffl_combobox.h"
14 #include "fpdfsdk/formfiller/cffl_formfiller.h" 14 #include "fpdfsdk/formfiller/cffl_formfiller.h"
15 #include "fpdfsdk/formfiller/cffl_listbox.h" 15 #include "fpdfsdk/formfiller/cffl_listbox.h"
16 #include "fpdfsdk/formfiller/cffl_pushbutton.h" 16 #include "fpdfsdk/formfiller/cffl_pushbutton.h"
17 #include "fpdfsdk/formfiller/cffl_radiobutton.h" 17 #include "fpdfsdk/formfiller/cffl_radiobutton.h"
18 #include "fpdfsdk/formfiller/cffl_textfield.h" 18 #include "fpdfsdk/formfiller/cffl_textfield.h"
19 #include "fpdfsdk/include/fsdk_mgr.h" 19 #include "fpdfsdk/include/fsdk_mgr.h"
20 #include "fpdfsdk/pdfwindow/PWL_Utils.h" 20 #include "fpdfsdk/pdfwindow/PWL_Utils.h"
21 21
22 #define FFL_MAXLISTBOXHEIGHT 140.0f 22 #define FFL_MAXLISTBOXHEIGHT 140.0f
23 23
24 CFFL_IFormFiller::CFFL_IFormFiller(CPDFDoc_Environment* pApp) 24 CFFL_IFormFiller::CFFL_IFormFiller(CPDFDoc_Environment* pApp)
25 : m_pApp(pApp), m_bNotifying(FALSE) {} 25 : m_pApp(pApp), m_bNotifying(FALSE) {}
26 26
27 CFFL_IFormFiller::~CFFL_IFormFiller() { 27 CFFL_IFormFiller::~CFFL_IFormFiller() {}
28 for (auto& it : m_Maps)
29 delete it.second;
30 m_Maps.clear();
31 }
32 28
33 FX_BOOL CFFL_IFormFiller::Annot_HitTest(CPDFSDK_PageView* pPageView, 29 FX_BOOL CFFL_IFormFiller::Annot_HitTest(CPDFSDK_PageView* pPageView,
34 CPDFSDK_Annot* pAnnot, 30 CPDFSDK_Annot* pAnnot,
35 CFX_FloatPoint point) { 31 CFX_FloatPoint point) {
36 CFX_FloatRect rc = pAnnot->GetRect(); 32 CFX_FloatRect rc = pAnnot->GetRect();
37 return rc.Contains(point.x, point.y); 33 return rc.Contains(point.x, point.y);
38 } 34 }
39 35
40 FX_RECT CFFL_IFormFiller::GetViewBBox(CPDFSDK_PageView* pPageView, 36 FX_RECT CFFL_IFormFiller::GetViewBBox(CPDFSDK_PageView* pPageView,
41 CPDFSDK_Annot* pAnnot) { 37 CPDFSDK_Annot* pAnnot) {
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 uint32_t dwPermissions = pDocument->GetUserPermissions(); 500 uint32_t dwPermissions = pDocument->GetUserPermissions();
505 return (dwPermissions & FPDFPERM_FILL_FORM) || 501 return (dwPermissions & FPDFPERM_FILL_FORM) ||
506 (dwPermissions & FPDFPERM_ANNOT_FORM) || 502 (dwPermissions & FPDFPERM_ANNOT_FORM) ||
507 (dwPermissions & FPDFPERM_MODIFY); 503 (dwPermissions & FPDFPERM_MODIFY);
508 } 504 }
509 505
510 CFFL_FormFiller* CFFL_IFormFiller::GetFormFiller(CPDFSDK_Annot* pAnnot, 506 CFFL_FormFiller* CFFL_IFormFiller::GetFormFiller(CPDFSDK_Annot* pAnnot,
511 FX_BOOL bRegister) { 507 FX_BOOL bRegister) {
512 auto it = m_Maps.find(pAnnot); 508 auto it = m_Maps.find(pAnnot);
513 if (it != m_Maps.end()) 509 if (it != m_Maps.end())
514 return it->second; 510 return it->second.get();
515 511
516 if (!bRegister) 512 if (!bRegister)
517 return nullptr; 513 return nullptr;
518 514
519 CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot; 515 CPDFSDK_Widget* pWidget = (CPDFSDK_Widget*)pAnnot;
520 int nFieldType = pWidget->GetFieldType(); 516 int nFieldType = pWidget->GetFieldType();
521 CFFL_FormFiller* pFormFiller; 517 CFFL_FormFiller* pFormFiller;
522 switch (nFieldType) { 518 switch (nFieldType) {
523 case FIELDTYPE_PUSHBUTTON: 519 case FIELDTYPE_PUSHBUTTON:
524 pFormFiller = new CFFL_PushButton(m_pApp, pWidget); 520 pFormFiller = new CFFL_PushButton(m_pApp, pWidget);
(...skipping 15 matching lines...) Expand all
540 break; 536 break;
541 case FIELDTYPE_UNKNOWN: 537 case FIELDTYPE_UNKNOWN:
542 default: 538 default:
543 pFormFiller = nullptr; 539 pFormFiller = nullptr;
544 break; 540 break;
545 } 541 }
546 542
547 if (!pFormFiller) 543 if (!pFormFiller)
548 return nullptr; 544 return nullptr;
549 545
550 m_Maps[pAnnot] = pFormFiller; 546 m_Maps[pAnnot].reset(pFormFiller);
551 return pFormFiller; 547 return pFormFiller;
552 } 548 }
553 549
554 void CFFL_IFormFiller::RemoveFormFiller(CPDFSDK_Annot* pAnnot) { 550 void CFFL_IFormFiller::RemoveFormFiller(CPDFSDK_Annot* pAnnot) {
555 if (pAnnot) { 551 if (pAnnot) {
556 UnRegisterFormFiller(pAnnot); 552 UnRegisterFormFiller(pAnnot);
557 } 553 }
558 } 554 }
559 555
560 void CFFL_IFormFiller::UnRegisterFormFiller(CPDFSDK_Annot* pAnnot) { 556 void CFFL_IFormFiller::UnRegisterFormFiller(CPDFSDK_Annot* pAnnot) {
561 auto it = m_Maps.find(pAnnot); 557 auto it = m_Maps.find(pAnnot);
562 if (it == m_Maps.end()) 558 if (it == m_Maps.end())
563 return; 559 return;
564 560
565 delete it->second;
566 m_Maps.erase(it); 561 m_Maps.erase(it);
567 } 562 }
568 563
569 void CFFL_IFormFiller::QueryWherePopup(void* pPrivateData, 564 void CFFL_IFormFiller::QueryWherePopup(void* pPrivateData,
570 FX_FLOAT fPopupMin, 565 FX_FLOAT fPopupMin,
571 FX_FLOAT fPopupMax, 566 FX_FLOAT fPopupMax,
572 int32_t& nRet, 567 int32_t& nRet,
573 FX_FLOAT& fPopupRet) { 568 FX_FLOAT& fPopupRet) {
574 CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData; 569 CFFL_PrivateData* pData = (CFFL_PrivateData*)pPrivateData;
575 570
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
1003 bExit = TRUE; 998 bExit = TRUE;
1004 m_bNotifying = FALSE; 999 m_bNotifying = FALSE;
1005 return; 1000 return;
1006 } 1001 }
1007 } 1002 }
1008 1003
1009 m_bNotifying = FALSE; 1004 m_bNotifying = FALSE;
1010 } 1005 }
1011 } 1006 }
1012 } 1007 }
OLDNEW
« no previous file with comments | « fpdfsdk/formfiller/cffl_iformfiller.h ('k') | fpdfsdk/formfiller/cffl_listbox.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698