comparison lisp/menu-bar.el @ 2847:01a46a8f1e1b

(fill-region, kill-region, delete-region) (kill-ring-save): Use mark-active as enable condition. (undo): Add an enable condition. Fix up the edit commands. Add fill-region.
author Richard M. Stallman <rms@gnu.org>
date Mon, 17 May 1993 04:45:03 +0000
parents 0eb1a195f56e
children e41b3dc686bb
comparison
equal deleted inserted replaced
2846:c36e7ad524d3 2847:01a46a8f1e1b
43 '("Save Buffer As..." . write-file)) 43 '("Save Buffer As..." . write-file))
44 (define-key menu-bar-file-menu [save-buffer] '("Save Buffer" . save-buffer)) 44 (define-key menu-bar-file-menu [save-buffer] '("Save Buffer" . save-buffer))
45 (define-key menu-bar-file-menu [open-file] '("Open File..." . find-file)) 45 (define-key menu-bar-file-menu [open-file] '("Open File..." . find-file))
46 (define-key menu-bar-file-menu [new-frame] '("New Frame" . new-frame)) 46 (define-key menu-bar-file-menu [new-frame] '("New Frame" . new-frame))
47 47
48 (define-key menu-bar-edit-menu [clear] '("Clear" . x-delete-primary-selection)) 48 (define-key menu-bar-edit-menu [fill] '("Fill" . fill-region))
49 (define-key menu-bar-edit-menu [paste] '("Paste" . x-yank-clipboard-selection)) 49 (define-key menu-bar-edit-menu [clear] '("Clear" . delete-region))
50 (define-key menu-bar-edit-menu [copy] '("Copy" . x-copy-primary-selection)) 50 (define-key menu-bar-edit-menu [paste] '("Paste" . yank))
51 (define-key menu-bar-edit-menu [cut] '("Cut" . x-kill-primary-selection)) 51 (define-key menu-bar-edit-menu [copy] '("Copy" . kill-ring-save))
52 (define-key menu-bar-edit-menu [undo] '("Undo" . advertised-undo)) 52 (define-key menu-bar-edit-menu [cut] '("Cut" . kill-region))
53 (define-key menu-bar-edit-menu [undo] '("Undo" . undo))
54
55 (put 'fill-region 'menu-enable 'mark-active)
56 (put 'kill-region 'menu-enable 'mark-active)
57 (put 'kill-ring-save 'menu-enable 'mark-active)
58 (put 'yank 'menu-enable '(x-selection-exists-p))
59 (put 'delete-region 'menu-enable 'mark-active)
60 (put 'undo 'menu-enable '(if (eq last-command 'undo)
61 pending-undo-list
62 (consp buffer-undo-list)))
53 63
54 (define-key menu-bar-help-menu [emacs-tutorial] 64 (define-key menu-bar-help-menu [emacs-tutorial]
55 '("Emacs Tutorial" . help-with-tutorial)) 65 '("Emacs Tutorial" . help-with-tutorial))
56 (define-key menu-bar-help-menu [man] '("Man..." . manual-entry)) 66 (define-key menu-bar-help-menu [man] '("Man..." . manual-entry))
57 (define-key menu-bar-help-menu [describe-variable] 67 (define-key menu-bar-help-menu [describe-variable]
85 95
86 (put 'save-buffer 'menu-enable '(buffer-modified-p)) 96 (put 'save-buffer 'menu-enable '(buffer-modified-p))
87 (put 'revert-buffer 'menu-enable '(and (buffer-modified-p) (buffer-file-name))) 97 (put 'revert-buffer 'menu-enable '(and (buffer-modified-p) (buffer-file-name)))
88 (put 'delete-frame 'menu-enable '(cdr (visible-frame-list))) 98 (put 'delete-frame 'menu-enable '(cdr (visible-frame-list)))
89 (put 'kill-this-buffer 'menu-enable '(kill-this-buffer-enabled-p)) 99 (put 'kill-this-buffer 'menu-enable '(kill-this-buffer-enabled-p))
90
91 (put 'x-kill-primary-selection 'menu-enable '(x-selection-owner-p))
92 (put 'x-copy-primary-selection 'menu-enable '(x-selection-owner-p))
93 (put 'x-yank-clipboard-selection 'menu-enable '(x-selection-owner-p))
94 (put 'x-delete-primary-selection 'menu-enable
95 '(x-selection-exists-p 'CLIPBOARD))
96 100
97 (put 'advertised-undo 'menu-enable 101 (put 'advertised-undo 'menu-enable
98 '(and (not (eq t buffer-undo-list)) 102 '(and (not (eq t buffer-undo-list))
99 (if (eq last-command 'undo) 103 (if (eq last-command 'undo)
100 (and (boundp 'pending-undo-list) 104 (and (boundp 'pending-undo-list)
191 ;;; (buffer-name) 195 ;;; (buffer-name)
192 ;;; size 196 ;;; size
193 ;;; mode-name 197 ;;; mode-name
194 ;;; (or (buffer-file-name) "")))))) 198 ;;; (or (buffer-file-name) ""))))))
195 199
196 ;; Give all existing frames a menu bar. 200 (defvar menu-bar-mode nil)
197 ;; (Except for minibuffer-only frames.) 201
198 (let ((frames (frame-list))) 202 (defun menu-bar-mode (flag)
199 (while frames 203 "Toggle display of vertical scroll bars on each frame.
200 (or (eq 'only (cdr (assq 'minibuffer (frame-parameters (car frames))))) 204 This command applies to all frames that exist and frames to be
201 (modify-frame-parameters (car frames) '((menu-bar-lines . 1)))) 205 created in the future.
202 (setq frames (cdr frames)))) 206 With a numeric argument, if the argument is negative,
207 turn off scroll bars; otherwise, turn on scroll bars."
208 (interactive "P")
209 (setq menu-bar-mode (if (null flag) (not menu-bar-mode)
210 (or (not (numberp flag)) (>= flag 0))))
211 (let ((parameter (assq 'menu-bar-lines default-frame-alist)))
212 (if (consp parameter)
213 (setcdr parameter (if menu-bar-mode 1 0))
214 (setq default-frame-alist
215 (cons (cons 'menu-bar-lines (if menu-bar-mode 1 0))
216 default-frame-alist))))
217 (let ((frames (frame-list)))
218 (while frames
219 ;; Turn menu bar on or off in existing frames.
220 ;; (Except for minibuffer-only frames.)
221 (or (eq 'only (cdr (assq 'minibuffer (frame-parameters (car frames)))))
222 (modify-frame-parameters
223 (car frames)
224 (list (if menu-bar-mode
225 '(menu-bar-lines . 1)
226 '(menu-bar-lines . 0)))))
227 (setq frames (cdr frames)))))
203 228
204 ;; Make frames created from now on have a menu bar. 229 ;; Make frames created from now on have a menu bar.
205 (or (assq 'menu-bar-lines default-frame-alist) 230 (menu-bar-mode t)
206 (setq default-frame-alist
207 (cons '(menu-bar-lines . 1) default-frame-alist)))
208 231
209 (provide 'menu-bar) 232 (provide 'menu-bar)
210 233
211 ;;; menu-bar.el ends here 234 ;;; menu-bar.el ends here