The mnemonics conversion was not done correctly when the menu title contained
them but the menu hadn't been appended to the menu bar yet.
Closes #15461.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74731
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
- Set correct cursor when the mouse is over image map links in wxHTML (LukasK).
- Add wxPropertyGridPageState::GetColumnFullWidth() (Teodor Petrov).
+wxGTK:
+
+- Fix wxMenu::GetTitle() before the menu is appended to the bar (David Hart).
+
wxMSW:
- It is now possible to tab into radio boxes again.
// Returns the title, with mnemonics translated to wx format
wxString GetTitle() const;
- // TODO: virtual void SetTitle(const wxString& title);
+ // Sets the title, with mnemonics translated to gtk format
+ virtual void SetTitle(const wxString& title);
// implementation GTK only
GtkWidget *m_menu; // GtkMenu
else
#endif // wxUSE_LIBHILDON || wxUSE_LIBHILDON2 /!wxUSE_LIBHILDON && !wxUSE_LIBHILDON2
{
- const wxString str(wxConvertMnemonicsToGTK(title));
-
// This doesn't have much effect right now.
- menu->SetTitle( str );
+ menu->SetTitle( title );
+ const wxString str(wxConvertMnemonicsToGTK(title));
// The "m_owner" is the "menu item"
menu->m_owner = gtk_menu_item_new_with_mnemonic( wxGTK_CONV( str ) );
wxMenu* menu = node->GetData();
- const wxString str(wxConvertMnemonicsToGTK(label));
-
- menu->SetTitle( str );
+ menu->SetTitle( label );
+ const wxString str(wxConvertMnemonicsToGTK(label));
if (menu->m_owner)
gtk_label_set_text_with_mnemonic(GTK_LABEL(gtk_bin_get_child(GTK_BIN(menu->m_owner))), wxGTK_CONV(str));
}
return wxConvertMnemonicsFromGTK(wxMenuBase::GetTitle());
}
+void wxMenu::SetTitle(const wxString& title)
+{
+ wxMenuBase::SetTitle(wxConvertMnemonicsToGTK(title));
+}
+
void wxMenu::GtkAppend(wxMenuItem* mitem, int pos)
{
GtkWidget *menuItem;
subMenu->AppendSubMenu(subsubMenu, "Subsubmen&u", "Test a subsubmenu");
+ // Check GetTitle() returns the correct string _before_ appending to the bar
+ fileMenu->SetTitle("&Foo\tCtrl-F");
+ CPPUNIT_ASSERT_EQUAL( "&Foo\tCtrl-F", fileMenu->GetTitle() );
+
PopulateMenu(fileMenu, "Filemenu item ", itemcount);
fileMenu->Append(MenuTestCase_Foo, "&Foo\tCtrl-F", "Test item to be found");