import gtk import thread from contentPane import ContentPane from menuItem import MenuItem from libView import LibView from plistView import PlistView from controlPanel import ControlPanel #from infoView import InfoView from scrobbler import Scrobbler class Window(gtk.Window): def __init__(self,onQuit,options,data): gtk.Window.__init__(self,gtk.WINDOW_TOPLEVEL) self.data = data self.options = options if self.options.verbose == True: print "Making window!" self.resize(self.data.size[0],self.data.size[1]) self.set_title("Ocarina") self.connect("delete_event",onQuit) self.set_icon_from_file("images/ocarina.png") self.mainLayout = gtk.VBox(False,0) self.add(self.mainLayout) self.makeMenuBar() self.makeContentPane() self.mainLayout.show() self.show() # Used to make the top row menu bar def makeMenuBar(self): # Make a menu bar bar = gtk.MenuBar() # This is the dropdown selections # Make a new library option newLib = MenuItem("New Library",self.selectDir,"ScanLib",self.data.library.scan,None) delete = MenuItem("Delete Library",self.deleteLib,"Delete",None,None) library = MenuItem("Library",None,None,None,[newLib,delete]) bar.append(library) clear = MenuItem("Clear Playlist",self.clearPlist,"Clear",None,None) plist = MenuItem("Playlist",None,None,None,[clear]) bar.append(plist) # Replace first 'None' with after track functions pafter = MenuItem("Pause After Current Track",self.setPlayStatus,"pafter",None,None) qafter = MenuItem("Quit After Current Track",None,"qafter",None,None) playback = MenuItem("Playback",None,None,None,[pafter,qafter]) bar.append(playback) bar.show() self.mainLayout.pack_start(bar,False,False,0) def deleteLib(self,widgit,data,other=None): self.contentPane.right.dumpLib() self.data.library.reset() #self.libview.update() #self.clearPlist(None,None) def clearPlist(self,widgit,data,other=None): self.data.curList = [] #self.data.updateList = True self.plistview.clearList(self.plistview.plist,self.plistview.ptime) def setPlayStatus(self,widgit,status,other): self.plistview.setStatus(status) # Used to select a directory def selectDir(self,widgit,data,func): self.deleteLib(None,None) dirsel = gtk.FileChooserDialog(None,None,action=gtk.FILE_CHOOSER_ACTION_OPEN,buttons =(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK)) dirsel.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER) response = dirsel.run() file = "" if response == gtk.RESPONSE_OK: file = dirsel.get_filename() dirsel.hide() if response != gtk.RESPONSE_OK: return self.contentPane.right.library.updates() thread.start_new_thread(func,(data,file)) def makeContentPane(self): self.contentPane = ContentPane(self.data) self.mainLayout.add(self.contentPane)