[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [Index] | [ ? ] |
The usual way to make a menu keymap produce a menu is to make it the definition of a prefix key. (A Lisp program can explicitly pop up a menu and receive the user's choice—see Pop-Up Menus.)
If the prefix key ends with a mouse event, Emacs handles the menu keymap by popping up a visible menu, so that the user can select a choice with the mouse. When the user clicks on a menu item, the event generated is whatever character or symbol has the binding that brought about that menu item. (A menu item may generate a series of events if the menu has multiple levels or comes from the menu bar.)
It's often best to use a button-down event to trigger the menu. Then the user can select a menu item by releasing the button.
A single keymap can appear as multiple menu panes, if you explicitly arrange for this. The way to do this is to make a keymap for each pane, then create a binding for each of those maps in the main keymap of the menu. Give each of these bindings an item string that starts with ‘@’. The rest of the item string becomes the name of the pane. See the file ‘lisp/mouse.el’ for an example of this. Any ordinary bindings with ‘@’-less item strings are grouped into one pane, which appears along with the other panes explicitly created for the submaps.
X toolkit menus don't have panes; instead, they can have submenus. Every nested keymap becomes a submenu, whether the item string starts with ‘@’ or not. In a toolkit version of Emacs, the only thing special about ‘@’ at the beginning of an item string is that the ‘@’ doesn't appear in the menu item.
Multiple keymaps that define the same menu prefix key produce separate panes or separate submenus.
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [Index] | [ ? ] |
Ce document a été généré par Eric Reinbold le 13 Octobre 2007 en utilisant texi2html 1.78.