diff --git a/etc/NEWS b/etc/NEWS index 00a01999a7..39cafb5142 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -2094,6 +2094,9 @@ immediately. Type 'M-x so-long-commentary' for full documentation. * Incompatible Lisp Changes in Emacs 27.1 +--- +** Print menu items in the File menu moved to submenu. + --- ** Incomplete destructive splicing support has been removed. Support for Common Lisp style destructive splicing (",.") was diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index b7967b858a..f0ab5b41d5 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -49,6 +49,36 @@ cua-enable-cua-keys ;; It gets modified in place when menu-bar-update-buffers is called. (defvar global-buffers-menu-map (make-sparse-keymap "Buffers")) +(defvar menu-bar-print-menu + (let ((menu (make-sparse-keymap "Print"))) + (bindings--define-key menu [ps-print-region] + '(menu-item "PostScript Print Region (B+W)" ps-print-region + :enable mark-active + :help "Pretty-print marked region in black and white to PostScript printer")) + (bindings--define-key menu [ps-print-buffer] + '(menu-item "PostScript Print Buffer (B+W)" ps-print-buffer + :enable (menu-bar-menu-frame-live-and-visible-p) + :help "Pretty-print current buffer in black and white to PostScript printer")) + (bindings--define-key menu [ps-print-region-faces] + '(menu-item "PostScript Print Region" + ps-print-region-with-faces + :enable mark-active + :help "Pretty-print marked region to PostScript printer")) + (bindings--define-key menu [ps-print-buffer-faces] + '(menu-item "PostScript Print Buffer" + ps-print-buffer-with-faces + :enable (menu-bar-menu-frame-live-and-visible-p) + :help "Pretty-print current buffer to PostScript printer")) + (bindings--define-key menu [print-region] + '(menu-item "Print Region" print-region + :enable mark-active + :help "Print region between mark and current position")) + (bindings--define-key menu [print-buffer] + '(menu-item "Print Buffer" print-buffer + :enable (menu-bar-menu-frame-live-and-visible-p) + :help "Print current buffer with page headings")) + menu)) + ;; Only declared obsolete (and only made a proper alias) in 23.3. (define-obsolete-variable-alias 'menu-bar-files-menu 'menu-bar-file-menu "22.1") @@ -63,6 +93,25 @@ menu-bar-file-menu (bindings--define-key menu [separator-exit] menu-bar-separator) + (bindings--define-key menu [print] + `(menu-item "Print" ,menu-bar-print-menu)) + + (bindings--define-key menu [separator-print] + menu-bar-separator) + + (unless (featurep 'ns) + (bindings--define-key menu [close-tab] + '(menu-item "Close Tab" tab-close + :visible (fboundp 'tab-close) + :help "Close currently selected tab")) + (bindings--define-key menu [make-tab] + '(menu-item "New Tab" tab-new + :visible (fboundp 'tab-new) + :help "Open a new tab")) + + (bindings--define-key menu [separator-tab] + menu-bar-separator)) + ;; Don't use delete-frame as event name because that is a special ;; event. (bindings--define-key menu [delete-this-frame] @@ -70,6 +119,10 @@ menu-bar-file-menu :visible (fboundp 'delete-frame) :enable (delete-frame-enabled-p) :help "Delete currently selected frame")) + (bindings--define-key menu [make-frame-on-monitor] + '(menu-item "New Frame on Monitor..." make-frame-on-monitor + :visible (fboundp 'make-frame-on-monitor) + :help "Open a new frame on another monitor")) (bindings--define-key menu [make-frame-on-display] '(menu-item "New Frame on Display..." make-frame-on-display :visible (fboundp 'make-frame-on-display) @@ -102,36 +155,6 @@ menu-bar-file-menu (bindings--define-key menu [separator-window] menu-bar-separator) - (bindings--define-key menu [ps-print-region] - '(menu-item "PostScript Print Region (B+W)" ps-print-region - :enable mark-active - :help "Pretty-print marked region in black and white to PostScript printer")) - (bindings--define-key menu [ps-print-buffer] - '(menu-item "PostScript Print Buffer (B+W)" ps-print-buffer - :enable (menu-bar-menu-frame-live-and-visible-p) - :help "Pretty-print current buffer in black and white to PostScript printer")) - (bindings--define-key menu [ps-print-region-faces] - '(menu-item "PostScript Print Region" - ps-print-region-with-faces - :enable mark-active - :help "Pretty-print marked region to PostScript printer")) - (bindings--define-key menu [ps-print-buffer-faces] - '(menu-item "PostScript Print Buffer" - ps-print-buffer-with-faces - :enable (menu-bar-menu-frame-live-and-visible-p) - :help "Pretty-print current buffer to PostScript printer")) - (bindings--define-key menu [print-region] - '(menu-item "Print Region" print-region - :enable mark-active - :help "Print region between mark and current position")) - (bindings--define-key menu [print-buffer] - '(menu-item "Print Buffer" print-buffer - :enable (menu-bar-menu-frame-live-and-visible-p) - :help "Print current buffer with page headings")) - - (bindings--define-key menu [separator-print] - menu-bar-separator) - (bindings--define-key menu [recover-session] '(menu-item "Recover Crashed Session" recover-session :enable @@ -1216,6 +1239,12 @@ menu-bar-showhide-menu (frame-visible-p (symbol-value 'speedbar-frame)))))) + (bindings--define-key menu [showhide-tab-line-mode] + '(menu-item "Window Tab Line" global-tab-line-mode + :help "Turn window-local tab-lines on/off" + :visible (fboundp 'global-tab-line-mode) + :button (:toggle . global-tab-line-mode))) + (bindings--define-key menu [showhide-window-divider] `(menu-item "Window Divider" ,menu-bar-showhide-window-divider-menu :visible (memq (window-system) '(x w32)))) @@ -1242,13 +1271,14 @@ menu-bar-showhide-menu (frame-parameter (menu-bar-frame-for-menubar) 'menu-bar-lines))))) - (bindings--define-key menu [showhide-tab-bar] - '(menu-item "Tab Bar" toggle-tab-bar-mode-from-frame - :help "Turn tab bar on/off" - :button - (:toggle . (menu-bar-positive-p - (frame-parameter (menu-bar-frame-for-menubar) - 'tab-bar-lines))))) + (unless (featurep 'ns) + (bindings--define-key menu [showhide-tab-bar] + '(menu-item "Tab Bar" toggle-tab-bar-mode-from-frame + :help "Turn tab bar on/off" + :button + (:toggle . (menu-bar-positive-p + (frame-parameter (menu-bar-frame-for-menubar) + 'tab-bar-lines)))))) (if (and (boundp 'menu-bar-showhide-tool-bar-menu) (keymapp menu-bar-showhide-tool-bar-menu)) @@ -1698,6 +1728,9 @@ menu-bar-tools-menu (bindings--define-key menu [compile] '(menu-item "Compile..." compile :help "Invoke compiler or Make, view compilation errors")) + (bindings--define-key menu [rgrep] + '(menu-item "Recursive Grep..." rgrep + :help "Interactively ask for parameters and search recursively")) (bindings--define-key menu [grep] '(menu-item "Search Files (Grep)..." grep :help "Search files for strings or regexps (with Grep)"))