X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ca1b5af1c4e55bb5a04f6937f5e695d9f1808112..0ba344c712c77e4a6c7b94263b6f39ab22069039:/src/common/cmdproc.cpp diff --git a/src/common/cmdproc.cpp b/src/common/cmdproc.cpp index 7466686e7a..7945642565 100644 --- a/src/common/cmdproc.cpp +++ b/src/common/cmdproc.cpp @@ -68,6 +68,8 @@ wxCommandProcessor::wxCommandProcessor(int maxCommands) #if wxUSE_MENUS m_commandEditMenu = (wxMenu *) NULL; #endif // wxUSE_MENUS + m_undoAccelerator = wxT("\tCtrl+Z"); + m_redoAccelerator = wxT("\tCtrl+Y"); } wxCommandProcessor::~wxCommandProcessor() @@ -218,6 +220,11 @@ void wxCommandProcessor::Initialize() SetMenuStrings(); } +static void wxSetMenuLabel(wxMenu* menu, int id, const wxString& label) +{ + menu->SetLabel(id, label); +} + void wxCommandProcessor::SetMenuStrings() { #if wxUSE_MENUS @@ -231,11 +238,12 @@ void wxCommandProcessor::SetMenuStrings() if (commandName == wxT("")) commandName = _("Unnamed command"); bool canUndo = command->CanUndo(); if (canUndo) - buf = wxString(_("&Undo ")) + commandName; + buf = wxString(_("&Undo ")) + commandName + m_undoAccelerator; else - buf = wxString(_("Can't &Undo ")) + commandName; + buf = wxString(_("Can't &Undo ")) + commandName + m_undoAccelerator; - m_commandEditMenu->SetLabel(wxID_UNDO, buf); + wxSetMenuLabel(m_commandEditMenu, wxID_UNDO, buf); + m_commandEditMenu->Enable(wxID_UNDO, canUndo); // We can redo, if we're not at the end of the history. @@ -244,24 +252,24 @@ void wxCommandProcessor::SetMenuStrings() wxCommand *redoCommand = (wxCommand *)m_currentCommand->Next()->Data(); wxString redoCommandName(redoCommand->GetName()); if (redoCommandName == wxT("")) redoCommandName = _("Unnamed command"); - buf = wxString(_("&Redo ")) + redoCommandName; - m_commandEditMenu->SetLabel(wxID_REDO, buf); + buf = wxString(_("&Redo ")) + redoCommandName + m_redoAccelerator; + wxSetMenuLabel(m_commandEditMenu, wxID_REDO, buf); m_commandEditMenu->Enable(wxID_REDO, TRUE); } else { - m_commandEditMenu->SetLabel(wxID_REDO, _("&Redo")); + wxSetMenuLabel(m_commandEditMenu, wxID_REDO, _("&Redo") + m_redoAccelerator); m_commandEditMenu->Enable(wxID_REDO, FALSE); } } else { - m_commandEditMenu->SetLabel(wxID_UNDO, _("&Undo")); + wxSetMenuLabel(m_commandEditMenu, wxID_UNDO, _("&Undo") + m_undoAccelerator); m_commandEditMenu->Enable(wxID_UNDO, FALSE); if (m_commands.Number() == 0) { - m_commandEditMenu->SetLabel(wxID_REDO, _("&Redo")); + wxSetMenuLabel(m_commandEditMenu, wxID_REDO, _("&Redo") + m_redoAccelerator); m_commandEditMenu->Enable(wxID_REDO, FALSE); } else @@ -271,8 +279,8 @@ void wxCommandProcessor::SetMenuStrings() wxCommand *redoCommand = (wxCommand *)m_commands.First()->Data(); wxString redoCommandName(redoCommand->GetName()); if (redoCommandName == wxT("")) redoCommandName = _("Unnamed command"); - buf = wxString(_("&Redo ")) + redoCommandName; - m_commandEditMenu->SetLabel(wxID_REDO, buf); + buf = wxString(_("&Redo ")) + redoCommandName + m_redoAccelerator; + wxSetMenuLabel(m_commandEditMenu, wxID_REDO, buf); m_commandEditMenu->Enable(wxID_REDO, TRUE); } }