X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/526954c5968baa29218c994ec48e476ae2bd4b9f..33d8353fa58dbc66fc9d22fcd510ded6b26ce719:/samples/validate/validate.cpp diff --git a/samples/validate/validate.cpp b/samples/validate/validate.cpp index 8b81a9f710..82736d8a79 100644 --- a/samples/validate/validate.cpp +++ b/samples/validate/validate.cpp @@ -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; } @@ -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);