def setup_menu(self, mnu_items, mnu_pixmaps, activate_cb):
"""returns a gtk menu object
Parameters:
mnu_items : List of menu item names (either a string, a gtk stock item or '_sep_' for a separator)
mnu_pixmaps : List of pixmaps (filename, a gtk stock icon or None)
activate_cb : Callback function for menu activation
Returns:
Reference to the constructed gtk.Menu
"""
mnu = gtk.Menu()
for i in range(len(mnu_items)):
#separator or menu item?
if mnu_items[i] != '_sep_':
#menu item
mnuItem = gtk.ImageMenuItem(stock_id=mnu_items[i])
img = gtk.Image()
if mnu_pixmaps[i]:
if mnu_pixmaps[i][:4] == 'gtk-' and '.' not in mnu_pixmaps[i]:
#stock icon
img.set_from_stock(mnu_pixmaps[i], gtk.ICON_SIZE_MENU)
else:
#file icon
img.set_from_pixbuf(self.get_pixbuf(mnu_pixmaps[i], gtk.ICON_SIZE_MENU))
img.show()
mnuItem.set_image(img)
mnuItem.connect('activate', activate_cb)
mnuItem.set_name(mnu_items[i])
else:
#separator
mnuItem = gtk.SeparatorMenuItem()
#add item to menu
mnuItem.show()
mnu.append(mnuItem)
#done
return mnu
评论列表
文章目录