X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0545d965debc5438530c5173a18cfd7789403e3d..830efc9b0cb87eae22d4435af7858175017522ab:/samples/controls/controls.cpp diff --git a/samples/controls/controls.cpp b/samples/controls/controls.cpp index 541e0d5a5e..6a64e31cf0 100644 --- a/samples/controls/controls.cpp +++ b/samples/controls/controls.cpp @@ -112,6 +112,9 @@ public: #if wxUSE_SPINCTRL void OnSpinCtrl(wxSpinEvent& event); + void OnSpinCtrlUp(wxSpinEvent& event); + void OnSpinCtrlDown(wxSpinEvent& event); + void OnSpinCtrlText(wxCommandEvent& event); #endif // wxUSE_SPINCTRL void OnEnableAll(wxCommandEvent& event); @@ -451,6 +454,9 @@ EVT_BUTTON (ID_BTNPROGRESS, MyPanel::OnShowProgress) #endif // wxUSE_SPINBTN #if wxUSE_SPINCTRL EVT_SPINCTRL (ID_SPINCTRL, MyPanel::OnSpinCtrl) +EVT_SPIN_UP (ID_SPINCTRL, MyPanel::OnSpinCtrlUp) +EVT_SPIN_DOWN (ID_SPINCTRL, MyPanel::OnSpinCtrlDown) +EVT_TEXT (ID_SPINCTRL, MyPanel::OnSpinCtrlText) #endif // wxUSE_SPINCTRL #if wxUSE_TOGGLEBTN EVT_TOGGLEBUTTON(ID_BUTTON_LABEL, MyPanel::OnUpdateLabel) @@ -483,9 +489,35 @@ END_EVENT_TABLE() // ============================================================================ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) - : wxPanel( frame, -1, wxPoint(x, y), wxSize(w, h) ), - m_text(NULL), m_notebook(NULL) + : wxPanel( frame, -1, wxPoint(x, y), wxSize(w, h) ) { + m_listbox = NULL; + m_listboxSorted = NULL; +#if wxUSE_CHOICE + m_choice = NULL; + m_choiceSorted = NULL; +#endif + m_combo = NULL; + m_radio = NULL; + m_gauge = NULL; + m_gaugeVert = NULL; + m_slider = NULL; + m_fontButton = NULL; + m_lbSelectNum = NULL; + m_lbSelectThis = NULL; +#if wxUSE_SPINBTN + m_spinbutton = NULL; + m_btnProgress = NULL; +#endif // wxUSE_SPINBTN +#if wxUSE_SPINCTRL + m_spinctrl = NULL; +#endif // wxUSE_SPINCTRL + m_spintext = NULL; + m_checkbox = NULL; + m_text = NULL; + m_notebook = NULL; + m_label = NULL; + m_text = new wxTextCtrl(this, -1, "This is the log window.\n", wxPoint(0, 250), wxSize(100, 50), wxTE_MULTILINE); m_text->SetBackgroundColour(wxT("wheat")); @@ -706,7 +738,7 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) m_spintext = new wxTextCtrl( panel, -1, s, wxPoint(20,160), wxSize(80,-1) ); #if wxUSE_SPINBTN m_spinbutton = new wxSpinButton( panel, ID_SPIN, wxPoint(103,160), wxSize(80, -1) ); - m_spinbutton->SetRange(-10,30); + m_spinbutton->SetRange(-40,30); m_spinbutton->SetValue(initialSpinValue); m_btnProgress = new wxButton( panel, ID_BTNPROGRESS, "&Show progress dialog", @@ -728,8 +760,9 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) wxStaticBitmap *bmpStatic = new wxStaticBitmap(panel, -1, icon, wxPoint(10, 10)); - bmpStatic = new wxStaticBitmap(panel, -1, wxNullIcon, wxPoint(50, 10)); - bmpStatic->SetIcon(wxArtProvider::GetIcon(wxART_QUESTION)); + // VZ: don't leak memory + // bmpStatic = new wxStaticBitmap(panel, -1, wxNullIcon, wxPoint(50, 10)); + // bmpStatic->SetIcon(wxArtProvider::GetIcon(wxART_QUESTION)); #endif // !Motif wxBitmap bitmap( 100, 100 ); @@ -1216,12 +1249,44 @@ void MyPanel::OnSliderUpdate( wxCommandEvent &WXUNUSED(event) ) #if wxUSE_SPINCTRL +void MyPanel::OnSpinCtrlText(wxCommandEvent& event) +{ + if ( m_spinctrl ) + { + wxString s; + s.Printf(_T("Spin ctrl text changed: now %d (from event: %s)\n"), + m_spinctrl->GetValue(), event.GetString()); + m_text->AppendText(s); + } +} + void MyPanel::OnSpinCtrl(wxSpinEvent& event) { - wxString s; - s.Printf(_T("Spin ctrl changed: now %d (from event: %d)\n"), - m_spinctrl->GetValue(), event.GetInt()); - m_text->AppendText(s); + if ( m_spinctrl ) + { + wxString s; + s.Printf(_T("Spin ctrl changed: now %d (from event: %d)\n"), + m_spinctrl->GetValue(), event.GetInt()); + m_text->AppendText(s); + } +} + +void MyPanel::OnSpinCtrlUp(wxSpinEvent& event) +{ + if ( m_spinctrl ) + { + m_text->AppendText(wxString::Format(_T("Spin up: %d (from event: %d)\n"), + m_spinctrl->GetValue(), event.GetInt())); + } +} + +void MyPanel::OnSpinCtrlDown(wxSpinEvent& event) +{ + if ( m_spinctrl ) + { + m_text->AppendText(wxString::Format(_T("Spin down: %d (from event: %d)\n"), + m_spinctrl->GetValue(), event.GetInt())); + } } #endif // wxUSE_SPINCTRL @@ -1233,7 +1298,7 @@ void MyPanel::OnSpinUp( wxSpinEvent &event ) value.Printf( _T("Spin control up: current = %d\n"), m_spinbutton->GetValue()); - if ( m_spinbutton->GetValue() > 17 ) + if ( event.GetPosition() > 17 ) { value += _T("Preventing the spin button from going above 17.\n"); @@ -1249,7 +1314,7 @@ void MyPanel::OnSpinDown( wxSpinEvent &event ) value.Printf( _T("Spin control down: current = %d\n"), m_spinbutton->GetValue()); - if ( m_spinbutton->GetValue() < -17 ) + if ( event.GetPosition() < -17 ) { value += _T("Preventing the spin button from going below -17.\n");