aboutsummaryrefslogtreecommitdiffstats
path: root/src/macmenu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/macmenu.c')
-rw-r--r--src/macmenu.c57
1 files changed, 36 insertions, 21 deletions
diff --git a/src/macmenu.c b/src/macmenu.c
index ab266f6f0b5..c7ee0dfaf21 100644
--- a/src/macmenu.c
+++ b/src/macmenu.c
@@ -611,37 +611,48 @@ cleanup_popup_menu (arg)
611 611
612DEFUN ("x-popup-menu", Fx_popup_menu, Sx_popup_menu, 2, 2, 0, 612DEFUN ("x-popup-menu", Fx_popup_menu, Sx_popup_menu, 2, 2, 0,
613 doc: /* Pop up a deck-of-cards menu and return user's selection. 613 doc: /* Pop up a deck-of-cards menu and return user's selection.
614POSITION is a position specification. This is either a mouse button 614POSITION is a position specification. This is either a mouse button event
615event or a list ((XOFFSET YOFFSET) WINDOW) where XOFFSET and YOFFSET 615or a list ((XOFFSET YOFFSET) WINDOW)
616are positions in pixels from the top left corner of WINDOW's frame 616where XOFFSET and YOFFSET are positions in pixels from the top left
617\(WINDOW may be a frame object instead of a window). This controls the 617corner of WINDOW. (WINDOW may be a window or a frame object.)
618position of the center of the first line in the first pane of the 618This controls the position of the top left of the menu as a whole.
619menu, not the top left of the menu as a whole. If POSITION is t, it 619If POSITION is t, it means to use the current mouse position.
620means to use the current mouse position.
621 620
622MENU is a specifier for a menu. For the simplest case, MENU is a keymap. 621MENU is a specifier for a menu. For the simplest case, MENU is a keymap.
623The menu items come from key bindings that have a menu string as well as 622The menu items come from key bindings that have a menu string as well as
624a definition; actually, the \"definition\" in such a key binding looks like 623a definition; actually, the "definition" in such a key binding looks like
625\(STRING . REAL-DEFINITION). To give the menu a title, put a string into 624\(STRING . REAL-DEFINITION). To give the menu a title, put a string into
626the keymap as a top-level element. 625the keymap as a top-level element.
627 626
628If REAL-DEFINITION is nil, that puts a nonselectable string in the menu. 627If REAL-DEFINITION is nil, that puts a nonselectable string in the menu.
629Otherwise, REAL-DEFINITION should be a valid key binding definition. 628Otherwise, REAL-DEFINITION should be a valid key binding definition.
630 629
631You can also use a list of keymaps as MENU. Then each keymap makes a 630You can also use a list of keymaps as MENU.
632separate pane. When MENU is a keymap or a list of keymaps, the return 631 Then each keymap makes a separate pane.
633value is a list of events.
634 632
635Alternatively, you can specify a menu of multiple panes with a list of 633When MENU is a keymap or a list of keymaps, the return value is the
636the form (TITLE PANE1 PANE2...), where each pane is a list of 634list of events corresponding to the user's choice. Note that
637form (TITLE ITEM1 ITEM2...). 635`x-popup-menu' does not actually execute the command bound to that
638Each ITEM is normally a cons cell (STRING . VALUE); but a string can 636sequence of events.
639appear as an item--that makes a nonselectable line in the menu. 637
638Alternatively, you can specify a menu of multiple panes
639 with a list of the form (TITLE PANE1 PANE2...),
640where each pane is a list of form (TITLE ITEM1 ITEM2...).
641Each ITEM is normally a cons cell (STRING . VALUE);
642but a string can appear as an item--that makes a nonselectable line
643in the menu.
640With this form of menu, the return value is VALUE from the chosen item. 644With this form of menu, the return value is VALUE from the chosen item.
641 645
642If POSITION is nil, don't display the menu at all, just precalculate the 646If POSITION is nil, don't display the menu at all, just precalculate the
643cached information about equivalent key sequences. */) 647cached information about equivalent key sequences.
644 (position, menu) 648
649If the user gets rid of the menu without making a valid choice, for
650instance by clicking the mouse away from a valid choice or by typing
651keyboard input, then this normally results in a quit and
652`x-popup-menu' does not return. But if POSITION is a mouse button
653event (indicating that the user invoked the menu with the mouse) then
654no quit occurs and `x-popup-menu' returns nil. */)
655 (position, menu)
645 Lisp_Object position, menu; 656 Lisp_Object position, menu;
646{ 657{
647 Lisp_Object keymap, tem; 658 Lisp_Object keymap, tem;
@@ -840,7 +851,7 @@ If POSITION is t, it means to use the frame the mouse is on.
840The dialog box appears in the middle of the specified frame. 851The dialog box appears in the middle of the specified frame.
841 852
842CONTENTS specifies the alternatives to display in the dialog box. 853CONTENTS specifies the alternatives to display in the dialog box.
843It is a list of the form (TITLE ITEM1 ITEM2...). 854It is a list of the form (DIALOG ITEM1 ITEM2...).
844Each ITEM is a cons cell (STRING . VALUE). 855Each ITEM is a cons cell (STRING . VALUE).
845The return value is VALUE from the chosen item. 856The return value is VALUE from the chosen item.
846 857
@@ -850,8 +861,12 @@ on the left of the dialog box and all following items on the right.
850\(By default, approximately half appear on each side.) 861\(By default, approximately half appear on each side.)
851 862
852If HEADER is non-nil, the frame title for the box is "Information", 863If HEADER is non-nil, the frame title for the box is "Information",
853otherwise it is "Question". */) 864otherwise it is "Question".
854 (position, contents, header) 865
866If the user gets rid of the dialog box without making a valid choice,
867for instance using the window manager, then this produces a quit and
868`x-popup-dialog' does not return. */)
869 (position, contents, header)
855 Lisp_Object position, contents, header; 870 Lisp_Object position, contents, header;
856{ 871{
857 FRAME_PTR f = NULL; 872 FRAME_PTR f = NULL;