ocarina/trunk/src/window.py

100 lines
2.8 KiB
Python

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)
pafter = MenuItem("Pause After Current Track",self.setPlayStatus,"pafter",None,None)
#qafter = MenuItem("Quit After Current Track",None,"qafter",None,None)
curSong = MenuItem("Go to Current Song",self.gotoCurSong,"cursng",None,None)
#playback = MenuItem("Playback",None,None,None,[pafter,qafter,curSong])
playback = MenuItem("Playback",None,None,None,[pafter,curSong])
bar.append(playback)
bar.show()
self.mainLayout.pack_start(bar,False,False,0)
def deleteLib(self,widgit,data,other=None):
self.contentPane.dumpLib()
self.data.library.reset()
#self.libview.update()
#self.clearPlist(None,None)
def clearPlist(self,widgit,data,other=None):
self.contentPane.playlist.drop()
def setPlayStatus(self,widgit,status,other):
self.contentPane.setStatus(status)
def gotoCurSong(self,widgit,status,other):
self.contentPane.gotoCurSong()
# 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.library.updates()
thread.start_new_thread(func,(data,file))
def makeContentPane(self):
self.contentPane = ContentPane(self.data)
self.mainLayout.add(self.contentPane)