virtual wxControl *GetWidget() const { return m_datePicker; }
virtual void RecreateWidget() { CreateDatePicker(); }
+ // lazy creation of the content
+ virtual void CreateContent();
+
protected:
// event handlers
void OnButtonSet(wxCommandEvent& event);
DatePickerWidgetsPage::DatePickerWidgetsPage(WidgetsBookCtrl *book,
wxImageList *imaglist)
:WidgetsPage(book, imaglist, datepick_xpm)
+{
+}
+
+void DatePickerWidgetsPage::CreateContent()
{
wxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL);
sizerLeft->Add( CreateSizerWithTextAndLabel( wxT("&Year:"), DatePickerPage_Year , &m_year ),
0, wxALL | wxALIGN_RIGHT , 5 );
- sizerLeft->Add( new wxButton( this, wxID_ANY, wxT("&Set date") ),
+ sizerLeft->Add( new wxButton( this, DatePickerPage_Set, wxT("&Set date") ),
0, wxALL , 5 );
// right pane
Reset();
SetSizer(sizerTop);
-
- sizerTop->Fit(this);
}
void DatePickerWidgetsPage::Reset()
const wxDateTime today = wxDateTime::Today();
m_datePicker->SetValue(today);
- m_day->SetValue(wxString::Format(_T("%d"), today.GetDay()));
- m_month->SetValue(wxString::Format(_T("%d"), today.GetMonth()));
- m_year->SetValue(wxString::Format(_T("%d"), today.GetYear()));
+ m_day->SetValue(wxString::Format(wxT("%d"), today.GetDay()));
+ m_month->SetValue(wxString::Format(wxT("%d"), today.GetMonth()));
+ m_year->SetValue(wxString::Format(wxT("%d"), today.GetYear()));
}
void DatePickerWidgetsPage::CreateDatePicker()
void DatePickerWidgetsPage::OnButtonSet(wxCommandEvent& WXUNUSED(event))
{
+ long day = 0,
+ month = 0,
+ year = 0;
+ if ( m_day->GetValue().ToLong(&day) &&
+ m_month->GetValue().ToLong(&month) &&
+ m_year->GetValue().ToLong(&year) )
+ {
+ const wxDateTime someDay(day, wxDateTime::Month(month - 1), year);
+ if ( someDay.IsValid() )
+ {
+ m_datePicker->SetValue(someDay);
+ }
+ else
+ {
+ wxLogError(wxT("Date is invalid"));
+ }
+ }
+ else
+ {
+ wxLogError(wxT("One of inputs is not number"));
+ }
}
#endif // wxUSE_DATEPICKCTRL