ocarina/src/extra/oGtk/menu.py

157 lines
3.7 KiB
Python

#! /usr/bin/python
# To change this template, choose Tools | Templates
# and open the template in the editor.
__author__="bjschuma"
__date__ ="$Jan 14, 2010 10:39:29 PM$"
import gtk
import ocarina
import guibuilder
#from ct import cmd
from oGtk import dialog
from oGtk import window
from et import scanlib
from et import needle
from ct import call
import db
class MenuBar(gtk.MenuBar):
def __init__(self):
gtk.MenuBar.__init__(self)
self.show()
class MenuItem(gtk.MenuItem):
def __init__(self,attrs=None):
name = "New Menu"
cmd = ""
for a in attrs:
if a == "name":
name = attrs[a]
elif a== "cmd":
cmd = attrs[a]
gtk.MenuItem.__init__(self,name)
self.show()
self.menu = None
self.cmd = cmd
self.connect("activate",self.clicked)
def addSubMenu(self,submenu):
if self.menu == None:
self.menu = gtk.Menu()
self.set_submenu(self.menu)
self.menu.append(submenu)
def clicked(self,a):
if self.cmd != "":
print self.cmd
cmd.run(self.cmd)
class MenuPlay(gtk.ImageMenuItem):
def __init__(self):
gtk.ImageMenuItem.__init__(self,gtk.STOCK_MEDIA_PLAY)
ocarina.events.invite(ocarina.events.OCARINA_PLAY,self.hide)
ocarina.events.invite(ocarina.events.OCARINA_PAUSE,self.show)
self.connect("activate",self.clicked)
self.show()
def clicked(self,item):
call.play()
#cmd.run("play")
class MenuPause(gtk.ImageMenuItem):
def __init__(self):
gtk.ImageMenuItem.__init__(self,gtk.STOCK_MEDIA_PAUSE)
ocarina.events.invite(ocarina.events.OCARINA_PAUSE,self.hide)
ocarina.events.invite(ocarina.events.OCARINA_PLAY,self.show)
self.connect("activate",self.clicked)
def clicked(self,item):
call.pause()
class MenuStop(gtk.ImageMenuItem):
def __init__(self):
gtk.ImageMenuItem.__init__(self,gtk.STOCK_MEDIA_STOP)
ocarina.events.invite(ocarina.events.OCARINA_PAUSE,self.hide)
ocarina.events.invite(ocarina.events.OCARINA_PLAY,self.show)
self.connect("activate",self.clicked)
def clicked(self,item):
call.stop()
class MenuSongSelect(gtk.MenuItem):
def __init__(self):
gtk.MenuItem.__init__(self,"Select song")
self.connect("activate",self.onclick)
self.show()
def onclick(self,menu):
file = dialog.FileChooser("Select a song").choose()
call.load(file)
class MenuLibNew(gtk.MenuItem):
def __init__(self):
gtk.MenuItem.__init__(self,"New Library")
self.connect("activate",self.onclick)
self.show()
def onclick(self,menu):
choice = dialog.NewLibrary()
(name,path) = choice.choose()
del choice
if name != None:
db.newlib(name,path)
thread = needle.Needle(scanlib.go,name)
thread.start()
#class MenuTheme(gtk.MenuItem):
# def __init__(self):
# gtk.MenuItem.__init__(self,"Change Theme")
# self.connect("activate", self.onclick)
# self.show()
#
# def onclick(self,menu):
# file = dialog.FileChooser("Select a theme file").choose()
# if file!=None:
# #print file
# ocarina.vars["$theme"] = str(file)
# guibuilder.init()
#def make_menubar(attrs=None):return MenuBar()
#def make_menuitem(attrs=None):return MenuItem(attrs)
#def make_menuplay(attrs=None):return MenuPlay()
#def make_menupause(attrs=None):return MenuPause()
#def make_menustop(attrs=None):return MenuStop()
#def make_menusongsel(attrs=None):return MenuSongSelect()
#def make_menulibnew(attrs=None):return MenuLibNew()
#def make_menutheme(attrs=None):return MenuTheme()
#guibuilder.parts["menu-bar"] = make_menubar
#guibuilder.parts["menuitem"] = make_menuitem
#guibuilder.parts["menuplay"] = make_menuplay
#guibuilder.parts["menupause"] = make_menupause
#guibuilder.parts["menustop"] = make_menustop
#guibuilder.parts["menusongsel"] = make_menusongsel
#guibuilder.parts["menulibnew"] = make_menulibnew
#guibuilder.parts["menutheme"] = make_menutheme