X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c27181d1a10a2bd6b87f998ec65f7d4380d52b3c..8a31648287be0ef976f133de2786b137f1e98340:/samples/validate/validate.cpp?ds=sidebyside diff --git a/samples/validate/validate.cpp b/samples/validate/validate.cpp index dc03e879b7..59c9d95036 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,6 +31,7 @@ #include "wx/sizer.h" #include "wx/valgen.h" #include "wx/valtext.h" +#include "wx/valnum.h" #ifndef __WXMSW__ #include "../sample.xpm" @@ -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; } @@ -215,6 +218,9 @@ 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)); } } @@ -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);