Unicode fixes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -2510,7 +2510,7 @@ bool wxLocale::AddCatalog(const wxChar *szDomain)
|
|||||||
#ifdef __WXMSW__
|
#ifdef __WXMSW__
|
||||||
|
|
||||||
/* static */
|
/* static */
|
||||||
wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat)
|
wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat))
|
||||||
{
|
{
|
||||||
wxString str;
|
wxString str;
|
||||||
wxChar buffer[256];
|
wxChar buffer[256];
|
||||||
@@ -2559,9 +2559,11 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat)
|
|||||||
switch (index)
|
switch (index)
|
||||||
{
|
{
|
||||||
case wxLOCALE_THOUSANDS_SEP:
|
case wxLOCALE_THOUSANDS_SEP:
|
||||||
return locale_info->thousands_sep;
|
return wxString(locale_info->thousands_sep,
|
||||||
|
*wxConvCurrent);
|
||||||
case wxLOCALE_DECIMAL_POINT:
|
case wxLOCALE_DECIMAL_POINT:
|
||||||
return locale_info->decimal_point;
|
return wxString(locale_info->decimal_point,
|
||||||
|
*wxConvCurrent);
|
||||||
default:
|
default:
|
||||||
return wxEmptyString;
|
return wxEmptyString;
|
||||||
}
|
}
|
||||||
@@ -2569,9 +2571,11 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat)
|
|||||||
switch (index)
|
switch (index)
|
||||||
{
|
{
|
||||||
case wxLOCALE_THOUSANDS_SEP:
|
case wxLOCALE_THOUSANDS_SEP:
|
||||||
return locale_info->mon_thousands_sep;
|
return wxString(locale_info->mon_thousands_sep,
|
||||||
|
*wxConvCurrent);
|
||||||
case wxLOCALE_DECIMAL_POINT:
|
case wxLOCALE_DECIMAL_POINT:
|
||||||
return locale_info->mon_decimal_point;
|
return wxString(locale_info->mon_decimal_point,
|
||||||
|
*wxConvCurrent);
|
||||||
default:
|
default:
|
||||||
return wxEmptyString;
|
return wxEmptyString;
|
||||||
}
|
}
|
||||||
|
@@ -1068,8 +1068,13 @@ void wxGridCellFloatEditor::Reset()
|
|||||||
void wxGridCellFloatEditor::StartingKey(wxKeyEvent& event)
|
void wxGridCellFloatEditor::StartingKey(wxKeyEvent& event)
|
||||||
{
|
{
|
||||||
int keycode = event.GetKeyCode();
|
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 == '-'
|
if ( wxIsdigit(keycode) || keycode == '+' || keycode == '-'
|
||||||
|| keycode == wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT, wxLOCALE_CAT_NUMBER)[0u]
|
|| is_decimal_point
|
||||||
|| keycode == WXK_NUMPAD0
|
|| keycode == WXK_NUMPAD0
|
||||||
|| keycode == WXK_NUMPAD1
|
|| keycode == WXK_NUMPAD1
|
||||||
|| keycode == WXK_NUMPAD2
|
|| keycode == WXK_NUMPAD2
|
||||||
@@ -1168,13 +1173,21 @@ bool wxGridCellFloatEditor::IsAcceptedKey(wxKeyEvent& event)
|
|||||||
case WXK_NUMPAD_DECIMAL:
|
case WXK_NUMPAD_DECIMAL:
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// additionally accept 'e' as in '1e+6', also '-', '+', and '.'
|
{
|
||||||
|
// 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) &&
|
if ( (keycode < 128) &&
|
||||||
(wxIsdigit(keycode) || tolower(keycode) == 'e' ||
|
(wxIsdigit(keycode) || tolower(keycode) == 'e' ||
|
||||||
keycode == wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT, wxLOCALE_CAT_NUMBER)[0u] ||
|
is_decimal_point || keycode == '+' || keycode == '-') )
|
||||||
keycode == '+' || keycode == '-') )
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user