virtual wxControl *GetWidget2() const { return m_spinctrl; }
virtual void RecreateWidget() { CreateSpin(); }
+ // lazy creation of the content
+ virtual void CreateContent();
+
protected:
// event handlers
void OnButtonReset(wxCommandEvent& event);
void OnSpinBtnUp(wxSpinEvent& event);
void OnSpinBtnDown(wxSpinEvent& event);
void OnSpinCtrl(wxSpinEvent& event);
+ void OnSpinText(wxCommandEvent& event);
void OnUpdateUIValueButton(wxUpdateUIEvent& event);
void OnUpdateUIMinMaxButton(wxUpdateUIEvent& event);
EVT_SPIN_UP(SpinBtnPage_SpinBtn, SpinBtnWidgetsPage::OnSpinBtnUp)
EVT_SPIN_DOWN(SpinBtnPage_SpinBtn, SpinBtnWidgetsPage::OnSpinBtnDown)
EVT_SPINCTRL(SpinBtnPage_SpinCtrl, SpinBtnWidgetsPage::OnSpinCtrl)
+ EVT_TEXT(SpinBtnPage_SpinCtrl, SpinBtnWidgetsPage::OnSpinText)
EVT_CHECKBOX(wxID_ANY, SpinBtnWidgetsPage::OnCheckOrRadioBox)
EVT_RADIOBOX(wxID_ANY, SpinBtnWidgetsPage::OnCheckOrRadioBox)
m_spinbtn = (wxSpinButton *)NULL;
m_sizerSpin = (wxSizer *)NULL;
+}
+void SpinBtnWidgetsPage::CreateContent()
+{
wxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL);
// left pane
// final initializations
SetSizer(sizerTop);
-
- sizerTop->Fit(this);
}
// ----------------------------------------------------------------------------
maxNew = 0; // init to suppress compiler warning
if ( !m_textMin->GetValue().ToLong(&minNew) ||
!m_textMax->GetValue().ToLong(&maxNew) ||
- minNew >= maxNew )
+ minNew > maxNew )
{
wxLogWarning(_T("Invalid min/max values for the spinbtn."));
long mn, mx;
event.Enable( m_textMin->GetValue().ToLong(&mn) &&
m_textMax->GetValue().ToLong(&mx) &&
- mn < mx);
+ mn <= mx);
}
void SpinBtnWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event)
void SpinBtnWidgetsPage::OnSpinCtrl(wxSpinEvent& event)
{
- if (!m_spinctrl)
- return;
int value = event.GetInt();
wxASSERT_MSG( value == m_spinctrl->GetValue(),
wxLogMessage(_T("Spin control value changed, now %d"), value);
}
-#endif
- // wxUSE_SPINBTN
+
+void SpinBtnWidgetsPage::OnSpinText(wxCommandEvent& event)
+{
+ wxLogMessage(_T("Text changed in spin control, now \"%s\""),
+ event.GetString().c_str());
+}
+
+#endif // wxUSE_SPINBTN