changeset 15964:0e6def53a74f

(display-time): Call display-time-mode. (display-time-mode): Take arg or toggle, as a minor mode.
author Richard M. Stallman <rms@gnu.org>
date Thu, 29 Aug 1996 01:37:38 +0000
parents 5b10dc4cd791
children daebc0d7f610
files lisp/time.el
diffstat 1 files changed, 41 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/time.el	Thu Aug 29 01:27:18 1996 +0000
+++ b/lisp/time.el	Thu Aug 29 01:37:38 1996 +0000
@@ -57,27 +57,49 @@
 
 ;;;###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.
+This runs the normal hook `display-time-hook' after each update."
+  (interactive)
+  (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.
-After each update, `display-time-hook' is run with `run-hooks'."
-  (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))
+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