1 /* prototypes for keymap-hacking
2 Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
4 This file is part of SXEmacs
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.
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.
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/>. */
20 /* Synched up with: Not in FSF. */
22 #ifndef INCLUDED_keymap_h_
23 #define INCLUDED_keymap_h_
25 typedef struct Lisp_Keymap Lisp_Keymap;
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)
34 EXFUN(Fkeymap_prompt, 2);
36 EXFUN(Fmake_keymap, 1);
37 EXFUN(Fwhere_is_internal, 5);
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;
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,
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);
62 void key_desc_list_to_event(Lisp_Object list, Lisp_Object event,
63 int allow_menu_events);
65 int event_matches_key_specifier_p(Lisp_Event * event,
66 Lisp_Object key_specifier);
68 #endif /* INCLUDED_keymap_h_ */