X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6a1e8a634a09fa3ff09fe5190429f47e37b1930e..ce39ca74bc413b8a5574f733cd9a44e7b1e9beff:/src/generic/grideditors.cpp diff --git a/src/generic/grideditors.cpp b/src/generic/grideditors.cpp index ef818831bb..6574ed6cb8 100644 --- a/src/generic/grideditors.cpp +++ b/src/generic/grideditors.cpp @@ -28,12 +28,12 @@ #include "wx/textctrl.h" #include "wx/checkbox.h" #include "wx/combobox.h" - #include "wx/valtext.h" #include "wx/intl.h" #include "wx/math.h" #include "wx/listbox.h" #endif +#include "wx/valnum.h" #include "wx/textfile.h" #include "wx/spinctrl.h" #include "wx/tokenzr.h" @@ -355,7 +355,7 @@ bool wxGridCellEditor::IsAcceptedKey(wxKeyEvent& event) return false; #if wxUSE_UNICODE - if ( event.GetUnicodeKey() == WXK_NONE ) + if ( static_cast(event.GetUnicodeKey()) == WXK_NONE ) return false; #else if ( event.GetKeyCode() > WXK_START ) @@ -547,8 +547,7 @@ void wxGridCellTextEditor::StartingKey(wxKeyEvent& event) // a valid character, so not a whole lot of testing needs to be done. wxTextCtrl* tc = Text(); - wxChar ch; - long pos; + int ch; bool isPrintable; @@ -559,29 +558,28 @@ void wxGridCellTextEditor::StartingKey(wxKeyEvent& event) else #endif // wxUSE_UNICODE { - ch = (wxChar)event.GetKeyCode(); + ch = event.GetKeyCode(); isPrintable = ch >= WXK_SPACE && ch < WXK_START; } switch (ch) { case WXK_DELETE: - // delete the character at the cursor - pos = tc->GetInsertionPoint(); - if (pos < tc->GetLastPosition()) - tc->Remove(pos, pos + 1); + // Delete the initial character when starting to edit with DELETE. + tc->Remove(0, 1); break; case WXK_BACK: - // delete the character before the cursor - pos = tc->GetInsertionPoint(); - if (pos > 0) + // Delete the last character when starting to edit with BACKSPACE. + { + const long pos = tc->GetLastPosition(); tc->Remove(pos - 1, pos); + } break; default: if ( isPrintable ) - tc->WriteText(ch); + tc->WriteText(static_cast(ch)); break; } } @@ -662,7 +660,7 @@ void wxGridCellNumberEditor::Create(wxWindow* parent, wxGridCellTextEditor::Create(parent, id, evtHandler); #if wxUSE_VALIDATORS - Text()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); + Text()->SetValidator(wxIntegerValidator()); #endif } } @@ -877,7 +875,7 @@ void wxGridCellFloatEditor::Create(wxWindow* parent, wxGridCellTextEditor::Create(parent, id, evtHandler); #if wxUSE_VALIDATORS - Text()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); + Text()->SetValidator(wxFloatingPointValidator(m_precision)); #endif } @@ -1508,7 +1506,6 @@ void wxGridCellEnumEditor::BeginEdit(int row, int col, wxGrid* grid) } Combo()->SetSelection(m_index); - Combo()->SetInsertionPointEnd(); Combo()->SetFocus(); }