81 lines
2.0 KiB
Python
81 lines
2.0 KiB
Python
# Bryan Schumaker (4 / 21 / 2011)
|
|
|
|
import gtk
|
|
import gobject
|
|
from libsaria import controls
|
|
from ocarina.body import button
|
|
from ocarina.body import image
|
|
|
|
page = gtk.HBox(False, 5)
|
|
label = gtk.Label("Now Playing")
|
|
label.set_markup("<span size='x-large'>Now Playing</span>")
|
|
|
|
ARTWORK = image.Image()
|
|
page.pack_start(ARTWORK, False, False)
|
|
|
|
def pack_label(box, label):
|
|
a = gtk.Alignment(0, 0.5, 0, 0)
|
|
a.add(label)
|
|
box.pack_start(a)
|
|
|
|
TITLE = gtk.Label()
|
|
ARTIST = gtk.Label("by")
|
|
ALBUM = gtk.Label("from")
|
|
tag_box = gtk.VBox(True)
|
|
view = gtk.Viewport()
|
|
tags = gtk.ScrolledWindow()
|
|
view.set_shadow_type(gtk.SHADOW_NONE)
|
|
tags.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
|
pack_label(tag_box, TITLE)
|
|
pack_label(tag_box, ARTIST)
|
|
pack_label(tag_box, ALBUM)
|
|
view.add(tag_box)
|
|
tags.add(view)
|
|
page.pack_start(tags)
|
|
|
|
YEAR = gtk.Label("Year:")
|
|
LENGTH = gtk.Label("Length:")
|
|
COUNT = gtk.Label("Play count:")
|
|
attr_box = gtk.VBox(True)
|
|
pack_label(attr_box, YEAR)
|
|
pack_label(attr_box, LENGTH)
|
|
pack_label(attr_box, COUNT)
|
|
page.pack_start(attr_box)
|
|
|
|
LIKE = button.like_button(True)
|
|
DISLIKE = button.dislike_button(True)
|
|
|
|
page.show_all()
|
|
label.show()
|
|
|
|
sa_id = None
|
|
def resize_art(*args):
|
|
set_art(ARTWORK.get_file())
|
|
page.disconnect(sa_id)
|
|
sa_id = page.connect("size-allocate", resize_art)
|
|
|
|
def set_art(path):
|
|
ARTWORK.set_image(path, 128)
|
|
|
|
def on_like(like):
|
|
def _on_like1(like):
|
|
LIKE.set_active(like == True)
|
|
DISLIKE.set_active(like == False)
|
|
def _on_like0(like):
|
|
button.toggle_call_unconnected(DISLIKE, _on_like1, like)
|
|
button.toggle_call_unconnected(LIKE, _on_like0, like)
|
|
|
|
def set_tag(label, text):
|
|
markup = gobject.markup_escape_text(text)
|
|
label.set_markup("<span size='xx-large'>%s</span>" % markup)
|
|
|
|
def on_load(attrs):
|
|
set_tag(TITLE, attrs["title"])
|
|
set_tag(ARTIST, attrs["artist"])
|
|
set_tag(ALBUM, attrs["album"])
|
|
set_tag(YEAR, "Year: %s" % attrs["year"])
|
|
set_tag(LENGTH, "Length: %s" % attrs["lenstr"])
|
|
set_tag(COUNT, "Count: %s" % attrs["count"])
|
|
set_art(attrs["art"])
|
|
on_like(attrs["like"])
|