Make menu operations always work with "Test" menu in the sample.

Some tests in the "Menu" menu of the menu sample worked with the "Test" menu
while others used the last one ("Help" initially but possibly something else
if the test commands from "Menubar" menu were used).

Harmonize all menu commands to use the "Test" menu now.

See #12668.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66138 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2010-11-13 15:02:50 +00:00
parent f71adb5029
commit 553d672896

View File

@ -511,15 +511,15 @@ MyFrame::MyFrame()
wxMenu *menuMenu = new wxMenu;
menuMenu->Append(Menu_Menu_Append, wxT("&Append menu item\tAlt-A"),
wxT("Append a menu item to the last menu"));
wxT("Append a menu item to the 'Test' menu"));
menuMenu->Append(Menu_Menu_AppendSub, wxT("&Append sub menu\tAlt-S"),
wxT("Append a sub menu to the last menu"));
wxT("Append a sub menu to the 'Test' menu"));
menuMenu->Append(Menu_Menu_Insert, wxT("&Insert menu item\tAlt-I"),
wxT("Insert a menu item in head of the last menu"));
wxT("Insert a menu item in head of the 'Test' menu"));
menuMenu->Append(Menu_Menu_Delete, wxT("&Delete menu item\tAlt-D"),
wxT("Delete the last menu item from the last menu"));
wxT("Delete the last menu item from the 'Test' menu"));
menuMenu->Append(Menu_Menu_DeleteSub, wxT("Delete last &submenu\tAlt-K"),
wxT("Delete the last submenu from the last menu"));
wxT("Delete the last submenu from the 'Test' menu"));
menuMenu->AppendSeparator();
menuMenu->Append(Menu_Menu_Enable, wxT("&Enable menu item\tAlt-E"),
wxT("Enable or disable the last menu item"), true);
@ -581,7 +581,7 @@ MyFrame::MyFrame()
m_logOld = wxLog::SetActiveTarget(new wxLogTextCtrl(m_textctrl));
wxLogMessage(wxT("Brief explanations: the commands in the \"Menu\" menu ")
wxT("append/insert/delete items to/from the last menu.\n")
wxT("append/insert/delete items to/from the \"Test\" menu.\n")
wxT("The commands in the \"Menubar\" menu work with the ")
wxT("menubar itself.\n\n")
wxT("Right click the band below to test popup menus.\n"));
@ -622,12 +622,13 @@ wxMenu *MyFrame::CreateDummyMenu(wxString *title)
wxMenuItem *MyFrame::GetLastMenuItem() const
{
wxMenuBar *menubar = GetMenuBar();
wxMenu *menu = menubar->GetMenu(menubar->GetMenuCount() - 1);
wxMenu *menu = menubar->GetMenu(menubar->FindMenu("Test"));
wxCHECK_MSG( menu, NULL, wxT("no 'Test' menu?") );
wxMenuItemList::compatibility_iterator node = menu->GetMenuItems().GetLast();
if ( !node )
{
wxLogWarning(wxT("No last item in the last menu!"));
wxLogWarning(wxT("No last item in the 'Test' menu!"));
return NULL;
}
@ -693,9 +694,9 @@ void MyFrame::OnDeleteMenu(wxCommandEvent& WXUNUSED(event))
wxMenuBar *mbar = GetMenuBar();
size_t count = mbar->GetMenuCount();
if ( count == 2 )
if ( count == 4 )
{
// don't let delete the first 2 menus
// don't let delete the first 4 menus
wxLogError(wxT("Can't delete any more menus"));
}
else
@ -708,7 +709,9 @@ void MyFrame::OnInsertMenu(wxCommandEvent& WXUNUSED(event))
{
wxString title;
wxMenu *menu = CreateDummyMenu(&title);
GetMenuBar()->Insert(0, menu, title);
// Insert before the 'Help' menu
// Othewise repeated Deletes will remove the 'Test' menu
GetMenuBar()->Insert(4, menu, title);
}
void MyFrame::OnAppendMenu(wxCommandEvent& WXUNUSED(event))
@ -814,7 +817,8 @@ void MyFrame::OnDummy(wxCommandEvent& event)
void MyFrame::OnAppendMenuItem(wxCommandEvent& WXUNUSED(event))
{
wxMenuBar *menubar = GetMenuBar();
wxMenu *menu = menubar->GetMenu(menubar->GetMenuCount() - 1);
wxMenu *menu = menubar->GetMenu(menubar->FindMenu("Test"));
wxCHECK_RET( menu, wxT("no 'Test' menu?") );
menu->AppendSeparator();
menu->Append(Menu_Dummy_Third, wxT("&Third dummy item\tCtrl-F3"),
@ -824,8 +828,8 @@ void MyFrame::OnAppendMenuItem(wxCommandEvent& WXUNUSED(event))
void MyFrame::OnAppendSubMenu(wxCommandEvent& WXUNUSED(event))
{
wxMenuBar *menubar = GetMenuBar();
wxMenu *menu = menubar->GetMenu(menubar->GetMenuCount() - 2);
wxMenu *menu = menubar->GetMenu(menubar->FindMenu("Test"));
wxCHECK_RET( menu, wxT("no 'Test' menu?") );
menu->Append(Menu_Dummy_Last, wxT("&Dummy sub menu"),
CreateDummyMenu(NULL), wxT("Dummy sub menu help"));
@ -834,7 +838,8 @@ void MyFrame::OnAppendSubMenu(wxCommandEvent& WXUNUSED(event))
void MyFrame::OnDeleteMenuItem(wxCommandEvent& WXUNUSED(event))
{
wxMenuBar *menubar = GetMenuBar();
wxMenu *menu = menubar->GetMenu(menubar->GetMenuCount() - 1);
wxMenu *menu = menubar->GetMenu(menubar->FindMenu("Test"));
wxCHECK_RET( menu, wxT("no 'Test' menu?") );
size_t count = menu->GetMenuItemCount();
if ( !count )
@ -850,7 +855,8 @@ void MyFrame::OnDeleteMenuItem(wxCommandEvent& WXUNUSED(event))
void MyFrame::OnDeleteSubMenu(wxCommandEvent& WXUNUSED(event))
{
wxMenuBar *menubar = GetMenuBar();
wxMenu *menu = menubar->GetMenu(menubar->GetMenuCount() - 2);
wxMenu *menu = menubar->GetMenu(menubar->FindMenu("Test"));
wxCHECK_RET( menu, wxT("no 'Test' menu?") );
for ( int n = menu->GetMenuItemCount() - 1; n >=0 ; --n )
{
@ -868,7 +874,8 @@ void MyFrame::OnDeleteSubMenu(wxCommandEvent& WXUNUSED(event))
void MyFrame::OnInsertMenuItem(wxCommandEvent& WXUNUSED(event))
{
wxMenuBar *menubar = GetMenuBar();
wxMenu *menu = menubar->GetMenu(menubar->GetMenuCount() - 1);
wxMenu *menu = menubar->GetMenu(menubar->FindMenu("Test"));
wxCHECK_RET( menu, wxT("no 'Test' menu?") );
menu->Insert(0, wxMenuItem::New(menu, Menu_Dummy_Fourth,
wxT("Fourth dummy item\tCtrl-F4")));
@ -889,8 +896,11 @@ void MyFrame::OnCheckMenuItem(wxCommandEvent& WXUNUSED(event))
{
wxMenuItem *item = GetLastMenuItem();
if (item && item->IsCheckable())
{
item->Toggle();
}
}
void MyFrame::OnUpdateCheckMenuItemUI(wxUpdateUIEvent& event)
{