]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/valtext.cpp
Faster imagescale code
[wxWidgets.git] / src / common / valtext.cpp
index a14a082387d8bdad1765258a547f9f1a8aab9474..c3139ccfb6d404471f2c297dd23ea243a201535b 100644 (file)
 #include <string.h>
 #include <stdlib.h>
 
+#ifdef __SALFORDC__
+#include <clib.h>
+#endif
+
 #if !USE_SHARED_LIBRARY
 IMPLEMENT_DYNAMIC_CLASS(wxTextValidator, wxValidator)
 
@@ -134,6 +138,7 @@ 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);
@@ -144,6 +149,7 @@ 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);
@@ -152,6 +158,7 @@ bool wxTextValidator::Validate(wxWindow *parent)
        }
        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);
@@ -159,6 +166,7 @@ bool wxTextValidator::Validate(wxWindow *parent)
        }
        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);
@@ -166,6 +174,7 @@ bool wxTextValidator::Validate(wxWindow *parent)
        }
        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);
@@ -174,6 +183,7 @@ bool wxTextValidator::Validate(wxWindow *parent)
        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);
@@ -264,7 +274,10 @@ void wxTextValidator::OnChar(wxKeyEvent& event)
        wxTextCtrl *textCtrl = (wxTextCtrl *)m_validatorWindow;
 
        int keyCode = event.KeyCode();
-       if ( keyCode == WXK_DELETE || keyCode == WXK_RETURN || keyCode == WXK_BACK)
+       if (keyCode == WXK_DELETE || keyCode == WXK_RETURN || keyCode == WXK_BACK ||
+           keyCode == WXK_HOME || keyCode == WXK_LEFT || keyCode == WXK_UP ||
+           keyCode == WXK_RIGHT || keyCode == WXK_DOWN || keyCode == WXK_PRIOR ||
+           keyCode == WXK_NEXT || keyCode == WXK_END || keyCode == WXK_HOME)
        {
                textCtrl->wxTextCtrl::OnChar(event);
                return ;
@@ -285,7 +298,7 @@ void wxTextValidator::OnChar(wxKeyEvent& event)
                wxBell();
                return;
        }
-       if ( (m_validatorStyle & wxFILTER_NUMERIC) && !isdigit(keyCode) && keyCode != '.' )
+       if ( (m_validatorStyle & wxFILTER_NUMERIC) && !isdigit(keyCode) && keyCode != '.' && keyCode != '-')
        {
                wxBell();
                return;
@@ -300,6 +313,7 @@ static bool wxIsNumeric(const wxString& val)
        for ( i = 0; i < (int)val.Length(); i++)
        {
                if ((!isdigit(val[i])) && (val[i] != '.'))
+                 if(!((i == 0) && (val[i] == '-')))
                        return FALSE;
        }
        return TRUE;