Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.0, 1.0.1, and 1.0.2

gtklib: extract create_menuitem() function

This function doesn't have any state, so no need to
belong to MenuBuilder class.

Changeset 5bba891155ba

Parent e43a5dc514d3

by Yuki KODAMA

Changes to one file · Browse files at 5bba891155ba Showing diff from parent e43a5dc514d3 Diff from another changeset...

 
712
713
714
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
715
716
717
 
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
 
742
743
744
 
746
747
748
749
 
750
751
752
 
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
 
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
 
754
755
756
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
757
758
759
760
 
762
763
764
 
765
766
767
768
 
786
787
788
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
789
790
791
@@ -712,6 +712,36 @@
  self.groups[group] = []   self.groups[group].append(widget)   +def create_menuitem(label, handler=None, icon=None, *args, **kargs): + """ + Create a new menu item and append it the end of menu. + + label: a string to be shown as menu label. + handler: a function to be connected with 'activate' signal. + Default: None. + icon: GKT+ stock item name or TortoiseHg's bundle icon name. + Default: None. + ascheck: whether enable toggle feature. Default: False. + check: toggle state on init. Default: False. + sensitive: sensitive state on init. Default: True. + args: an argument list for 'handler' parameter. + Default: [] (an empty list). + """ + if kargs.get('ascheck', False): + menu = gtk.CheckMenuItem(label) + menu.set_active(kargs.get('check', False)) + elif icon: + menu = gtk.ImageMenuItem(label) + menu.set_image(get_icon_image(icon)) + else: + menu = gtk.MenuItem(label, True) + if handler: + args = kargs.get('args', []) + menu.connect('activate', handler, *args) + menu.set_sensitive(kargs.get('sensitive', True)) + menu.set_border_width(1) + return menu +  class MenuBuilder(object):   '''controls creation of menus by ignoring separators at odd places'''   def __init__(self): @@ -724,21 +754,7 @@
  self.sep = None     def append(self, *args, **kargs): - """ - Create a new menu item and append it the end of menu. - - label: a string to be shown as menu label. - handler: a function to be connected with 'activate' signal. - Default: None. - icon: GKT+ stock item name or TortoiseHg's bundle icon name. - Default: None. - ascheck: whether enable toggle feature. Default: False. - check: toggle state on init. Default: False. - sensitive: sensitive state on init. Default: True. - args: an argument list for 'handler' parameter. - Default: [] (an empty list). - """ - menu = self.create_menuitem(*args, **kargs) + menu = create_menuitem(*args, **kargs)   self.append_child(menu)   return menu   @@ -746,7 +762,7 @@
  self.append_child(gtk.SeparatorMenuItem())     def append_submenu(self, label, submenu, icon=None): - menu = self.create_menuitem(label, None, icon) + menu = create_menuitem(label, None, icon)   menu.set_submenu(submenu)   self.append_child(menu)   @@ -770,22 +786,6 @@
  self.sep = None   self.childs.append(child)   - def create_menuitem(self, label, handler=None, icon=None, *a, **kargs): - if kargs.get('ascheck', False): - menu = gtk.CheckMenuItem(label) - menu.set_active(kargs.get('check', False)) - elif icon: - menu = gtk.ImageMenuItem(label) - menu.set_image(get_icon_image(icon)) - else: - menu = gtk.MenuItem(label, True) - if handler: - args = kargs.get('args', []) - menu.connect('activate', handler, *args) - menu.set_sensitive(kargs.get('sensitive', True)) - menu.set_border_width(1) - return menu -  def addspellcheck(textview, ui=None):   lang = None   if ui: