1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-23 10:34:07 +00:00

(menu-bar-mode): Make this a global variable.

(menu-bar-mode): Make variable menu-bar-mode and default-frame-alist
consistent.
This commit is contained in:
Richard M. Stallman 1994-06-25 18:20:30 +00:00
parent 37b2bef669
commit 7b7d661583

View File

@ -398,6 +398,8 @@ A large number or nil slows down menu responsiveness.")
;;; mode-name
;;; (or (buffer-file-name) ""))))))
(defvar menu-bar-mode nil)
(defun menu-bar-mode (flag)
"Toggle display of a menu bar on each frame.
This command applies to all frames that exist and frames to be
@ -406,33 +408,36 @@ With a numeric argument, if the argument is negative,
turn off menu bars; otherwise, turn on menu bars."
(interactive "P")
;; Obtain the current setting by looking at default-frame-alist.
(let ((menu-bar-mode
(not (zerop (let ((assq (assq 'menu-bar-lines default-frame-alist)))
(if assq (cdr assq) 0))))))
;; Make menu-bar-mode and default-frame-alist consistent.
(let ((default (assq 'menu-bar-lines default-frame-alist)))
(if default
(setq menu-bar-mode (not (eq (cdr default) 0)))
(setq default-frame-alist
(cons (cons 'menu-bar-lines (if menu-bar-mode 1 0))
default-frame-alist))))
;; Tweedle it according to the argument.
(setq menu-bar-mode (if (null flag) (not menu-bar-mode)
(> (prefix-numeric-value flag) 0)))
;; Toggle or set the mode, according to FLAG.
(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)))))
(provide 'menu-bar)