Build Fix -- compatibility issue with newer autoconf
[sxemacs] / src / ui / keymap.h
1 /* prototypes for keymap-hacking
2    Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
3
4 This file is part of SXEmacs
5
6 SXEmacs is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 SXEmacs is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program.  If not, see <http://www.gnu.org/licenses/>. */
18
19
20 /* Synched up with: Not in FSF. */
21
22 #ifndef INCLUDED_keymap_h_
23 #define INCLUDED_keymap_h_
24
25 typedef struct Lisp_Keymap Lisp_Keymap;
26
27 DECLARE_LRECORD(keymap, Lisp_Keymap);
28 #define XKEYMAP(x) XRECORD (x, keymap, Lisp_Keymap)
29 #define XSETKEYMAP(x, p) XSETRECORD (x, p, keymap)
30 #define KEYMAPP(x) RECORDP (x, keymap)
31 #define CHECK_KEYMAP(x) CHECK_RECORD (x, keymap)
32 #define CONCHECK_KEYMAP(x) CONCHECK_RECORD (x, keymap)
33
34 EXFUN(Fkeymap_prompt, 2);
35 EXFUN(Fkeymapp, 1);
36 EXFUN(Fmake_keymap, 1);
37 EXFUN(Fwhere_is_internal, 5);
38
39 extern Lisp_Object Qalt, Qcontrol, Qhyper, Qmeta, Qshift, Qsuper;
40 extern Lisp_Object Qbutton1, Qbutton2, Qbutton3, Qbutton4, Qbutton5;
41 extern Lisp_Object Qbutton6, Qbutton7, Qbutton8, Qbutton9, Qbutton10;
42 extern Lisp_Object Qbutton11, Qbutton12, Qbutton13, Qbutton14, Qbutton15;
43 extern Lisp_Object Qbutton16, Qbutton17, Qbutton18, Qbutton19, Qbutton20;
44 extern Lisp_Object Qbutton21, Qbutton22, Qbutton23, Qbutton24, Qbutton25;
45 extern Lisp_Object Qbutton26, Qbutton27, Qbutton28, Qbutton29, Qbutton30;
46 extern Lisp_Object Qbutton31, Qbutton32;
47 extern Lisp_Object Vmeta_prefix_char;
48
49 Lisp_Object get_keymap(Lisp_Object object, int errorp, int autoload);
50 Lisp_Object event_binding(Lisp_Object event0, int accept_default);
51 Lisp_Object event_binding_in(Lisp_Object event0, Lisp_Object keymap,
52                              int accept_default);
53
54 Lisp_Object munging_key_map_event_binding(Lisp_Object event0,
55                                           enum munge_me_out_the_door munge);
56 int relevant_keymaps_to_search(Lisp_Object keys,
57                                int max_maps, Lisp_Object maps[]);
58 void describe_map_tree(Lisp_Object startmap, int partial,
59                        Lisp_Object shadow, Lisp_Object prefix,
60                        int mice_only_p, Lisp_Object buffer);
61
62 void key_desc_list_to_event(Lisp_Object list, Lisp_Object event,
63                             int allow_menu_events);
64
65 int event_matches_key_specifier_p(Lisp_Event * event,
66                                   Lisp_Object key_specifier);
67
68 #endif                          /* INCLUDED_keymap_h_ */