mirror of
https://github.com/python/cpython.git
synced 2025-07-24 19:54:21 +00:00
Added a delete() method to menu entries. Only the last entry of a menu
can be deleted, but that's good enough for things like a "Windows" menu with the dynamic list of open windows at the end of the menu.
This commit is contained in:
parent
f22e67dcb5
commit
5c44027d8a
1 changed files with 14 additions and 1 deletions
|
@ -526,7 +526,7 @@ class Menu:
|
||||||
del self.items
|
del self.items
|
||||||
del self.menu
|
del self.menu
|
||||||
del self.id
|
del self.id
|
||||||
|
|
||||||
def additem(self, label, shortcut=None, callback=None, kind=None):
|
def additem(self, label, shortcut=None, callback=None, kind=None):
|
||||||
self.menu.AppendMenu('x') # add a dummy string
|
self.menu.AppendMenu('x') # add a dummy string
|
||||||
self.items.append(label, shortcut, callback, kind)
|
self.items.append(label, shortcut, callback, kind)
|
||||||
|
@ -535,6 +535,12 @@ class Menu:
|
||||||
if shortcut:
|
if shortcut:
|
||||||
self.menu.SetItemCmd(item, ord(shortcut))
|
self.menu.SetItemCmd(item, ord(shortcut))
|
||||||
return item
|
return item
|
||||||
|
|
||||||
|
def delitem(self, item):
|
||||||
|
if item != len(self.items):
|
||||||
|
raise 'Can only delete last item of a menu'
|
||||||
|
self.menu.DeleteMenuItem(item)
|
||||||
|
del self.items[item-1]
|
||||||
|
|
||||||
def addcheck(self, label, shortcut=None, callback=None):
|
def addcheck(self, label, shortcut=None, callback=None):
|
||||||
return self.additem(label, shortcut, callback, 'check')
|
return self.additem(label, shortcut, callback, 'check')
|
||||||
|
@ -583,6 +589,8 @@ class Menu:
|
||||||
self.menu.EnableItem(0)
|
self.menu.EnableItem(0)
|
||||||
else:
|
else:
|
||||||
self.menu.DisableItem(0)
|
self.menu.DisableItem(0)
|
||||||
|
if self.bar and self.bar.parent:
|
||||||
|
self.bar.parent.needmenubarredraw = 1
|
||||||
|
|
||||||
class PopupMenu(Menu):
|
class PopupMenu(Menu):
|
||||||
def __init__(self, bar):
|
def __init__(self, bar):
|
||||||
|
@ -610,6 +618,11 @@ class MenuItem:
|
||||||
self.item = menu.additem(title, shortcut, callback)
|
self.item = menu.additem(title, shortcut, callback)
|
||||||
self.menu = menu
|
self.menu = menu
|
||||||
|
|
||||||
|
def delete(self):
|
||||||
|
self.menu.delitem(self.item)
|
||||||
|
del self.menu
|
||||||
|
del self.item
|
||||||
|
|
||||||
def check(self, onoff):
|
def check(self, onoff):
|
||||||
self.menu.menu.CheckItem(self.item, onoff)
|
self.menu.menu.CheckItem(self.item, onoff)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue