@@ -526,7 +526,7 @@ def delete(self):
526
526
del self .items
527
527
del self .menu
528
528
del self .id
529
-
529
+
530
530
def additem (self , label , shortcut = None , callback = None , kind = None ):
531
531
self .menu .AppendMenu ('x' ) # add a dummy string
532
532
self .items .append (label , shortcut , callback , kind )
@@ -535,6 +535,12 @@ def additem(self, label, shortcut=None, callback=None, kind=None):
535
535
if shortcut :
536
536
self .menu .SetItemCmd (item , ord (shortcut ))
537
537
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 ]
538
544
539
545
def addcheck (self , label , shortcut = None , callback = None ):
540
546
return self .additem (label , shortcut , callback , 'check' )
@@ -583,6 +589,8 @@ def enable(self, onoff):
583
589
self .menu .EnableItem (0 )
584
590
else :
585
591
self .menu .DisableItem (0 )
592
+ if self .bar and self .bar .parent :
593
+ self .bar .parent .needmenubarredraw = 1
586
594
587
595
class PopupMenu (Menu ):
588
596
def __init__ (self , bar ):
@@ -610,6 +618,11 @@ def __init__(self, menu, title, shortcut=None, callback=None, kind=None):
610
618
self .item = menu .additem (title , shortcut , callback )
611
619
self .menu = menu
612
620
621
+ def delete (self ):
622
+ self .menu .delitem (self .item )
623
+ del self .menu
624
+ del self .item
625
+
613
626
def check (self , onoff ):
614
627
self .menu .menu .CheckItem (self .item , onoff )
615
628
0 commit comments