diff --git a/CmdWindow.py b/CmdWindow.py index dd9554f..ebc083d 100644 --- a/CmdWindow.py +++ b/CmdWindow.py @@ -1,8 +1,12 @@ import gtk +import gobject +from datetime import datetime class CmdWindow: def __init__(self, status = '', starttime = None): + self.starttime = starttime + self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.set_geometry_hints(min_width = 350); self.window.connect("delete_event", self.delete_event) @@ -18,8 +22,9 @@ class CmdWindow: lbl = gtk.Label(status) hbox.pack_start(lbl, expand = False) if starttime is not None: - lbl = gtk.Label('Start: ' + starttime.strftime('%I:%M%p')) - hbox.pack_end(lbl, expand = False) + self.elapsedlabel = gtk.Label(self.getElapsed()) + gobject.timeout_add(1000, self.updateElapsed) + hbox.pack_end(self.elapsedlabel, expand = False) vbox.pack_start(hbox) hbox = gtk.HBox() @@ -44,3 +49,22 @@ class CmdWindow: def activate_event(self, widget, data=None): self.text = self.entry.get_text() self.window.destroy() + + def getElapsed(self): + delta = datetime.now() - self.starttime + days = delta.days + dsecs = delta.seconds + hours = dsecs / (60 * 60) + dsecs -= hours * 60 * 60 + minutes = dsecs / 60 + dsecs -= minutes * 60 + seconds = dsecs + elapsed = '' + if days > 0: + elapsed = '%dd ' % days + elapsed += '%d:%02d:%02d' % (hours, minutes, seconds) + return elapsed + + def updateElapsed(self): + self.elapsedlabel.set_text(self.getElapsed()) + return True