X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2e7a6b030c35cea910af2cfd7f1b20f2518b76a5..01495abf8755b0be46b4c65d6c7c48e9460f102b:/samples/validate/validate.cpp diff --git a/samples/validate/validate.cpp b/samples/validate/validate.cpp index 3a0166a8ae..8b81a9f710 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 @@ -61,10 +61,10 @@ MyData::MyData() // will complain because spaces aren't alpha. Note that validation // is performed only when 'OK' is pressed. m_string = wxT("Spaces are invalid here"); + m_string2 = "Valid text"; m_listbox_choices.Add(0); } - // ---------------------------------------------------------------------------- // MyComboBoxValidator // ---------------------------------------------------------------------------- @@ -158,11 +158,11 @@ MyFrame::MyFrame(wxFrame *frame, const wxString&title, int x, int y, int w, int // Create a listbox to display the validated data. m_listbox = new wxListBox(this, wxID_ANY); - m_listbox->Append(wxString(_T("Try 'File|Test' to see how validators work."))); + m_listbox->Append(wxString(wxT("Try 'File|Test' to see how validators work."))); wxMenu *file_menu = new wxMenu; - file_menu->Append(VALIDATE_TEST_DIALOG, wxT("&Test"), wxT("Demonstrate validators")); + file_menu->Append(VALIDATE_TEST_DIALOG, wxT("&Test dialog..."), wxT("Demonstrate validators")); file_menu->AppendCheckItem(VALIDATE_TOGGLE_BELL, wxT("&Bell on error"), wxT("Toggle bell on error")); file_menu->AppendSeparator(); file_menu->Append(wxID_EXIT, wxT("E&xit")); @@ -173,7 +173,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 @@ -202,24 +202,26 @@ void MyFrame::OnTestDialog(wxCommandEvent& WXUNUSED(event)) // automatically transferred to the variables we specified // when we created the validators. m_listbox->Clear(); - m_listbox->Append(wxString(_T("string: ")) + g_data.m_string); + m_listbox->Append(wxString(wxT("string: ")) + g_data.m_string); + m_listbox->Append(wxString(wxT("string #2: ")) + g_data.m_string2); + for(unsigned int i = 0; i < g_data.m_listbox_choices.GetCount(); ++i) { int j = g_data.m_listbox_choices[i]; - m_listbox->Append(wxString(_T("listbox choice(s): ")) + g_listbox_choices[j]); + m_listbox->Append(wxString(wxT("listbox choice(s): ")) + g_listbox_choices[j]); } - wxString checkbox_state(g_data.m_checkbox_state ? _T("checked") : _T("unchecked")); - m_listbox->Append(wxString(_T("checkbox: ")) + checkbox_state); - m_listbox->Append(wxString(_T("combobox: ")) + g_data.m_combobox_choice); - m_listbox->Append(wxString(_T("radiobox: ")) + g_radiobox_choices[g_data.m_radiobox_choice]); + wxString checkbox_state(g_data.m_checkbox_state ? wxT("checked") : wxT("unchecked")); + 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]); } } void MyFrame::OnToggleBell(wxCommandEvent& event) { m_silent = !m_silent; - wxValidator::SetBellOnError(m_silent); + wxValidator::SuppressBellOnError(m_silent); event.Skip(); } @@ -234,7 +236,7 @@ MyDialog::MyDialog( wxWindow *parent, const wxString& title, // setup the flex grid sizer // ------------------------- - wxFlexGridSizer *flexgridsizer = new wxFlexGridSizer(2, 2, 5, 5); + wxFlexGridSizer *flexgridsizer = new wxFlexGridSizer(3, 2, 5, 5); // Create and add controls to sizers. Note that a member variable // of g_data is bound to each control upon construction. There is @@ -246,29 +248,41 @@ MyDialog::MyDialog( wxWindow *parent, const wxString& title, m_text = new wxTextCtrl(this, VALIDATE_TEXT, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxTextValidator(wxFILTER_ALPHA, &g_data.m_string)); + m_text->SetToolTip("uses wxTextValidator with wxFILTER_ALPHA"); flexgridsizer->Add(m_text, 1, wxGROW); - // This wxCheckBox* doesn't need to be assigned to any pointer - // because we don't use it elsewhere--it can be anonymous. - // We don't need any such pointer to query its state, which - // can be gotten directly from g_data. - flexgridsizer->Add(new wxCheckBox(this, VALIDATE_CHECK, wxT("Sample checkbox"), - wxPoint(130, 10), wxSize(120, wxDefaultCoord), 0, - wxGenericValidator(&g_data.m_checkbox_state)), - 1, wxALIGN_CENTER); + + // Now set a wxTextValidator with an explicit list of characters NOT allowed: + wxTextValidator textVal(wxFILTER_EMPTY|wxFILTER_EXCLUDE_LIST, &g_data.m_string2); + textVal.SetCharExcludes("bcwyz"); + wxTextCtrl* txt2 = + new wxTextCtrl(this, VALIDATE_TEXT2, wxEmptyString, + wxDefaultPosition, wxDefaultSize, 0, textVal); + txt2->SetToolTip("uses wxTextValidator with wxFILTER_EMPTY|wxFILTER_EXCLUDE_LIST (to exclude 'bcwyz')"); + flexgridsizer->Add(txt2, 1, wxGROW); flexgridsizer->Add(new wxListBox((wxWindow*)this, VALIDATE_LIST, - wxPoint(10, 30), wxSize(120, wxDefaultCoord), + wxDefaultPosition, wxDefaultSize, 3, g_listbox_choices, wxLB_MULTIPLE, wxGenericValidator(&g_data.m_listbox_choices)), 1, wxGROW); m_combobox = new wxComboBox(this, VALIDATE_COMBO, wxEmptyString, - wxPoint(130, 30), wxSize(120, wxDefaultCoord), + wxDefaultPosition, wxDefaultSize, 3, g_combobox_choices, 0L, MyComboBoxValidator(&g_data.m_combobox_choice)); + m_combobox->SetToolTip("uses a custom validator (MyComboBoxValidator)"); flexgridsizer->Add(m_combobox, 1, wxALIGN_CENTER); + // This wxCheckBox* doesn't need to be assigned to any pointer + // because we don't use it elsewhere--it can be anonymous. + // We don't need any such pointer to query its state, which + // can be gotten directly from g_data. + flexgridsizer->Add(new wxCheckBox(this, VALIDATE_CHECK, wxT("Sample checkbox"), + wxDefaultPosition, wxDefaultSize, 0, + wxGenericValidator(&g_data.m_checkbox_state)), + 1, wxALIGN_CENTER|wxALL, 15); + flexgridsizer->AddGrowableCol(0); flexgridsizer->AddGrowableCol(1); flexgridsizer->AddGrowableRow(1); @@ -291,7 +305,7 @@ MyDialog::MyDialog( wxWindow *parent, const wxString& title, mainsizer->Add(flexgridsizer, 1, wxGROW | wxALL, 10); mainsizer->Add(new wxRadioBox((wxWindow*)this, VALIDATE_RADIO, wxT("Pick a color"), - wxPoint(10, 100), wxDefaultSize, + wxDefaultPosition, wxDefaultSize, 3, g_radiobox_choices, 1, wxRA_SPECIFY_ROWS, wxGenericValidator(&g_data.m_radiobox_choice)), 0, wxGROW | wxLEFT|wxBOTTOM|wxRIGHT, 10);