From 3fe737557344dcf31299aea827e4b87c998ec940 Mon Sep 17 00:00:00 2001 From: Stefan Neis Date: Tue, 10 Feb 2004 22:16:55 +0000 Subject: [PATCH] Unicode fixes. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/intl.cpp | 14 +++++++++----- src/generic/grid.cpp | 23 ++++++++++++++++++----- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/common/intl.cpp b/src/common/intl.cpp index ecb0166cff..e3f2208e59 100644 --- a/src/common/intl.cpp +++ b/src/common/intl.cpp @@ -2510,7 +2510,7 @@ bool wxLocale::AddCatalog(const wxChar *szDomain) #ifdef __WXMSW__ /* static */ -wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat) +wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat)) { wxString str; wxChar buffer[256]; @@ -2559,9 +2559,11 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat) switch (index) { case wxLOCALE_THOUSANDS_SEP: - return locale_info->thousands_sep; + return wxString(locale_info->thousands_sep, + *wxConvCurrent); case wxLOCALE_DECIMAL_POINT: - return locale_info->decimal_point; + return wxString(locale_info->decimal_point, + *wxConvCurrent); default: return wxEmptyString; } @@ -2569,9 +2571,11 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat) switch (index) { case wxLOCALE_THOUSANDS_SEP: - return locale_info->mon_thousands_sep; + return wxString(locale_info->mon_thousands_sep, + *wxConvCurrent); case wxLOCALE_DECIMAL_POINT: - return locale_info->mon_decimal_point; + return wxString(locale_info->mon_decimal_point, + *wxConvCurrent); default: return wxEmptyString; } diff --git a/src/generic/grid.cpp b/src/generic/grid.cpp index 554e61d4c4..74de24b9f7 100644 --- a/src/generic/grid.cpp +++ b/src/generic/grid.cpp @@ -1068,8 +1068,13 @@ void wxGridCellFloatEditor::Reset() void wxGridCellFloatEditor::StartingKey(wxKeyEvent& event) { int keycode = event.GetKeyCode(); + char tmpbuf[2]; + tmpbuf[0] = (char) keycode; + tmpbuf[1] = '\0'; + bool is_decimal_point = ( wxString(tmpbuf, *wxConvCurrent) == + wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT, wxLOCALE_CAT_NUMBER) ); if ( wxIsdigit(keycode) || keycode == '+' || keycode == '-' - || keycode == wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT, wxLOCALE_CAT_NUMBER)[0u] + || is_decimal_point || keycode == WXK_NUMPAD0 || keycode == WXK_NUMPAD1 || keycode == WXK_NUMPAD2 @@ -1168,13 +1173,21 @@ bool wxGridCellFloatEditor::IsAcceptedKey(wxKeyEvent& event) case WXK_NUMPAD_DECIMAL: return TRUE; - default: - // additionally accept 'e' as in '1e+6', also '-', '+', and '.' + default: + { + // additionally accept 'e' as in '1e+6', also '-', '+', and '.' + char tmpbuf[2]; + tmpbuf[0] = (char) keycode; + tmpbuf[1] = '\0'; + bool is_decimal_point = + ( wxString(tmpbuf, *wxConvCurrent) == + wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT, + wxLOCALE_CAT_NUMBER) ); if ( (keycode < 128) && (wxIsdigit(keycode) || tolower(keycode) == 'e' || - keycode == wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT, wxLOCALE_CAT_NUMBER)[0u] || - keycode == '+' || keycode == '-') ) + is_decimal_point || keycode == '+' || keycode == '-') ) return TRUE; + } } } -- 2.45.2