diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 1998-07-13 13:41:02 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 1998-07-13 13:41:02 (GMT) |
commit | 5c44027d8ab77fb40ec9a386596e59251c1b7146 (patch) | |
tree | 08168138f2affd89a9a23024623f94a200919310 | |
parent | f22e67dcb5c6ce3d08e56f62b337390198ffee54 (diff) | |
download | cpython-5c44027d8ab77fb40ec9a386596e59251c1b7146.zip cpython-5c44027d8ab77fb40ec9a386596e59251c1b7146.tar.gz cpython-5c44027d8ab77fb40ec9a386596e59251c1b7146.tar.bz2 |
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.
-rw-r--r-- | Mac/Lib/FrameWork.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/Mac/Lib/FrameWork.py b/Mac/Lib/FrameWork.py index 647d9e4..866b869 100644 --- a/Mac/Lib/FrameWork.py +++ b/Mac/Lib/FrameWork.py @@ -526,7 +526,7 @@ class Menu: del self.items del self.menu del self.id - + def additem(self, label, shortcut=None, callback=None, kind=None): self.menu.AppendMenu('x') # add a dummy string self.items.append(label, shortcut, callback, kind) @@ -535,6 +535,12 @@ class Menu: if shortcut: self.menu.SetItemCmd(item, ord(shortcut)) 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): return self.additem(label, shortcut, callback, 'check') @@ -583,6 +589,8 @@ class Menu: self.menu.EnableItem(0) else: self.menu.DisableItem(0) + if self.bar and self.bar.parent: + self.bar.parent.needmenubarredraw = 1 class PopupMenu(Menu): def __init__(self, bar): @@ -610,6 +618,11 @@ class MenuItem: self.item = menu.additem(title, shortcut, callback) self.menu = menu + def delete(self): + self.menu.delitem(self.item) + del self.menu + del self.item + def check(self, onoff): self.menu.menu.CheckItem(self.item, onoff) |