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

Side by Side Diff: xfa/fwl/cfwl_datetimepicker.cpp

Issue 2560873005: Cleanup CFWL_Widget code to return CFX_RectFs where appropriate (Closed)
Patch Set: Review feedback Created 4 years 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/fwl/cfwl_datetimeedit.cpp ('k') | xfa/fwl/cfwl_edit.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 "xfa/fwl/cfwl_datetimepicker.h" 7 #include "xfa/fwl/cfwl_datetimepicker.h"
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 if (m_pWidgetMgr->IsFormDisabled()) { 70 if (m_pWidgetMgr->IsFormDisabled()) {
71 DisForm_Update(); 71 DisForm_Update();
72 return; 72 return;
73 } 73 }
74 if (m_iLock) 74 if (m_iLock)
75 return; 75 return;
76 if (!m_pProperties->m_pThemeProvider) 76 if (!m_pProperties->m_pThemeProvider)
77 m_pProperties->m_pThemeProvider = GetAvailableTheme(); 77 m_pProperties->m_pThemeProvider = GetAvailableTheme();
78 78
79 m_pEdit->SetThemeProvider(m_pProperties->m_pThemeProvider); 79 m_pEdit->SetThemeProvider(m_pProperties->m_pThemeProvider);
80 GetClientRect(m_rtClient); 80 m_rtClient = GetClientRect();
81 FX_FLOAT* pFWidth = static_cast<FX_FLOAT*>( 81 FX_FLOAT* pFWidth = static_cast<FX_FLOAT*>(
82 GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth)); 82 GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth));
83 if (!pFWidth) 83 if (!pFWidth)
84 return; 84 return;
85 85
86 FX_FLOAT fBtn = *pFWidth; 86 FX_FLOAT fBtn = *pFWidth;
87 m_rtBtn.Set(m_rtClient.right() - fBtn, m_rtClient.top, fBtn - 1, 87 m_rtBtn.Set(m_rtClient.right() - fBtn, m_rtClient.top, fBtn - 1,
88 m_rtClient.height - 1); 88 m_rtClient.height - 1);
89 89
90 CFX_RectF rtEdit; 90 CFX_RectF rtEdit;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 m_iMonth = iMonth; 165 m_iMonth = iMonth;
166 m_iDay = iDay; 166 m_iDay = iDay;
167 m_pMonthCal->SetSelect(iYear, iMonth, iDay); 167 m_pMonthCal->SetSelect(iYear, iMonth, iDay);
168 } 168 }
169 169
170 void CFWL_DateTimePicker::SetEditText(const CFX_WideString& wsText) { 170 void CFWL_DateTimePicker::SetEditText(const CFX_WideString& wsText) {
171 if (!m_pEdit) 171 if (!m_pEdit)
172 return; 172 return;
173 173
174 m_pEdit->SetText(wsText); 174 m_pEdit->SetText(wsText);
175 Repaint(&m_rtClient); 175 RepaintRect(m_rtClient);
176 176
177 CFWL_Event ev(CFWL_Event::Type::EditChanged); 177 CFWL_Event ev(CFWL_Event::Type::EditChanged);
178 DispatchEvent(&ev); 178 DispatchEvent(&ev);
179 } 179 }
180 180
181 CFX_WideString CFWL_DateTimePicker::GetEditText() const { 181 CFX_WideString CFWL_DateTimePicker::GetEditText() const {
182 return m_pEdit ? m_pEdit->GetText() : L""; 182 return m_pEdit ? m_pEdit->GetText() : L"";
183 } 183 }
184 184
185 void CFWL_DateTimePicker::GetBBox(CFX_RectF& rect) const { 185 void CFWL_DateTimePicker::GetBBox(CFX_RectF& rect) const {
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 int32_t iMonth, 320 int32_t iMonth,
321 int32_t iDay) { 321 int32_t iDay) {
322 m_iYear = iYear; 322 m_iYear = iYear;
323 m_iMonth = iMonth; 323 m_iMonth = iMonth;
324 m_iDay = iDay; 324 m_iDay = iDay;
325 325
326 CFX_WideString wsText; 326 CFX_WideString wsText;
327 FormatDateString(m_iYear, m_iMonth, m_iDay, wsText); 327 FormatDateString(m_iYear, m_iMonth, m_iDay, wsText);
328 m_pEdit->SetText(wsText); 328 m_pEdit->SetText(wsText);
329 m_pEdit->Update(); 329 m_pEdit->Update();
330 Repaint(&m_rtClient); 330 RepaintRect(m_rtClient);
331 331
332 CFWL_EventSelectChanged ev(this); 332 CFWL_EventSelectChanged ev(this);
333 ev.iYear = m_iYear; 333 ev.iYear = m_iYear;
334 ev.iMonth = m_iMonth; 334 ev.iMonth = m_iMonth;
335 ev.iDay = m_iDay; 335 ev.iDay = m_iDay;
336 DispatchEvent(&ev); 336 DispatchEvent(&ev);
337 } 337 }
338 338
339 void CFWL_DateTimePicker::InitProxyForm() { 339 void CFWL_DateTimePicker::InitProxyForm() {
340 if (m_pForm) 340 if (m_pForm)
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 m_pEdit->GetDelegate()->OnProcessMessage(&msg); 386 m_pEdit->GetDelegate()->OnProcessMessage(&msg);
387 } 387 }
388 388
389 CFX_RectF rtInvalidate; 389 CFX_RectF rtInvalidate;
390 rtInvalidate.Set(0, 0, m_pProperties->m_rtWidget.width, 390 rtInvalidate.Set(0, 0, m_pProperties->m_rtWidget.width,
391 m_pProperties->m_rtWidget.height); 391 m_pProperties->m_rtWidget.height);
392 392
393 CFX_RectF rtCal = m_pMonthCal->GetWidgetRect(); 393 CFX_RectF rtCal = m_pMonthCal->GetWidgetRect();
394 rtInvalidate.Union(rtCal); 394 rtInvalidate.Union(rtCal);
395 rtInvalidate.Inflate(2, 2); 395 rtInvalidate.Inflate(2, 2);
396 Repaint(&rtInvalidate); 396 RepaintRect(rtInvalidate);
397 } 397 }
398 398
399 FWL_WidgetHit CFWL_DateTimePicker::DisForm_HitTest(FX_FLOAT fx, 399 FWL_WidgetHit CFWL_DateTimePicker::DisForm_HitTest(FX_FLOAT fx,
400 FX_FLOAT fy) const { 400 FX_FLOAT fy) const {
401 CFX_RectF rect; 401 CFX_RectF rect;
402 rect.Set(0, 0, m_pProperties->m_rtWidget.width, 402 rect.Set(0, 0, m_pProperties->m_rtWidget.width,
403 m_pProperties->m_rtWidget.height); 403 m_pProperties->m_rtWidget.height);
404 if (rect.Contains(fx, fy)) 404 if (rect.Contains(fx, fy))
405 return FWL_WidgetHit::Edit; 405 return FWL_WidgetHit::Edit;
406 if (DisForm_IsNeedShowButton()) 406 if (DisForm_IsNeedShowButton())
(...skipping 13 matching lines...) Expand all
420 m_pEdit->GetStates() & FWL_WGTSTATE_Focused; 420 m_pEdit->GetStates() & FWL_WGTSTATE_Focused;
421 } 421 }
422 422
423 void CFWL_DateTimePicker::DisForm_Update() { 423 void CFWL_DateTimePicker::DisForm_Update() {
424 if (m_iLock) 424 if (m_iLock)
425 return; 425 return;
426 if (!m_pProperties->m_pThemeProvider) 426 if (!m_pProperties->m_pThemeProvider)
427 m_pProperties->m_pThemeProvider = GetAvailableTheme(); 427 m_pProperties->m_pThemeProvider = GetAvailableTheme();
428 428
429 m_pEdit->SetThemeProvider(m_pProperties->m_pThemeProvider); 429 m_pEdit->SetThemeProvider(m_pProperties->m_pThemeProvider);
430 GetClientRect(m_rtClient); 430 m_rtClient = GetClientRect();
431 m_pEdit->SetWidgetRect(m_rtClient); 431 m_pEdit->SetWidgetRect(m_rtClient);
432 ResetEditAlignment(); 432 ResetEditAlignment();
433 m_pEdit->Update(); 433 m_pEdit->Update();
434 434
435 if (!m_pMonthCal->GetThemeProvider()) 435 if (!m_pMonthCal->GetThemeProvider())
436 m_pMonthCal->SetThemeProvider(m_pProperties->m_pThemeProvider); 436 m_pMonthCal->SetThemeProvider(m_pProperties->m_pThemeProvider);
437 437
438 FX_FLOAT* pWidth = static_cast<FX_FLOAT*>( 438 FX_FLOAT* pWidth = static_cast<FX_FLOAT*>(
439 GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth)); 439 GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth));
440 if (!pWidth) 440 if (!pWidth)
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 } 536 }
537 537
538 void CFWL_DateTimePicker::OnFocusChanged(CFWL_Message* pMsg, bool bSet) { 538 void CFWL_DateTimePicker::OnFocusChanged(CFWL_Message* pMsg, bool bSet) {
539 if (!pMsg) 539 if (!pMsg)
540 return; 540 return;
541 if (m_pWidgetMgr->IsFormDisabled()) 541 if (m_pWidgetMgr->IsFormDisabled())
542 return DisForm_OnFocusChanged(pMsg, bSet); 542 return DisForm_OnFocusChanged(pMsg, bSet);
543 543
544 if (bSet) { 544 if (bSet) {
545 m_pProperties->m_dwStates |= (FWL_WGTSTATE_Focused); 545 m_pProperties->m_dwStates |= (FWL_WGTSTATE_Focused);
546 Repaint(&m_rtClient); 546 RepaintRect(m_rtClient);
547 } else { 547 } else {
548 m_pProperties->m_dwStates &= ~(FWL_WGTSTATE_Focused); 548 m_pProperties->m_dwStates &= ~(FWL_WGTSTATE_Focused);
549 Repaint(&m_rtClient); 549 RepaintRect(m_rtClient);
550 } 550 }
551 if (pMsg->m_pSrcTarget == m_pMonthCal.get() && IsMonthCalendarVisible()) { 551 if (pMsg->m_pSrcTarget == m_pMonthCal.get() && IsMonthCalendarVisible()) {
552 ShowMonthCalendar(false); 552 ShowMonthCalendar(false);
553 } 553 }
554 Repaint(&m_rtClient); 554 RepaintRect(m_rtClient);
555 } 555 }
556 556
557 void CFWL_DateTimePicker::OnLButtonDown(CFWL_MessageMouse* pMsg) { 557 void CFWL_DateTimePicker::OnLButtonDown(CFWL_MessageMouse* pMsg) {
558 if (!pMsg) 558 if (!pMsg)
559 return; 559 return;
560 if ((m_pProperties->m_dwStates & FWL_WGTSTATE_Focused) == 0) 560 if ((m_pProperties->m_dwStates & FWL_WGTSTATE_Focused) == 0)
561 SetFocus(true); 561 SetFocus(true);
562 if (!m_rtBtn.Contains(pMsg->m_fx, pMsg->m_fy)) 562 if (!m_rtBtn.Contains(pMsg->m_fx, pMsg->m_fy))
563 return; 563 return;
564 564
565 if (IsMonthCalendarVisible()) { 565 if (IsMonthCalendarVisible()) {
566 ShowMonthCalendar(false); 566 ShowMonthCalendar(false);
567 return; 567 return;
568 } 568 }
569 if (!(m_pProperties->m_dwStyleExes & FWL_STYLEEXT_DTP_TimeFormat)) 569 if (!(m_pProperties->m_dwStyleExes & FWL_STYLEEXT_DTP_TimeFormat))
570 ShowMonthCalendar(true); 570 ShowMonthCalendar(true);
571 571
572 m_bLBtnDown = true; 572 m_bLBtnDown = true;
573 Repaint(&m_rtClient); 573 RepaintRect(m_rtClient);
574 } 574 }
575 575
576 void CFWL_DateTimePicker::OnLButtonUp(CFWL_MessageMouse* pMsg) { 576 void CFWL_DateTimePicker::OnLButtonUp(CFWL_MessageMouse* pMsg) {
577 if (!pMsg) 577 if (!pMsg)
578 return; 578 return;
579 579
580 m_bLBtnDown = false; 580 m_bLBtnDown = false;
581 if (m_rtBtn.Contains(pMsg->m_fx, pMsg->m_fy)) 581 if (m_rtBtn.Contains(pMsg->m_fx, pMsg->m_fy))
582 m_iBtnState = CFWL_PartState_Hovered; 582 m_iBtnState = CFWL_PartState_Hovered;
583 else 583 else
584 m_iBtnState = CFWL_PartState_Normal; 584 m_iBtnState = CFWL_PartState_Normal;
585 Repaint(&m_rtBtn); 585 RepaintRect(m_rtBtn);
586 } 586 }
587 587
588 void CFWL_DateTimePicker::OnMouseMove(CFWL_MessageMouse* pMsg) { 588 void CFWL_DateTimePicker::OnMouseMove(CFWL_MessageMouse* pMsg) {
589 if (!m_rtBtn.Contains(pMsg->m_fx, pMsg->m_fy)) 589 if (!m_rtBtn.Contains(pMsg->m_fx, pMsg->m_fy))
590 m_iBtnState = CFWL_PartState_Normal; 590 m_iBtnState = CFWL_PartState_Normal;
591 Repaint(&m_rtBtn); 591 RepaintRect(m_rtBtn);
592 } 592 }
593 593
594 void CFWL_DateTimePicker::OnMouseLeave(CFWL_MessageMouse* pMsg) { 594 void CFWL_DateTimePicker::OnMouseLeave(CFWL_MessageMouse* pMsg) {
595 if (!pMsg) 595 if (!pMsg)
596 return; 596 return;
597 m_iBtnState = CFWL_PartState_Normal; 597 m_iBtnState = CFWL_PartState_Normal;
598 Repaint(&m_rtBtn); 598 RepaintRect(m_rtBtn);
599 } 599 }
600 600
601 void CFWL_DateTimePicker::DisForm_OnFocusChanged(CFWL_Message* pMsg, 601 void CFWL_DateTimePicker::DisForm_OnFocusChanged(CFWL_Message* pMsg,
602 bool bSet) { 602 bool bSet) {
603 CFX_RectF rtInvalidate(m_rtBtn); 603 CFX_RectF rtInvalidate(m_rtBtn);
604 if (bSet) { 604 if (bSet) {
605 m_pProperties->m_dwStates |= FWL_WGTSTATE_Focused; 605 m_pProperties->m_dwStates |= FWL_WGTSTATE_Focused;
606 if (m_pEdit && !(m_pEdit->GetStylesEx() & FWL_STYLEEXT_EDT_ReadOnly)) { 606 if (m_pEdit && !(m_pEdit->GetStylesEx() & FWL_STYLEEXT_EDT_ReadOnly)) {
607 m_rtBtn.Set(m_pProperties->m_rtWidget.width, 0, m_fBtn, 607 m_rtBtn.Set(m_pProperties->m_rtWidget.width, 0, m_fBtn,
608 m_pProperties->m_rtWidget.height - 1); 608 m_pProperties->m_rtWidget.height - 1);
609 } 609 }
610 rtInvalidate = m_rtBtn; 610 rtInvalidate = m_rtBtn;
611 pMsg->m_pDstTarget = m_pEdit.get(); 611 pMsg->m_pDstTarget = m_pEdit.get();
612 m_pEdit->GetDelegate()->OnProcessMessage(pMsg); 612 m_pEdit->GetDelegate()->OnProcessMessage(pMsg);
613 } else { 613 } else {
614 m_pProperties->m_dwStates &= ~FWL_WGTSTATE_Focused; 614 m_pProperties->m_dwStates &= ~FWL_WGTSTATE_Focused;
615 m_rtBtn.Set(0, 0, 0, 0); 615 m_rtBtn.Set(0, 0, 0, 0);
616 if (DisForm_IsMonthCalendarVisible()) 616 if (DisForm_IsMonthCalendarVisible())
617 ShowMonthCalendar(false); 617 ShowMonthCalendar(false);
618 if (m_pEdit->GetStates() & FWL_WGTSTATE_Focused) { 618 if (m_pEdit->GetStates() & FWL_WGTSTATE_Focused) {
619 pMsg->m_pSrcTarget = m_pEdit.get(); 619 pMsg->m_pSrcTarget = m_pEdit.get();
620 m_pEdit->GetDelegate()->OnProcessMessage(pMsg); 620 m_pEdit->GetDelegate()->OnProcessMessage(pMsg);
621 } 621 }
622 } 622 }
623 rtInvalidate.Inflate(2, 2); 623 rtInvalidate.Inflate(2, 2);
624 Repaint(&rtInvalidate); 624 RepaintRect(rtInvalidate);
625 } 625 }
OLDNEW
« no previous file with comments | « xfa/fwl/cfwl_datetimeedit.cpp ('k') | xfa/fwl/cfwl_edit.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698