X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9a83f860948059b0273b5cc6d9e43fadad3ebfca..33d8353fa58dbc66fc9d22fcd510ded6b26ce719:/samples/validate/validate.cpp diff --git a/samples/validate/validate.cpp b/samples/validate/validate.cpp index 4840a7d6a3..82736d8a79 100644 --- a/samples/validate/validate.cpp +++ b/samples/validate/validate.cpp @@ -6,7 +6,7 @@ // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // See online help for an overview of validators. In general, a @@ -31,8 +31,9 @@ #include "wx/sizer.h" #include "wx/valgen.h" #include "wx/valtext.h" +#include "wx/valnum.h" -#ifndef __WXMSW__ +#ifndef wxHAS_IMAGES_IN_RESOURCES #include "../sample.xpm" #endif @@ -63,6 +64,8 @@ MyData::MyData() m_string = wxT("Spaces are invalid here"); m_string2 = "Valid text"; m_listbox_choices.Add(0); + m_intValue = 0; + m_doubleValue = 12354.31; } // ---------------------------------------------------------------------------- @@ -136,7 +139,7 @@ bool MyApp::OnInit() MyFrame *frame = new MyFrame((wxFrame *) NULL, wxT("Validator Test"), 50, 50, 300, 250); frame->Show(true); - SetTopWindow(frame); + return true; } @@ -173,7 +176,7 @@ MyFrame::MyFrame(wxFrame *frame, const wxString&title, int x, int y, int w, int // All validators share a common (static) flag that controls // whether they beep on error. Here we turn it off: - wxValidator::SetBellOnError(m_silent); + wxValidator::SuppressBellOnError(m_silent); file_menu->Check(VALIDATE_TOGGLE_BELL, !wxValidator::IsSilent()); #if wxUSE_STATUSBAR @@ -215,13 +218,16 @@ void MyFrame::OnTestDialog(wxCommandEvent& WXUNUSED(event)) m_listbox->Append(wxString(wxT("checkbox: ")) + checkbox_state); m_listbox->Append(wxString(wxT("combobox: ")) + g_data.m_combobox_choice); m_listbox->Append(wxString(wxT("radiobox: ")) + g_radiobox_choices[g_data.m_radiobox_choice]); + + m_listbox->Append(wxString::Format("integer value: %d", g_data.m_intValue)); + m_listbox->Append(wxString::Format("double value: %.3f", g_data.m_doubleValue)); } } void MyFrame::OnToggleBell(wxCommandEvent& event) { m_silent = !m_silent; - wxValidator::SetBellOnError(m_silent); + wxValidator::SuppressBellOnError(m_silent); event.Skip(); } @@ -296,6 +302,49 @@ MyDialog::MyDialog( wxWindow *parent, const wxString& title, btn->AddButton(new wxButton(this, wxID_CANCEL)); btn->Realize(); + // setup a sizer with the controls for numeric validators + // ------------------------------------------------------ + + wxIntegerValidator valInt(&g_data.m_intValue, + wxNUM_VAL_THOUSANDS_SEPARATOR | + wxNUM_VAL_ZERO_AS_BLANK); + valInt.SetMin(0); // Only allow positive numbers + + m_numericTextInt = new wxTextCtrl + ( + this, + wxID_ANY, + "", + wxDefaultPosition, + wxDefaultSize, + wxTE_RIGHT, + valInt + ); + m_numericTextInt->SetToolTip("uses wxIntegerValidator to accept positive " + "integers only"); + + m_numericTextDouble = new wxTextCtrl + ( + this, + wxID_ANY, + "", + wxDefaultPosition, + wxDefaultSize, + wxTE_RIGHT, + wxMakeFloatingPointValidator + ( + 3, + &g_data.m_doubleValue, + wxNUM_VAL_THOUSANDS_SEPARATOR | + wxNUM_VAL_NO_TRAILING_ZEROES + ) + ); + m_numericTextDouble->SetToolTip("uses wxFloatingPointValidator with 3 decimals"); + wxBoxSizer *numSizer = new wxBoxSizer( wxHORIZONTAL ); + numSizer->Add( m_numericTextInt, 1, wxALL, 10 ); + numSizer->Add( m_numericTextDouble, 1, wxALL, 10 ); + + // setup the main sizer // -------------------- @@ -310,6 +359,8 @@ MyDialog::MyDialog( wxWindow *parent, const wxString& title, wxGenericValidator(&g_data.m_radiobox_choice)), 0, wxGROW | wxLEFT|wxBOTTOM|wxRIGHT, 10); + mainsizer->Add( numSizer, 0, wxGROW | wxALL ); + mainsizer->Add(btn, 0, wxGROW | wxALL, 10); SetSizer(mainsizer);