changeset 47296:8d11b5360234

(menu-bar-make-mm-toggle): New macro. (showhide-menu-bar, showhide-toolbar, menu-bar-toggle-auto-compression) (toggle-highlight-paren-mode, toggle-global-lazy-font-lock-mode): Remove. Use the minor mode function directly instead. (menu-bar-mode): Add message and customize-mark-as-set and return the new value as do other minor modes.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 06 Sep 2002 20:27:59 +0000
parents 5c0a2b139b90
children b090d25cc769
files lisp/menu-bar.el
diffstat 1 files changed, 49 insertions(+), 56 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/menu-bar.el	Fri Sep 06 20:01:01 2002 +0000
+++ b/lisp/menu-bar.el	Fri Sep 06 20:27:59 2002 +0000
@@ -551,6 +551,18 @@
 
 ;(defvar menu-bar-preferences-menu (make-sparse-keymap "Preferences"))
 
+(defmacro menu-bar-make-mm-toggle (fname doc help &optional props)
+  "Make a menu-item for a global minor mode toggle.
+FNAME is the minor mode's name (variable and function).
+DOC is the text to use the menu entry.
+HELP is the text to use for the tooltip.
+PROPS are additional properties."
+  `'(menu-item ,doc ',fname
+     ,@(if props props)
+     :help ,help
+     :button (:toggle . (and (default-boundp ',fname)
+			     (default-value ',fname)))))
+
 (defmacro menu-bar-make-toggle (name variable doc message help &optional props &rest body)
   `(progn
      (defun ,name ()
@@ -775,30 +787,13 @@
 	:visible `(display-graphic-p)
 	:help "Select scroll-bar mode"))
 
-(defun showhide-menu-bar ()
-  "Toggle whether to turn menu-bar on/off."
-  (interactive)
-  (menu-bar-mode)
-  (if menu-bar-mode
-      (message "Menu-bar mode enabled.")
-    (message "Menu-bar mode disabled.  Use M-x menu-bar-mode to make the menu bar appear."))
-  (customize-mark-as-set 'menu-bar-mode))
-
-(define-key menu-bar-showhide-menu [showhide-menu-bar]
-  '(menu-item "Menu-bar" showhide-menu-bar
+(define-key menu-bar-showhide-menu [menu-bar-mode]
+  '(menu-item "Menu-bar" menu-bar-mode
 	      :help "Toggle menu-bar on/off"
 	      :button (:toggle . menu-bar-mode)))
 
-(defun showhide-toolbar ()
-  "Toggle whether to turn tool-bar on/off."
-  (interactive)
-  (if (tool-bar-mode)
-      (message "Tool-bar mode enabled.")
-    (message "Tool-bar mode disabled."))
-  (customize-mark-as-set 'tool-bar-mode))
-
 (define-key menu-bar-showhide-menu [showhide-tool-bar]
-  (list 'menu-item "Tool-bar" 'showhide-toolbar
+  (list 'menu-item "Tool-bar" 'tool-bar-mode
 	:help "Turn tool-bar on/off"
 	:visible `(display-graphic-p)
 	:button `(:toggle . tool-bar-mode)))
@@ -839,19 +834,11 @@
   '("--"))
 (define-key menu-bar-options-menu [toggle-auto-compression]
   '(menu-item "Automatic File De/compression"
-	      menu-bar-toggle-auto-compression-mode 
+	      auto-compression-mode
 	      :help "Transparently decompress compressed files"
 	      :button (:toggle . (rassq 'jka-compr-handler
 					file-name-handler-alist))))
 
-(defun menu-bar-toggle-auto-compression ()
-  "Toggle automatic file compression and uncompression.
-With prefix argument ARG, turn auto compression on if positive, else off.
-Returns the new status of auto compression (non-nil means on)."
-  (interactive)
-  (auto-compression-mode)
-  (customize-mark-as-set 'auto-compression-mode))
-
 (define-key menu-bar-options-menu [save-place]
   (menu-bar-make-toggle toggle-save-place-globally save-place
 			"Save Place in Files between Sessions"
@@ -919,9 +906,8 @@
 (define-key menu-bar-options-menu [highlight-separator]
   '("--"))
 (define-key menu-bar-options-menu [highlight-paren-mode]
-  (menu-bar-make-toggle toggle-highlight-paren-mode show-paren-mode
-			"Paren Match Highlighting"
-			"Show Paren mode %s"
+  (menu-bar-make-mm-toggle show-paren-mode
+			   "Paren Match Highlighting"
 			"Highlight matching/mismatched parentheses at cursor (Show Paren mode)"))
 (define-key menu-bar-options-menu [transient-mark-mode]
   (menu-bar-make-toggle toggle-transient-mark-mode transient-mark-mode
@@ -930,10 +916,9 @@
 			"Make text in active region stand out in color (Transient Mark mode)"
 			(:enable (not cua-mode))))
 (define-key menu-bar-options-menu [toggle-global-lazy-font-lock-mode]
-  (menu-bar-make-toggle toggle-global-lazy-font-lock-mode global-font-lock-mode
-			"Syntax Highlighting"
-			"Global Font Lock mode %s"
-			"Colorize text based on language syntax (Global Font Lock mode)"))
+  (menu-bar-make-mm-toggle global-font-lock-mode
+			   "Syntax Highlighting"
+			   "Colorize text based on language syntax (Global Font Lock mode)"))
 
 
 ;; The "Tools" menu items
@@ -1615,7 +1600,7 @@
 created in the future.
 With a numeric argument, if the argument is positive,
 turn on menu bars; otherwise, turn off menu bars."
- (interactive "P")
+  (interactive "P")
 
   ;; Make menu-bar-mode and default-frame-alist consistent.
   (let ((default (assq 'menu-bar-lines default-frame-alist)))
@@ -1626,27 +1611,35 @@
 		  default-frame-alist))))
 
   ;; Toggle or set the mode, according to FLAG.
- (setq menu-bar-mode (if (null flag) (not menu-bar-mode)
-		       (> (prefix-numeric-value flag) 0)))
+  (setq menu-bar-mode (if (null flag) (not menu-bar-mode)
+			(> (prefix-numeric-value flag) 0)))
 
- ;; Apply it to default-frame-alist.
- (let ((parameter (assq 'menu-bar-lines default-frame-alist)))
-   (if (consp parameter)
-       (setcdr parameter (if menu-bar-mode 1 0))
-     (setq default-frame-alist
-	   (cons (cons 'menu-bar-lines (if menu-bar-mode 1 0))
-		 default-frame-alist))))
+  ;; Apply it to default-frame-alist.
+  (let ((parameter (assq 'menu-bar-lines default-frame-alist)))
+    (if (consp parameter)
+	(setcdr parameter (if menu-bar-mode 1 0))
+      (setq default-frame-alist
+	    (cons (cons 'menu-bar-lines (if menu-bar-mode 1 0))
+		  default-frame-alist))))
 
- ;; Apply it to existing frames.
- (let ((frames (frame-list)))
-   (while frames
-     (let ((height (cdr (assq 'height (frame-parameters (car frames))))))
-       (modify-frame-parameters (car frames)
-				(list (cons 'menu-bar-lines
-					  (if menu-bar-mode 1 0))))
-       (modify-frame-parameters (car frames)
-				(list (cons 'height height))))
-     (setq frames (cdr frames)))))
+  ;; Apply it to existing frames.
+  (let ((frames (frame-list)))
+    (while frames
+      (let ((height (cdr (assq 'height (frame-parameters (car frames))))))
+	(modify-frame-parameters (car frames)
+				 (list (cons 'menu-bar-lines
+					     (if menu-bar-mode 1 0))))
+	(modify-frame-parameters (car frames)
+				 (list (cons 'height height))))
+      (setq frames (cdr frames))))
+
+  (when (interactive-p)
+    (if menu-bar-mode
+	(message "Menu-bar mode enabled.")
+      (message "Menu-bar mode disabled.  Use M-x menu-bar-mode to make the menu bar appear."))
+    (customize-mark-as-set 'menu-bar-mode))
+
+  menu-bar-mode)
 
 (provide 'menu-bar)