(menu-bar-next-tag-other-window, menu-bar-next-tag)
(menu-bar-right-scroll-bar, menu-bar-left-scroll-bar) (menu-bar-no-scroll-bar, menu-bar-toggle-auto-compression) (menu-bar-toggle-cua-mode, menu-bar-read-mail) (menu-bar-help-extra-packages, help-with-tutorial-spec-language) (menu-bar-text-mode-auto-fill): New commands, used in menu bar menus instead of lambda expressions. (menu-bar-showhide-fringe-menu-customize-left) (menu-bar-showhide-fringe-menu-customize-right) (menu-bar-showhide-fringe-menu-customize-disable) (menu-bar-showhide-fringe-menu-customize-reset): Doc fixes. (menu-bar-options-menu): Use toggle-truncate-lines. (showhide-date-time): Call customize-mark-as-set.
This commit is contained in:
166
lisp/menu-bar.el
166
lisp/menu-bar.el
@@ -352,13 +352,24 @@ A large number or nil slows down menu responsiveness."
|
||||
:help "Find function/variables whose names match regexp"))
|
||||
(define-key menu-bar-goto-menu [next-tag-otherw]
|
||||
'(menu-item "Next Tag in Other Window"
|
||||
(lambda () (interactive) (find-tag-other-window nil t))
|
||||
menu-bar-next-tag-other-window
|
||||
:enable (and (boundp 'tags-location-ring)
|
||||
(not (ring-empty-p tags-location-ring)))
|
||||
:help "Find next function/variable matching last tag name in another window"))
|
||||
|
||||
(defun menu-bar-next-tag-other-window ()
|
||||
"Find the next definition of the tag already specified."
|
||||
(interactive)
|
||||
(find-tag-other-window nil t))
|
||||
|
||||
(defun menu-bar-next-tag ()
|
||||
"Find the next definition of the tag already specified."
|
||||
(interactive)
|
||||
(find-tag nil t))
|
||||
|
||||
(define-key menu-bar-goto-menu [next-tag]
|
||||
'(menu-item "Find Next Tag"
|
||||
(lambda () (interactive) (find-tag nil t))
|
||||
menu-bar-next-tag
|
||||
:enable (and (boundp 'tags-location-ring)
|
||||
(not (ring-empty-p tags-location-ring)))
|
||||
:help "Find next function/variable matching last tag name"))
|
||||
@@ -631,13 +642,11 @@ Do the same for the keys of the same name."
|
||||
(interactive)
|
||||
(if (display-time-mode)
|
||||
(message "Display-time mode enabled.")
|
||||
(message "Display-time mode disabled.")))
|
||||
(message "Display-time mode disabled."))
|
||||
(customize-mark-as-set 'display-time-mode))
|
||||
|
||||
(define-key menu-bar-showhide-menu [showhide-date-time]
|
||||
'(menu-item "Date and Time" (lambda ()
|
||||
(interactive)
|
||||
(showhide-date-time)
|
||||
(customize-mark-as-set 'display-time-mode))
|
||||
'(menu-item "Date and Time" showhide-date-time
|
||||
:help "Display date and time in the mode line"
|
||||
:button (:toggle . display-time-mode)))
|
||||
|
||||
@@ -666,7 +675,7 @@ Do the same for the keys of the same name."
|
||||
:visible (display-graphic-p)))
|
||||
|
||||
(defun menu-bar-showhide-fringe-menu-customize-reset ()
|
||||
"Reset the default fringe mode."
|
||||
"Reset the fringe mode: display fringes on both sides of a window."
|
||||
(interactive)
|
||||
(customize-set-variable 'fringe-mode nil))
|
||||
|
||||
@@ -674,11 +683,10 @@ Do the same for the keys of the same name."
|
||||
'(menu-item "Default" menu-bar-showhide-fringe-menu-customize-reset
|
||||
:help "Default width fringe on both left and right side"
|
||||
:visible (display-graphic-p)
|
||||
:button (:radio . (or (not (boundp 'fringe-mode))
|
||||
(eq fringe-mode nil)))))
|
||||
:button (:radio . (eq fringe-mode nil))))
|
||||
|
||||
(defun menu-bar-showhide-fringe-menu-customize-left ()
|
||||
"Make fringes appear only on the left."
|
||||
"Display fringes only on the left of each window."
|
||||
(interactive)
|
||||
(require 'fringe)
|
||||
(customize-set-variable 'fringe-mode '(nil . 0)))
|
||||
@@ -687,11 +695,10 @@ Do the same for the keys of the same name."
|
||||
'(menu-item "On the Left" menu-bar-showhide-fringe-menu-customize-left
|
||||
:help "Fringe only on the left side"
|
||||
:visible (display-graphic-p)
|
||||
:button (:radio . (and (boundp 'fringe-mode)
|
||||
(equal fringe-mode '(nil . 0))))))
|
||||
:button (:radio . (equal fringe-mode '(nil . 0)))))
|
||||
|
||||
(defun menu-bar-showhide-fringe-menu-customize-right ()
|
||||
"Make fringes appear only on the right."
|
||||
"Display fringes only on the right of each window."
|
||||
(interactive)
|
||||
(require 'fringe)
|
||||
(customize-set-variable 'fringe-mode '(0 . nil)))
|
||||
@@ -700,11 +707,10 @@ Do the same for the keys of the same name."
|
||||
'(menu-item "On the Right" menu-bar-showhide-fringe-menu-customize-right
|
||||
:help "Fringe only on the right side"
|
||||
:visible (display-graphic-p)
|
||||
:button (:radio . (and (boundp 'fringe-mode)
|
||||
(equal fringe-mode '(0 . nil))))))
|
||||
:button (:radio . (equal fringe-mode '(0 . nil)))))
|
||||
|
||||
(defun menu-bar-showhide-fringe-menu-customize-disable ()
|
||||
"Make fringes disappear."
|
||||
"Do not display window fringes."
|
||||
(interactive)
|
||||
(require 'fringe)
|
||||
(customize-set-variable 'fringe-mode 0))
|
||||
@@ -713,8 +719,7 @@ Do the same for the keys of the same name."
|
||||
'(menu-item "None" menu-bar-showhide-fringe-menu-customize-disable
|
||||
:help "Turn off fringe"
|
||||
:visible (display-graphic-p)
|
||||
:button (:radio . (and (boundp 'fringe-mode)
|
||||
(eq fringe-mode 0)))))
|
||||
:button (:radio . (eq fringe-mode 0))))
|
||||
|
||||
(define-key menu-bar-showhide-menu [showhide-fringe]
|
||||
(list 'menu-item "Fringe" menu-bar-showhide-fringe-menu
|
||||
@@ -725,34 +730,42 @@ Do the same for the keys of the same name."
|
||||
|
||||
(define-key menu-bar-showhide-scroll-bar-menu [right]
|
||||
'(menu-item "On the Right"
|
||||
(lambda ()
|
||||
(interactive)
|
||||
(customize-set-variable 'scroll-bar-mode '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))))
|
||||
(defun menu-bar-right-scroll-bar ()
|
||||
"Display scroll bars on the right of each window."
|
||||
(interactive)
|
||||
(customize-set-variable 'scroll-bar-mode 'right))
|
||||
|
||||
(define-key menu-bar-showhide-scroll-bar-menu [left]
|
||||
'(menu-item "On the Left"
|
||||
(lambda ()
|
||||
(interactive)
|
||||
(customize-set-variable 'scroll-bar-mode '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))))
|
||||
|
||||
(defun menu-bar-left-scroll-bar ()
|
||||
"Display scroll bars on the left of each window."
|
||||
(interactive)
|
||||
(customize-set-variable 'scroll-bar-mode 'right))
|
||||
|
||||
(define-key menu-bar-showhide-scroll-bar-menu [none]
|
||||
'(menu-item "None"
|
||||
(lambda ()
|
||||
(interactive)
|
||||
(customize-set-variable 'scroll-bar-mode nil))
|
||||
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))))
|
||||
|
||||
(defun menu-bar-no-scroll-bar ()
|
||||
"Turn off scroll bars."
|
||||
(interactive)
|
||||
(customize-set-variable 'scroll-bar-mode nil))
|
||||
|
||||
(define-key menu-bar-showhide-menu [showhide-scroll-bar]
|
||||
(list 'menu-item "Scroll-bar" menu-bar-showhide-scroll-bar-menu
|
||||
:visible `(display-graphic-p)
|
||||
@@ -822,13 +835,19 @@ Do the same for the keys of the same name."
|
||||
'("--"))
|
||||
(define-key menu-bar-options-menu [toggle-auto-compression]
|
||||
'(menu-item "Automatic File De/compression"
|
||||
(lambda ()
|
||||
(interactive)
|
||||
(auto-compression-mode)
|
||||
(customize-mark-as-set 'auto-compression-mode))
|
||||
menu-bar-toggle-auto-compression-mode
|
||||
:help "Transparently decompress compressed files"
|
||||
:button (:toggle . (rassq 'jka-compr-handler
|
||||
file-name-handler-alist))))
|
||||
|
||||
(defun menu-bar-toggle-auto-compression ()
|
||||
"Toggle automatic file compression and uncompression.
|
||||
With prefix argument ARG, turn auto compression on if positive, else off.
|
||||
Returns the new status of auto compression (non-nil means on)."
|
||||
(interactive)
|
||||
(auto-compression-mode)
|
||||
(customize-mark-as-set 'auto-compression-mode))
|
||||
|
||||
(define-key menu-bar-options-menu [save-place]
|
||||
(menu-bar-make-toggle toggle-save-place-globally save-place
|
||||
"Save Place in Files between Sessions"
|
||||
@@ -850,40 +869,46 @@ Do the same for the keys of the same name."
|
||||
'("--"))
|
||||
(define-key menu-bar-options-menu [cua-mode]
|
||||
'(menu-item "CUA-style cut and paste"
|
||||
(lambda ()
|
||||
(interactive)
|
||||
(cua-mode nil)
|
||||
(customize-mark-as-set 'cua-mode)
|
||||
(message "CUA-style cut and paste %s"
|
||||
(if cua-mode "enabled" "disabled")))
|
||||
menu-bar-toggle-cua-mode
|
||||
:help "Use C-z/C-x/C-c/C-v keys for undo/cut/copy/paste"
|
||||
:button (:toggle . cua-mode)))
|
||||
|
||||
(defun menu-bar-toggle-cua-mode ()
|
||||
"Toggle CUA key-binding mode.
|
||||
When enabled, using shifted movement keys will activate the region (and
|
||||
highlight the region using `transient-mark-mode'), and typed text replaces
|
||||
the active selection. C-z, C-x, C-c, and C-v will undo, cut, copy, and
|
||||
paste (in addition to the normal Emacs bindings)."
|
||||
(interactive)
|
||||
(cua-mode nil)
|
||||
(customize-mark-as-set 'cua-mode)
|
||||
(message "CUA-style cut and paste %s"
|
||||
(if cua-mode "enabled" "disabled")))
|
||||
|
||||
(define-key menu-bar-options-menu [case-fold-search]
|
||||
(menu-bar-make-toggle toggle-case-fold-search case-fold-search
|
||||
"Case-Insensitive Search"
|
||||
"Case-Insensitive Search %s"
|
||||
"Ignore letter-case in search"))
|
||||
|
||||
(defun menu-bar-text-mode-auto-fill ()
|
||||
(interactive)
|
||||
(toggle-text-mode-auto-fill)
|
||||
;; This is somewhat questionable, as `text-mode-hook'
|
||||
;; might have changed outside customize.
|
||||
;; -- Per Abrahamsen <abraham@dina.kvl.dk> 2002-02-11.
|
||||
(customize-mark-as-set 'text-mode-hook))
|
||||
|
||||
(define-key menu-bar-options-menu [auto-fill-mode]
|
||||
'(menu-item "Word Wrap in Text Modes"
|
||||
(lambda ()
|
||||
(interactive)
|
||||
(toggle-text-mode-auto-fill)
|
||||
;; This is somewhat questionable, as `text-mode-hook'
|
||||
;; might have changed outside customize.
|
||||
;; -- Per Abrahamsen <abraham@dina.kvl.dk> 2002-02-11.
|
||||
(customize-mark-as-set 'text-mode-hook))
|
||||
menu-bar-text-mode-auto-fill
|
||||
:help "Automatically fill text between left and right margins (Auto Fill)"
|
||||
:button (:toggle . (if (listp text-mode-hook)
|
||||
(member 'turn-on-auto-fill text-mode-hook)
|
||||
(eq 'turn-on-auto-fill text-mode-hook)))))
|
||||
(define-key menu-bar-options-menu [truncate-lines]
|
||||
'(menu-item "Truncate Long Lines in this Buffer"
|
||||
(lambda ()
|
||||
(interactive)
|
||||
(setq truncate-lines (not truncate-lines))
|
||||
(set-buffer-modified-p (buffer-modified-p))
|
||||
(message "Truncate long lines %s"
|
||||
(if truncate-lines "enabled" "disabled")))
|
||||
toggle-truncate-lines
|
||||
:help "Truncate long lines on the screen"
|
||||
:button (:toggle . truncate-lines)))
|
||||
|
||||
@@ -996,11 +1021,15 @@ Do the same for the keys of the same name."
|
||||
(define-key menu-bar-tools-menu [rmail]
|
||||
(list
|
||||
'menu-item `(format "Read Mail (with %s)" (read-mail-item-name))
|
||||
(lambda ()
|
||||
(interactive)
|
||||
(call-interactively read-mail-command))
|
||||
'menu-bar-read-mail
|
||||
:visible `(and read-mail-command (not (eq read-mail-command 'ignore)))
|
||||
:help "Read your mail and reply to it"))
|
||||
|
||||
(defun menu-bar-read-mail ()
|
||||
"Read manu using `read-mail-command'."
|
||||
(interactive)
|
||||
(call-interactively read-mail-command))
|
||||
|
||||
(define-key menu-bar-tools-menu [gnus]
|
||||
'(menu-item "Read Net News (Gnus)" gnus
|
||||
:help "Read network news groups"))
|
||||
@@ -1121,11 +1150,6 @@ key (or menu-item)"))
|
||||
(interactive)
|
||||
(info "eintr"))
|
||||
|
||||
(defun menu-bar-read-emacs-man ()
|
||||
"Display Emacs User Manual in Info mode."
|
||||
(interactive)
|
||||
(info "emacs"))
|
||||
|
||||
(defun search-emacs-glossary ()
|
||||
"Display the Glossary node of the Emacs manual in Info mode."
|
||||
(interactive)
|
||||
@@ -1215,13 +1239,15 @@ key (or menu-item)"))
|
||||
:help "How to get latest versions of Emacs"))
|
||||
(define-key menu-bar-help-menu [more]
|
||||
'(menu-item "Find Extra Packages"
|
||||
(lambda ()
|
||||
(interactive)
|
||||
(let (enable-local-variables)
|
||||
(view-file (expand-file-name "MORE.STUFF"
|
||||
data-directory))
|
||||
(goto-address)))
|
||||
menu-bar-help-extra-packages
|
||||
:help "Where to find some extra packages and possible updates"))
|
||||
(defun menu-bar-help-extra-packages ()
|
||||
"Display help about some additional packages available for Emacs."
|
||||
(interactive)
|
||||
(let (enable-local-variables)
|
||||
(view-file (expand-file-name "MORE.STUFF"
|
||||
data-directory))
|
||||
(goto-address)))
|
||||
(define-key menu-bar-help-menu [about]
|
||||
'(menu-item "About Emacs" display-splash-screen
|
||||
:help "Display version number, copyright info, and basic help"))
|
||||
@@ -1234,7 +1260,7 @@ key (or menu-item)"))
|
||||
(list 'menu-item "More Manuals" menu-bar-manuals-menu
|
||||
:help "Search and browse on-line manuals"))
|
||||
(define-key menu-bar-help-menu [emacs-manual]
|
||||
'(menu-item "Read the Emacs Manual" menu-bar-read-emacs-man
|
||||
'(menu-item "Read the Emacs Manual" info-emacs-manual
|
||||
:help "Full documentation of Emacs features"))
|
||||
(define-key menu-bar-help-menu [describe]
|
||||
(list 'menu-item "Describe" menu-bar-describe-menu
|
||||
@@ -1254,9 +1280,15 @@ key (or menu-item)"))
|
||||
:help "New features of this version"))
|
||||
(define-key menu-bar-help-menu [emacs-faq]
|
||||
'(menu-item "Emacs FAQ" view-emacs-FAQ))
|
||||
|
||||
(defun help-with-tutorial-spec-language ()
|
||||
"Use the Emacs tutorial, specifying which language you want."
|
||||
(interactive)
|
||||
(help-with-tutorial t))
|
||||
|
||||
(define-key menu-bar-help-menu [emacs-tutorial-language-specific]
|
||||
'(menu-item "Emacs Tutorial (choose language)..."
|
||||
(lambda () (interactive) (help-with-tutorial t))
|
||||
help-with-tutorial-spec-language
|
||||
:help "Learn how to use Emacs (choose a language)"))
|
||||
(define-key menu-bar-help-menu [emacs-tutorial]
|
||||
'(menu-item "Emacs Tutorial" help-with-tutorial
|
||||
|
||||
Reference in New Issue
Block a user