X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6fc7a1ad1c370005d66286b586c50d49da764aed..77c8efc8c37da6d6a5e2e8022d21d1cd7d76371d:/src/common/accelcmn.cpp diff --git a/src/common/accelcmn.cpp b/src/common/accelcmn.cpp index 5df35dc39f..2b3165ec37 100644 --- a/src/common/accelcmn.cpp +++ b/src/common/accelcmn.cpp @@ -26,13 +26,15 @@ #if wxUSE_ACCEL #ifndef WX_PRECOMP + #include "wx/accel.h" #include "wx/string.h" #include "wx/intl.h" #include "wx/log.h" - #include "wx/accel.h" #include "wx/crt.h" #endif //WX_PRECOMP +wxAcceleratorTable wxNullAcceleratorTable; + // ============================================================================ // wxAcceleratorEntry implementation // ============================================================================ @@ -184,6 +186,8 @@ wxAcceleratorEntry::ParseAccel(const wxString& text, int *flagsOut, int *keyOut) accelFlags |= wxACCEL_ALT; else if ( CompareAccelString(current, wxTRANSLATE("shift")) ) accelFlags |= wxACCEL_SHIFT; + else if ( CompareAccelString(current, wxTRANSLATE("rawctrl")) ) + accelFlags |= wxACCEL_RAW_CTRL; else // not a recognized modifier name { // we may have "Ctrl-+", for example, but we still want to @@ -298,26 +302,43 @@ bool wxAcceleratorEntry::FromString(const wxString& str) return ParseAccel(str, &m_flags, &m_keyCode); } -wxString wxAcceleratorEntry::ToString() const +namespace +{ + +wxString PossiblyLocalize(const wxString& str, bool localize) +{ + return localize ? wxGetTranslation(str) : str; +} + +} + +wxString wxAcceleratorEntry::AsPossiblyLocalizedString(bool localized) const { wxString text; int flags = GetFlags(); if ( flags & wxACCEL_ALT ) - text += _("Alt+"); + text += PossiblyLocalize(wxTRANSLATE("Alt+"), localized); if ( flags & wxACCEL_CTRL ) - text += _("Ctrl+"); + text += PossiblyLocalize(wxTRANSLATE("Ctrl+"), localized); if ( flags & wxACCEL_SHIFT ) - text += _("Shift+"); - + text += PossiblyLocalize(wxTRANSLATE("Shift+"), localized); +#if defined(__WXMAC__) || defined(__WXCOCOA__) + if ( flags & wxACCEL_RAW_CTRL ) + text += PossiblyLocalize(wxTRANSLATE("RawCtrl+"), localized); +#endif + const int code = GetKeyCode(); if ( code >= WXK_F1 && code <= WXK_F12 ) - text << _("F") << code - WXK_F1 + 1; + text << PossiblyLocalize(wxTRANSLATE("F"), localized) + << code - WXK_F1 + 1; else if ( code >= WXK_NUMPAD0 && code <= WXK_NUMPAD9 ) - text << _("KP_") << code - WXK_NUMPAD0; + text << PossiblyLocalize(wxTRANSLATE("KP_"), localized) + << code - WXK_NUMPAD0; else if ( code >= WXK_SPECIAL1 && code <= WXK_SPECIAL20 ) - text << _("SPECIAL") << code - WXK_SPECIAL1 + 1; + text << PossiblyLocalize(wxTRANSLATE("SPECIAL"), localized) + << code - WXK_SPECIAL1 + 1; else // check the named keys { size_t n; @@ -326,7 +347,7 @@ wxString wxAcceleratorEntry::ToString() const const wxKeyName& kn = wxKeyNames[n]; if ( code == kn.code ) { - text << wxGetTranslation(kn.name); + text << PossiblyLocalize(kn.name, localized); break; } } @@ -340,7 +361,7 @@ wxString wxAcceleratorEntry::ToString() const // build as they're only defined for the ASCII range (or EOF) wxIsascii(code) && #endif // ANSI - wxIsalnum(code) ) + wxIsprint(code) ) { text << (wxChar)code; }