#!/usr/bin/python
import Tkinter as Tk
import time
from functools import partial
class NoodleTimer(Tk.Frame):
    def __init__(self, master=None):
        Tk.Frame.__init__(self, master)
        self.label = Tk.Label(self, text='Timer', font='Arial 20')
        self.label.pack(side='left')
        menubutton = Tk.Menubutton(self, text='>')
        menubutton.pack()
        menu = Tk.Menu(menubutton, tearoff=0)
        menu.add_command(label='1 minutes', command=partial(self.start,  60))
        menu.add_command(label='3 minutes', command=partial(self.start, 180))
        menu.add_command(label='5 minutes', command=partial(self.start, 300))
        menubutton.config(menu=menu)
    def start(self, sec):
        self.finish_time = time.time() + sec
        self.tick()
    def tick(self):
        t = self.finish_time - time.time()
        if t < 0:
            self.label.config(text="Time's up!")
        else:
            self.label.config(text='%02d:%02d'%(t/60, t%60))
            self.after(100, self.tick)
if __name__ == '__main__':
    app = NoodleTimer()
    app.pack()
    app.mainloop()