]> code.delx.au - gnu-emacs/blobdiff - lisp/menu-bar.el
(mode-line-major-mode-keymap): Undo last change.
[gnu-emacs] / lisp / menu-bar.el
index d6bb4d3ba8ba15b805710ee5b15b3fb4e26f0caa..0ec4339f822e3082f36b45a7aa839ceb24bb2944 100644 (file)
@@ -1,7 +1,7 @@
 ;;; menu-bar.el --- define a default menu bar
 
 ;; Copyright (C) 1993, 1994, 1995, 2000, 2001, 2002, 2003, 2004,
-;;   2005 Free Software Foundation, Inc.
+;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: RMS
 ;; Maintainer: FSF
@@ -178,6 +178,17 @@ A large number or nil slows down menu responsiveness."
 (define-key menu-bar-file-menu [separator-save]
   '(menu-item "--"))
 
+(defun menu-find-file-existing ()
+  "Edit the existing file FILENAME."
+  (interactive)
+  (let* ((mustmatch (not (and (fboundp 'x-uses-old-gtk-dialog)
+                             (x-uses-old-gtk-dialog))))
+        (filename (car (find-file-read-args "Find file: " mustmatch))))
+    (if mustmatch
+       (find-file-existing filename)
+      (find-file filename))))
+
+
 (define-key menu-bar-file-menu [kill-buffer]
   '(menu-item "Close" kill-this-buffer
              :enable (kill-this-buffer-enabled-p)
@@ -191,7 +202,7 @@ A large number or nil slows down menu responsiveness."
              :enable (menu-bar-non-minibuffer-window-p)
              :help "Read a directory, to operate on its files"))
 (define-key menu-bar-file-menu [open-file]
-  '(menu-item "Open File..." find-file-existing
+  '(menu-item "Open File..." menu-find-file-existing
              :enable (menu-bar-non-minibuffer-window-p)
              :help "Read an existing file into an Emacs buffer"))
 (define-key menu-bar-file-menu [new-file]
@@ -481,7 +492,7 @@ A large number or nil slows down menu responsiveness."
              :enable (and (not buffer-read-only)
                           (not (eq t buffer-undo-list))
                           (if (eq last-command 'undo)
-                              pending-undo-list
+                              (listp pending-undo-list)
                             (consp buffer-undo-list)))
              :help "Undo last operation"))
 
@@ -831,18 +842,6 @@ mail status in mode line"))
              :visible (display-graphic-p)
              :button (:radio . (eq fringe-mode nil))))
 
-(defun menu-bar-showhide-fringe-menu-customize-left ()
-  "Display fringes only on the left of each window."
-  (interactive)
-  (require 'fringe)
-  (customize-set-variable 'fringe-mode '(nil . 0)))
-
-(define-key menu-bar-showhide-fringe-menu [left]
-  '(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 . (equal fringe-mode '(nil . 0)))))
-
 (defun menu-bar-showhide-fringe-menu-customize-right ()
   "Display fringes only on the right of each window."
   (interactive)
@@ -855,6 +854,18 @@ mail status in mode line"))
              :visible (display-graphic-p)
              :button (:radio . (equal fringe-mode '(0 . nil)))))
 
+(defun menu-bar-showhide-fringe-menu-customize-left ()
+  "Display fringes only on the left of each window."
+  (interactive)
+  (require 'fringe)
+  (customize-set-variable 'fringe-mode '(nil . 0)))
+
+(define-key menu-bar-showhide-fringe-menu [left]
+  '(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 . (equal fringe-mode '(nil . 0)))))
+
 (defun menu-bar-showhide-fringe-menu-customize-disable ()
   "Do not display window fringes."
   (interactive)
@@ -1239,7 +1250,7 @@ mail status in mode line"))
 
 (define-key menu-bar-describe-menu [list-keybindings]
   '(menu-item "List Key Bindings" describe-bindings
-             :help "Display a list of all current keybindings"))
+             :help "Display all current keybindings (keyboard shortcuts)"))
 (define-key menu-bar-describe-menu [describe-current-display-table]
   '(menu-item "Describe Display Table" describe-current-display-table
              :help "Describe the current display table"))
@@ -1360,9 +1371,8 @@ key, a click, or a menu-item"))
   '(menu-item "Getting New Versions" describe-distribution
              :help "How to get latest versions of Emacs"))
 (define-key menu-bar-help-menu [more]
-  '(menu-item "Find Extra Packages"
-             menu-bar-help-extra-packages
-             :help "Where to find some extra packages and possible updates"))
+  '(menu-item "External Packages" menu-bar-help-extra-packages
+             :help "Lisp packages distributed separately for use in Emacs"))
 (defun menu-bar-help-extra-packages ()
   "Display help about some additional packages available for Emacs."
   (interactive)
@@ -1419,8 +1429,7 @@ key, a click, or a menu-item"))
 (defun menu-bar-menu-frame-live-and-visible-p ()
   "Return non-nil if the menu frame is alive and visible.
 The menu frame is the frame for which we are updating the menu."
-  (let ((menu-frame (if (display-multi-frame-p) menu-updating-frame
-                     (selected-frame))))
+  (let ((menu-frame (or menu-updating-frame (selected-frame))))
     (and (frame-live-p menu-frame)
         (frame-visible-p menu-frame))))
 
@@ -1429,11 +1438,10 @@ The menu frame is the frame for which we are updating the menu."
 
 See the documentation of `menu-bar-menu-frame-live-and-visible-p'
 for the definition of the menu frame."
-  (let ((menu-frame (if (display-multi-frame-p) menu-updating-frame
-                     (selected-frame))))
+  (let ((menu-frame (or menu-updating-frame (selected-frame))))
     (not (window-minibuffer-p (frame-selected-window menu-frame)))))
 
-(defun kill-this-buffer ()     ; for the menubar
+(defun kill-this-buffer ()     ; for the menu bar
   "Kill the current buffer."
   (interactive)
   (kill-buffer (current-buffer)))
@@ -1494,6 +1502,8 @@ for the definition of the menu frame."
 
 (put 'menu-bar-select-yank 'apropos-inhibit t)
 (defun menu-bar-select-yank ()
+  "Insert the stretch of previously-killed text selected from menu.
+The menu shows all the killed text sequences stored in `kill-ring'."
   (interactive "*")
   (push-mark (point))
   (insert last-command-event))
@@ -1663,10 +1673,10 @@ Buffers menu is regenerated."
                             "Next Buffer"
                             'next-buffer
                             :help "Switch to the \"next\" buffer in a cyclic order")
-                      (list 'prev-buffer
+                      (list 'previous-buffer
                             'menu-item
                             "Previous Buffer"
-                            'prev-buffer
+                            'previous-buffer
                             :help "Switch to the \"previous\" buffer in a cyclic order")
                       (list 'select-named-buffer
                             'menu-item