1
2 import gtk
3
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
42 return item
43
49
55