diff options
author | Richard M. Stallman <[email protected]> | 1996-08-29 01:37:38 +0000 |
---|---|---|
committer | Richard M. Stallman <[email protected]> | 1996-08-29 01:37:38 +0000 |
commit | 7fd5b62d23d331307a167c8b75b3a2b7ffa82fe0 (patch) | |
tree | 580e58139d679f34d595d467d66f1fa88e254e8a /lisp | |
parent | 73ba610ac45d310291da6d96894d565a24196322 (diff) |
(display-time): Call display-time-mode.
(display-time-mode): Take arg or toggle, as a minor mode.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/time.el | 58 |
1 files changed, 40 insertions, 18 deletions
diff --git a/lisp/time.el b/lisp/time.el index 59dc075cfd..df819d2567 100644 --- a/lisp/time.el +++ b/lisp/time.el @@ -57,27 +57,49 @@ If that file system seems to be up, the value is nil.") ;;;###autoload (defun display-time () - "Display current time, load level, and mail flag in mode line of each buffer. -Updates automatically every minute. + "Enable display of time, load level, and mail flag in mode lines. +This display updates automatically every minute. If `display-time-day-and-date' is non-nil, the current day and date are displayed as well. -After each update, `display-time-hook' is run with `run-hooks'." +This runs the normal hook `display-time-hook' after each update." (interactive) - (setq display-time-string "") - (or global-mode-string (setq global-mode-string '(""))) - (or (memq 'display-time-string global-mode-string) - (setq global-mode-string - (append global-mode-string '(display-time-string)))) - ;; Setup the time timer. - (and display-time-timer (cancel-timer display-time-timer)) - (setq display-time-timer - ;; Start timer at the beginning of the next minute. - (run-at-time (apply 'encode-time 60 (cdr (decode-time))) - display-time-interval 'display-time-event-handler)) - ;; Make the time appear right away. - (display-time-update) - ;; When you get new mail, clear "Mail" from the mode line. - (add-hook 'rmail-after-get-new-mail-hook 'display-time-event-handler)) + (display-time-mode 1)) + +;;;###autoload +(defun display-time-mode (arg) + "Toggle display of time, load level, and mail flag in mode lines. +With a numeric arg, enable this display if arg is positive. + +When this display is enabled, it updates automatically every minute. +If `display-time-day-and-date' is non-nil, the current day and date +are displayed as well. +This runs the normal hook `display-time-hook' after each update." + (interactive "P") + (let ((on (if (null arg) + (not display-time-timer) + (> (prefix-numeric-value arg) 0)))) + (and display-time-timer (cancel-timer display-time-timer)) + (setq display-time-timer nil) + (setq display-time-string "") + (or global-mode-string (setq global-mode-string '(""))) + (if on + (progn + (or (memq 'display-time-string global-mode-string) + (setq global-mode-string + (append global-mode-string '(display-time-string)))) + ;; Set up the time timer. + (setq display-time-timer + ;; Start timer at the beginning of the next minute. + (run-at-time (apply 'encode-time 60 (cdr (decode-time))) + display-time-interval 'display-time-event-handler)) + ;; Make the time appear right away. + (display-time-update) + ;; When you get new mail, clear "Mail" from the mode line. + (add-hook 'rmail-after-get-new-mail-hook + 'display-time-event-handler)) + (remove-hook 'rmail-after-get-new-mail-hook + 'display-time-event-handler)))) + (defvar display-time-string-forms '((if display-time-day-and-date |