diff lisp/easymenu.el @ 371:cc15677e0335 r21-2b1

Import from CVS: tag r21-2b1
author cvs
date Mon, 13 Aug 2007 11:03:08 +0200
parents a4f53d9b3154
children d883f39b8495
line wrap: on
line diff
--- a/lisp/easymenu.el	Mon Aug 13 11:01:58 2007 +0200
+++ b/lisp/easymenu.el	Mon Aug 13 11:03:08 2007 +0200
@@ -23,9 +23,7 @@
 ;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ;; 02111-1307, USA.
 
-;;; Synched up with: Not synched with FSF but coordinated with the FSF
-;;;                  easymenu maintainer for compatability with FSF 20.4.
-;;; Please: Coordinate changes with Inge Frick <inge@nada.kth.se>
+;;; Synched up with: Not synched with FSF.
 
 ;; Commentary:
 
@@ -45,7 +43,7 @@
 
 ;; - Function: easy-menu-define SYMBOL MAPS DOC MENU
 ;;     SYMBOL is both the name of the variable that holds the menu and
-;;            the name of a function that will present the menu.
+;;            the name of a function that will present a the menu.
 ;;     MAPS is a list of keymaps where the menu should appear in the menubar.
 ;;     DOC is the documentation string for the variable.
 ;;     MENU is an XEmacs style menu description.  
@@ -65,15 +63,6 @@
 ;; - Function: easy-menu-remove MENU
 ;;     Remove MENU from the current menubar.
 
-;; - Function: easy-menu-add-item
-;;     Add item or submenu to existing menu
-
-;; - Function: easy-menu-item-present-p
-;;     Locate item
-
-;; - Function: easy-menu-remove-item
-;;     Delete item from menu.
-
 ;; Emacs 19 never uses `easy-menu-add' or `easy-menu-remove', menus
 ;; automatically appear and disappear when the keymaps specified by
 ;; the MAPS argument to `easy-menu-define' are activated.
@@ -153,14 +142,15 @@
        (easy-menu-do-define (quote (, symbol)) (, maps) (, doc) (, menu)))))
 
 (defun easy-menu-do-define (symbol maps doc menu)
-  (when (featurep 'menubar)
+  (if (featurep 'menubar)
+      (progn
 	(set symbol menu)
-    (fset symbol `(lambda (e)
-		    ,doc
-		    (interactive "@e")
-		    (run-hooks 'activate-menubar-hook)
-		    (setq zmacs-region-stays 't)
-		    (popup-menu ,symbol)))))
+	(fset symbol (list 'lambda '(e)
+			   doc
+			   '(interactive "@e")
+			   '(run-hooks 'activate-menubar-hook)
+			   '(setq zmacs-region-stays 't)
+			   (list 'popup-menu symbol))))))
 
 (defun easy-menu-change (&rest args)
   (when (featurep 'menubar)
@@ -173,7 +163,8 @@
 
 (defun easy-menu-add (menu &optional map)
   "Add MENU to the current menu bar."
-  (when (featurep 'menubar)
+  (if (featurep 'menubar)
+      (progn
 	(unless (member menu easy-menu-all-popups)
 	  (push menu easy-menu-all-popups))
 	(setq mode-popup-menu (if (> (length easy-menu-all-popups) 1)
@@ -193,11 +184,12 @@
 	      (t
 	       ;; Add at right.
 	       (set-buffer-menubar (copy-sequence current-menubar))
-	   (add-menu nil (car menu) (cdr menu))))))
+	       (add-menu nil (car menu) (cdr menu)))))))
 
 (defun easy-menu-remove (menu)
   "Remove MENU from the current menu bar."
-  (when (featurep 'menubar)
+  (if (featurep 'menubar)
+      (progn
 	(setq easy-menu-all-popups (delq menu easy-menu-all-popups)
 	      mode-popup-menu (if (< (length easy-menu-all-popups) 1)
 				  (cons (easy-menu-title)
@@ -206,55 +198,7 @@
 
 	(and current-menubar
 	     (assoc (car menu) current-menubar)
-	 (delete-menu-item (list (car menu))))))
-
-(defsubst easy-menu-normalize (menu)
-  (if (symbolp menu)
-      (symbol-value menu)
-    menu))
-
-(defun easy-menu-add-item (menu path item &optional before)
-  "At the end of the submenu of MENU with path PATH, add ITEM.
-If ITEM is already present in this submenu, then this item will be changed.
-otherwise ITEM will be added at the end of the submenu, unless the optional
-argument BEFORE is present, in which case ITEM will instead be added
-before the item named BEFORE.
-MENU is either a symbol, which have earlier been used as the first
-argument in a call to `easy-menu-define', or the value of such a symbol
-i.e. a menu, or nil, which stands for the current menubar.
-PATH is a list of strings for locating the submenu where ITEM is to be
-added.  If PATH is nil, MENU itself is used.  Otherwise, the first
-element should be the name of a submenu directly under MENU.  This
-submenu is then traversed recursively with the remaining elements of PATH.
-ITEM is either defined as in `easy-menu-define', a menu defined earlier
-by `easy-menu-define' or `easy-menu-create-menu' or an item returned
-from `easy-menu-item-present-p' or `easy-menu-remove-item'."
-  (when (featurep 'menubar)
-    (add-menu-button path item before (easy-menu-normalize menu))))
-
-(defun easy-menu-item-present-p (menu path name)
-  "In submenu of MENU with path PATH, return true iff item NAME is present.
-MENU and PATH are defined as in `easy-menu-add-item'.
-NAME should be a string, the name of the element to be looked for.
-
-The return value can be used as an argument to `easy-menu-add-item'."
-  (if (featurep 'menubar)
-  (car (find-menu-item (or (easy-menu-normalize menu) current-menubar)
-			   (append path (list name))))
-    nil))
-
-(defun easy-menu-remove-item (menu path name)
-  "From submenu of MENU with path PATH, remove item NAME.
-MENU and PATH are defined as in `easy-menu-add-item'.
-NAME should be a string, the name of the element to be removed.
-
-The return value can be used as an argument to `easy-menu-add-item'."
-  (when (featurep 'menubar)
-  (delete-menu-item (append path (list name))
-		      (easy-menu-normalize menu))))
-  
-
-
+	     (delete-menu-item (list (car menu)))))))
 
 ;; Think up a good title for the menu.  Take the major-mode of the
 ;; buffer, strip the -mode part, convert hyphens to spaces, and