130 lines
3.1 KiB
Python
130 lines
3.1 KiB
Python
#! /usr/bin/python
|
|
|
|
# To change this template, choose Tools | Templates
|
|
# and open the template in the editor.
|
|
|
|
__author__="bjschuma"
|
|
__date__ ="$Mar 15, 2010 9:46:07 AM$"
|
|
|
|
import gtk
|
|
import pango
|
|
import guibuilder
|
|
import ocarina
|
|
import db
|
|
|
|
from ct import times
|
|
|
|
|
|
class Label(gtk.Label):
|
|
def __init__(self,attrs):
|
|
gtk.Label.__init__(self)
|
|
for a in attrs:
|
|
if a == "text":
|
|
self.set_text(attrs[a])
|
|
self.show()
|
|
|
|
|
|
class TimeLabel(gtk.Label):
|
|
def __init__(self,variable):
|
|
gtk.Label.__init__(self)
|
|
self.variable = variable
|
|
ocarina.events.invite(ocarina.events.FILTER_START,self.settime,10000)
|
|
ocarina.events.invite(ocarina.events.GUI_DONE,self.settime,10000)
|
|
self.show()
|
|
|
|
def settime(self):
|
|
self.set_text( times.sec2text(self.variable) )
|
|
|
|
|
|
class LabelLibTime(TimeLabel):
|
|
def __init__(self):
|
|
TimeLabel.__init__(self,ocarina.vars.LIBRARYLENGTH)
|
|
|
|
|
|
|
|
class LabelLibCount(gtk.Label):
|
|
def __init__(self):
|
|
gtk.Label.__init__(self)
|
|
ocarina.events.invite(ocarina.events.FILTER_START,self.setcount,10000)
|
|
#ocarina.events.invite("ocarina-gui-done",self.setcount,10000)
|
|
|
|
def setcount(self):
|
|
#print "Here!", ocarina.vars["$libcount"]
|
|
try:
|
|
count = ocarina.vars["$libcount"]
|
|
except:
|
|
count = 0
|
|
self.set_text("Library (" + str(count) + ")")
|
|
|
|
|
|
|
|
class Label2(gtk.Alignment):
|
|
def __init__(self,size=None,weight=None,text=None):
|
|
gtk.Alignment.__init__(self,0,1,0,0)
|
|
self.show()
|
|
|
|
if text==None:
|
|
self.label = gtk.Label()
|
|
else:
|
|
self.label = gtk.Label(text)
|
|
|
|
self.label.show()
|
|
self.add(self.label)
|
|
|
|
if (size!=None) or (weight!=None):
|
|
attr = pango.AttrList()
|
|
if size != None:
|
|
attr.insert(pango.AttrSize(size,0,-1))
|
|
if weight != None:
|
|
attr.insert(pango.AttrWeight(weight,0,-1))
|
|
self.label.set_attributes(attr)
|
|
|
|
|
|
def set_text(self,text):
|
|
self.label.set_text(text)
|
|
|
|
|
|
|
|
class SongTitleLabel(Label2):
|
|
def __init__(self):
|
|
Label2.__init__(self,13000, 700)
|
|
ocarina.events.invite(ocarina.events.TAGS_CHANGED, self.setTitle)
|
|
self.setTitle()
|
|
|
|
def setTitle(self):
|
|
self.set_text(ocarina.vars.TITLE)
|
|
|
|
|
|
class SongAlbumLabel(Label2):
|
|
def __init__(self):
|
|
Label2.__init__(self,10000, 400)
|
|
ocarina.events.invite(ocarina.events.TAGS_CHANGED, self.setAlbum)
|
|
self.setAlbum()
|
|
|
|
def setAlbum(self):
|
|
self.set_text("from " + ocarina.vars.ALBUM)
|
|
|
|
|
|
class SongArtistLabel(Label2):
|
|
def __init__(self):
|
|
Label2.__init__(self,10000, 400)
|
|
ocarina.events.invite(ocarina.events.TAGS_CHANGED, self.setArtist)
|
|
self.setArtist()
|
|
|
|
def setArtist(self):
|
|
self.set_text("by " + ocarina.vars.ARTIST)
|
|
|
|
|
|
|
|
def make_label(attrs):return Label(attrs)
|
|
def make_libcountlabel(attrs):return LabelLibCount()
|
|
def make_titlelabel(attrs):return SongTitleLabel()
|
|
def make_albumlabel(attrs):return SongAlbumLabel()
|
|
def make_artistlabel(attrs):return SongArtistLabel()
|
|
def make_libtimelabel(attrs):return LabelLibTime()
|
|
guibuilder.parts["label"] = make_label
|
|
guibuilder.parts["libcountlabel"] = make_libcountlabel
|
|
guibuilder.parts["libtimelabel"] = make_libtimelabel
|
|
guibuilder.parts["titlelabel"] = make_titlelabel
|
|
guibuilder.parts["albumlabel"] = make_albumlabel
|
|
guibuilder.parts["artistlabel"] = make_artistlabel |