#!/usr/bin/env python # # Copyright (c) 2002-2003, Bill McKinnon (billm@interloper.net) # All rights reserved. # # Use this code however you like. Disclaimer: # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import sys, os, thread, winsound from time import sleep from Tkinter import * SND = "%s/media/ding.wav" % os.environ['windir'] SND_REPS = 5 def changeTimer(root, var, startTime, breakTime): """Function to change timer label text as time passes. Runs in a separate thread. """ val = startTime while 1: if val > 0: var.set("%s" % val) sleep(1) val = val - 1 else: if os.path.exists(SND): for i in range(SND_REPS): winsound.PlaySound(SND, 0) # Do a countdown of break time breakVal = breakTime while breakVal > 0: var.set("BREAK: %s" % breakVal) sleep(1) breakVal = breakVal - 1 # Now reset things for previous timer and start again. val = startTime var.set("%s" % startTime) usage = "Usage: %s