X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e4a197e4c60e461b8068b0619692ea083e30b8b..2f552802877a78b58e6c251466b70a10653aa585:/wxPython/demo/wxMenu.py diff --git a/wxPython/demo/wxMenu.py b/wxPython/demo/wxMenu.py index bdbf93489b..c209977197 100644 --- a/wxPython/demo/wxMenu.py +++ b/wxPython/demo/wxMenu.py @@ -7,6 +7,8 @@ from wxPython.wx import * +import time + #------------------------------------------------------------------- class MyFrame(wxFrame): @@ -68,14 +70,24 @@ check the source for this sample to see how to implement them. menu5 = wxMenu() menu5.Append(501, "Interesting thing\tCtrl+A", "Note the shortcut!") - menu5.AppendSeparator() menu5.Append(502, "Hello\tShift+H") + menu5.AppendSeparator() + menu5.Append(503, "remove the submenu") + menu6 = wxMenu() + menu6.Append(601, "Submenu Item") + menu5.AppendMenu(504, "submenu", menu6) + menu5.Append(505, "remove this menu") + menu5.Append(506, "this is updated") + menu5.Append(507, "insert after this...") + menu5.Append(508, "...and before this") menuBar.Append(menu5, "&Fun") self.SetMenuBar(menuBar) # Menu events + EVT_MENU_HIGHLIGHT_ALL(self, self.OnMenuHighlight) + EVT_MENU(self, 101, self.Menu101) EVT_MENU(self, 102, self.Menu102) EVT_MENU(self, 103, self.Menu103) @@ -97,9 +109,25 @@ check the source for this sample to see how to implement them. EVT_MENU(self, 501, self.Menu501) EVT_MENU(self, 502, self.Menu502) + EVT_MENU(self, 503, self.TestRemove) + EVT_MENU(self, 505, self.TestRemove2) + EVT_MENU(self, 507, self.TestInsert) + EVT_MENU(self, 508, self.TestInsert) + + EVT_UPDATE_UI(wxGetApp(), 506, self.TestUpdateUI) # Methods + def OnMenuHighlight(self, event): + # Show how to get menu item imfo from this event handler + id = event.GetMenuId() + item = self.GetMenuBar().FindItemById(id) + text = item.GetText() + help = item.GetHelp() + #print text, help + event.Skip() # but in this case just call Skip so the default is done + + def Menu101(self, event): self.log.write('Welcome to Mercury\n') @@ -146,8 +174,49 @@ check the source for this sample to see how to implement them. def Menu502(self, event): self.log.write('Hello from Jean-Michel\n') + + def TestRemove(self, evt): + mb = self.GetMenuBar() + submenuItem = mb.FindItemById(601) + if not submenuItem: + return + submenu = submenuItem.GetMenu() + menu = submenu.GetParent() + + #menu.Remove(504) # works + menu.RemoveItem(mb.FindItemById(504)) # this also works + #menu.RemoveItem(submenuItem) # doesn't work, as expected since submenuItem is not on menu + + + def TestRemove2(self, evt): + mb = self.GetMenuBar() + mb.Remove(4) + + + def TestUpdateUI(self, evt): + text = time.ctime() + evt.SetText(text) + + + def TestInsert(self, evt): + # get the menu + mb = self.GetMenuBar() + menuItem = mb.FindItemById(507) + menu = menuItem.GetMenu() + + ID = wxNewId() + ##menu.Insert(9, ID, "NewItem " + str(ID)) + item = wxMenuItem(menu) + item.SetId(ID) + item.SetText("NewItem " + str(ID)) + menu.InsertItem(9, item) + + + #------------------------------------------------------------------- +wxRegisterId(10000) + def runTest(frame, nb, log): win = MyFrame(frame, -1, log) frame.otherWin = win