comparison src/xmenu.c @ 39914:91951fb5b9e5

Put doc strings in comments.
author Gerd Moellmann <gerd@gnu.org>
date Sun, 14 Oct 2001 10:36:01 +0000
parents 38c1890338cc
children eac4e9ae201c
comparison
equal deleted inserted replaced
39913:5170ea31a07f 39914:91951fb5b9e5
35 35
36 /* On 4.3 this loses if it comes after xterm.h. */ 36 /* On 4.3 this loses if it comes after xterm.h. */
37 #include <signal.h> 37 #include <signal.h>
38 38
39 #include <stdio.h> 39 #include <stdio.h>
40 #define DOC_STRINGS_IN_COMMENTS
40 #include "lisp.h" 41 #include "lisp.h"
41 #include "termhooks.h" 42 #include "termhooks.h"
42 #include "keyboard.h" 43 #include "keyboard.h"
43 #include "keymap.h" 44 #include "keymap.h"
44 #include "frame.h" 45 #include "frame.h"
653 } 654 }
654 } 655 }
655 } 656 }
656 657
657 DEFUN ("x-popup-menu", Fx_popup_menu, Sx_popup_menu, 2, 2, 0, 658 DEFUN ("x-popup-menu", Fx_popup_menu, Sx_popup_menu, 2, 2, 0,
658 "Pop up a deck-of-cards menu and return user's selection.\n\ 659 /* Pop up a deck-of-cards menu and return user's selection.
659 POSITION is a position specification. This is either a mouse button event\n\ 660 POSITION is a position specification. This is either a mouse button event
660 or a list ((XOFFSET YOFFSET) WINDOW)\n\ 661 or a list ((XOFFSET YOFFSET) WINDOW)
661 where XOFFSET and YOFFSET are positions in pixels from the top left\n\ 662 where XOFFSET and YOFFSET are positions in pixels from the top left
662 corner of WINDOW's frame. (WINDOW may be a frame object instead of a window.)\n\ 663 corner of WINDOW's frame. (WINDOW may be a frame object instead of a window.)
663 This controls the position of the center of the first line\n\ 664 This controls the position of the center of the first line
664 in the first pane of the menu, not the top left of the menu as a whole.\n\ 665 in the first pane of the menu, not the top left of the menu as a whole.
665 If POSITION is t, it means to use the current mouse position.\n\ 666 If POSITION is t, it means to use the current mouse position.
666 \n\ 667
667 MENU is a specifier for a menu. For the simplest case, MENU is a keymap.\n\ 668 MENU is a specifier for a menu. For the simplest case, MENU is a keymap.
668 The menu items come from key bindings that have a menu string as well as\n\ 669 The menu items come from key bindings that have a menu string as well as
669 a definition; actually, the \"definition\" in such a key binding looks like\n\ 670 a definition; actually, the "definition" in such a key binding looks like
670 \(STRING . REAL-DEFINITION). To give the menu a title, put a string into\n\ 671 \(STRING . REAL-DEFINITION). To give the menu a title, put a string into
671 the keymap as a top-level element.\n\n\ 672 the keymap as a top-level element.
672 If REAL-DEFINITION is nil, that puts a nonselectable string in the menu.\n\ 673
673 Otherwise, REAL-DEFINITION should be a valid key binding definition.\n\ 674 If REAL-DEFINITION is nil, that puts a nonselectable string in the menu.
674 \n\ 675 Otherwise, REAL-DEFINITION should be a valid key binding definition.
675 You can also use a list of keymaps as MENU.\n\ 676
676 Then each keymap makes a separate pane.\n\ 677 You can also use a list of keymaps as MENU.
677 When MENU is a keymap or a list of keymaps, the return value\n\ 678 Then each keymap makes a separate pane.
678 is a list of events.\n\n\ 679 When MENU is a keymap or a list of keymaps, the return value
679 \n\ 680 is a list of events.
680 Alternatively, you can specify a menu of multiple panes\n\ 681
681 with a list of the form (TITLE PANE1 PANE2...),\n\ 682 Alternatively, you can specify a menu of multiple panes
682 where each pane is a list of form (TITLE ITEM1 ITEM2...).\n\ 683 with a list of the form (TITLE PANE1 PANE2...),
683 Each ITEM is normally a cons cell (STRING . VALUE);\n\ 684 where each pane is a list of form (TITLE ITEM1 ITEM2...).
684 but a string can appear as an item--that makes a nonselectable line\n\ 685 Each ITEM is normally a cons cell (STRING . VALUE);
685 in the menu.\n\ 686 but a string can appear as an item--that makes a nonselectable line
686 With this form of menu, the return value is VALUE from the chosen item.\n\ 687 in the menu.
687 \n\ 688 With this form of menu, the return value is VALUE from the chosen item.
688 If POSITION is nil, don't display the menu at all, just precalculate the\n\ 689
689 cached information about equivalent key sequences.") 690 If POSITION is nil, don't display the menu at all, just precalculate the
690 (position, menu) 691 cached information about equivalent key sequences. */
692 (position, menu))
691 Lisp_Object position, menu; 693 Lisp_Object position, menu;
692 { 694 {
693 Lisp_Object keymap, tem; 695 Lisp_Object keymap, tem;
694 int xpos = 0, ypos = 0; 696 int xpos = 0, ypos = 0;
695 Lisp_Object title; 697 Lisp_Object title;
877 } 879 }
878 880
879 #ifdef HAVE_MENUS 881 #ifdef HAVE_MENUS
880 882
881 DEFUN ("x-popup-dialog", Fx_popup_dialog, Sx_popup_dialog, 2, 2, 0, 883 DEFUN ("x-popup-dialog", Fx_popup_dialog, Sx_popup_dialog, 2, 2, 0,
882 "Pop up a dialog box and return user's selection.\n\ 884 /* Pop up a dialog box and return user's selection.
883 POSITION specifies which frame to use.\n\ 885 POSITION specifies which frame to use.
884 This is normally a mouse button event or a window or frame.\n\ 886 This is normally a mouse button event or a window or frame.
885 If POSITION is t, it means to use the frame the mouse is on.\n\ 887 If POSITION is t, it means to use the frame the mouse is on.
886 The dialog box appears in the middle of the specified frame.\n\ 888 The dialog box appears in the middle of the specified frame.
887 \n\ 889
888 CONTENTS specifies the alternatives to display in the dialog box.\n\ 890 CONTENTS specifies the alternatives to display in the dialog box.
889 It is a list of the form (TITLE ITEM1 ITEM2...).\n\ 891 It is a list of the form (TITLE ITEM1 ITEM2...).
890 Each ITEM is a cons cell (STRING . VALUE).\n\ 892 Each ITEM is a cons cell (STRING . VALUE).
891 The return value is VALUE from the chosen item.\n\n\ 893 The return value is VALUE from the chosen item.
892 An ITEM may also be just a string--that makes a nonselectable item.\n\ 894
893 An ITEM may also be nil--that means to put all preceding items\n\ 895 An ITEM may also be just a string--that makes a nonselectable item.
894 on the left of the dialog box and all following items on the right.\n\ 896 An ITEM may also be nil--that means to put all preceding items
895 \(By default, approximately half appear on each side.)") 897 on the left of the dialog box and all following items on the right.
896 (position, contents) 898 \(By default, approximately half appear on each side.) */
899 (position, contents))
897 Lisp_Object position, contents; 900 Lisp_Object position, contents;
898 { 901 {
899 struct frame * f = NULL; 902 struct frame * f = NULL;
900 Lisp_Object window; 903 Lisp_Object window;
901 904
2844 menu_items = Qnil; 2847 menu_items = Qnil;
2845 2848
2846 Qdebug_on_next_call = intern ("debug-on-next-call"); 2849 Qdebug_on_next_call = intern ("debug-on-next-call");
2847 staticpro (&Qdebug_on_next_call); 2850 staticpro (&Qdebug_on_next_call);
2848 2851
2849 DEFVAR_LISP ("menu-updating-frame", &Vmenu_updating_frame, 2852 DEFVAR_LISP ("menu-updating-frame", &Vmenu_updating_frame
2850 "Frame for which we are updating a menu.\n\ 2853 /* Frame for which we are updating a menu.
2851 The enable predicate for a menu command should check this variable."); 2854 The enable predicate for a menu command should check this variable. */);
2852 Vmenu_updating_frame = Qnil; 2855 Vmenu_updating_frame = Qnil;
2853 2856
2854 #ifdef USE_X_TOOLKIT 2857 #ifdef USE_X_TOOLKIT
2855 widget_id_tick = (1<<16); 2858 widget_id_tick = (1<<16);
2856 next_menubar_widget_id = 1; 2859 next_menubar_widget_id = 1;