X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/debe6624c1e9d4bf3243381153d1e173c849bcd8..50c319beec2454b4f669b6c8cf3d089f53c979f6:/src/common/valtext.cpp diff --git a/src/common/valtext.cpp b/src/common/valtext.cpp index 117efff315..7da74055f5 100644 --- a/src/common/valtext.cpp +++ b/src/common/valtext.cpp @@ -24,7 +24,8 @@ #include #include "wx/textctrl.h" #include "wx/utils.h" -#include "wx/msgbxdlg.h" +#include "wx/msgdlg.h" +#include "wx/intl.h" #endif #include "wx/valtext.h" @@ -41,6 +42,8 @@ BEGIN_EVENT_TABLE(wxTextValidator, wxValidator) END_EVENT_TABLE() #endif +static bool wxIsNumeric(const wxString& val); + wxTextValidator::wxTextValidator(long style, wxString *val) { m_validatorStyle = style ; @@ -131,9 +134,10 @@ bool wxTextValidator::Validate(wxWindow *parent) { if ( !m_includeList.Member(val) ) { + m_validatorWindow->SetFocus(); char buf[512]; - sprintf(buf, "%s is invalid.", (const char *)val); - wxMessageBox(buf, "Validation conflict", wxOK | wxICON_EXCLAMATION, parent); + sprintf(buf, _("%s is invalid."), (const char *)val); + wxMessageBox(buf, _("Validation conflict"), wxOK | wxICON_EXCLAMATION, parent); return FALSE; } } @@ -141,38 +145,44 @@ bool wxTextValidator::Validate(wxWindow *parent) { if ( m_excludeList.Member(val) ) { + m_validatorWindow->SetFocus(); char buf[512]; - sprintf(buf, "%s is invalid.", (const char *)val); - wxMessageBox(buf, "Validation conflict", wxOK | wxICON_EXCLAMATION, parent); + sprintf(buf, _("%s is invalid."), (const char *)val); + wxMessageBox(buf, _("Validation conflict"), wxOK | wxICON_EXCLAMATION, parent); return FALSE; } } if ( (m_validatorStyle & wxFILTER_ASCII) && !val.IsAscii() ) { + m_validatorWindow->SetFocus(); char buf[512]; - sprintf(buf, "%s should only contain ASCII characters.", (const char *)val); - wxMessageBox(buf, "Validation conflict", wxOK | wxICON_EXCLAMATION, parent); + sprintf(buf, _("%s should only contain ASCII characters."), (const char *)val); + wxMessageBox(buf, _("Validation conflict"), wxOK | wxICON_EXCLAMATION, parent); return FALSE; } if ( (m_validatorStyle & wxFILTER_ALPHA) && !wxIsAlpha(val) ) { + m_validatorWindow->SetFocus(); char buf[512]; - sprintf(buf, "%s should only contain alphabetic characters.", (const char *)val); - wxMessageBox(buf, "Validation conflict", wxOK | wxICON_EXCLAMATION, parent); + sprintf(buf, _("%s should only contain alphabetic characters."), (const char *)val); + wxMessageBox(buf, _("Validation conflict"), wxOK | wxICON_EXCLAMATION, parent); return FALSE; } if ( (m_validatorStyle & wxFILTER_ALPHANUMERIC) && !wxIsAlphaNumeric(val)) { + m_validatorWindow->SetFocus(); char buf[512]; - sprintf(buf, "%s should only contain alphabetic or numeric characters.", (const char *)val); - wxMessageBox(buf, "Validation conflict", wxOK | wxICON_EXCLAMATION, parent); + sprintf(buf, _("%s should only contain alphabetic or numeric characters."), (const char *)val); + wxMessageBox(buf,_("Validation conflict"), wxOK | wxICON_EXCLAMATION, parent); return FALSE; } - if ( (m_validatorStyle & wxFILTER_NUMERIC) && !val.IsNumber()) + if ( (m_validatorStyle & wxFILTER_NUMERIC) && !wxIsNumeric(val)) + { + m_validatorWindow->SetFocus(); char buf[512]; - sprintf(buf, "%s should be numeric.", (const char *)val); - wxMessageBox(buf, "Validation conflict", wxOK | wxICON_EXCLAMATION, parent); + sprintf(buf, _("%s should be numeric."), (const char *)val); + wxMessageBox(buf, _("Validation conflict"), wxOK | wxICON_EXCLAMATION, parent); return FALSE; } @@ -290,4 +300,14 @@ void wxTextValidator::OnChar(wxKeyEvent& event) textCtrl->wxTextCtrl::OnChar(event); } +static bool wxIsNumeric(const wxString& val) +{ + int i; + for ( i = 0; i < (int)val.Length(); i++) + { + if ((!isdigit(val[i])) && (val[i] != '.')) + return FALSE; + } + return TRUE; +}