X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/c400516ab1d827d08225ffb3e1bc1969c73cc45e..816cad6e2414474b06ebb4f691fc1bdb9a8953a4:/lisp/menu-bar.el diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index c816488c6d..5ae5da9aff 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -470,17 +470,14 @@ [paste-from-menu]) ;; ns-win.el said: Change text to be more consistent with ;; surrounding menu items `paste', etc." - `(menu-item ,(if (featurep 'ns) "Select and Paste" - "Paste from Kill Menu") yank-menu + `(menu-item ,(if (featurep 'ns) "Select and Paste" "Paste from Kill Menu") + yank-menu :enable (and (cdr yank-menu) (not buffer-read-only)) :help "Choose a string from the kill ring and paste it")) (bindings--define-key menu [paste] '(menu-item "Paste" yank :enable (and (or - ;; Emacs compiled --without-x (or --with-ns) - ;; doesn't have x-selection-exists-p. - (and (fboundp 'x-selection-exists-p) - (x-selection-exists-p 'CLIPBOARD)) + (gui-call gui-selection-exists-p 'CLIPBOARD) (if (featurep 'ns) ; like paste-from-menu (cdr yank-menu) kill-ring)) @@ -537,27 +534,26 @@ '(and mark-active (not buffer-read-only))) (put 'clipboard-kill-ring-save 'menu-enable 'mark-active) (put 'clipboard-yank 'menu-enable - '(and (or (not (fboundp 'x-selection-exists-p)) - (x-selection-exists-p) - (x-selection-exists-p 'CLIPBOARD)) + '(and (or (gui-call gui-selection-exists-p 'PRIMARY) + (gui-call gui-selection-exists-p 'CLIPBOARD)) (not buffer-read-only))) (defun clipboard-yank () "Insert the clipboard contents, or the last stretch of killed text." (interactive "*") - (let ((x-select-enable-clipboard t)) + (let ((gui-select-enable-clipboard t)) (yank))) (defun clipboard-kill-ring-save (beg end &optional region) - "Copy region to kill ring, and save in the X clipboard." + "Copy region to kill ring, and save in the GUI's clipboard." (interactive "r\np") - (let ((x-select-enable-clipboard t)) + (let ((gui-select-enable-clipboard t)) (kill-ring-save beg end region))) (defun clipboard-kill-region (beg end &optional region) - "Kill the region, and save it in the X clipboard." + "Kill the region, and save it in the GUI's clipboard." (interactive "r\np") - (let ((x-select-enable-clipboard t)) + (let ((gui-select-enable-clipboard t)) (kill-region beg end region))) (defun menu-bar-enable-clipboard () @@ -887,8 +883,33 @@ by \"Save Options\" in Custom buffers.") (interactive) (customize-set-variable 'scroll-bar-mode nil)) +(defun menu-bar-horizontal-scroll-bar () + "Display horizontal scroll bars on each window." + (interactive) + (customize-set-variable 'horizontal-scroll-bar-mode t)) + +(defun menu-bar-no-horizontal-scroll-bar () + "Turn off horizontal scroll bars." + (interactive) + (customize-set-variable 'horizontal-scroll-bar-mode nil)) + (defvar menu-bar-showhide-scroll-bar-menu (let ((menu (make-sparse-keymap "Scroll-bar"))) + (bindings--define-key menu [horizontal] + '(menu-item "Horizontal" + menu-bar-horizontal-scroll-bar + :help "Horizontal scroll bar" + :visible (horizontal-scroll-bars-available-p) + :button (:radio . (cdr (assq 'horizontal-scroll-bars + (frame-parameters)))))) + + (bindings--define-key menu [none-horizontal] + '(menu-item "None-horizontal" + menu-bar-no-horizontal-scroll-bar + :help "Turn off horizontal scroll bars" + :visible (horizontal-scroll-bars-available-p) + :button (:radio . (not (cdr (assq 'horizontal-scroll-bars + (frame-parameters))))))) (bindings--define-key menu [right] '(menu-item "On the Right" @@ -896,7 +917,8 @@ by \"Save Options\" in Custom buffers.") :help "Scroll-bar on the right side" :visible (display-graphic-p) :button (:radio . (eq (cdr (assq 'vertical-scroll-bars - (frame-parameters))) 'right)))) + (frame-parameters))) + 'right)))) (bindings--define-key menu [left] '(menu-item "On the Left" @@ -904,7 +926,8 @@ by \"Save Options\" in Custom buffers.") :help "Scroll-bar on the left side" :visible (display-graphic-p) :button (:radio . (eq (cdr (assq 'vertical-scroll-bars - (frame-parameters))) 'left)))) + (frame-parameters))) + 'left)))) (bindings--define-key menu [none] '(menu-item "None" @@ -912,7 +935,8 @@ by \"Save Options\" in Custom buffers.") :help "Turn off scroll-bar" :visible (display-graphic-p) :button (:radio . (eq (cdr (assq 'vertical-scroll-bars - (frame-parameters))) nil)))) + (frame-parameters))) + nil)))) menu)) (defun menu-bar-frame-for-menubar () @@ -1302,9 +1326,6 @@ mail status in mode line")) (bindings--define-key menu [life] '(menu-item "Life" life :help "Watch how John Conway's cellular automaton evolves")) - (bindings--define-key menu [land] - '(menu-item "Landmark" landmark - :help "Watch a neural-network robot learn landmarks")) (bindings--define-key menu [hanoi] '(menu-item "Towers of Hanoi" hanoi :help "Watch Towers-of-Hanoi puzzle solved by Emacs")) @@ -1958,11 +1979,10 @@ It must accept a buffer as its only required argument.") (dolist (pair alist) (setq i (1- i)) (aset buffers-vec i - (nconc (list (car pair) - (cons nil nil)) - `(lambda () - (interactive) - (funcall menu-bar-select-buffer-function ,(cdr pair)))))) + (cons (car pair) + `(lambda () + (interactive) + (funcall menu-bar-select-buffer-function ,(cdr pair)))))) (list buffers-vec)))) ;; Make a Frames menu if we have more than one frame. @@ -1974,10 +1994,8 @@ It must accept a buffer as its only required argument.") (i 0)) (dolist (frame frames) (aset frames-vec i - (nconc - (list - (frame-parameter frame 'name) - (cons nil nil)) + (cons + (frame-parameter frame 'name) `(lambda () (interactive) (menu-bar-select-frame ,frame)))) (setq i (1+ i)))