;;; tee.el --- teeuhr. ;; Last Change: ;; Copyright 2001 Patrick Gundlach ;; Copying: GPL ;; this file is not part of GNU Emacs! ;; Author: Patrick Gundlach ;; Created 17 April 2001 ;; Version 0.1 ;; Keywords: calendar ;; Last Change: 04/19/01 19:44:41 ;; File Version $Revision: 1.1.1.1 $ ;;; Commentary: ;; Just invoke M-x Tee and enter time ;; Todo: ;; * don't use message, put in modeline ;; * nicer interface to different kinds of tea ;; * i18n support?? ;; rename to tea.el ; (completing-read "Zeit oder Teesorte eingeben: " ; '(("Schwarzer Tee" 1) ; ("Grüner Tee" 2)) ; ) (defvar tee-timer nil "timer object for deleting tee-event-handler") (defvar tee-dauer nil "Wie lange soll der Tee ziehen?") (defvar tee-start nil "Start der Teeuhr") (defvar tee-beep-count 4 "Wie oft soll ich beepen") (defun tee () "Teeuhr" (interactive) (setq tee-dauer (string-to-number (read-string "Dauer (in Sekunden) eingeben (90): " nil nil "90"))) (setq tee-start (car (cdr (current-time)))) (setq tee-timer (run-at-time nil 1 'tee-event)) ) (defun tee-remove-timer () "stops teeuhr" (interactive) (cancel-timer tee-timer) ) (defun tee-event () "Zeigt verbleibende Zeit an" (if (> (- (tee-secs) tee-start) tee-dauer) (progn (message "Tee feddich") (tee-remove-timer) (setq tee-timer (run-at-time nil 1 'tee-signal)) ) (message (format-time-string "%M:%S" (list '0 (- tee-dauer (- (tee-secs) tee-start )) '0)))) ) (defun tee-secs () "Liefert von current-time nur die Sekunden" (car (cdr (current-time))) ) (defun tee-signal () "Signalisiert akustisch, dass der Tee fertig ist" (if (> 1 tee-beep-count) (progn (tee-remove-timer) (setq tee-beep-count 4)) (progn (setq tee-beep-count (- tee-beep-count 1)) (beep) )) ) (provide 'tee) ;;; tee.el ends here