36 lines
1008 B
Python
36 lines
1008 B
Python
# Copyright 2021 (c) Anna Schumaker.
|
|
from gi.repository import Gtk
|
|
|
|
class Seeker(Gtk.Box):
|
|
def __init__(self):
|
|
Gtk.Box.__init__(self)
|
|
|
|
self.position = Gtk.Label.new(str="00:00")
|
|
self.remaining = Gtk.Label.new(str="00:00")
|
|
|
|
self.adjustment = Gtk.Adjustment()
|
|
self.adjustment.set_step_increment(10)
|
|
|
|
self.scale = Gtk.Scale()
|
|
self.scale.set_adjustment(self.adjustment)
|
|
|
|
self.append(self.position)
|
|
self.append(self.scale)
|
|
self.append(self.remaining)
|
|
|
|
def configure(self, position, duration):
|
|
self.adjustment.set_upper(duration)
|
|
self.adjustment.set_value(position)
|
|
|
|
(m, s) = divmod(int(position), 60)
|
|
self.position.set_text(f"{m:02}:{s:02}")
|
|
|
|
(m, s) = divmod(int(duration - position), 60)
|
|
self.remaining.set_text(f"{m:02}:{s:02}")
|
|
|
|
def connect(self, func):
|
|
self.scale.connect("change-value", func)
|
|
|
|
def get_position(self):
|
|
return self.scale.get_value()
|