Index: xfa/fwl/core/ifwl_datetimepicker.cpp |
diff --git a/xfa/fwl/core/ifwl_datetimepicker.cpp b/xfa/fwl/core/ifwl_datetimepicker.cpp |
index 148a85cfe6b4f96db277232c34c038fe90c01cb8..844eb9ebe677fcba88ea30873b8fdceece94f561 100644 |
--- a/xfa/fwl/core/ifwl_datetimepicker.cpp |
+++ b/xfa/fwl/core/ifwl_datetimepicker.cpp |
@@ -6,6 +6,7 @@ |
#include "xfa/fwl/core/ifwl_datetimepicker.h" |
+#include "third_party/base/ptr_util.h" |
#include "xfa/fwl/core/cfwl_message.h" |
#include "xfa/fwl/core/cfwl_themebackground.h" |
#include "xfa/fwl/core/cfwl_widgetmgr.h" |
@@ -33,14 +34,8 @@ IFWL_DateTimePicker::IFWL_DateTimePicker( |
m_iDay(-1), |
m_bLBtnDown(FALSE) { |
m_rtBtn.Set(0, 0, 0, 0); |
-} |
- |
-IFWL_DateTimePicker::~IFWL_DateTimePicker() {} |
- |
-void IFWL_DateTimePicker::Initialize() { |
- IFWL_Widget::Initialize(); |
- m_pDelegate = new CFWL_DateTimePickerImpDelegate(this); |
+ SetDelegate(pdfium::MakeUnique<CFWL_DateTimePickerImpDelegate>(this)); |
m_pProperties->m_dwStyleExes = FWL_STYLEEXT_DTP_ShortDateFormat; |
CFWL_WidgetImpProperties propMonth; |
@@ -51,7 +46,6 @@ void IFWL_DateTimePicker::Initialize() { |
propMonth.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
m_pMonthCal.reset(new IFWL_DateTimeCalendar(m_pOwnerApp, propMonth, this)); |
- m_pMonthCal->Initialize(); |
CFX_RectF rtMonthCal; |
m_pMonthCal->GetWidgetRect(rtMonthCal, TRUE); |
rtMonthCal.Set(0, 0, rtMonthCal.width, rtMonthCal.height); |
@@ -61,23 +55,12 @@ void IFWL_DateTimePicker::Initialize() { |
propEdit.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
m_pEdit.reset(new IFWL_DateTimeEdit(m_pOwnerApp, propEdit, this)); |
- m_pEdit->Initialize(); |
RegisterEventTarget(m_pMonthCal.get()); |
RegisterEventTarget(m_pEdit.get()); |
} |
-void IFWL_DateTimePicker::Finalize() { |
- if (m_pEdit) |
- m_pEdit->Finalize(); |
- if (m_pMonthCal) |
- m_pMonthCal->Finalize(); |
- if (m_pForm) |
- m_pForm->Finalize(); |
- |
+IFWL_DateTimePicker::~IFWL_DateTimePicker() { |
UnregisterEventTarget(); |
- delete m_pDelegate; |
- m_pDelegate = nullptr; |
- IFWL_Widget::Finalize(); |
} |
FWL_Type IFWL_DateTimePicker::GetClassID() const { |
@@ -324,24 +307,19 @@ void IFWL_DateTimePicker::DrawDropDownButton(CFX_Graphics* pGraphics, |
const CFX_Matrix* pMatrix) { |
if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_DTP_Spin) == |
FWL_STYLEEXT_DTP_Spin) { |
- CFWL_WidgetImpProperties prop; |
- prop.m_dwStyleExes |= FWL_STYLEEXE_SPB_Vert; |
- prop.m_pParent = this; |
- prop.m_rtWidget = m_rtBtn; |
- IFWL_SpinButton* pSpin = new IFWL_SpinButton(m_pOwnerApp, prop); |
- pSpin->Initialize(); |
- } else { |
- CFWL_ThemeBackground param; |
- param.m_pWidget = this; |
- param.m_iPart = CFWL_Part::DropDownButton; |
- param.m_dwStates = m_iBtnState; |
- param.m_pGraphics = pGraphics; |
- param.m_rtPart = m_rtBtn; |
- if (pMatrix) { |
- param.m_matrix.Concat(*pMatrix); |
- } |
- pTheme->DrawBackground(¶m); |
+ return; |
} |
+ |
+ CFWL_ThemeBackground param; |
+ param.m_pWidget = this; |
+ param.m_iPart = CFWL_Part::DropDownButton; |
+ param.m_dwStates = m_iBtnState; |
+ param.m_pGraphics = pGraphics; |
+ param.m_rtPart = m_rtBtn; |
+ if (pMatrix) |
+ param.m_matrix.Concat(*pMatrix); |
+ |
+ pTheme->DrawBackground(¶m); |
} |
void IFWL_DateTimePicker::FormatDateString(int32_t iYear, |
@@ -464,7 +442,6 @@ void IFWL_DateTimePicker::InitProxyForm() { |
propForm.m_pOwner = this; |
m_pForm.reset(new IFWL_FormProxy(m_pOwnerApp, propForm, m_pMonthCal.get())); |
- m_pForm->Initialize(); |
m_pMonthCal->SetParent(m_pForm.get()); |
} |
@@ -494,7 +471,6 @@ void IFWL_DateTimePicker::DisForm_InitDateTimeCalendar() { |
propMonth.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
m_pMonthCal.reset(new IFWL_DateTimeCalendar(m_pOwnerApp, propMonth, this)); |
- m_pMonthCal->Initialize(); |
CFX_RectF rtMonthCal; |
m_pMonthCal->GetWidgetRect(rtMonthCal, TRUE); |
rtMonthCal.Set(0, 0, rtMonthCal.width, rtMonthCal.height); |
@@ -510,7 +486,6 @@ void IFWL_DateTimePicker::DisForm_InitDateTimeEdit() { |
propEdit.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
m_pEdit.reset(new IFWL_DateTimeEdit(m_pOwnerApp, propEdit, this)); |
- m_pEdit->Initialize(); |
} |
FX_BOOL IFWL_DateTimePicker::DisForm_IsMonthCalendarShowed() { |