Package vwidget :: Module menubuilder
[hide private]
[frames] | no frames]

Source Code for Module vwidget.menubuilder

 1   
 2  import gtk 
 3   
4 -class FieldAdder:
5 - def __init__(self, menu, splitchar='.'):
6 self.splitchar = splitchar 7 self.menu = menu 8 self.menu.idx = 0 9 self.menu.kids = {}
10
11 - def addField(self, pathstr, callback=None, args=(), stockid=None):
12 parent = self.menu 13 kid = None 14 plist = pathstr.split(self.splitchar) 15 16 for p in plist[:-1]: 17 kid = parent.kids.get(p) 18 if kid == None: 19 item = gtk.MenuItem(p, True) 20 item.set_name("vwidget_menu") 21 item.show() 22 parent.insert(item, parent.idx) 23 parent.idx += 1 24 kid = Menu() 25 kid.idx = 0 26 item.set_submenu(kid) 27 parent.kids[p] = kid 28 parent = kid 29 30 if stockid != None: 31 item = gtk.ImageMenuItem(stock_id=stockid) 32 else: 33 item = gtk.MenuItem(plist[-1], True) 34 if callback != None: 35 item.connect("activate", callback, *args) 36 37 item.show() 38 item.set_name("vwidget_menu") 39 parent.insert(item, parent.idx) 40 parent.idx += 1 41 #parent.append(item) 42 return item
43 49 55