Commit 5c44027d authored by Jack Jansen's avatar Jack Jansen

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.
parent f22e67dc
...@@ -526,7 +526,7 @@ class Menu: ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment