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

Side by Side Diff: xfa/fxfa/app/xfa_fffield.cpp

Issue 2031873003: Get rid of NULLs in xfa/ (Closed) Base URL: https://pdfium.googlesource.com/pdfium@nullptr_fpdfsdk
Patch Set: Created 4 years, 6 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 | « xfa/fxfa/app/xfa_fffield.h ('k') | xfa/fxfa/app/xfa_ffimage.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 "xfa/fxfa/app/xfa_fffield.h" 7 #include "xfa/fxfa/app/xfa_fffield.h"
8 8
9 #include "xfa/fwl/basewidget/ifwl_edit.h" 9 #include "xfa/fwl/basewidget/ifwl_edit.h"
10 #include "xfa/fwl/core/cfwl_message.h" 10 #include "xfa/fwl/core/cfwl_message.h"
11 #include "xfa/fwl/core/cfwl_widgetmgr.h" 11 #include "xfa/fwl/core/cfwl_widgetmgr.h"
12 #include "xfa/fwl/lightwidget/cfwl_edit.h" 12 #include "xfa/fwl/lightwidget/cfwl_edit.h"
13 #include "xfa/fwl/lightwidget/cfwl_picturebox.h" 13 #include "xfa/fwl/lightwidget/cfwl_picturebox.h"
14 #include "xfa/fxfa/app/xfa_fwltheme.h" 14 #include "xfa/fxfa/app/xfa_fwltheme.h"
15 #include "xfa/fxfa/app/xfa_textlayout.h" 15 #include "xfa/fxfa/app/xfa_textlayout.h"
16 #include "xfa/fxfa/include/xfa_ffapp.h" 16 #include "xfa/fxfa/include/xfa_ffapp.h"
17 #include "xfa/fxfa/include/xfa_ffdoc.h" 17 #include "xfa/fxfa/include/xfa_ffdoc.h"
18 #include "xfa/fxfa/include/xfa_ffdocview.h" 18 #include "xfa/fxfa/include/xfa_ffdocview.h"
19 #include "xfa/fxfa/include/xfa_ffpageview.h" 19 #include "xfa/fxfa/include/xfa_ffpageview.h"
20 #include "xfa/fxfa/include/xfa_ffwidget.h" 20 #include "xfa/fxfa/include/xfa_ffwidget.h"
21 #include "xfa/fxgraphics/cfx_color.h" 21 #include "xfa/fxgraphics/cfx_color.h"
22 #include "xfa/fxgraphics/cfx_path.h" 22 #include "xfa/fxgraphics/cfx_path.h"
23 23
24 CXFA_FFField::CXFA_FFField(CXFA_FFPageView* pPageView, CXFA_WidgetAcc* pDataAcc) 24 CXFA_FFField::CXFA_FFField(CXFA_FFPageView* pPageView, CXFA_WidgetAcc* pDataAcc)
25 : CXFA_FFWidget(pPageView, pDataAcc), m_pNormalWidget(NULL) { 25 : CXFA_FFWidget(pPageView, pDataAcc), m_pNormalWidget(nullptr) {
26 m_rtUI.Set(0, 0, 0, 0); 26 m_rtUI.Set(0, 0, 0, 0);
27 m_rtCaption.Set(0, 0, 0, 0); 27 m_rtCaption.Set(0, 0, 0, 0);
28 } 28 }
29 CXFA_FFField::~CXFA_FFField() { 29 CXFA_FFField::~CXFA_FFField() {
30 CXFA_FFField::UnloadWidget(); 30 CXFA_FFField::UnloadWidget();
31 } 31 }
32 32
33 FX_BOOL CXFA_FFField::GetBBox(CFX_RectF& rtBox, 33 FX_BOOL CXFA_FFField::GetBBox(CFX_RectF& rtBox,
34 uint32_t dwStatus, 34 uint32_t dwStatus,
35 FX_BOOL bDrawFocus) { 35 FX_BOOL bDrawFocus) {
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 CFX_RectF rtWidget; 160 CFX_RectF rtWidget;
161 GetRectWithoutRotate(rtWidget); 161 GetRectWithoutRotate(rtWidget);
162 CXFA_Margin mgWidget = m_pDataAcc->GetMargin(); 162 CXFA_Margin mgWidget = m_pDataAcc->GetMargin();
163 if (mgWidget) { 163 if (mgWidget) {
164 CXFA_LayoutItem* pItem = this; 164 CXFA_LayoutItem* pItem = this;
165 FX_FLOAT fLeftInset = 0, fRightInset = 0, fTopInset = 0, fBottomInset = 0; 165 FX_FLOAT fLeftInset = 0, fRightInset = 0, fTopInset = 0, fBottomInset = 0;
166 mgWidget.GetLeftInset(fLeftInset); 166 mgWidget.GetLeftInset(fLeftInset);
167 mgWidget.GetRightInset(fRightInset); 167 mgWidget.GetRightInset(fRightInset);
168 mgWidget.GetTopInset(fTopInset); 168 mgWidget.GetTopInset(fTopInset);
169 mgWidget.GetBottomInset(fBottomInset); 169 mgWidget.GetBottomInset(fBottomInset);
170 if (pItem->GetPrev() == NULL && pItem->GetNext() == NULL) { 170 if (!pItem->GetPrev() && !pItem->GetNext()) {
171 rtWidget.Deflate(fLeftInset, fTopInset, fRightInset, fBottomInset); 171 rtWidget.Deflate(fLeftInset, fTopInset, fRightInset, fBottomInset);
172 } else { 172 } else {
173 if (pItem->GetPrev() == NULL) { 173 if (!pItem->GetPrev()) {
174 rtWidget.Deflate(fLeftInset, fTopInset, fRightInset, 0); 174 rtWidget.Deflate(fLeftInset, fTopInset, fRightInset, 0);
175 } else if (pItem->GetNext() == NULL) { 175 } else if (!pItem->GetNext()) {
176 rtWidget.Deflate(fLeftInset, 0, fRightInset, fBottomInset); 176 rtWidget.Deflate(fLeftInset, 0, fRightInset, fBottomInset);
177 } else { 177 } else {
178 rtWidget.Deflate(fLeftInset, 0, fRightInset, 0); 178 rtWidget.Deflate(fLeftInset, 0, fRightInset, 0);
179 } 179 }
180 } 180 }
181 } 181 }
182 XFA_ATTRIBUTEENUM iCapPlacement = XFA_ATTRIBUTEENUM_Unknown; 182 XFA_ATTRIBUTEENUM iCapPlacement = XFA_ATTRIBUTEENUM_Unknown;
183 FX_FLOAT fCapReserve = 0; 183 FX_FLOAT fCapReserve = 0;
184 CXFA_Caption caption = m_pDataAcc->GetCaption(); 184 CXFA_Caption caption = m_pDataAcc->GetCaption();
185 if (caption && caption.GetPresence() != XFA_ATTRIBUTEENUM_Hidden) { 185 if (caption && caption.GetPresence() != XFA_ATTRIBUTEENUM_Hidden) {
186 iCapPlacement = (XFA_ATTRIBUTEENUM)caption.GetPlacementType(); 186 iCapPlacement = (XFA_ATTRIBUTEENUM)caption.GetPlacementType();
187 if (iCapPlacement == XFA_ATTRIBUTEENUM_Top && GetPrev()) { 187 if (iCapPlacement == XFA_ATTRIBUTEENUM_Top && GetPrev()) {
188 m_rtCaption.Set(0, 0, 0, 0); 188 m_rtCaption.Set(0, 0, 0, 0);
189 } else if (iCapPlacement == XFA_ATTRIBUTEENUM_Bottom && GetNext()) { 189 } else if (iCapPlacement == XFA_ATTRIBUTEENUM_Bottom && GetNext()) {
190 m_rtCaption.Set(0, 0, 0, 0); 190 m_rtCaption.Set(0, 0, 0, 0);
191 } else { 191 } else {
192 fCapReserve = caption.GetReserve(); 192 fCapReserve = caption.GetReserve();
193 CXFA_LayoutItem* pItem = this; 193 CXFA_LayoutItem* pItem = this;
194 if (pItem->GetPrev() == NULL && pItem->GetNext() == NULL) { 194 if (!pItem->GetPrev() && !pItem->GetNext()) {
195 m_rtCaption.Set(rtWidget.left, rtWidget.top, rtWidget.width, 195 m_rtCaption.Set(rtWidget.left, rtWidget.top, rtWidget.width,
196 rtWidget.height); 196 rtWidget.height);
197 } else { 197 } else {
198 pItem = pItem->GetFirst(); 198 pItem = pItem->GetFirst();
199 pItem->GetRect(m_rtCaption); 199 pItem->GetRect(m_rtCaption);
200 pItem = pItem->GetNext(); 200 pItem = pItem->GetNext();
201 while (pItem) { 201 while (pItem) {
202 CFX_RectF rtRect; 202 CFX_RectF rtRect;
203 pItem->GetRect(rtRect); 203 pItem->GetRect(rtRect);
204 m_rtCaption.height += rtRect.Height(); 204 m_rtCaption.height += rtRect.Height();
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 } 344 }
345 m_pNormalWidget->SetWidgetRect(rtUi); 345 m_pNormalWidget->SetWidgetRect(rtUi);
346 } 346 }
347 FX_BOOL CXFA_FFField::OnMouseEnter() { 347 FX_BOOL CXFA_FFField::OnMouseEnter() {
348 if (!m_pNormalWidget) { 348 if (!m_pNormalWidget) {
349 return FALSE; 349 return FALSE;
350 } 350 }
351 CFWL_MsgMouse ms; 351 CFWL_MsgMouse ms;
352 ms.m_dwCmd = FWL_MouseCommand::Enter; 352 ms.m_dwCmd = FWL_MouseCommand::Enter;
353 ms.m_pDstTarget = m_pNormalWidget->m_pIface; 353 ms.m_pDstTarget = m_pNormalWidget->m_pIface;
354 ms.m_pSrcTarget = NULL; 354 ms.m_pSrcTarget = nullptr;
355 TranslateFWLMessage(&ms); 355 TranslateFWLMessage(&ms);
356 return TRUE; 356 return TRUE;
357 } 357 }
358 FX_BOOL CXFA_FFField::OnMouseExit() { 358 FX_BOOL CXFA_FFField::OnMouseExit() {
359 if (!m_pNormalWidget) { 359 if (!m_pNormalWidget) {
360 return FALSE; 360 return FALSE;
361 } 361 }
362 CFWL_MsgMouse ms; 362 CFWL_MsgMouse ms;
363 ms.m_dwCmd = FWL_MouseCommand::Leave; 363 ms.m_dwCmd = FWL_MouseCommand::Leave;
364 ms.m_pDstTarget = m_pNormalWidget->m_pIface; 364 ms.m_pDstTarget = m_pNormalWidget->m_pIface;
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 return TRUE; 523 return TRUE;
524 } 524 }
525 525
526 FX_BOOL CXFA_FFField::OnSetFocus(CXFA_FFWidget* pOldWidget) { 526 FX_BOOL CXFA_FFField::OnSetFocus(CXFA_FFWidget* pOldWidget) {
527 CXFA_FFWidget::OnSetFocus(pOldWidget); 527 CXFA_FFWidget::OnSetFocus(pOldWidget);
528 if (!m_pNormalWidget) { 528 if (!m_pNormalWidget) {
529 return FALSE; 529 return FALSE;
530 } 530 }
531 CFWL_MsgSetFocus ms; 531 CFWL_MsgSetFocus ms;
532 ms.m_pDstTarget = m_pNormalWidget->m_pIface; 532 ms.m_pDstTarget = m_pNormalWidget->m_pIface;
533 ms.m_pSrcTarget = NULL; 533 ms.m_pSrcTarget = nullptr;
534 TranslateFWLMessage(&ms); 534 TranslateFWLMessage(&ms);
535 m_dwStatus |= XFA_WidgetStatus_Focused; 535 m_dwStatus |= XFA_WidgetStatus_Focused;
536 AddInvalidateRect(); 536 AddInvalidateRect();
537 return TRUE; 537 return TRUE;
538 } 538 }
539 FX_BOOL CXFA_FFField::OnKillFocus(CXFA_FFWidget* pNewWidget) { 539 FX_BOOL CXFA_FFField::OnKillFocus(CXFA_FFWidget* pNewWidget) {
540 if (!m_pNormalWidget) { 540 if (!m_pNormalWidget) {
541 return CXFA_FFWidget::OnKillFocus(pNewWidget); 541 return CXFA_FFWidget::OnKillFocus(pNewWidget);
542 } 542 }
543 CFWL_MsgKillFocus ms; 543 CFWL_MsgKillFocus ms;
544 ms.m_pDstTarget = m_pNormalWidget->m_pIface; 544 ms.m_pDstTarget = m_pNormalWidget->m_pIface;
545 ms.m_pSrcTarget = NULL; 545 ms.m_pSrcTarget = nullptr;
546 TranslateFWLMessage(&ms); 546 TranslateFWLMessage(&ms);
547 m_dwStatus &= ~XFA_WidgetStatus_Focused; 547 m_dwStatus &= ~XFA_WidgetStatus_Focused;
548 AddInvalidateRect(); 548 AddInvalidateRect();
549 CXFA_FFWidget::OnKillFocus(pNewWidget); 549 CXFA_FFWidget::OnKillFocus(pNewWidget);
550 return TRUE; 550 return TRUE;
551 } 551 }
552 FX_BOOL CXFA_FFField::OnKeyDown(uint32_t dwKeyCode, uint32_t dwFlags) { 552 FX_BOOL CXFA_FFField::OnKeyDown(uint32_t dwKeyCode, uint32_t dwFlags) {
553 if (!m_pNormalWidget || !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) { 553 if (!m_pNormalWidget || !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) {
554 return FALSE; 554 return FALSE;
555 } 555 }
556 CFWL_MsgKey ms; 556 CFWL_MsgKey ms;
557 ms.m_dwCmd = FWL_KeyCommand::KeyDown; 557 ms.m_dwCmd = FWL_KeyCommand::KeyDown;
558 ms.m_dwFlags = dwFlags; 558 ms.m_dwFlags = dwFlags;
559 ms.m_dwKeyCode = dwKeyCode; 559 ms.m_dwKeyCode = dwKeyCode;
560 ms.m_pDstTarget = m_pNormalWidget->m_pIface; 560 ms.m_pDstTarget = m_pNormalWidget->m_pIface;
561 ms.m_pSrcTarget = NULL; 561 ms.m_pSrcTarget = nullptr;
562 TranslateFWLMessage(&ms); 562 TranslateFWLMessage(&ms);
563 return TRUE; 563 return TRUE;
564 } 564 }
565 FX_BOOL CXFA_FFField::OnKeyUp(uint32_t dwKeyCode, uint32_t dwFlags) { 565 FX_BOOL CXFA_FFField::OnKeyUp(uint32_t dwKeyCode, uint32_t dwFlags) {
566 if (!m_pNormalWidget || !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) { 566 if (!m_pNormalWidget || !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) {
567 return FALSE; 567 return FALSE;
568 } 568 }
569 CFWL_MsgKey ms; 569 CFWL_MsgKey ms;
570 ms.m_dwCmd = FWL_KeyCommand::KeyUp; 570 ms.m_dwCmd = FWL_KeyCommand::KeyUp;
571 ms.m_dwFlags = dwFlags; 571 ms.m_dwFlags = dwFlags;
572 ms.m_dwKeyCode = dwKeyCode; 572 ms.m_dwKeyCode = dwKeyCode;
573 ms.m_pDstTarget = m_pNormalWidget->m_pIface; 573 ms.m_pDstTarget = m_pNormalWidget->m_pIface;
574 ms.m_pSrcTarget = NULL; 574 ms.m_pSrcTarget = nullptr;
575 TranslateFWLMessage(&ms); 575 TranslateFWLMessage(&ms);
576 return TRUE; 576 return TRUE;
577 } 577 }
578 FX_BOOL CXFA_FFField::OnChar(uint32_t dwChar, uint32_t dwFlags) { 578 FX_BOOL CXFA_FFField::OnChar(uint32_t dwChar, uint32_t dwFlags) {
579 if (!m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) { 579 if (!m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) {
580 return FALSE; 580 return FALSE;
581 } 581 }
582 if (dwChar == FWL_VKEY_Tab) { 582 if (dwChar == FWL_VKEY_Tab) {
583 return TRUE; 583 return TRUE;
584 } 584 }
585 if (!m_pNormalWidget) { 585 if (!m_pNormalWidget) {
586 return FALSE; 586 return FALSE;
587 } 587 }
588 if (m_pDataAcc->GetAccess() != XFA_ATTRIBUTEENUM_Open) { 588 if (m_pDataAcc->GetAccess() != XFA_ATTRIBUTEENUM_Open) {
589 return FALSE; 589 return FALSE;
590 } 590 }
591 CFWL_MsgKey ms; 591 CFWL_MsgKey ms;
592 ms.m_dwCmd = FWL_KeyCommand::Char; 592 ms.m_dwCmd = FWL_KeyCommand::Char;
593 ms.m_dwFlags = dwFlags; 593 ms.m_dwFlags = dwFlags;
594 ms.m_dwKeyCode = dwChar; 594 ms.m_dwKeyCode = dwChar;
595 ms.m_pDstTarget = m_pNormalWidget->m_pIface; 595 ms.m_pDstTarget = m_pNormalWidget->m_pIface;
596 ms.m_pSrcTarget = NULL; 596 ms.m_pSrcTarget = nullptr;
597 TranslateFWLMessage(&ms); 597 TranslateFWLMessage(&ms);
598 return TRUE; 598 return TRUE;
599 } 599 }
600 FWL_WidgetHit CXFA_FFField::OnHitTest(FX_FLOAT fx, FX_FLOAT fy) { 600 FWL_WidgetHit CXFA_FFField::OnHitTest(FX_FLOAT fx, FX_FLOAT fy) {
601 if (m_pNormalWidget) { 601 if (m_pNormalWidget) {
602 FX_FLOAT ffx = fx, ffy = fy; 602 FX_FLOAT ffx = fx, ffy = fy;
603 FWLToClient(ffx, ffy); 603 FWLToClient(ffx, ffy);
604 if (m_pNormalWidget->HitTest(ffx, ffy) != FWL_WidgetHit::Unknown) 604 if (m_pNormalWidget->HitTest(ffx, ffy) != FWL_WidgetHit::Unknown)
605 return FWL_WidgetHit::Client; 605 return FWL_WidgetHit::Client;
606 } 606 }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 if (!pAcc) { 683 if (!pAcc) {
684 return CalculateWidgetAcc(m_pDataAcc); 684 return CalculateWidgetAcc(m_pDataAcc);
685 } 685 }
686 if (CalculateWidgetAcc(pAcc) == 0) { 686 if (CalculateWidgetAcc(pAcc) == 0) {
687 return 0; 687 return 0;
688 } 688 }
689 CXFA_Node* pNode = pAcc->GetExclGroupFirstMember(); 689 CXFA_Node* pNode = pAcc->GetExclGroupFirstMember();
690 if (!pNode) { 690 if (!pNode) {
691 return 1; 691 return 1;
692 } 692 }
693 CXFA_WidgetAcc* pWidgetAcc = NULL; 693 CXFA_WidgetAcc* pWidgetAcc = nullptr;
694 while (pNode) { 694 while (pNode) {
695 pWidgetAcc = (CXFA_WidgetAcc*)pNode->GetWidgetData(); 695 pWidgetAcc = (CXFA_WidgetAcc*)pNode->GetWidgetData();
696 if (!pWidgetAcc) { 696 if (!pWidgetAcc) {
697 return 1; 697 return 1;
698 } 698 }
699 if (CalculateWidgetAcc(pWidgetAcc) == 0) { 699 if (CalculateWidgetAcc(pWidgetAcc) == 0) {
700 return 0; 700 return 0;
701 } 701 }
702 pNode = pWidgetAcc->GetExclGroupNextMember(pNode); 702 pNode = pWidgetAcc->GetExclGroupNextMember(pNode);
703 } 703 }
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Click, &eParam); 819 m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Click, &eParam);
820 break; 820 break;
821 } 821 }
822 default: 822 default:
823 break; 823 break;
824 } 824 }
825 } 825 }
826 826
827 void CXFA_FFField::OnDrawWidget(CFX_Graphics* pGraphics, 827 void CXFA_FFField::OnDrawWidget(CFX_Graphics* pGraphics,
828 const CFX_Matrix* pMatrix) {} 828 const CFX_Matrix* pMatrix) {}
OLDNEW
« no previous file with comments | « xfa/fxfa/app/xfa_fffield.h ('k') | xfa/fxfa/app/xfa_ffimage.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698