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

Side by Side Diff: xfa/fwl/core/ifwl_datetimepicker.cpp

Issue 2480233003: Fold DataProviders into parent classes (Closed)
Patch Set: 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
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/core/ifwl_datetimepicker.h" 7 #include "xfa/fwl/core/ifwl_datetimepicker.h"
8 8
9 #include "third_party/base/ptr_util.h" 9 #include "third_party/base/ptr_util.h"
10 #include "xfa/fwl/core/cfwl_message.h" 10 #include "xfa/fwl/core/cfwl_message.h"
(...skipping 19 matching lines...) Expand all
30 : IFWL_Widget(app, std::move(properties), nullptr), 30 : IFWL_Widget(app, std::move(properties), nullptr),
31 m_iBtnState(1), 31 m_iBtnState(1),
32 m_iYear(-1), 32 m_iYear(-1),
33 m_iMonth(-1), 33 m_iMonth(-1),
34 m_iDay(-1), 34 m_iDay(-1),
35 m_bLBtnDown(false) { 35 m_bLBtnDown(false) {
36 m_rtBtn.Set(0, 0, 0, 0); 36 m_rtBtn.Set(0, 0, 0, 0);
37 37
38 m_pProperties->m_dwStyleExes = FWL_STYLEEXT_DTP_ShortDateFormat; 38 m_pProperties->m_dwStyleExes = FWL_STYLEEXT_DTP_ShortDateFormat;
39 39
40 auto monthProp = 40 auto monthProp = pdfium::MakeUnique<CFWL_WidgetProperties>(this);
41 pdfium::MakeUnique<CFWL_WidgetProperties>(&m_MonthCalendarDP);
42 monthProp->m_dwStyles = FWL_WGTSTYLE_Popup | FWL_WGTSTYLE_Border; 41 monthProp->m_dwStyles = FWL_WGTSTYLE_Popup | FWL_WGTSTYLE_Border;
43 monthProp->m_dwStates = FWL_WGTSTATE_Invisible; 42 monthProp->m_dwStates = FWL_WGTSTATE_Invisible;
44 monthProp->m_pParent = this; 43 monthProp->m_pParent = this;
45 monthProp->m_pThemeProvider = m_pProperties->m_pThemeProvider; 44 monthProp->m_pThemeProvider = m_pProperties->m_pThemeProvider;
46 m_pMonthCal.reset( 45 m_pMonthCal.reset(
47 new IFWL_DateTimeCalendar(m_pOwnerApp, std::move(monthProp), this)); 46 new IFWL_DateTimeCalendar(m_pOwnerApp, std::move(monthProp), this));
48 47
49 CFX_RectF rtMonthCal; 48 CFX_RectF rtMonthCal;
50 m_pMonthCal->GetWidgetRect(rtMonthCal, true); 49 m_pMonthCal->GetWidgetRect(rtMonthCal, true);
51 rtMonthCal.Set(0, 0, rtMonthCal.width, rtMonthCal.height); 50 rtMonthCal.Set(0, 0, rtMonthCal.width, rtMonthCal.height);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 m_rtClient.height); 104 m_rtClient.height);
106 m_pEdit->SetWidgetRect(rtEdit); 105 m_pEdit->SetWidgetRect(rtEdit);
107 ReSetEditAlignment(); 106 ReSetEditAlignment();
108 m_pEdit->Update(); 107 m_pEdit->Update();
109 if (!(m_pMonthCal->GetThemeProvider())) { 108 if (!(m_pMonthCal->GetThemeProvider())) {
110 m_pMonthCal->SetThemeProvider(m_pProperties->m_pThemeProvider); 109 m_pMonthCal->SetThemeProvider(m_pProperties->m_pThemeProvider);
111 } 110 }
112 if (m_pProperties->m_pDataProvider) { 111 if (m_pProperties->m_pDataProvider) {
113 IFWL_DateTimePickerDP* pData = 112 IFWL_DateTimePickerDP* pData =
114 static_cast<IFWL_DateTimePickerDP*>(m_pProperties->m_pDataProvider); 113 static_cast<IFWL_DateTimePickerDP*>(m_pProperties->m_pDataProvider);
115 pData->GetToday(this, m_MonthCalendarDP.m_iCurYear, 114 pData->GetToday(this, m_iCurYear, m_iCurMonth, m_iCurDay);
116 m_MonthCalendarDP.m_iCurMonth, m_MonthCalendarDP.m_iCurDay);
117 } 115 }
118 CFX_RectF rtMonthCal; 116 CFX_RectF rtMonthCal;
119 m_pMonthCal->GetWidgetRect(rtMonthCal, true); 117 m_pMonthCal->GetWidgetRect(rtMonthCal, true);
120 CFX_RectF rtPopUp; 118 CFX_RectF rtPopUp;
121 rtPopUp.Set(rtMonthCal.left, rtMonthCal.top + kDateTimePickerHeight, 119 rtPopUp.Set(rtMonthCal.left, rtMonthCal.top + kDateTimePickerHeight,
122 rtMonthCal.width, rtMonthCal.height); 120 rtMonthCal.width, rtMonthCal.height);
123 m_pMonthCal->SetWidgetRect(rtPopUp); 121 m_pMonthCal->SetWidgetRect(rtPopUp);
124 m_pMonthCal->Update(); 122 m_pMonthCal->Update();
125 return FWL_Error::Succeeded; 123 return FWL_Error::Succeeded;
126 } 124 }
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
457 DisForm_InitDateTimeEdit(); 455 DisForm_InitDateTimeEdit();
458 RegisterEventTarget(m_pMonthCal.get()); 456 RegisterEventTarget(m_pMonthCal.get());
459 RegisterEventTarget(m_pEdit.get()); 457 RegisterEventTarget(m_pEdit.get());
460 return FWL_Error::Succeeded; 458 return FWL_Error::Succeeded;
461 } 459 }
462 460
463 void IFWL_DateTimePicker::DisForm_InitDateTimeCalendar() { 461 void IFWL_DateTimePicker::DisForm_InitDateTimeCalendar() {
464 if (m_pMonthCal) 462 if (m_pMonthCal)
465 return; 463 return;
466 464
467 auto prop = pdfium::MakeUnique<CFWL_WidgetProperties>(&m_MonthCalendarDP); 465 auto prop = pdfium::MakeUnique<CFWL_WidgetProperties>(this);
468 prop->m_dwStyles = 466 prop->m_dwStyles =
469 FWL_WGTSTYLE_Popup | FWL_WGTSTYLE_Border | FWL_WGTSTYLE_EdgeSunken; 467 FWL_WGTSTYLE_Popup | FWL_WGTSTYLE_Border | FWL_WGTSTYLE_EdgeSunken;
470 prop->m_dwStates = FWL_WGTSTATE_Invisible; 468 prop->m_dwStates = FWL_WGTSTATE_Invisible;
471 prop->m_pParent = this; 469 prop->m_pParent = this;
472 prop->m_pThemeProvider = m_pProperties->m_pThemeProvider; 470 prop->m_pThemeProvider = m_pProperties->m_pThemeProvider;
473 471
474 m_pMonthCal.reset( 472 m_pMonthCal.reset(
475 new IFWL_DateTimeCalendar(m_pOwnerApp, std::move(prop), this)); 473 new IFWL_DateTimeCalendar(m_pOwnerApp, std::move(prop), this));
476 CFX_RectF rtMonthCal; 474 CFX_RectF rtMonthCal;
477 m_pMonthCal->GetWidgetRect(rtMonthCal, true); 475 m_pMonthCal->GetWidgetRect(rtMonthCal, true);
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 GetClientRect(m_rtClient); 566 GetClientRect(m_rtClient);
569 m_pEdit->SetWidgetRect(m_rtClient); 567 m_pEdit->SetWidgetRect(m_rtClient);
570 ReSetEditAlignment(); 568 ReSetEditAlignment();
571 m_pEdit->Update(); 569 m_pEdit->Update();
572 if (!m_pMonthCal->GetThemeProvider()) 570 if (!m_pMonthCal->GetThemeProvider())
573 m_pMonthCal->SetThemeProvider(m_pProperties->m_pThemeProvider); 571 m_pMonthCal->SetThemeProvider(m_pProperties->m_pThemeProvider);
574 572
575 if (m_pProperties->m_pDataProvider) { 573 if (m_pProperties->m_pDataProvider) {
576 IFWL_DateTimePickerDP* pData = 574 IFWL_DateTimePickerDP* pData =
577 static_cast<IFWL_DateTimePickerDP*>(m_pProperties->m_pDataProvider); 575 static_cast<IFWL_DateTimePickerDP*>(m_pProperties->m_pDataProvider);
578 pData->GetToday(this, m_MonthCalendarDP.m_iCurYear, 576 pData->GetToday(this, m_iCurYear, m_iCurMonth, m_iCurDay);
579 m_MonthCalendarDP.m_iCurMonth, m_MonthCalendarDP.m_iCurDay);
580 } 577 }
581 FX_FLOAT* pWidth = static_cast<FX_FLOAT*>( 578 FX_FLOAT* pWidth = static_cast<FX_FLOAT*>(
582 GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth)); 579 GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth));
583 if (!pWidth) 580 if (!pWidth)
584 return FWL_Error::Succeeded; 581 return FWL_Error::Succeeded;
585 582
586 m_fBtn = *pWidth; 583 m_fBtn = *pWidth;
587 CFX_RectF rtMonthCal; 584 CFX_RectF rtMonthCal;
588 m_pMonthCal->GetWidgetRect(rtMonthCal, true); 585 m_pMonthCal->GetWidgetRect(rtMonthCal, true);
589 CFX_RectF rtPopUp; 586 CFX_RectF rtPopUp;
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 ShowMonthCalendar(false); 778 ShowMonthCalendar(false);
782 if (m_pEdit->GetStates() & FWL_WGTSTATE_Focused) { 779 if (m_pEdit->GetStates() & FWL_WGTSTATE_Focused) {
783 pMsg->m_pSrcTarget = m_pEdit.get(); 780 pMsg->m_pSrcTarget = m_pEdit.get();
784 m_pEdit->GetDelegate()->OnProcessMessage(pMsg); 781 m_pEdit->GetDelegate()->OnProcessMessage(pMsg);
785 } 782 }
786 } 783 }
787 rtInvalidate.Inflate(2, 2); 784 rtInvalidate.Inflate(2, 2);
788 Repaint(&rtInvalidate); 785 Repaint(&rtInvalidate);
789 } 786 }
790 787
791 IFWL_DateTimePicker::CFWL_MonthCalendarImpDP::CFWL_MonthCalendarImpDP() { 788 FWL_Error IFWL_DateTimePicker::GetCaption(IFWL_Widget* pWidget,
792 m_iCurYear = 2010; 789 CFX_WideString& wsCaption) {
793 m_iCurMonth = 3;
794 m_iCurDay = 29;
795 }
796
797 FWL_Error IFWL_DateTimePicker::CFWL_MonthCalendarImpDP::GetCaption(
798 IFWL_Widget* pWidget,
799 CFX_WideString& wsCaption) {
800 return FWL_Error::Succeeded; 790 return FWL_Error::Succeeded;
801 } 791 }
802 792
803 int32_t IFWL_DateTimePicker::CFWL_MonthCalendarImpDP::GetCurDay( 793 int32_t IFWL_DateTimePicker::GetCurDay(IFWL_Widget* pWidget) {
804 IFWL_Widget* pWidget) {
805 return m_iCurDay; 794 return m_iCurDay;
806 } 795 }
807 796
808 int32_t IFWL_DateTimePicker::CFWL_MonthCalendarImpDP::GetCurMonth( 797 int32_t IFWL_DateTimePicker::GetCurMonth(IFWL_Widget* pWidget) {
809 IFWL_Widget* pWidget) {
810 return m_iCurMonth; 798 return m_iCurMonth;
811 } 799 }
812 800
813 int32_t IFWL_DateTimePicker::CFWL_MonthCalendarImpDP::GetCurYear( 801 int32_t IFWL_DateTimePicker::GetCurYear(IFWL_Widget* pWidget) {
814 IFWL_Widget* pWidget) {
815 return m_iCurYear; 802 return m_iCurYear;
816 } 803 }
OLDNEW
« xfa/fwl/core/cfwl_barcode.h ('K') | « xfa/fwl/core/ifwl_datetimepicker.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698