#! /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