diff options
author | Bastien Guerry <bzg@altern.org> | 2010-09-02 23:40:44 +0200 |
---|---|---|
committer | Bastien Guerry <bzg@altern.org> | 2010-09-02 23:40:44 +0200 |
commit | 58a49d173957198755939246618f08d11e37b9a1 (patch) | |
tree | 7b67985d1d3f46fe6244dedf96a82b604e8539f1 | |
parent | eb666ed8e722d4b521e784e8064c29cb6d47f681 (diff) | |
download | org-mode-58a49d173957198755939246618f08d11e37b9a1.tar.gz |
`org-timer-set-timer': display a countdown in the modeline for.
This was requested long time ago by Frederic Couchet and more recently
by Ćukasz Stelmach.
-rw-r--r-- | lisp/org-timer.el | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lisp/org-timer.el b/lisp/org-timer.el index 53a2679..7519d85 100644 --- a/lisp/org-timer.el +++ b/lisp/org-timer.el @@ -165,9 +165,13 @@ it in the buffer." (defun org-timer-value-string () (format org-timer-format (org-timer-secs-to-hms (floor (org-timer-seconds))))) +(defvar org-timer-timer-is-countdown nil) (defun org-timer-seconds () - (- (org-float-time (or org-timer-pause-time (current-time))) - (org-float-time org-timer-start-time))) + (if org-timer-timer-is-countdown + (- (org-float-time org-timer-start-time) + (org-float-time (current-time))) + (- (org-float-time (or org-timer-pause-time (current-time))) + (org-float-time org-timer-start-time)))) ;;;###autoload (defun org-timer-change-times-in-region (beg end delta) @@ -377,8 +381,14 @@ replace any running timer." secs nil `(lambda () (setq org-timer-current-timer nil) (org-notify ,(format "%s: time out" hl) t) + (setq org-timer-timer-is-countdown nil) + (org-timer-set-mode-line 'off) (run-hooks 'org-timer-done-hook)))) - (run-hooks 'org-timer-set-hook)) + (run-hooks 'org-timer-set-hook) + (setq org-timer-timer-is-countdown t + org-timer-start-time + (time-add (current-time) (seconds-to-time (* mins 60)))) + (org-timer-set-mode-line 'on)) (message "No timer set")))))) (provide 'org-timer) |