Mercurial > emacs
annotate src/keyboard.h @ 99492:ee792794d888
(isearch-search-fun): Compare the length of the
current search string with the length of the string from the
previous search state to detect the situation when the user
adds or removes characters in the search string.
Use word-search-forward-lax and word-search-backward-lax in this
case, and otherwise word-search-forward and word-search-backward.
author | Juri Linkov <juri@jurta.org> |
---|---|
date | Tue, 11 Nov 2008 19:43:09 +0000 |
parents | 80acedef7417 |
children | e038c1a8307c |
rev | line source |
---|---|
518 | 1 /* Declarations useful when processing input. |
75227
e90d04cd455a
Update copyright for years from Emacs 21 to present (mainly adding
Glenn Morris <rgm@gnu.org>
parents:
74612
diff
changeset
|
2 Copyright (C) 1985, 1986, 1987, 1993, 2001, 2002, 2003, 2004, |
79759 | 3 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
518 | 4 |
5 This file is part of GNU Emacs. | |
6 | |
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87649
diff
changeset
|
7 GNU Emacs is free software: you can redistribute it and/or modify |
518 | 8 it under the terms of the GNU General Public License as published by |
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87649
diff
changeset
|
9 the Free Software Foundation, either version 3 of the License, or |
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87649
diff
changeset
|
10 (at your option) any later version. |
518 | 11 |
12 GNU Emacs is distributed in the hope that it will be useful, | |
13 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 GNU General Public License for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87649
diff
changeset
|
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ |
518 | 19 |
72134
594b286900a3
* keyboard.h: Include systime.h. Update read_char prototype.
Chong Yidong <cyd@stupidchicken.com>
parents:
68651
diff
changeset
|
20 #include "systime.h" /* for EMACS_TIME */ |
95648
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
21 #include "coding.h" /* for ENCODE_UTF_8 and ENCODE_SYSTEM */ |
72134
594b286900a3
* keyboard.h: Include systime.h. Update read_char prototype.
Chong Yidong <cyd@stupidchicken.com>
parents:
68651
diff
changeset
|
22 |
11349
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
23 /* Length of echobuf field in each KBOARD. */ |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
24 |
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
25 /* Each KBOARD represents one logical input stream from which Emacs |
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
26 gets input. If we are using ordinary terminals, it has one KBOARD |
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
27 object for each terminal device. |
11349
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
28 Usually each X display screen has its own KBOARD, |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
29 but when two of them are on the same X server, |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
30 we assume they share a keyboard and give them one KBOARD in common. |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
31 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
32 Some Lisp variables are per-kboard; they are stored in the KBOARD structure |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
33 and accessed indirectly via a Lisp_Misc_Kboard_Objfwd object. |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
34 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
35 So that definition of keyboard macros, and reading of prefix arguments, |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
36 can happen in parallel on various KBOARDs at once, |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
37 the state information for those activities is stored in the KBOARD. |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
38 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
39 Emacs has two states for reading input: |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
40 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
41 ** Any kboard. Emacs can accept input from any KBOARD, |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
42 and as soon as any of them provides a complete command, Emacs can run it. |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
43 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
44 ** Single kboard. Then Emacs is running a command for one KBOARD |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
45 and can only read input from that KBOARD. |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
46 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
47 All input, from all KBOARDs, goes together in a single event queue |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
48 at interrupt level. read_char sees the events sequentially, |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
49 but deals with them in accord with the current input state. |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
50 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
51 In the any-kboard state, read_key_sequence processes input from any KBOARD |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
52 immediately. When a new event comes in from a particular KBOARD, |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
53 read_key_sequence switches to that KBOARD. As a result, |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
54 as soon as a complete key arrives from some KBOARD or other, |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
55 Emacs starts executing that key's binding. It switches to the |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
56 single-kboard state for the execution of that command, |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
57 so that that command can get input only from its own KBOARD. |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
58 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
59 While in the single-kboard state, read_char can consider input only |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
60 from the current KBOARD. If events come from other KBOARDs, they |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
61 are put aside for later in the KBOARDs' kbd_queue lists. |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
62 The flag kbd_queue_has_data in a KBOARD is 1 if this has happened. |
43279 | 63 When Emacs goes back to the any-kboard state, it looks at all the KBOARDs |
11349
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
64 to find those; and it tries processing their input right away. */ |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
65 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
66 typedef struct kboard KBOARD; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
67 struct kboard |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
68 { |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
69 KBOARD *next_kboard; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
70 |
12259
572f267636d5
(struct kboard): Add Voverriding_terminal_local_map.
Karl Heuer <kwzh@gnu.org>
parents:
12174
diff
changeset
|
71 /* If non-nil, a keymap that overrides all others but applies only to |
572f267636d5
(struct kboard): Add Voverriding_terminal_local_map.
Karl Heuer <kwzh@gnu.org>
parents:
12174
diff
changeset
|
72 this KBOARD. Lisp code that uses this instead of calling read-char |
572f267636d5
(struct kboard): Add Voverriding_terminal_local_map.
Karl Heuer <kwzh@gnu.org>
parents:
12174
diff
changeset
|
73 can effectively wait for input in the any-kboard state, and hence |
572f267636d5
(struct kboard): Add Voverriding_terminal_local_map.
Karl Heuer <kwzh@gnu.org>
parents:
12174
diff
changeset
|
74 avoid blocking out the other KBOARDs. See universal-argument in |
572f267636d5
(struct kboard): Add Voverriding_terminal_local_map.
Karl Heuer <kwzh@gnu.org>
parents:
12174
diff
changeset
|
75 lisp/simple.el for an example. */ |
572f267636d5
(struct kboard): Add Voverriding_terminal_local_map.
Karl Heuer <kwzh@gnu.org>
parents:
12174
diff
changeset
|
76 Lisp_Object Voverriding_terminal_local_map; |
572f267636d5
(struct kboard): Add Voverriding_terminal_local_map.
Karl Heuer <kwzh@gnu.org>
parents:
12174
diff
changeset
|
77 |
12161
32f80fdaeed9
(struct kboard): New member Vlast_command.
Karl Heuer <kwzh@gnu.org>
parents:
12143
diff
changeset
|
78 /* Last command executed by the editor command loop, not counting |
32f80fdaeed9
(struct kboard): New member Vlast_command.
Karl Heuer <kwzh@gnu.org>
parents:
12143
diff
changeset
|
79 commands that set the prefix argument. */ |
32f80fdaeed9
(struct kboard): New member Vlast_command.
Karl Heuer <kwzh@gnu.org>
parents:
12143
diff
changeset
|
80 Lisp_Object Vlast_command; |
32f80fdaeed9
(struct kboard): New member Vlast_command.
Karl Heuer <kwzh@gnu.org>
parents:
12143
diff
changeset
|
81 |
85614
9f3a25157e4f
Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85114
diff
changeset
|
82 /* Normally same as last-command, but never modified by other commands. */ |
22385
15200c139d9f
(struct kboard): New elts Vreal_last_command and Vlast_prefix_arg.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
83 Lisp_Object Vreal_last_command; |
15200c139d9f
(struct kboard): New elts Vreal_last_command and Vlast_prefix_arg.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
84 |
83391
e99392472e41
Change `keyboard-translate-table' to be terminal-local.
Karoly Lorentey <lorentey@elte.hu>
parents:
83374
diff
changeset
|
85 /* User-supplied table to translate input characters through. */ |
e99392472e41
Change `keyboard-translate-table' to be terminal-local.
Karoly Lorentey <lorentey@elte.hu>
parents:
83374
diff
changeset
|
86 Lisp_Object Vkeyboard_translate_table; |
e99392472e41
Change `keyboard-translate-table' to be terminal-local.
Karoly Lorentey <lorentey@elte.hu>
parents:
83374
diff
changeset
|
87 |
78695
4492556ec35d
(struct kboard): New elt Vlast_repeatable_command.
Martin Rudalics <rudalics@gmx.at>
parents:
78501
diff
changeset
|
88 /* Last command that may be repeated by `repeat'. */ |
4492556ec35d
(struct kboard): New elt Vlast_repeatable_command.
Martin Rudalics <rudalics@gmx.at>
parents:
78501
diff
changeset
|
89 Lisp_Object Vlast_repeatable_command; |
4492556ec35d
(struct kboard): New elt Vlast_repeatable_command.
Martin Rudalics <rudalics@gmx.at>
parents:
78501
diff
changeset
|
90 |
12115
bd5ac643a900
(struct kboard): member Vprefix_arg restored, replacing
Karl Heuer <kwzh@gnu.org>
parents:
11778
diff
changeset
|
91 /* The prefix argument for the next command, in raw form. */ |
bd5ac643a900
(struct kboard): member Vprefix_arg restored, replacing
Karl Heuer <kwzh@gnu.org>
parents:
11778
diff
changeset
|
92 Lisp_Object Vprefix_arg; |
11349
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
93 |
22385
15200c139d9f
(struct kboard): New elts Vreal_last_command and Vlast_prefix_arg.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
94 /* Saved prefix argument for the last command, in raw form. */ |
15200c139d9f
(struct kboard): New elts Vreal_last_command and Vlast_prefix_arg.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
95 Lisp_Object Vlast_prefix_arg; |
15200c139d9f
(struct kboard): New elts Vreal_last_command and Vlast_prefix_arg.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
96 |
11349
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
97 /* Unread events specific to this kboard. */ |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
98 Lisp_Object kbd_queue; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
99 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
100 /* Non-nil while a kbd macro is being defined. */ |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
101 Lisp_Object defining_kbd_macro; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
102 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
103 /* The start of storage for the current keyboard macro. */ |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
104 Lisp_Object *kbd_macro_buffer; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
105 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
106 /* Where to store the next keystroke of the macro. */ |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
107 Lisp_Object *kbd_macro_ptr; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
108 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
109 /* The finalized section of the macro starts at kbd_macro_buffer and |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
110 ends before this. This is not the same as kbd_macro_ptr, because |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
111 we advance this to kbd_macro_ptr when a key's command is complete. |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
112 This way, the keystrokes for "end-kbd-macro" are not included in the |
39188
9b80cbcb8915
More commentary about the role of kbd_macro_end.
Eli Zaretskii <eliz@gnu.org>
parents:
32988
diff
changeset
|
113 macro. This also allows us to throw away the events added to the |
9b80cbcb8915
More commentary about the role of kbd_macro_end.
Eli Zaretskii <eliz@gnu.org>
parents:
32988
diff
changeset
|
114 macro by the last command: all the events between kbd_macro_end and |
9b80cbcb8915
More commentary about the role of kbd_macro_end.
Eli Zaretskii <eliz@gnu.org>
parents:
32988
diff
changeset
|
115 kbd_macro_ptr belong to the last command; see |
9b80cbcb8915
More commentary about the role of kbd_macro_end.
Eli Zaretskii <eliz@gnu.org>
parents:
32988
diff
changeset
|
116 cancel-kbd-macro-events. */ |
11349
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
117 Lisp_Object *kbd_macro_end; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
118 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
119 /* Allocated size of kbd_macro_buffer. */ |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
120 int kbd_macro_bufsize; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
121 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
122 /* Last anonymous kbd macro defined. */ |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
123 Lisp_Object Vlast_kbd_macro; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
124 |
11542
08bca45303e3
(struct kboard): New member Vsystem_key_alist.
Karl Heuer <kwzh@gnu.org>
parents:
11367
diff
changeset
|
125 /* Alist of system-specific X windows key symbols. */ |
08bca45303e3
(struct kboard): New member Vsystem_key_alist.
Karl Heuer <kwzh@gnu.org>
parents:
11367
diff
changeset
|
126 Lisp_Object Vsystem_key_alist; |
08bca45303e3
(struct kboard): New member Vsystem_key_alist.
Karl Heuer <kwzh@gnu.org>
parents:
11367
diff
changeset
|
127 |
12174
13759a6c745b
(struct kboard): New member system_key_syms.
Karl Heuer <kwzh@gnu.org>
parents:
12161
diff
changeset
|
128 /* Cache for modify_event_symbol. */ |
13759a6c745b
(struct kboard): New member system_key_syms.
Karl Heuer <kwzh@gnu.org>
parents:
12161
diff
changeset
|
129 Lisp_Object system_key_syms; |
13759a6c745b
(struct kboard): New member system_key_syms.
Karl Heuer <kwzh@gnu.org>
parents:
12161
diff
changeset
|
130 |
85614
9f3a25157e4f
Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85114
diff
changeset
|
131 /* The kind of display: x, w32, ... */ |
9f3a25157e4f
Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85114
diff
changeset
|
132 Lisp_Object Vwindow_system; |
9f3a25157e4f
Make `window-system' into a keyboard-local variable (rather than
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85114
diff
changeset
|
133 |
85106
fd282fb888de
Add new `input-decode-map' keymap and use it for temrinal
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83652
diff
changeset
|
134 /* Keymap mapping keys to alternative preferred forms. |
fd282fb888de
Add new `input-decode-map' keymap and use it for temrinal
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83652
diff
changeset
|
135 See the DEFVAR for more documentation. */ |
83346
7372c2f9daac
Rename function-key-map to local-function-key-map, and global-function-key-map to function-key-map. Same for key-translation-map.
Karoly Lorentey <lorentey@elte.hu>
parents:
83342
diff
changeset
|
136 Lisp_Object Vlocal_function_key_map; |
83315
13371344a3ba
Make function-key-map a terminal-local variable (move it inside the kboard struct).
Karoly Lorentey <lorentey@elte.hu>
parents:
83224
diff
changeset
|
137 |
85106
fd282fb888de
Add new `input-decode-map' keymap and use it for temrinal
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83652
diff
changeset
|
138 /* Keymap mapping ASCII function key sequences onto their preferred |
fd282fb888de
Add new `input-decode-map' keymap and use it for temrinal
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83652
diff
changeset
|
139 forms. Initialized by the terminal-specific lisp files. See the |
fd282fb888de
Add new `input-decode-map' keymap and use it for temrinal
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83652
diff
changeset
|
140 DEFVAR for more documentation. */ |
fd282fb888de
Add new `input-decode-map' keymap and use it for temrinal
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83652
diff
changeset
|
141 Lisp_Object Vinput_decode_map; |
fd282fb888de
Add new `input-decode-map' keymap and use it for temrinal
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83652
diff
changeset
|
142 |
11778
37cb8613ee69
(struct kboard): New member Vdefault_minibuffer_frame.
Karl Heuer <kwzh@gnu.org>
parents:
11542
diff
changeset
|
143 /* Minibufferless frames on this display use this frame's minibuffer. */ |
37cb8613ee69
(struct kboard): New member Vdefault_minibuffer_frame.
Karl Heuer <kwzh@gnu.org>
parents:
11542
diff
changeset
|
144 Lisp_Object Vdefault_minibuffer_frame; |
37cb8613ee69
(struct kboard): New member Vdefault_minibuffer_frame.
Karl Heuer <kwzh@gnu.org>
parents:
11542
diff
changeset
|
145 |
11349
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
146 /* Number of displays using this KBOARD. Normally 1, but can be |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
147 larger when you have multiple screens on a single X display. */ |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
148 int reference_count; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
149 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
150 /* The text we're echoing in the modeline - partial key sequences, |
43749 | 151 usually. This is nil when not echoing. */ |
152 Lisp_Object echo_string; | |
11349
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
153 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
154 /* This flag indicates that events were put into kbd_queue |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
155 while Emacs was running for some other KBOARD. |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
156 The flag means that, when Emacs goes into the any-kboard state again, |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
157 it should check this KBOARD to see if there is a complete command |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
158 waiting. |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
159 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
160 Note that the kbd_queue field can be non-nil even when |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
161 kbd_queue_has_data is 0. When we push back an incomplete |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
162 command, then this flag is 0, meaning we don't want to try |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
163 reading from this KBOARD again until more input arrives. */ |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
164 char kbd_queue_has_data; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
165 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
166 /* Nonzero means echo each character as typed. */ |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
167 char immediate_echo; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
168 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
169 /* If we have echoed a prompt string specified by the user, |
43749 | 170 this is its length in characters. Otherwise this is -1. */ |
11349
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
171 char echo_after_prompt; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
172 }; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
173 |
82991
2b26656ff804
MULTI_KBOARD support for ttys. Input-related bugfixes for X+tty sessions.
Karoly Lorentey <lorentey@elte.hu>
parents:
53179
diff
changeset
|
174 /* Temporarily used before a frame has been opened. */ |
11349
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
175 extern KBOARD *initial_kboard; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
176 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
177 /* In the single-kboard state, this is the kboard |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
178 from which input is accepted. |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
179 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
180 In the any-kboard state, this is the kboard from which we are |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
181 right now considering input. We can consider input from another |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
182 kboard, but doing so requires throwing to wrong_kboard_jmpbuf. */ |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
183 extern KBOARD *current_kboard; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
184 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
185 /* A list of all kboard objects, linked through next_kboard. */ |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
186 extern KBOARD *all_kboards; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
187 |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
188 /* Nonzero in the single-kboard state, 0 in the any-kboard state. */ |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
189 extern int single_kboard; |
3b1d5cf74c93
(single_kboard): Renamed from kboard_locked. All refs renamed.
Richard M. Stallman <rms@gnu.org>
parents:
9141
diff
changeset
|
190 |
518 | 191 /* Total number of times read_char has returned. */ |
17875
66e8848c9c49
(num_input_events, num_nonmacro_input_events):
Richard M. Stallman <rms@gnu.org>
parents:
16051
diff
changeset
|
192 extern int num_input_events; |
518 | 193 |
1191
4a1b4379eb53
* keyboard.h (num_nonmacro_input_chars): Added extern declaration
Jim Blandy <jimb@redhat.com>
parents:
1113
diff
changeset
|
194 /* Total number of times read_char has returned, outside of macros. */ |
43713
f92c4d87863a
Change defvar_int def and vars to use EMACS_INT instead of just int.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43279
diff
changeset
|
195 extern EMACS_INT num_nonmacro_input_events; |
1191
4a1b4379eb53
* keyboard.h (num_nonmacro_input_chars): Added extern declaration
Jim Blandy <jimb@redhat.com>
parents:
1113
diff
changeset
|
196 |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
2961
diff
changeset
|
197 /* Nonzero means polling for input is temporarily suppressed. */ |
518 | 198 extern int poll_suppress_count; |
199 | |
1440
8c27b145955a
* keyboard.h (this_command_keys): Extern declaration changed. Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1387
diff
changeset
|
200 /* Vector holding the key sequence that invoked the current command. |
8c27b145955a
* keyboard.h (this_command_keys): Extern declaration changed. Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1387
diff
changeset
|
201 It is reused for each command, and it may be longer than the current |
8c27b145955a
* keyboard.h (this_command_keys): Extern declaration changed. Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1387
diff
changeset
|
202 sequence; this_command_key_count indicates how many elements |
8c27b145955a
* keyboard.h (this_command_keys): Extern declaration changed. Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1387
diff
changeset
|
203 actually mean something. */ |
8c27b145955a
* keyboard.h (this_command_keys): Extern declaration changed. Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1387
diff
changeset
|
204 extern Lisp_Object this_command_keys; |
8c27b145955a
* keyboard.h (this_command_keys): Extern declaration changed. Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1387
diff
changeset
|
205 extern int this_command_key_count; |
1387
774897fea33a
* keyboard.h (Qswitch_frame): Declare this extern.
Jim Blandy <jimb@redhat.com>
parents:
1313
diff
changeset
|
206 |
1989
b1c1ab20f810
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
207 /* The frame in which the last input event occurred, or Qmacro if the |
b1c1ab20f810
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
208 last event came from a macro. We use this to determine when to |
b1c1ab20f810
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
209 generate switch-frame events. This may be cleared by functions |
b1c1ab20f810
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
210 like Fselect_frame, to make sure that a switch-frame event is |
b1c1ab20f810
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
211 generated by the next character. */ |
2172
9e84120ecc0a
* keyboard.h (internal_last_event_frame): This should be extern,
Jim Blandy <jimb@redhat.com>
parents:
1989
diff
changeset
|
212 extern Lisp_Object internal_last_event_frame; |
518 | 213 |
95648
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
214 /* Menu items. */ |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
215 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
216 extern Lisp_Object Vlucid_menu_bar_dirty_flag; |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
217 extern Lisp_Object Qrecompute_lucid_menubar, Qactivate_menubar_hook; |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
218 |
21297
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
219 /* This holds a Lisp vector that holds the properties of a single |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
220 menu item while decoding it in parse_menu_item. |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
221 Using a Lisp vector to hold this information while we decode it |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
222 takes care of protecting all the data from GC. */ |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
223 extern Lisp_Object item_properties; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
43749
diff
changeset
|
224 |
21297
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
225 /* This describes the elements of item_properties. |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
226 The first element is not a property, it is a pointer to the item properties |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
227 that is saved for GC protection. */ |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
228 #define ITEM_PROPERTY_ITEM 0 |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
229 /* The item string. */ |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
230 #define ITEM_PROPERTY_NAME 1 |
43279 | 231 /* Start of initialize to nil */ |
21297
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
232 /* The binding: nil, a command or a keymap. */ |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
233 #define ITEM_PROPERTY_DEF 2 |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
234 /* The keymap if the binding is a keymap, otherwise nil. */ |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
235 #define ITEM_PROPERTY_MAP 3 |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
236 /* Nil, :radio or :toggle. */ |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
237 #define ITEM_PROPERTY_TYPE 4 |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
238 /* Nil or a string describing an equivalent key binding. */ |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
239 #define ITEM_PROPERTY_KEYEQ 5 |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
240 /* Not nil if a selected toggle box or radio button, otherwise nil. */ |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
241 #define ITEM_PROPERTY_SELECTED 6 |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
242 /* Place for a help string. Not yet used. */ |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
243 #define ITEM_PROPERTY_HELP 7 |
43279 | 244 /* Start of initialize to t */ |
21297
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
245 /* Last property. */ |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
246 /* Not nil if item is enabled. */ |
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
247 #define ITEM_PROPERTY_ENABLE 8 |
95648
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
248 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
249 /* This holds a Lisp vector that holds the results of decoding |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
250 the keymaps or alist-of-alists that specify a menu. |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
251 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
252 It describes the panes and items within the panes. |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
253 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
254 Each pane is described by 3 elements in the vector: |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
255 t, the pane name, the pane's prefix key. |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
256 Then follow the pane's items, with 5 elements per item: |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
257 the item string, the enable flag, the item's value, |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
258 the definition, and the equivalent keyboard key's description string. |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
259 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
260 In some cases, multiple levels of menus may be described. |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
261 A single vector slot containing nil indicates the start of a submenu. |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
262 A single vector slot containing lambda indicates the end of a submenu. |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
263 The submenu follows a menu item which is the way to reach the submenu. |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
264 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
265 A single vector slot containing quote indicates that the |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
266 following items should appear on the right of a dialog box. |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
267 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
268 Using a Lisp vector to hold this information while we decode it |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
269 takes care of protecting all the data from GC. */ |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
270 extern Lisp_Object menu_items; |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
271 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
272 /* If non-nil, means that the global vars defined here are already in use. |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
273 Used to detect cases where we try to re-enter this non-reentrant code. */ |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
274 extern Lisp_Object menu_items_inuse; |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
275 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
276 /* Number of slots currently allocated in menu_items. */ |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
277 extern int menu_items_allocated; |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
278 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
279 /* This is the index in menu_items of the first empty slot. */ |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
280 extern int menu_items_used; |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
281 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
282 /* The number of panes currently recorded in menu_items, |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
283 excluding those within submenus. */ |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
284 extern int menu_items_n_panes; |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
285 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
286 #define MENU_ITEMS_PANE_NAME 1 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
287 #define MENU_ITEMS_PANE_PREFIX 2 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
288 #define MENU_ITEMS_PANE_LENGTH 3 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
289 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
290 enum menu_item_idx |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
291 { |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
292 MENU_ITEMS_ITEM_NAME = 0, |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
293 MENU_ITEMS_ITEM_ENABLE, |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
294 MENU_ITEMS_ITEM_VALUE, |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
295 MENU_ITEMS_ITEM_EQUIV_KEY, |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
296 MENU_ITEMS_ITEM_DEFINITION, |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
297 MENU_ITEMS_ITEM_TYPE, |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
298 MENU_ITEMS_ITEM_SELECTED, |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
299 MENU_ITEMS_ITEM_HELP, |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
300 MENU_ITEMS_ITEM_LENGTH |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
301 }; |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
302 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
303 extern Lisp_Object unuse_menu_items P_ ((Lisp_Object dummy)); |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
304 |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
305 /* This is how to deal with multibyte text if HAVE_MULTILINGUAL_MENU |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
306 isn't defined. The use of HAVE_MULTILINGUAL_MENU could probably be |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
307 confined to an extended version of this with sections of code below |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
308 using it unconditionally. */ |
95655
9a50a852d447
* Makefile.in (obj): Always add menu.o
Andreas Schwab <schwab@suse.de>
parents:
95648
diff
changeset
|
309 #ifndef HAVE_NTGUI |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
310 #if defined (USE_GTK) || defined (HAVE_NS) |
95648
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
311 # define ENCODE_MENU_STRING(str) ENCODE_UTF_8 (str) |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
312 #elif defined HAVE_X_I18N |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
313 #define ENCODE_MENU_STRING(str) ENCODE_SYSTEM (str) |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
314 #else |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
315 #define ENCODE_MENU_STRING(str) string_make_unibyte (str) |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
316 #endif /* USE_GTK */ |
95655
9a50a852d447
* Makefile.in (obj): Always add menu.o
Andreas Schwab <schwab@suse.de>
parents:
95648
diff
changeset
|
317 #else /* HAVE_NTGUI */ |
95648
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
318 #define ENCODE_MENU_STRING(str) (str) |
946366db5ee6
Relocate platform-independent menu definitions from xmenu.c.
Chong Yidong <cyd@stupidchicken.com>
parents:
94994
diff
changeset
|
319 #endif |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
320 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
321 #if defined (HAVE_NS) || defined (HAVE_NTGUI) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
322 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
323 typedef void * XtPointer; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
324 typedef unsigned char Boolean; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
325 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
326 /* Definitions copied from lwlib.h */ |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
327 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
328 enum button_type |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
329 { |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
330 BUTTON_TYPE_NONE, |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
331 BUTTON_TYPE_TOGGLE, |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
332 BUTTON_TYPE_RADIO |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
333 }; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
334 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
335 /* This structure is based on the one in ../lwlib/lwlib.h, with unused portions |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
336 removed. No term uses these. */ |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
337 typedef struct _widget_value |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
338 { |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
339 /* name of widget */ |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
340 Lisp_Object lname; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
341 char* name; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
342 /* value (meaning depend on widget type) */ |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
343 char* value; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
344 /* keyboard equivalent. no implications for XtTranslations */ |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
345 Lisp_Object lkey; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
346 char* key; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
347 /* Help string or nil if none. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
348 GC finds this string through the frame's menu_bar_vector |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
349 or through menu_items. */ |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
350 Lisp_Object help; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
351 /* true if enabled */ |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
352 Boolean enabled; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
353 /* true if selected */ |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
354 Boolean selected; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
355 /* The type of a button. */ |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
356 enum button_type button_type; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
357 #if defined (HAVE_NTGUI) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
358 /* true if menu title */ |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
359 Boolean title; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
360 #endif |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
361 /* Contents of the sub-widgets, also selected slot for checkbox */ |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
362 struct _widget_value* contents; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
363 /* data passed to callback */ |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
364 XtPointer call_data; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
365 /* next one in the list */ |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
366 struct _widget_value* next; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
367 } widget_value; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
95655
diff
changeset
|
368 |
97198
cf43f4e3ecc8
clear warnings and clean up NS port
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
97141
diff
changeset
|
369 extern widget_value *xmalloc_widget_value P_ ((void)); |
cf43f4e3ecc8
clear warnings and clean up NS port
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
97141
diff
changeset
|
370 extern widget_value *digest_single_submenu P_ ((int, int, int)); |
97266
80acedef7417
cleanup in s/darwin.h, define DARWIN_OS and use it instead of DARWIN and/or MAC_OSX; also, nsterm.m: small unrelated cleanups
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
97202
diff
changeset
|
371 #endif /* HAVE_NS || HAVE_NTGUI */ |
97198
cf43f4e3ecc8
clear warnings and clean up NS port
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
97141
diff
changeset
|
372 |
21297
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
373 |
518 | 374 /* Macros for dealing with lispy events. */ |
375 | |
78501 | 376 /* True if EVENT has data fields describing it (i.e. a mouse click). */ |
9141
e309bb9ccdc0
(EVENT_HAS_PARAMETERS): Use type test macros.
Karl Heuer <kwzh@gnu.org>
parents:
8654
diff
changeset
|
377 #define EVENT_HAS_PARAMETERS(event) (CONSP (event)) |
1311
339a82d29dfa
* keyboard.h (EVENT_HAS_PARAMETERS): Definition changed - all events
Jim Blandy <jimb@redhat.com>
parents:
1191
diff
changeset
|
378 |
1313 | 379 /* Extract the head from an event. |
380 This works on composite and simple events. */ | |
1311
339a82d29dfa
* keyboard.h (EVENT_HAS_PARAMETERS): Definition changed - all events
Jim Blandy <jimb@redhat.com>
parents:
1191
diff
changeset
|
381 #define EVENT_HEAD(event) \ |
25640 | 382 (EVENT_HAS_PARAMETERS (event) ? XCAR (event) : (event)) |
518 | 383 |
1313 | 384 /* Extract the starting and ending positions from a composite event. */ |
25640 | 385 #define EVENT_START(event) (XCAR (XCDR (event))) |
386 #define EVENT_END(event) (XCAR (XCDR (XCDR (event)))) | |
1311
339a82d29dfa
* keyboard.h (EVENT_HAS_PARAMETERS): Definition changed - all events
Jim Blandy <jimb@redhat.com>
parents:
1191
diff
changeset
|
387 |
3990
8ef557c6a30a
* keyboard.h (EVENT_CLICK_COUNT, POSN_SCROLLBAR_PART): New
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
388 /* Extract the click count from a multi-click event. */ |
53179
388eeb8e7158
(EVENT_CLICK_COUNT, POSN_SCROLLBAR_PART): Fix defines.
Kim F. Storm <storm@cua.dk>
parents:
52401
diff
changeset
|
389 #define EVENT_CLICK_COUNT(event) (Fnth (make_number (2), (event))) |
3990
8ef557c6a30a
* keyboard.h (EVENT_CLICK_COUNT, POSN_SCROLLBAR_PART): New
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
390 |
1313 | 391 /* Extract the fields of a position. */ |
25640 | 392 #define POSN_WINDOW(posn) (XCAR (posn)) |
53516
d8b5f748ccdd
(POSN_POSN, POSN_SET_POSN): Rename macros from
Kim F. Storm <storm@cua.dk>
parents:
53179
diff
changeset
|
393 #define POSN_POSN(posn) (XCAR (XCDR (posn))) |
d8b5f748ccdd
(POSN_POSN, POSN_SET_POSN): Rename macros from
Kim F. Storm <storm@cua.dk>
parents:
53179
diff
changeset
|
394 #define POSN_SET_POSN(posn,x) (XSETCAR (XCDR (posn), (x))) |
25640 | 395 #define POSN_WINDOW_POSN(posn) (XCAR (XCDR (XCDR (posn)))) |
53516
d8b5f748ccdd
(POSN_POSN, POSN_SET_POSN): Rename macros from
Kim F. Storm <storm@cua.dk>
parents:
53179
diff
changeset
|
396 #define POSN_TIMESTAMP(posn) (XCAR (XCDR (XCDR (XCDR (posn))))) |
53179
388eeb8e7158
(EVENT_CLICK_COUNT, POSN_SCROLLBAR_PART): Fix defines.
Kim F. Storm <storm@cua.dk>
parents:
52401
diff
changeset
|
397 #define POSN_SCROLLBAR_PART(posn) (Fnth (make_number (4), (posn))) |
518 | 398 |
25020 | 399 /* A cons (STRING . STRING-CHARPOS), or nil in mouse-click events. |
400 It's a cons if the click is over a string in the mode line. */ | |
401 | |
53516
d8b5f748ccdd
(POSN_POSN, POSN_SET_POSN): Rename macros from
Kim F. Storm <storm@cua.dk>
parents:
53179
diff
changeset
|
402 #define POSN_STRING(posn) (Fnth (make_number (4), (posn))) |
d8b5f748ccdd
(POSN_POSN, POSN_SET_POSN): Rename macros from
Kim F. Storm <storm@cua.dk>
parents:
53179
diff
changeset
|
403 |
d8b5f748ccdd
(POSN_POSN, POSN_SET_POSN): Rename macros from
Kim F. Storm <storm@cua.dk>
parents:
53179
diff
changeset
|
404 /* If POSN_STRING is nil, event refers to buffer location. */ |
d8b5f748ccdd
(POSN_POSN, POSN_SET_POSN): Rename macros from
Kim F. Storm <storm@cua.dk>
parents:
53179
diff
changeset
|
405 |
d8b5f748ccdd
(POSN_POSN, POSN_SET_POSN): Rename macros from
Kim F. Storm <storm@cua.dk>
parents:
53179
diff
changeset
|
406 #define POSN_INBUFFER_P(posn) (NILP (POSN_STRING (posn))) |
d8b5f748ccdd
(POSN_POSN, POSN_SET_POSN): Rename macros from
Kim F. Storm <storm@cua.dk>
parents:
53179
diff
changeset
|
407 #define POSN_BUFFER_POSN(posn) (Fnth (make_number (5), (posn))) |
25020 | 408 |
518 | 409 /* Some of the event heads. */ |
1387
774897fea33a
* keyboard.h (Qswitch_frame): Declare this extern.
Jim Blandy <jimb@redhat.com>
parents:
1313
diff
changeset
|
410 extern Lisp_Object Qswitch_frame; |
518 | 411 |
412 /* Properties on event heads. */ | |
1311
339a82d29dfa
* keyboard.h (EVENT_HAS_PARAMETERS): Definition changed - all events
Jim Blandy <jimb@redhat.com>
parents:
1191
diff
changeset
|
413 extern Lisp_Object Qevent_kind, Qevent_symbol_elements; |
518 | 414 |
415 /* Getting an unmodified version of an event head. */ | |
416 #define EVENT_HEAD_UNMODIFIED(event_head) \ | |
1311
339a82d29dfa
* keyboard.h (EVENT_HAS_PARAMETERS): Definition changed - all events
Jim Blandy <jimb@redhat.com>
parents:
1191
diff
changeset
|
417 (Fcar (Fget ((event_head), Qevent_symbol_elements))) |
518 | 418 |
419 /* The values of Qevent_kind properties. */ | |
420 extern Lisp_Object Qfunction_key, Qmouse_click, Qmouse_movement; | |
1989
b1c1ab20f810
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
421 extern Lisp_Object Qscroll_bar_movement; |
518 | 422 |
423 /* Getting the kind of an event head. */ | |
424 #define EVENT_HEAD_KIND(event_head) \ | |
425 (Fget ((event_head), Qevent_kind)) | |
426 | |
427 /* Symbols to use for non-text mouse positions. */ | |
25546 | 428 extern Lisp_Object Qmode_line, Qvertical_line, Qheader_line; |
518 | 429 |
20318
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
430 /* Forward declaration for prototypes. */ |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
431 struct input_event; |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
432 |
23799
0bf811ce5c67
(parse_modifiers): Declare prototype.
Geoff Voelker <voelker@cs.washington.edu>
parents:
22385
diff
changeset
|
433 extern Lisp_Object parse_modifiers P_ ((Lisp_Object)); |
20318
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
434 extern Lisp_Object reorder_modifiers P_ ((Lisp_Object)); |
72134
594b286900a3
* keyboard.h: Include systime.h. Update read_char prototype.
Chong Yidong <cyd@stupidchicken.com>
parents:
68651
diff
changeset
|
435 extern Lisp_Object read_char P_ ((int, int, Lisp_Object *, Lisp_Object, |
594b286900a3
* keyboard.h: Include systime.h. Update read_char prototype.
Chong Yidong <cyd@stupidchicken.com>
parents:
68651
diff
changeset
|
436 int *, EMACS_TIME *)); |
96747
ebf3bd5f0017
* keymap.c: Remove all NS-specific code.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96675
diff
changeset
|
437 extern int parse_solitary_modifier (Lisp_Object symbol); |
83533 | 438 |
1113 | 439 |
83346
7372c2f9daac
Rename function-key-map to local-function-key-map, and global-function-key-map to function-key-map. Same for key-translation-map.
Karoly Lorentey <lorentey@elte.hu>
parents:
83342
diff
changeset
|
440 /* Parent keymap of terminal-local function-key-map instances. */ |
7372c2f9daac
Rename function-key-map to local-function-key-map, and global-function-key-map to function-key-map. Same for key-translation-map.
Karoly Lorentey <lorentey@elte.hu>
parents:
83342
diff
changeset
|
441 extern Lisp_Object Vfunction_key_map; |
7372c2f9daac
Rename function-key-map to local-function-key-map, and global-function-key-map to function-key-map. Same for key-translation-map.
Karoly Lorentey <lorentey@elte.hu>
parents:
83342
diff
changeset
|
442 |
85106
fd282fb888de
Add new `input-decode-map' keymap and use it for temrinal
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83652
diff
changeset
|
443 /* Keymap of key translations that can override keymaps. */ |
83346
7372c2f9daac
Rename function-key-map to local-function-key-map, and global-function-key-map to function-key-map. Same for key-translation-map.
Karoly Lorentey <lorentey@elte.hu>
parents:
83342
diff
changeset
|
444 extern Lisp_Object Vkey_translation_map; |
1113 | 445 |
21515 | 446 extern int parse_menu_item P_ ((Lisp_Object, int, int)); |
21297
41ed45a73873
(item_properties): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20318
diff
changeset
|
447 |
20318
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
448 extern void echo_now P_ ((void)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
449 extern void init_kboard P_ ((KBOARD *)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
450 extern void delete_kboard P_ ((KBOARD *)); |
56526
6740a7016dea
(not_single_kboard_state): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
54164
diff
changeset
|
451 extern void not_single_kboard_state P_ ((KBOARD *)); |
83374
0b75ace4f7ad
Fix crash after y-or-n-p prompt triggered by emacsclient. (Reported by Han Boetes, analysis by Kalle Olavi Niemitalo.)
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
452 extern void push_kboard P_ ((struct kboard *)); |
20318
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
453 extern void push_frame_kboard P_ ((struct frame *)); |
83374
0b75ace4f7ad
Fix crash after y-or-n-p prompt triggered by emacsclient. (Reported by Han Boetes, analysis by Kalle Olavi Niemitalo.)
Karoly Lorentey <lorentey@elte.hu>
parents:
83353
diff
changeset
|
454 extern void pop_kboard P_ ((void)); |
83449
ff74a86c2b16
Overhaul and simplify single_kboard API. Allow calls to `recursive-edit' in process filters. Small fixes.
Karoly Lorentey <lorentey@elte.hu>
parents:
83431
diff
changeset
|
455 extern void temporarily_switch_to_single_kboard P_ ((struct frame *)); |
20318
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
456 extern void record_asynch_buffer_change P_ ((void)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
457 extern SIGTYPE input_poll_signal P_ ((int)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
458 extern void start_polling P_ ((void)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
459 extern void stop_polling P_ ((void)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
460 extern void set_poll_suppress_count P_ ((int)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
461 extern void gobble_input P_ ((int)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
462 extern int input_polling_used P_ ((void)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
463 extern void clear_input_pending P_ ((void)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
464 extern int requeued_events_pending_p P_ ((void)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
465 extern void bind_polling_period P_ ((int)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
466 extern void stuff_buffered_input P_ ((Lisp_Object)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
467 extern void clear_waiting_for_input P_ ((void)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
468 extern void swallow_events P_ ((int)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
469 extern int help_char_p P_ ((Lisp_Object)); |
31873
3440ceda4745
(quit_throw_to_read_char): Declare NO_RETURN.
Gerd Moellmann <gerd@gnu.org>
parents:
31012
diff
changeset
|
470 extern void quit_throw_to_read_char P_ ((void)) NO_RETURN; |
20318
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
471 extern void cmd_error_internal P_ ((Lisp_Object, char *)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
472 extern int lucid_event_type_list_p P_ ((Lisp_Object)); |
1507c5324f4c
Add prototypes and more function declarations.
Andreas Schwab <schwab@suse.de>
parents:
17875
diff
changeset
|
473 extern void kbd_buffer_store_event P_ ((struct input_event *)); |
54164
fe5d50158fb4
(kbd_buffer_store_event_hold): Add prototype.
Kim F. Storm <storm@cua.dk>
parents:
53516
diff
changeset
|
474 extern void kbd_buffer_store_event_hold P_ ((struct input_event *, |
fe5d50158fb4
(kbd_buffer_store_event_hold): Add prototype.
Kim F. Storm <storm@cua.dk>
parents:
53516
diff
changeset
|
475 struct input_event *)); |
57951
fbbae2d9a2f4
(kbd_buffer_unget_event): Add prototype.
Kim F. Storm <storm@cua.dk>
parents:
57411
diff
changeset
|
476 extern void kbd_buffer_unget_event P_ ((struct input_event *)); |
29783 | 477 #ifdef POLL_FOR_INPUT |
478 extern void poll_for_input_1 P_ ((void)); | |
479 #endif | |
30301
5584f2db8500
(show_help_echo, gen_help_event): Change prototypes.
Gerd Moellmann <gerd@gnu.org>
parents:
30213
diff
changeset
|
480 extern void show_help_echo P_ ((Lisp_Object, Lisp_Object, Lisp_Object, |
5584f2db8500
(show_help_echo, gen_help_event): Change prototypes.
Gerd Moellmann <gerd@gnu.org>
parents:
30213
diff
changeset
|
481 Lisp_Object, int)); |
54164
fe5d50158fb4
(kbd_buffer_store_event_hold): Add prototype.
Kim F. Storm <storm@cua.dk>
parents:
53516
diff
changeset
|
482 extern void gen_help_event P_ ((Lisp_Object, Lisp_Object, Lisp_Object, |
fe5d50158fb4
(kbd_buffer_store_event_hold): Add prototype.
Kim F. Storm <storm@cua.dk>
parents:
53516
diff
changeset
|
483 Lisp_Object, int)); |
30213
a6cb500e4bc6
(gen_help_event, kbd_buffer_store_help_event):
Gerd Moellmann <gerd@gnu.org>
parents:
30143
diff
changeset
|
484 extern void kbd_buffer_store_help_event P_ ((Lisp_Object, Lisp_Object)); |
30676
13034314ea4c
(menu_item_eval_property): Declare.
Ken Raeburn <raeburn@raeburn.org>
parents:
30301
diff
changeset
|
485 extern Lisp_Object menu_item_eval_property P_ ((Lisp_Object)); |
30710
17973241c0d2
(kbd_buffer_events_waiting): Add prototype.
Eli Zaretskii <eliz@gnu.org>
parents:
30676
diff
changeset
|
486 extern int kbd_buffer_events_waiting P_ ((int)); |
74612
e0cd1d7ea60c
(add_user_signals): Add extern.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
72541
diff
changeset
|
487 extern void add_user_signals P_ ((int, const char *)); |
52401 | 488 |
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
489 extern int tty_read_avail_input P_ ((struct terminal *, int, |
83067 | 490 struct input_event *)); |
83011
c4d4cbf86260
Changed tty input code to use read_socket_hook.
Karoly Lorentey <lorentey@elte.hu>
parents:
83010
diff
changeset
|
491 |
52401 | 492 /* arch-tag: 769cbade-1ba9-4950-b886-db265b061aa3 |
493 (do not change this comment) */ |