git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15878
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
-// This reduces flicker in wxGTK+
-static void wxSetMenuLabelOptimally(wxMenu* menu, int id, const wxString& label)
+static void wxSetMenuLabel(wxMenu* menu, int id, const wxString& label)
- wxString oldLabel = menu->GetLabel(id);
- oldLabel = wxStripMenuCodes(oldLabel.BeforeFirst('\t'));
-#ifdef __WXGTK__
- oldLabel.Replace(wxT("_"), wxT("")); // GTK+ only
-#endif
- wxString label1 = wxStripMenuCodes(label.BeforeFirst('\t'));
- if (oldLabel != label1)
- menu->SetLabel(id, label);
+ menu->SetLabel(id, label);
}
void wxCommandProcessor::SetMenuStrings()
}
void wxCommandProcessor::SetMenuStrings()
else
buf = wxString(_("Can't &Undo ")) + commandName + m_undoAccelerator;
else
buf = wxString(_("Can't &Undo ")) + commandName + m_undoAccelerator;
- //m_commandEditMenu->SetLabel(wxID_UNDO, buf);
- wxSetMenuLabelOptimally(m_commandEditMenu, wxID_UNDO, buf);
+ wxSetMenuLabel(m_commandEditMenu, wxID_UNDO, buf);
m_commandEditMenu->Enable(wxID_UNDO, canUndo);
m_commandEditMenu->Enable(wxID_UNDO, canUndo);
wxString redoCommandName(redoCommand->GetName());
if (redoCommandName == wxT("")) redoCommandName = _("Unnamed command");
buf = wxString(_("&Redo ")) + redoCommandName + m_redoAccelerator;
wxString redoCommandName(redoCommand->GetName());
if (redoCommandName == wxT("")) redoCommandName = _("Unnamed command");
buf = wxString(_("&Redo ")) + redoCommandName + m_redoAccelerator;
- wxSetMenuLabelOptimally(m_commandEditMenu, wxID_REDO, buf);
+ wxSetMenuLabel(m_commandEditMenu, wxID_REDO, buf);
m_commandEditMenu->Enable(wxID_REDO, TRUE);
}
else
{
m_commandEditMenu->Enable(wxID_REDO, TRUE);
}
else
{
- wxSetMenuLabelOptimally(m_commandEditMenu, wxID_REDO, _("&Redo") + m_redoAccelerator);
+ wxSetMenuLabel(m_commandEditMenu, wxID_REDO, _("&Redo") + m_redoAccelerator);
m_commandEditMenu->Enable(wxID_REDO, FALSE);
}
}
else
{
m_commandEditMenu->Enable(wxID_REDO, FALSE);
}
}
else
{
- wxSetMenuLabelOptimally(m_commandEditMenu, wxID_UNDO, _("&Undo") + m_undoAccelerator);
+ wxSetMenuLabel(m_commandEditMenu, wxID_UNDO, _("&Undo") + m_undoAccelerator);
m_commandEditMenu->Enable(wxID_UNDO, FALSE);
if (m_commands.Number() == 0)
{
m_commandEditMenu->Enable(wxID_UNDO, FALSE);
if (m_commands.Number() == 0)
{
- wxSetMenuLabelOptimally(m_commandEditMenu, wxID_REDO, _("&Redo") + m_redoAccelerator);
+ wxSetMenuLabel(m_commandEditMenu, wxID_REDO, _("&Redo") + m_redoAccelerator);
m_commandEditMenu->Enable(wxID_REDO, FALSE);
}
else
m_commandEditMenu->Enable(wxID_REDO, FALSE);
}
else
wxString redoCommandName(redoCommand->GetName());
if (redoCommandName == wxT("")) redoCommandName = _("Unnamed command");
buf = wxString(_("&Redo ")) + redoCommandName + m_redoAccelerator;
wxString redoCommandName(redoCommand->GetName());
if (redoCommandName == wxT("")) redoCommandName = _("Unnamed command");
buf = wxString(_("&Redo ")) + redoCommandName + m_redoAccelerator;
- wxSetMenuLabelOptimally(m_commandEditMenu, wxID_REDO, buf);
+ wxSetMenuLabel(m_commandEditMenu, wxID_REDO, buf);
m_commandEditMenu->Enable(wxID_REDO, TRUE);
}
}
m_commandEditMenu->Enable(wxID_REDO, TRUE);
}
}
void wxMenuItem::SetText( const wxString& str )
{
void wxMenuItem::SetText( const wxString& str )
{
+ // Some optimization to avoid flicker
+ wxString oldLabel = m_text;
+ oldLabel = wxStripMenuCodes(oldLabel.BeforeFirst('\t'));
+ oldLabel.Replace(wxT("_"), wxT(""));
+ wxString label1 = wxStripMenuCodes(str.BeforeFirst('\t'));
+ if (oldLabel == label1)
+ return;
+
DoSetText(str);
if (m_menuItem)
DoSetText(str);
if (m_menuItem)
void wxMenuItem::SetText( const wxString& str )
{
void wxMenuItem::SetText( const wxString& str )
{
+ // Some optimization to avoid flicker
+ wxString oldLabel = m_text;
+ oldLabel = wxStripMenuCodes(oldLabel.BeforeFirst('\t'));
+ oldLabel.Replace(wxT("_"), wxT(""));
+ wxString label1 = wxStripMenuCodes(str.BeforeFirst('\t'));
+ if (oldLabel == label1)
+ return;
+
DoSetText(str);
if (m_menuItem)
DoSetText(str);
if (m_menuItem)