#! /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-play",self.hide) ocarina.events.invite("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-pause",self.hide) ocarina.events.invite("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-pause",self.hide) ocarina.events.invite("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