Skip to content

Commit 5c44027

Browse files
committed
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.
1 parent f22e67d commit 5c44027

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

Mac/Lib/FrameWork.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,7 @@ def delete(self):
526526
del self.items
527527
del self.menu
528528
del self.id
529-
529+
530530
def additem(self, label, shortcut=None, callback=None, kind=None):
531531
self.menu.AppendMenu('x') # add a dummy string
532532
self.items.append(label, shortcut, callback, kind)
@@ -535,6 +535,12 @@ def additem(self, label, shortcut=None, callback=None, kind=None):
535535
if shortcut:
536536
self.menu.SetItemCmd(item, ord(shortcut))
537537
return item
538+
539+
def delitem(self, item):
540+
if item != len(self.items):
541+
raise 'Can only delete last item of a menu'
542+
self.menu.DeleteMenuItem(item)
543+
del self.items[item-1]
538544

539545
def addcheck(self, label, shortcut=None, callback=None):
540546
return self.additem(label, shortcut, callback, 'check')
@@ -583,6 +589,8 @@ def enable(self, onoff):
583589
self.menu.EnableItem(0)
584590
else:
585591
self.menu.DisableItem(0)
592+
if self.bar and self.bar.parent:
593+
self.bar.parent.needmenubarredraw = 1
586594

587595
class PopupMenu(Menu):
588596
def __init__(self, bar):
@@ -610,6 +618,11 @@ def __init__(self, menu, title, shortcut=None, callback=None, kind=None):
610618
self.item = menu.additem(title, shortcut, callback)
611619
self.menu = menu
612620

621+
def delete(self):
622+
self.menu.delitem(self.item)
623+
del self.menu
624+
del self.item
625+
613626
def check(self, onoff):
614627
self.menu.menu.CheckItem(self.item, onoff)
615628

0 commit comments

Comments
 (0)