Index: xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.cpp |
diff --git a/xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.cpp b/xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.cpp |
index 5208ca880e5f7f5d04761b38136edab4909cfa8d..2eb7503476e77b3aa67d4fbe00c825f403268a07 100644 |
--- a/xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.cpp |
+++ b/xfa/src/fwl/src/basewidget/fwl_datetimepickerimp.cpp |
@@ -17,43 +17,56 @@ |
#include "include/fwl_datetimepickerimp.h" |
#define FWL_DTP_WIDTH 100 |
#define FWL_DTP_HEIGHT 20 |
-FWL_ERR IFWL_DateTimeForm::Initialize( |
+ |
+// static |
+IFWL_DateTimePicker* IFWL_DateTimePicker::Create( |
+ const CFWL_WidgetImpProperties& properties, |
+ IFWL_Widget* pOuter) { |
+ IFWL_DateTimePicker* pDateTimePicker = new IFWL_DateTimePicker; |
+ CFWL_DateTimePickerImp* pDateTimePickerImpl = |
+ new CFWL_DateTimePickerImp(properties, pOuter); |
+ pDateTimePicker->SetImpl(pDateTimePickerImpl); |
+ pDateTimePickerImpl->SetInterface(pDateTimePicker); |
+ return pDateTimePicker; |
+} |
+ |
+// Static |
+IFWL_DateTimeForm* IFWL_DateTimeForm::Create( |
const CFWL_WidgetImpProperties& properties, |
IFWL_Widget* pOuter) { |
+ IFWL_DateTimeForm* pDateTimeForm = new IFWL_DateTimeForm; |
CFWL_FormProxyImp* pFormProxyImpl = new CFWL_FormProxyImp(properties, pOuter); |
- SetImpl(pFormProxyImpl); |
- pFormProxyImpl->SetInterface(this); |
- return pFormProxyImpl->Initialize(); |
+ pDateTimeForm->SetImpl(pFormProxyImpl); |
+ pFormProxyImpl->SetInterface(pDateTimeForm); |
+ return pDateTimeForm; |
} |
-FWL_ERR IFWL_DateTimeCalender::Initialize( |
+ |
+// static |
+IFWL_DateTimeCalender* IFWL_DateTimeCalender::Create( |
const CFWL_WidgetImpProperties& properties, |
IFWL_Widget* pOuter) { |
+ IFWL_DateTimeCalender* pDateTimeCalendar = new IFWL_DateTimeCalender; |
CFWL_DateTimeCalendar* pDateTimeCalendarImpl = |
new CFWL_DateTimeCalendar(properties, pOuter); |
- SetImpl(pDateTimeCalendarImpl); |
- pDateTimeCalendarImpl->SetInterface(this); |
- return pDateTimeCalendarImpl->Initialize(); |
+ pDateTimeCalendar->SetImpl(pDateTimeCalendarImpl); |
+ pDateTimeCalendarImpl->SetInterface(pDateTimeCalendar); |
+ return pDateTimeCalendar; |
} |
-FWL_ERR IFWL_DateTimeEdit::Initialize( |
+ |
+// static |
+IFWL_DateTimeEdit* IFWL_DateTimeEdit::Create( |
const CFWL_WidgetImpProperties& properties, |
IFWL_Widget* pOuter) { |
+ IFWL_DateTimeEdit* pDateTimeEdit = new IFWL_DateTimeEdit; |
CFWL_DateTimeEdit* pDateTimeEditImpl = |
new CFWL_DateTimeEdit(properties, pOuter); |
- SetImpl(pDateTimeEditImpl); |
- pDateTimeEditImpl->SetInterface(this); |
- return pDateTimeEditImpl->Initialize(); |
+ pDateTimeEdit->SetImpl(pDateTimeEditImpl); |
+ pDateTimeEditImpl->SetInterface(pDateTimeEdit); |
+ return pDateTimeEdit; |
} |
+ |
IFWL_DateTimePicker::IFWL_DateTimePicker() { |
} |
-FWL_ERR IFWL_DateTimePicker::Initialize( |
- const CFWL_WidgetImpProperties& properties, |
- IFWL_Widget* pOuter) { |
- CFWL_DateTimePickerImp* pDateTimePickerImpl = |
- new CFWL_DateTimePickerImp(properties, pOuter); |
- SetImpl(pDateTimePickerImpl); |
- pDateTimePickerImpl->SetInterface(this); |
- return pDateTimePickerImpl->Initialize(); |
-} |
int32_t IFWL_DateTimePicker::CountSelRanges() { |
return static_cast<CFWL_DateTimePickerImp*>(GetImpl()) |
->GetDataTimeEdit() |
@@ -396,18 +409,6 @@ void CFWL_DateTimeCalendarImpDelegate::DisForm_OnLButtonUpEx( |
pDateTime->ShowMonthCalendar(FALSE); |
} |
} |
-CFWL_DateTimePickerImp::CFWL_DateTimePickerImp(IFWL_Widget* pOuter) |
- : CFWL_WidgetImp(pOuter), |
- m_iBtnState(1), |
- m_iYear(-1), |
- m_iMonth(-1), |
- m_iDay(-1), |
- m_bLBtnDown(FALSE), |
- m_pEdit(nullptr), |
- m_pMonthCal(nullptr), |
- m_pForm(nullptr) { |
- m_rtBtn.Set(0, 0, 0, 0); |
-} |
CFWL_DateTimePickerImp::CFWL_DateTimePickerImp( |
const CFWL_WidgetImpProperties& properties, |
IFWL_Widget* pOuter) |
@@ -442,8 +443,8 @@ FWL_ERR CFWL_DateTimePickerImp::Initialize() { |
propMonth.m_pDataProvider = &m_MonthCalendarDP; |
propMonth.m_pParent = m_pInterface; |
propMonth.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
- m_pMonthCal.reset(new IFWL_DateTimeCalender()); |
- m_pMonthCal->Initialize(propMonth, m_pInterface); |
+ m_pMonthCal.reset(IFWL_DateTimeCalender::Create(propMonth, m_pInterface)); |
+ m_pMonthCal->Initialize(); |
CFX_RectF rtMonthCal; |
m_pMonthCal->GetWidgetRect(rtMonthCal, TRUE); |
rtMonthCal.Set(0, 0, rtMonthCal.width, rtMonthCal.height); |
@@ -451,8 +452,8 @@ FWL_ERR CFWL_DateTimePickerImp::Initialize() { |
CFWL_WidgetImpProperties propEdit; |
propEdit.m_pParent = m_pInterface; |
propEdit.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
- m_pEdit.reset(new IFWL_DateTimeEdit()); |
- m_pEdit->Initialize(propEdit, m_pInterface); |
+ m_pEdit.reset(IFWL_DateTimeEdit::Create(propEdit, m_pInterface)); |
+ m_pEdit->Initialize(); |
RegisterEventTarget(m_pMonthCal.get()); |
RegisterEventTarget(m_pEdit.get()); |
return FWL_ERR_Succeeded; |
@@ -685,8 +686,8 @@ void CFWL_DateTimePickerImp::DrawDropDownButton(CFX_Graphics* pGraphics, |
prop.m_dwStyleExes |= FWL_STYLEEXE_SPB_Vert; |
prop.m_pParent = m_pInterface; |
prop.m_rtWidget = m_rtBtn; |
- IFWL_SpinButton* pSpin = new IFWL_SpinButton; |
- pSpin->Initialize(prop, m_pInterface); |
+ IFWL_SpinButton* pSpin = IFWL_SpinButton::Create(prop, m_pInterface); |
+ pSpin->Initialize(); |
} else { |
CFWL_ThemeBackground param; |
param.m_pWidget = m_pInterface; |
@@ -813,8 +814,8 @@ void CFWL_DateTimePickerImp::InitProxyForm() { |
propForm.m_dwStyles = FWL_WGTSTYLE_Popup; |
propForm.m_dwStates = FWL_WGTSTATE_Invisible; |
propForm.m_pOwner = m_pInterface; |
- m_pForm.reset(new IFWL_DateTimeForm()); |
- m_pForm->Initialize(propForm, m_pMonthCal.get()); |
+ m_pForm.reset(IFWL_DateTimeForm::Create(propForm, m_pMonthCal.get())); |
+ m_pForm->Initialize(); |
m_pMonthCal->SetParent(m_pForm.get()); |
} |
IFWL_DateTimeEdit* CFWL_DateTimePickerImp::GetDataTimeEdit() { |
@@ -839,8 +840,8 @@ void CFWL_DateTimePickerImp::DisForm_InitDateTimeCalendar() { |
propMonth.m_pParent = m_pInterface; |
propMonth.m_pDataProvider = &m_MonthCalendarDP; |
propMonth.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
- m_pMonthCal.reset(new IFWL_DateTimeCalender()); |
- m_pMonthCal->Initialize(propMonth, m_pInterface); |
+ m_pMonthCal.reset(IFWL_DateTimeCalender::Create(propMonth, m_pInterface)); |
+ m_pMonthCal->Initialize(); |
CFX_RectF rtMonthCal; |
m_pMonthCal->GetWidgetRect(rtMonthCal, TRUE); |
rtMonthCal.Set(0, 0, rtMonthCal.width, rtMonthCal.height); |
@@ -853,8 +854,8 @@ void CFWL_DateTimePickerImp::DisForm_InitDateTimeEdit() { |
CFWL_WidgetImpProperties propEdit; |
propEdit.m_pParent = m_pInterface; |
propEdit.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
- m_pEdit.reset(new IFWL_DateTimeEdit()); |
- m_pEdit->Initialize(propEdit, m_pInterface); |
+ m_pEdit.reset(IFWL_DateTimeEdit::Create(propEdit, m_pInterface)); |
+ m_pEdit->Initialize(); |
} |
FX_BOOL CFWL_DateTimePickerImp::DisForm_IsMonthCalendarShowed() { |
if (!m_pMonthCal) |