Index: xfa/fwl/core/ifwl_datetimepicker.cpp |
diff --git a/xfa/fwl/core/ifwl_datetimepicker.cpp b/xfa/fwl/core/ifwl_datetimepicker.cpp |
index 5237326b9e36e8e2ff076fa50795ecdd42e335c5..8a59b0034d5b040c867107a0e8782085f03d6d67 100644 |
--- a/xfa/fwl/core/ifwl_datetimepicker.cpp |
+++ b/xfa/fwl/core/ifwl_datetimepicker.cpp |
@@ -26,8 +26,8 @@ const int kDateTimePickerHeight = 20; |
IFWL_DateTimePicker::IFWL_DateTimePicker( |
const IFWL_App* app, |
- const CFWL_WidgetImpProperties& properties) |
- : IFWL_Widget(app, properties, nullptr), |
+ std::unique_ptr<CFWL_WidgetProperties> properties) |
+ : IFWL_Widget(app, std::move(properties), nullptr), |
m_iBtnState(1), |
m_iYear(-1), |
m_iMonth(-1), |
@@ -36,23 +36,26 @@ IFWL_DateTimePicker::IFWL_DateTimePicker( |
m_rtBtn.Set(0, 0, 0, 0); |
m_pProperties->m_dwStyleExes = FWL_STYLEEXT_DTP_ShortDateFormat; |
- CFWL_WidgetImpProperties propMonth; |
- propMonth.m_dwStyles = FWL_WGTSTYLE_Popup | FWL_WGTSTYLE_Border; |
- propMonth.m_dwStates = FWL_WGTSTATE_Invisible; |
- propMonth.m_pDataProvider = &m_MonthCalendarDP; |
- propMonth.m_pParent = this; |
- propMonth.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
- |
- m_pMonthCal.reset(new IFWL_DateTimeCalendar(m_pOwnerApp, propMonth, this)); |
+ |
+ auto monthProp = |
+ pdfium::MakeUnique<CFWL_WidgetProperties>(&m_MonthCalendarDP); |
+ monthProp->m_dwStyles = FWL_WGTSTYLE_Popup | FWL_WGTSTYLE_Border; |
+ monthProp->m_dwStates = FWL_WGTSTATE_Invisible; |
+ monthProp->m_pParent = this; |
+ monthProp->m_pThemeProvider = m_pProperties->m_pThemeProvider; |
+ m_pMonthCal.reset( |
+ new IFWL_DateTimeCalendar(m_pOwnerApp, std::move(monthProp), this)); |
+ |
CFX_RectF rtMonthCal; |
m_pMonthCal->GetWidgetRect(rtMonthCal, true); |
rtMonthCal.Set(0, 0, rtMonthCal.width, rtMonthCal.height); |
m_pMonthCal->SetWidgetRect(rtMonthCal); |
- CFWL_WidgetImpProperties propEdit; |
- propEdit.m_pParent = this; |
- propEdit.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
- m_pEdit.reset(new IFWL_DateTimeEdit(m_pOwnerApp, propEdit, this)); |
+ auto editProp = pdfium::MakeUnique<CFWL_WidgetProperties>(); |
+ editProp->m_pParent = this; |
+ editProp->m_pThemeProvider = m_pProperties->m_pThemeProvider; |
+ |
+ m_pEdit.reset(new IFWL_DateTimeEdit(m_pOwnerApp, std::move(editProp), this)); |
RegisterEventTarget(m_pMonthCal.get()); |
RegisterEventTarget(m_pEdit.get()); |
} |
@@ -433,12 +436,14 @@ void IFWL_DateTimePicker::InitProxyForm() { |
return; |
if (!m_pMonthCal) |
return; |
- CFWL_WidgetImpProperties propForm; |
- propForm.m_dwStyles = FWL_WGTSTYLE_Popup; |
- propForm.m_dwStates = FWL_WGTSTATE_Invisible; |
- propForm.m_pOwner = this; |
- m_pForm.reset(new IFWL_FormProxy(m_pOwnerApp, propForm, m_pMonthCal.get())); |
+ auto prop = pdfium::MakeUnique<CFWL_WidgetProperties>(); |
+ prop->m_dwStyles = FWL_WGTSTYLE_Popup; |
+ prop->m_dwStates = FWL_WGTSTATE_Invisible; |
+ prop->m_pOwner = this; |
+ |
+ m_pForm.reset( |
+ new IFWL_FormProxy(m_pOwnerApp, std::move(prop), m_pMonthCal.get())); |
m_pMonthCal->SetParent(m_pForm.get()); |
} |
@@ -456,18 +461,18 @@ FWL_Error IFWL_DateTimePicker::DisForm_Initialize() { |
} |
void IFWL_DateTimePicker::DisForm_InitDateTimeCalendar() { |
- if (m_pMonthCal) { |
+ if (m_pMonthCal) |
return; |
- } |
- CFWL_WidgetImpProperties propMonth; |
- propMonth.m_dwStyles = |
+ |
+ auto prop = pdfium::MakeUnique<CFWL_WidgetProperties>(&m_MonthCalendarDP); |
+ prop->m_dwStyles = |
FWL_WGTSTYLE_Popup | FWL_WGTSTYLE_Border | FWL_WGTSTYLE_EdgeSunken; |
- propMonth.m_dwStates = FWL_WGTSTATE_Invisible; |
- propMonth.m_pParent = this; |
- propMonth.m_pDataProvider = &m_MonthCalendarDP; |
- propMonth.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
+ prop->m_dwStates = FWL_WGTSTATE_Invisible; |
+ prop->m_pParent = this; |
+ prop->m_pThemeProvider = m_pProperties->m_pThemeProvider; |
- m_pMonthCal.reset(new IFWL_DateTimeCalendar(m_pOwnerApp, propMonth, this)); |
+ m_pMonthCal.reset( |
+ new IFWL_DateTimeCalendar(m_pOwnerApp, std::move(prop), this)); |
CFX_RectF rtMonthCal; |
m_pMonthCal->GetWidgetRect(rtMonthCal, true); |
rtMonthCal.Set(0, 0, rtMonthCal.width, rtMonthCal.height); |
@@ -475,14 +480,14 @@ void IFWL_DateTimePicker::DisForm_InitDateTimeCalendar() { |
} |
void IFWL_DateTimePicker::DisForm_InitDateTimeEdit() { |
- if (m_pEdit) { |
+ if (m_pEdit) |
return; |
- } |
- CFWL_WidgetImpProperties propEdit; |
- propEdit.m_pParent = this; |
- propEdit.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
- m_pEdit.reset(new IFWL_DateTimeEdit(m_pOwnerApp, propEdit, this)); |
+ auto prop = pdfium::MakeUnique<CFWL_WidgetProperties>(); |
+ prop->m_pParent = this; |
+ prop->m_pThemeProvider = m_pProperties->m_pThemeProvider; |
+ |
+ m_pEdit.reset(new IFWL_DateTimeEdit(m_pOwnerApp, std::move(prop), this)); |
} |
bool IFWL_DateTimePicker::DisForm_IsMonthCalendarShowed() { |