X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f0fa4312b1a537189ada21bec53cff5618e6660b..a9a56347b84be54a9d48df2cfe08ddf761aaf491:/samples/widgets/spinbtn.cpp diff --git a/samples/widgets/spinbtn.cpp b/samples/widgets/spinbtn.cpp index 9cb2f46153..a774835921 100644 --- a/samples/widgets/spinbtn.cpp +++ b/samples/widgets/spinbtn.cpp @@ -80,6 +80,9 @@ public: 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); @@ -93,6 +96,7 @@ protected: void OnSpinBtnUp(wxSpinEvent& event); void OnSpinBtnDown(wxSpinEvent& event); void OnSpinCtrl(wxSpinEvent& event); + void OnSpinText(wxCommandEvent& event); void OnUpdateUIValueButton(wxUpdateUIEvent& event); void OnUpdateUIMinMaxButton(wxUpdateUIEvent& event); @@ -157,6 +161,7 @@ BEGIN_EVENT_TABLE(SpinBtnWidgetsPage, WidgetsPage) 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) @@ -178,7 +183,7 @@ IMPLEMENT_WIDGETS_PAGE(SpinBtnWidgetsPage, _T("Spin"), SpinBtnWidgetsPage::SpinBtnWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist) - : WidgetsPage(book) + : WidgetsPage(book, imaglist, spinbtn_xpm) { m_chkVert = NULL; m_chkWrap = NULL; @@ -187,7 +192,6 @@ SpinBtnWidgetsPage::SpinBtnWidgetsPage(WidgetsBookCtrl *book, m_textValue = NULL; m_textMin = NULL; m_textMax = NULL; - imaglist->Add(wxBitmap(spinbtn_xpm)); // init everything m_min = 0; @@ -198,7 +202,10 @@ SpinBtnWidgetsPage::SpinBtnWidgetsPage(WidgetsBookCtrl *book, m_spinbtn = (wxSpinButton *)NULL; m_sizerSpin = (wxSizer *)NULL; +} +void SpinBtnWidgetsPage::CreateContent() +{ wxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL); // left pane @@ -261,8 +268,6 @@ SpinBtnWidgetsPage::SpinBtnWidgetsPage(WidgetsBookCtrl *book, // final initializations SetSizer(sizerTop); - - sizerTop->Fit(this); } // ---------------------------------------------------------------------------- @@ -348,7 +353,7 @@ void SpinBtnWidgetsPage::OnButtonSetMinAndMax(wxCommandEvent& WXUNUSED(event)) 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.")); @@ -387,7 +392,7 @@ void SpinBtnWidgetsPage::OnUpdateUIMinMaxButton(wxUpdateUIEvent& event) long mn, mx; event.Enable( m_textMin->GetValue().ToLong(&mn) && m_textMax->GetValue().ToLong(&mx) && - mn < mx); + mn <= mx); } void SpinBtnWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event) @@ -429,8 +434,6 @@ void SpinBtnWidgetsPage::OnSpinBtnDown(wxSpinEvent& event) void SpinBtnWidgetsPage::OnSpinCtrl(wxSpinEvent& event) { - if (!m_spinctrl) - return; int value = event.GetInt(); wxASSERT_MSG( value == m_spinctrl->GetValue(), @@ -438,5 +441,11 @@ void SpinBtnWidgetsPage::OnSpinCtrl(wxSpinEvent& event) 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