int posTab = label.Find(wxT('\t'));
if ( posTab == wxNOT_FOUND )
{
- wxLogDebug(wxT("Invalid menu label: no accelerators"));
return false;
}
const int code = GetKeyCode();
- if ( wxIsalnum(code) )
- text << (wxChar)code;
- else if ( code >= WXK_F1 && code <= WXK_F12 )
+ if ( code >= WXK_F1 && code <= WXK_F12 )
text << _("F") << code - WXK_F1 + 1;
else if ( code >= WXK_NUMPAD0 && code <= WXK_NUMPAD9 )
text << _("KP_") << code - WXK_NUMPAD0;
}
}
- wxASSERT_MSG( n != WXSIZEOF(wxKeyNames),
- wxT("unknown keyboard accelerator code") );
+ if ( n == WXSIZEOF(wxKeyNames) )
+ {
+ // must be a simple key
+ if (
+#if !wxUSE_UNICODE
+ isascii(code) &&
+#endif // ANSI
+ wxIsalnum(code) )
+ {
+ text << (wxChar)code;
+ }
+ else
+ {
+ wxFAIL_MSG( wxT("unknown keyboard accelerator code") );
+ }
+ }
}
return text;