FWL_ERR CFWL_DateTimePickerImp::Initialize() { if (CFWL_WidgetImp::Initialize() != FWL_ERR_Succeeded) return FWL_ERR_Indefinite; m_pDelegate = new CFWL_DateTimePickerImpDelegate(this); 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 = m_pInterface; propMonth.m_pThemeProvider = m_pProperties->m_pThemeProvider; 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); m_pMonthCal->SetWidgetRect(rtMonthCal); CFWL_WidgetImpProperties propEdit; propEdit.m_pParent = m_pInterface; propEdit.m_pThemeProvider = m_pProperties->m_pThemeProvider; m_pEdit.reset(IFWL_DateTimeEdit::Create(propEdit, m_pInterface)); m_pEdit->Initialize(); RegisterEventTarget(m_pMonthCal.get()); RegisterEventTarget(m_pEdit.get()); return FWL_ERR_Succeeded; }
FWL_ERR CFWL_DateTimePickerImp::DisForm_Initialize() { m_pProperties->m_dwStyleExes = FWL_STYLEEXT_DTP_ShortDateFormat; DisForm_InitDateTimeCalendar(); DisForm_InitDateTimeEdit(); RegisterEventTarget(m_pMonthCal.get()); RegisterEventTarget(m_pEdit.get()); return FWL_ERR_Succeeded; }
CFWL_Form::CFWL_Form(const CFWL_App* app, std::unique_ptr<CFWL_WidgetProperties> properties, CFWL_Widget* pOuter) : CFWL_Widget(app, std::move(properties), pOuter) { RegisterForm(); RegisterEventTarget(nullptr); }
IFWL_DateTimePicker::IFWL_DateTimePicker( const IFWL_App* app, std::unique_ptr<CFWL_WidgetProperties> properties) : IFWL_Widget(app, std::move(properties), nullptr), m_iBtnState(1), m_iYear(-1), m_iMonth(-1), m_iDay(-1), m_iCurYear(2010), m_iCurMonth(3), m_iCurDay(29), m_bLBtnDown(false) { m_rtBtn.Set(0, 0, 0, 0); m_pProperties->m_dwStyleExes = FWL_STYLEEXT_DTP_ShortDateFormat; auto monthProp = pdfium::MakeUnique<CFWL_WidgetProperties>(this); 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_MonthCalendar(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); 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()); }