1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-24 07:20:37 +00:00

(easy-menu-popup-menu): New function.

This commit is contained in:
Richard M. Stallman 2002-07-02 18:49:03 +00:00
parent 4795d1c7d1
commit 89fd3098d8

View File

@ -616,6 +616,20 @@ In some cases we use that to select between the local and global maps."
(or (keymapp map) (error "Malformed menu in easy-menu: (%s)" map))
map)
(defun easy-menu-popup-menu (menu &optional event)
"Pop up a menu and run a command according to user's selection.
MENU is a menu description as in `easy-menu-define'.
EVENT is a mouse button event and determines where to pop up the menu.
If EVENT is nil, pop up menu at the current mouse position."
(let ((map (easy-menu-create-menu (car menu) (cdr menu))))
(if (symbolp map)
(let ((f (memq :filter (get map 'menu-prop))))
(setq map (symbol-function map))
(if f (setq map (funcall (cadr f) map)))))
(let* ((sel (x-popup-menu (or event t) map))
(f (if (consp sel) (lookup-key map (apply 'vector sel)))))
(if (commandp f) (call-interactively f)))))
(provide 'easymenu)
;;; easymenu.el ends here