Mercurial > emacs
comparison lispref/frames.texi @ 14200:5a3beebafdcb
Explain avoiding x-popup-menu for menu bar submenu.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 17 Jan 1996 17:23:41 +0000 |
parents | 0b8e0559dcee |
children | c2ed969842dc |
comparison
equal
deleted
inserted
replaced
14199:ac3f51460e07 | 14200:5a3beebafdcb |
---|---|
1030 | 1030 |
1031 Each @var{line} should be a string, and each @var{item} should be the | 1031 Each @var{line} should be a string, and each @var{item} should be the |
1032 value to return if that @var{line} is chosen. | 1032 value to return if that @var{line} is chosen. |
1033 @end defun | 1033 @end defun |
1034 | 1034 |
1035 @strong{Usage note:} Don't use @code{x-popup-menu} to display a menu if | 1035 @strong{Usage note:} Don't use @code{x-popup-menu} to display a menu if |
1036 a prefix key with a menu keymap would do the job. If you use a menu | 1036 a prefix key with a menu keymap would do the job. If you use a menu |
1037 keymap to implement a menu, @kbd{C-h c} and @kbd{C-h a} can see the | 1037 keymap to implement a menu, @kbd{C-h c} and @kbd{C-h a} can see the |
1038 individual items in that menu and provide help for them. If instead you | 1038 individual items in that menu and provide help for them. If instead you |
1039 implement the menu by defining a command that calls @code{x-popup-menu}, | 1039 implement the menu by defining a command that calls @code{x-popup-menu}, |
1040 the help facilities cannot know what happens inside that command, so | 1040 the help facilities cannot know what happens inside that command, so |
1041 they cannot give any help for the menu's items. This is the reason why | 1041 they cannot give any help for the menu's items. |
1042 all the menu bar items are normally implemented with menu keymaps | 1042 |
1043 (@pxref{Menu Keymaps}). | 1043 The menu bar mechanism, which lets you switch between submenus by |
1044 moving the mouse, cannot look within the definition of a command to see | |
1045 that it calls @code{x-popup-menu}. Therefore, if you try to implement a | |
1046 submenu using @code{x-popup-menu}, it cannot work with the menu bar in | |
1047 an integrated fashion. This is why all menu bar submenus are | |
1048 implemented with menu keymaps within the parent menu, and never with | |
1049 @code{x-popup-menu}. @xref{Menu Bar}, | |
1050 | |
1051 If you want a menu bar submenu to have contents that vary, you should | |
1052 still use a menu keymap to implement it. To make the contents vary, add | |
1053 a hook function to @code{menu-bar-update-hook} to update the contents of | |
1054 the menu keymap as necessary. | |
1044 | 1055 |
1045 @node Dialog Boxes | 1056 @node Dialog Boxes |
1046 @section Dialog Boxes | 1057 @section Dialog Boxes |
1047 @cindex dialog boxes | 1058 @cindex dialog boxes |
1048 | 1059 |