class CountdownTimer(BlackEventBox): def __init__(self, max_value): BlackEventBox.__init__(self) self.l = FormattedLabel(0) self.l.modify_font(pango.FontDescription("monospace 12")) self.max_value = max_value self.add(self.l) def set_value(self, value): self.l.set_text("%0.2f" % value) if value > self.max_value: self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(ge.RED)) self.l.modify_fg(gtk.STATE_NORMAL, gtk.gdk.Color(ge.OFF_WHITE)) else: self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(ge.BG_BLACK)) if value == 0: self.l.modify_fg(gtk.STATE_NORMAL, gtk.gdk.Color(ge.OFF_WHITE)) elif value < 0.25 * self.max_value: self.l.modify_fg(gtk.STATE_NORMAL, gtk.gdk.Color(ge.GREEN)) elif value < 0.5 * self.max_value: self.l.modify_fg(gtk.STATE_NORMAL, gtk.gdk.Color(ge.YELLOW)) elif value < 0.75 * self.max_value: self.l.modify_fg(gtk.STATE_NORMAL, gtk.gdk.Color(ge.ORANGE)) else: self.l.modify_fg(gtk.STATE_NORMAL, gtk.gdk.Color(ge.RED))
class ToggleLabel(BlackEventBox): def __init__(self, label, color): BlackEventBox.__init__(self) self.label = FormattedLabel(label) self.color = color self.label.modify_font(pango.FontDescription("monospace 12")) self.label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.Color(self.color)) self.add(self.label) def set_state(self, state): if state: self.label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.Color(ge.BG_BLACK)) self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(self.color)) else: self.label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.Color(self.color)) self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(ge.BG_BLACK))