ocarina/ocarina/menu.py

57 lines
1.1 KiB
Python

# Bryan Schumaker
import ocarina
gtk = ocarina.gtk
Menu = gtk.Menu
MenuItem = gtk.MenuItem
common_items = []
lib_items = []
plist_items = []
def add_menu_item(items, text, func):
items.append( (text, func) )
items.sort()
def add_common_menu_item(text, func):
add_menu_item(common_items, text, func)
def add_lib_menu_item(text, func):
add_menu_item(lib_items, text, func)
def add_plist_menu_item(text, func):
add_menu_item(plist_items, text, func)
def make_menu_item(text, func):
item = MenuItem(text)
item.connect("activate", func)
item.show()
return item
def make_menu(items, button, time):
show = False
if len(items) > 0:
show = True
menu = Menu()
if len(common_items) > 0:
show = True
for (text, func) in common_items:
menu.append(make_menu_item(text, func))
if len(items) > 0:
div = MenuItem()
div.show()
menu.append(div)
for (text, func) in items:
menu.append(make_menu_item(text, func))
if show == True:
menu.popup(None, None, None, button, time)
def make_lib_menu(button, time):
make_menu(lib_items, button, time)
def make_plist_menu(button, time):
make_menu(plist_items, button, time)