ocarina/src/extra/oGtk/label.py

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