X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8cd6a9ad50c00a94e62558a3b55e814028d81100..02fd8b9b6186623ed61019ac7e69ed9a4ef16773:/samples/widgets/spinbtn.cpp diff --git a/samples/widgets/spinbtn.cpp b/samples/widgets/spinbtn.cpp index 0447d66d65..8f89806646 100644 --- a/samples/widgets/spinbtn.cpp +++ b/samples/widgets/spinbtn.cpp @@ -42,7 +42,7 @@ #include "wx/spinctrl.h" #include "wx/sizer.h" - +#include "wx/stattext.h" #include "widgets.h" #include "icons/spinbtn.xpm" @@ -100,6 +100,7 @@ protected: void OnSpinCtrl(wxSpinEvent& event); void OnSpinCtrlDouble(wxSpinDoubleEvent& event); void OnSpinText(wxCommandEvent& event); + void OnSpinTextEnter(wxCommandEvent& event); void OnUpdateUIValueButton(wxUpdateUIEvent& event); void OnUpdateUIMinMaxButton(wxUpdateUIEvent& event); @@ -126,7 +127,8 @@ protected: // the check/radio boxes for styles wxCheckBox *m_chkVert, - *m_chkWrap; + *m_chkWrap, + *m_chkProcessEnter; // the spinbtn and the spinctrl and the sizer containing them wxSpinButton *m_spinbtn; @@ -167,6 +169,7 @@ BEGIN_EVENT_TABLE(SpinBtnWidgetsPage, WidgetsPage) EVT_SPINCTRL(SpinBtnPage_SpinCtrl, SpinBtnWidgetsPage::OnSpinCtrl) EVT_SPINCTRLDOUBLE(SpinBtnPage_SpinCtrlDouble, SpinBtnWidgetsPage::OnSpinCtrlDouble) EVT_TEXT(SpinBtnPage_SpinCtrl, SpinBtnWidgetsPage::OnSpinText) + EVT_TEXT_ENTER(SpinBtnPage_SpinCtrl, SpinBtnWidgetsPage::OnSpinTextEnter) EVT_TEXT(SpinBtnPage_SpinCtrlDouble, SpinBtnWidgetsPage::OnSpinText) EVT_CHECKBOX(wxID_ANY, SpinBtnWidgetsPage::OnCheckOrRadioBox) @@ -193,6 +196,7 @@ SpinBtnWidgetsPage::SpinBtnWidgetsPage(WidgetsBookCtrl *book, { m_chkVert = NULL; m_chkWrap = NULL; + m_chkProcessEnter = NULL; m_spinbtn = NULL; m_spinctrl = NULL; m_spinctrldbl = NULL; @@ -200,15 +204,10 @@ SpinBtnWidgetsPage::SpinBtnWidgetsPage(WidgetsBookCtrl *book, m_textMin = NULL; m_textMax = NULL; - // init everything m_min = 0; m_max = 10; - m_chkVert = - m_chkWrap = (wxCheckBox *)NULL; - - m_spinbtn = (wxSpinButton *)NULL; - m_sizerSpin = (wxSizer *)NULL; + m_sizerSpin = NULL; } void SpinBtnWidgetsPage::CreateContent() @@ -221,6 +220,8 @@ void SpinBtnWidgetsPage::CreateContent() m_chkVert = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Vertical")); m_chkWrap = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Wrap")); + m_chkProcessEnter = CreateCheckBoxAndAddToSizer(sizerLeft, + _T("Process &Enter")); sizerLeft->Add(5, 5, 0, wxGROW | wxALL, 5); // spacer @@ -285,6 +286,7 @@ void SpinBtnWidgetsPage::Reset() { m_chkVert->SetValue(true); m_chkWrap->SetValue(false); + m_chkProcessEnter->SetValue(false); } void SpinBtnWidgetsPage::CreateSpin() @@ -300,6 +302,9 @@ void SpinBtnWidgetsPage::CreateSpin() if ( m_chkWrap->GetValue() ) flags |= wxSP_WRAP; + if ( m_chkProcessEnter->GetValue() ) + flags |= wxTE_PROCESS_ENTER; + int val = m_min; if ( m_spinbtn ) { @@ -309,19 +314,7 @@ void SpinBtnWidgetsPage::CreateSpin() val = valOld; } - m_sizerSpin->Detach( m_spinbtn ); - m_sizerSpin->Detach( m_spinctrl ); - m_sizerSpin->Detach( m_spinctrldbl ); - - // there are 4 spacers left - m_sizerSpin->Remove( 0 ); - m_sizerSpin->Remove( 0 ); - m_sizerSpin->Remove( 0 ); - m_sizerSpin->Remove( 0 ); - - delete m_spinbtn; - delete m_spinctrl; - delete m_spinctrldbl; + m_sizerSpin->Clear(true /* delete windows */); } m_spinbtn = new wxSpinButton(this, SpinBtnPage_SpinBtn, @@ -343,11 +336,18 @@ void SpinBtnWidgetsPage::CreateSpin() flags, m_min, m_max, val, 0.1); + // Add spacers, labels and spin controls to the sizer. m_sizerSpin->Add(0, 0, 1); + m_sizerSpin->Add(new wxStaticText(this, wxID_ANY, wxT("wxSpinButton")), + 0, wxALIGN_CENTRE | wxALL, 5); m_sizerSpin->Add(m_spinbtn, 0, wxALIGN_CENTRE | wxALL, 5); m_sizerSpin->Add(0, 0, 1); + m_sizerSpin->Add(new wxStaticText(this, wxID_ANY, wxT("wxSpinCtrl")), + 0, wxALIGN_CENTRE | wxALL, 5); m_sizerSpin->Add(m_spinctrl, 0, wxALIGN_CENTRE | wxALL, 5); m_sizerSpin->Add(0, 0, 1); + m_sizerSpin->Add(new wxStaticText(this, wxID_ANY, wxT("wxSpinCtrlDouble")), + 0, wxALIGN_CENTRE | wxALL, 5); m_sizerSpin->Add(m_spinctrldbl, 0, wxALIGN_CENTRE | wxALL, 5); m_sizerSpin->Add(0, 0, 1); @@ -417,7 +417,9 @@ void SpinBtnWidgetsPage::OnUpdateUIMinMaxButton(wxUpdateUIEvent& event) void SpinBtnWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event) { - event.Enable( !m_chkVert->GetValue() || m_chkWrap->GetValue() ); + event.Enable( !m_chkVert->GetValue() || + m_chkWrap->GetValue() || + m_chkProcessEnter->GetValue() ); } void SpinBtnWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event)) @@ -475,4 +477,10 @@ void SpinBtnWidgetsPage::OnSpinText(wxCommandEvent& event) event.GetString().c_str()); } +void SpinBtnWidgetsPage::OnSpinTextEnter(wxCommandEvent& event) +{ + wxLogMessage("\"Enter\" pressed in spin control, text is \"%s\"", + event.GetString()); +} + #endif // wxUSE_SPINBTN