;;; menu-bar.el --- define a default menu bar
-;; Copyright (C) 1993-1995, 2000-2015 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 2000-2016 Free Software Foundation, Inc.
;; Author: Richard M. Stallman
;; Maintainer: emacs-devel@gnu.org
(setq menu-bar-last-search-type 'string)
;; Ideally, this whole command would be equivalent to `C-s RET'.
(let ((isearch-forward (not backward))
- (isearch-regexp-function search-default-regexp-mode)
+ (isearch-regexp-function search-default-mode)
(isearch-regexp nil))
(if (or (equal string "") (not string))
(funcall (isearch-search-fun-default) (car search-ring))
(yank)))
(defun clipboard-kill-ring-save (beg end &optional region)
- "Copy region to kill ring, and save in the GUI's clipboard."
+ "Copy region to kill ring, and save in the GUI's clipboard.
+If the optional argument REGION is non-nil, the function ignores
+BEG and END, and saves the current region instead."
(interactive "r\np")
(let ((gui-select-enable-clipboard t)
(interprogram-cut-function (or interprogram-cut-function
(kill-ring-save beg end region)))
(defun clipboard-kill-region (beg end &optional region)
- "Kill the region, and save it in the GUI's clipboard."
+ "Kill the region, and save it in the GUI's clipboard.
+If the optional argument REGION is non-nil, the function ignores
+BEG and END, and kills the current region instead."
(interactive "r\np")
(let ((gui-select-enable-clipboard t)
(interprogram-cut-function (or interprogram-cut-function
(customize-set-variable 'horizontal-scroll-bar-mode nil))
(defvar menu-bar-showhide-scroll-bar-menu
- (let ((menu (make-sparse-keymap "Scroll-bar")))
+ (let ((menu (make-sparse-keymap "Scroll-bar"))
+ (vsb (frame-parameter nil 'vertical-scroll-bars))
+ (hsb (frame-parameter nil 'horizontal-scroll-bars)))
(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))))))
+ :button (:radio . hsb)))
(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)))))))
+ :button (:radio . (not hsb))))
(bindings--define-key menu [right]
'(menu-item "On the Right"
menu-bar-right-scroll-bar
:help "Scroll-bar on the right side"
:visible (display-graphic-p)
- :button (:radio . (eq (cdr (assq 'vertical-scroll-bars
- (frame-parameters)))
- 'right))))
+ :button (:radio . (eq vsb 'right))))
(bindings--define-key menu [left]
'(menu-item "On the Left"
menu-bar-left-scroll-bar
:help "Scroll-bar on the left side"
:visible (display-graphic-p)
- :button (:radio . (eq (cdr (assq 'vertical-scroll-bars
- (frame-parameters)))
- 'left))))
+ :button (:radio . (eq vsb 'left))))
(bindings--define-key menu [none]
'(menu-item "None"
menu-bar-no-scroll-bar
:help "Turn off scroll-bar"
:visible (display-graphic-p)
- :button (:radio . (eq (cdr (assq 'vertical-scroll-bars
- (frame-parameters)))
- nil))))
+ :button (:radio . (nilp vsb))))
menu))
(defun menu-bar-frame-for-menubar ()
:enable (not (truncated-partial-width-window-p))))
menu))
+(defvar menu-bar-search-options-menu
+ (let ((menu (make-sparse-keymap "Search Options")))
+
+ (dolist (x '((char-fold-to-regexp "Fold Characters" "Character folding")
+ (isearch-symbol-regexp "Whole Symbols" "Whole symbol")
+ (word-search-regexp "Whole Words" "Whole word")))
+ (bindings--define-key menu (vector (nth 0 x))
+ `(menu-item ,(nth 1 x)
+ (lambda ()
+ (interactive)
+ (setq search-default-mode #',(nth 0 x))
+ (message ,(format "%s search enabled" (nth 2 x))))
+ :help ,(format "Enable %s search" (downcase (nth 2 x)))
+ :button (:radio . (eq search-default-mode #',(nth 0 x))))))
+
+ (bindings--define-key menu [regexp-search]
+ '(menu-item "Regular Expression"
+ (lambda ()
+ (interactive)
+ (setq search-default-mode t)
+ (message "Regular-expression search enabled"))
+ :help "Enable regular-expression search"
+ :button (:radio . (eq search-default-mode t))))
+
+ (bindings--define-key menu [regular-search]
+ '(menu-item "Literal Search"
+ (lambda ()
+ (interactive)
+ (when search-default-mode
+ (setq search-default-mode nil)
+ (when (symbolp search-default-mode)
+ (message "Literal search enabled"))))
+ :help "Disable special search modes"
+ :button (:radio . (not search-default-mode))))
+
+ (bindings--define-key menu [custom-separator]
+ menu-bar-separator)
+ (bindings--define-key menu [case-fold-search]
+ (menu-bar-make-toggle
+ toggle-case-fold-search case-fold-search
+ "Ignore Case"
+ "Case-Insensitive Search %s"
+ "Ignore letter-case in search commands"))
+
+ menu))
+
(defvar menu-bar-options-menu
(let ((menu (make-sparse-keymap "Options")))
(bindings--define-key menu [customize]
(:visible (and (boundp 'cua-enable-cua-keys)
(not cua-enable-cua-keys)))))
- (bindings--define-key menu [case-fold-search]
- (menu-bar-make-toggle
- toggle-case-fold-search case-fold-search
- "Ignore Case for Search"
- "Case-Insensitive Search %s"
- "Ignore letter-case in search commands"))
+ (bindings--define-key menu [search-options]
+ `(menu-item "Default Search Options"
+ ,menu-bar-search-options-menu))
(bindings--define-key menu [line-wrapping]
`(menu-item "Line Wrapping in This Buffer"
(bindings--define-key menu [browse-web]
'(menu-item "Browse the Web..." browse-web))
(bindings--define-key menu [directory-search]
- '(menu-item "Directory Search" eudc-tools-menu))
+ '(menu-item "Directory Servers" eudc-tools-menu))
(bindings--define-key menu [compose-mail]
'(menu-item "Compose New Mail" compose-mail
:visible (and mail-user-agent (not (eq mail-user-agent 'ignore)))