# Copyright 2021 (c) Anna Schumaker. from gi.repository import GLib from gi.repository import Gtk class TrackTitle(Gtk.Label): def __init__(self, player): Gtk.Label.__init__(self) player.connect("track-changed", self.on_track_changed) self.on_track_changed(player, None, player.track) self.add_css_class("title") def on_track_changed(self, player, old, new): text = new.title if new else "Emmental" self.set_markup(f"{GLib.markup_escape_text(text)}") class TrackArtist(Gtk.Label): def __init__(self, player): Gtk.Label.__init__(self) player.connect("track-changed", self.on_track_changed) self.on_track_changed(player, None, player.track) self.add_css_class("subtitle") def on_track_changed(self, player, old, new): text = f"by {new.artist.name}" if new else "The Cheesy Music Player" self.set_markup(f"{GLib.markup_escape_text(text)}") class NowPlaying(Gtk.ScrolledWindow): def __init__(self, player): Gtk.ScrolledWindow.__init__(self) self.box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 0) self.box.append(TrackTitle(player)) self.box.append(TrackArtist(player)) self.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER) self.set_valign(Gtk.Align.CENTER) self.set_hexpand(True) self.set_child(self.box)