Archive / / / / / TrackInfoPane.cc
2008-10-21 13:37:30 UTC
previous next
/* Echo Media Player * Copyright (C) 2008 Shane O'Connell * * [ The original file includes a copyright header in this location describing * the file as being released under the terms of the GNU General Public * License. It has been removed in order to display the file as part of the * archive. ] */ #include "TrackInfoPane.h" #include "../PlaybackManager.h" TrackInfoPane::TrackInfoPane() { //set_size_request(10, 50); m_label.set_markup("<span weight='bold'>Not playing</span>\nStopped"); Gtk::Alignment* label_align = Gtk::manage(new Gtk::Alignment(0, 0, 0, 0)); label_align->set_padding(1, 1, 10, 5); label_align->add(m_label); pack_start(*label_align, Gtk::PACK_EXPAND_WIDGET); PlaybackManager::signal_track_started().connect( sigc::mem_fun(*this, &TrackInfoPane::on_track_started)); PlaybackManager::signal_track_stopped().connect( sigc::mem_fun(*this, &TrackInfoPane::on_track_stopped)); } void TrackInfoPane::on_track_started(PlaySourceRef playlist, int index, bool was_paused) { // TODO make this info somehow selectable like it is in rhythmbox so that it can be copy/pasted? // TODO if album or artist unknown don't print 'by' or 'from' etc Glib::ustring markup_data; markup_data.append("<span weight='bold'>" + Glib::Markup::escape_text(playlist->get_track(index)->get_title()) + "</span>\n"); markup_data.append("<span weight='light' size='smaller'>by </span>"); markup_data.append("<span>" + Glib::Markup::escape_text(playlist->get_track(index)->get_artist()) + "</span> "); markup_data.append("<span weight='light' size='smaller'>from </span>"); markup_data.append("<span>" + Glib::Markup::escape_text(playlist->get_track(index)->get_album()) + "</span>"); m_label.set_markup(markup_data); } void TrackInfoPane::on_track_stopped(PlaySourceRef playlist, int index, bool is_paused) { if (!is_paused) m_label.set_markup("<span weight='bold'>Not playing</span>\nStopped"); }