83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
1 /* Parameters and display hooks for terminal devices.
|
75227
|
2 Copyright (C) 1985, 1986, 1993, 1994, 2001, 2002, 2003, 2004,
|
79759
|
3 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
296
|
4
|
|
5 This file is part of GNU Emacs.
|
|
6
|
94994
|
7 GNU Emacs is free software: you can redistribute it and/or modify
|
296
|
8 it under the terms of the GNU General Public License as published by
|
94994
|
9 the Free Software Foundation, either version 3 of the License, or
|
|
10 (at your option) any later version.
|
296
|
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
|
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
296
|
19
|
1782
|
20
|
|
21 /* Miscellanea. */
|
|
22
|
25001
|
23 struct glyph;
|
|
24 struct frame;
|
1782
|
25
|
296
|
26
|
1994
|
27 enum scroll_bar_part {
|
|
28 scroll_bar_above_handle,
|
|
29 scroll_bar_handle,
|
15176
|
30 scroll_bar_below_handle,
|
|
31 scroll_bar_up_arrow,
|
25001
|
32 scroll_bar_down_arrow,
|
|
33 scroll_bar_to_top,
|
|
34 scroll_bar_to_bottom,
|
26787
|
35 scroll_bar_end_scroll,
|
|
36 scroll_bar_move_ratio
|
1717
|
37 };
|
|
38
|
73863
|
39 /* If the value of the frame parameter changed, whis hook is called.
|
|
40 For example, if going from fullscreen to not fullscreen this hook
|
|
41 may do something OS dependent, like extended window manager hints on X11. */
|
|
42 extern void (*fullscreen_hook) P_ ((struct frame *f));
|
|
43
|
1782
|
44
|
|
45 /* Input queue declarations and hooks. */
|
1717
|
46
|
296
|
47 /* Expedient hack: only provide the below definitions to files that
|
78501
|
48 are prepared to handle lispy things. CONSP is defined if lisp.h
|
485
|
49 has been included before this file. */
|
4143
|
50 #ifdef CONSP
|
296
|
51
|
2186
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
52 enum event_kind
|
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
53 {
|
45803
|
54 NO_EVENT, /* nothing happened. This should never
|
296
|
55 actually appear in the event queue. */
|
4799
|
56
|
45803
|
57 ASCII_KEYSTROKE_EVENT, /* The ASCII code is in .code, perhaps
|
4799
|
58 with modifiers applied.
|
|
59 .modifiers holds the state of the
|
|
60 modifier keys.
|
1782
|
61 .frame_or_window is the frame in
|
|
62 which the key was typed.
|
485
|
63 .timestamp gives a timestamp (in
|
|
64 milliseconds) for the keystroke. */
|
45803
|
65 MULTIBYTE_CHAR_KEYSTROKE_EVENT, /* The multibyte char code is in .code,
|
30750
|
66 perhaps with modifiers applied.
|
|
67 The others are the same as
|
48090
|
68 ASCII_KEYSTROKE_EVENT. */
|
45803
|
69 NON_ASCII_KEYSTROKE_EVENT, /* .code is a number identifying the
|
296
|
70 function key. A code N represents
|
|
71 a key whose name is
|
|
72 function_key_names[N]; function_key_names
|
|
73 is a table in keyboard.c to which you
|
|
74 should feel free to add missing keys.
|
|
75 .modifiers holds the state of the
|
338
|
76 modifier keys.
|
1782
|
77 .frame_or_window is the frame in
|
|
78 which the key was typed.
|
485
|
79 .timestamp gives a timestamp (in
|
|
80 milliseconds) for the keystroke. */
|
45803
|
81 TIMER_EVENT, /* A timer fired. */
|
|
82 MOUSE_CLICK_EVENT, /* The button number is in .code; it must
|
1312
|
83 be >= 0 and < NUM_MOUSE_BUTTONS, defined
|
|
84 below.
|
296
|
85 .modifiers holds the state of the
|
|
86 modifier keys.
|
|
87 .x and .y give the mouse position,
|
708
|
88 in characters, within the window.
|
1782
|
89 .frame_or_window gives the frame
|
|
90 the mouse click occurred in.
|
296
|
91 .timestamp gives a timestamp (in
|
|
92 milliseconds) for the click. */
|
51383
|
93 WHEEL_EVENT, /* A wheel event is generated by a
|
|
94 wheel on a mouse (e.g., MS
|
|
95 Intellimouse).
|
|
96 .modifiers holds the rotate
|
|
97 direction (up or down), and the
|
|
98 state of the modifier keys.
|
|
99 .x and .y give the mouse position,
|
|
100 in characters, within the window.
|
|
101 .frame_or_window gives the frame
|
|
102 the wheel event occurred in.
|
|
103 .timestamp gives a timestamp (in
|
|
104 milliseconds) for the event. */
|
83880
|
105 HORIZ_WHEEL_EVENT, /* A wheel event generated by a second
|
|
106 horizontal wheel that is present on some
|
|
107 mice. See WHEEL_EVENT. */
|
61501
1ccfb57e0ed0
(enum event_kind) [MAC_OS]: Add LANGUAGE_CHANGE_EVENT.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
108 #if defined (WINDOWSNT) || defined (MAC_OS)
|
1ccfb57e0ed0
(enum event_kind) [MAC_OS]: Add LANGUAGE_CHANGE_EVENT.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
109 LANGUAGE_CHANGE_EVENT, /* A LANGUAGE_CHANGE_EVENT is
|
1ccfb57e0ed0
(enum event_kind) [MAC_OS]: Add LANGUAGE_CHANGE_EVENT.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
110 generated on WINDOWSNT or Mac OS
|
1ccfb57e0ed0
(enum event_kind) [MAC_OS]: Add LANGUAGE_CHANGE_EVENT.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
111 when the keyboard layout or input
|
1ccfb57e0ed0
(enum event_kind) [MAC_OS]: Add LANGUAGE_CHANGE_EVENT.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
112 language is changed by the
|
23800
|
113 user. */
|
19700
|
114 #endif
|
45803
|
115 SCROLL_BAR_CLICK_EVENT, /* .code gives the number of the mouse button
|
1717
|
116 that was clicked.
|
|
117 .modifiers holds the state of the modifier
|
|
118 keys.
|
296
|
119 .part is a lisp symbol indicating which
|
1994
|
120 part of the scroll bar got clicked.
|
1717
|
121 .x gives the distance from the start of the
|
|
122 scroll bar of the click; .y gives the total
|
|
123 length of the scroll bar.
|
1782
|
124 .frame_or_window gives the window
|
1994
|
125 whose scroll bar was clicked in.
|
296
|
126 .timestamp gives a timestamp (in
|
|
127 milliseconds) for the click. */
|
45803
|
128 SELECTION_REQUEST_EVENT, /* Another X client wants a selection from us.
|
67460
d74c30ee3772
(enum event_kind) [MAC_OS]: Add new MAC_APPLE_EVENT event.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
129 See `struct selection_input_event'. */
|
45803
|
130 SELECTION_CLEAR_EVENT, /* Another X client cleared our selection. */
|
|
131 BUFFER_SWITCH_EVENT, /* A process filter has switched buffers. */
|
|
132 DELETE_WINDOW_EVENT, /* An X client said "delete this window". */
|
30175
|
133 MENU_BAR_EVENT, /* An event generated by the menu bar.
|
10798
|
134 The frame_or_window field's cdr holds the
|
7097
|
135 Lisp-level event value.
|
|
136 (Only the toolkit version uses these.) */
|
45803
|
137 ICONIFY_EVENT, /* An X client iconified this window. */
|
|
138 DEICONIFY_EVENT, /* An X client deiconified this window. */
|
|
139 MENU_BAR_ACTIVATE_EVENT, /* A button press in the menu bar
|
12660
|
140 (toolkit version only). */
|
45803
|
141 DRAG_N_DROP_EVENT, /* A drag-n-drop event is generated when
|
21889
|
142 files selected outside of Emacs are dropped
|
|
143 onto an Emacs window.
|
49600
|
144 .modifiers holds the state of the
|
21889
|
145 modifier keys.
|
|
146 .x and .y give the mouse position,
|
|
147 in characters, within the window.
|
67668
8926adaaf30f
(struct input_event): Fix comment for DRAG_N_DROP_EVENT.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
148 .frame_or_window is the frame in
|
8926adaaf30f
(struct input_event): Fix comment for DRAG_N_DROP_EVENT.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
149 which the drop was made.
|
8926adaaf30f
(struct input_event): Fix comment for DRAG_N_DROP_EVENT.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
150 .arg is a platform-dependent
|
8926adaaf30f
(struct input_event): Fix comment for DRAG_N_DROP_EVENT.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
151 representation of the dropped items.
|
21889
|
152 .timestamp gives a timestamp (in
|
|
153 milliseconds) for the click. */
|
30175
|
154 USER_SIGNAL_EVENT, /* A user signal.
|
|
155 code is a number identifying it,
|
25001
|
156 index into lispy_user_signals. */
|
|
157
|
30175
|
158 /* Help events. Member `frame_or_window' of the input_event is the
|
|
159 frame on which the event occurred, and member `arg' contains
|
|
160 the help to show. */
|
25001
|
161 HELP_EVENT,
|
|
162
|
30175
|
163 /* An event from a tool-bar. Member `arg' of the input event
|
|
164 contains the tool-bar item selected. If `frame_or_window'
|
|
165 and `arg' are equal, this is a prefix event. */
|
29514
|
166 TOOL_BAR_EVENT,
|
|
167
|
|
168 /* Queued from XTread_socket on FocusIn events. Translated into
|
|
169 `switch-frame' events in kbd_buffer_get_event, if necessary. */
|
43813
|
170 FOCUS_IN_EVENT,
|
|
171
|
44299
|
172 /* Generated when mouse moves over window not currently selected. */
|
|
173 SELECT_WINDOW_EVENT,
|
|
174
|
43813
|
175 /* Queued from XTread_socket when session manager sends
|
|
176 save yourself before shutdown. */
|
78779
|
177 SAVE_SESSION_EVENT
|
67460
d74c30ee3772
(enum event_kind) [MAC_OS]: Add new MAC_APPLE_EVENT event.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
178
|
d74c30ee3772
(enum event_kind) [MAC_OS]: Add new MAC_APPLE_EVENT event.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
179 #ifdef MAC_OS
|
d74c30ee3772
(enum event_kind) [MAC_OS]: Add new MAC_APPLE_EVENT event.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
180 /* Generated when an Apple event, a HICommand event, or a Services
|
d74c30ee3772
(enum event_kind) [MAC_OS]: Add new MAC_APPLE_EVENT event.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
181 menu event is received and the corresponding handler is
|
d74c30ee3772
(enum event_kind) [MAC_OS]: Add new MAC_APPLE_EVENT event.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
182 registered. Members `x' and `y' are for the event class and ID
|
70386
8fd44e40f101
(enum event_kind) [MAC_OS]: Update comment for MAC_APPLE_EVENT.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
183 symbols, respectively. Member `arg' is a Lisp object converted
|
8fd44e40f101
(enum event_kind) [MAC_OS]: Update comment for MAC_APPLE_EVENT.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
184 from the received Apple event. Parameters for non-Apple events
|
8fd44e40f101
(enum event_kind) [MAC_OS]: Update comment for MAC_APPLE_EVENT.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
185 are converted to those in Apple events. */
|
78779
|
186 , MAC_APPLE_EVENT
|
67460
d74c30ee3772
(enum event_kind) [MAC_OS]: Add new MAC_APPLE_EVENT event.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
187 #endif
|
80986
|
188
|
80994
|
189 #ifdef HAVE_GPM
|
85114
|
190 , GPM_CLICK_EVENT
|
67460
d74c30ee3772
(enum event_kind) [MAC_OS]: Add new MAC_APPLE_EVENT event.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
191 #endif
|
85981
|
192
|
86940
|
193 #ifdef HAVE_DBUS
|
|
194 , DBUS_EVENT
|
|
195 #endif
|
|
196
|
85981
|
197 #ifdef WINDOWSNT
|
|
198 /* Generated when an APPCOMMAND event is received, in response to
|
|
199 Multimedia or Internet buttons on some keyboards.
|
|
200 Such keys are available as normal function keys on X through the
|
|
201 Xkeyboard extension.
|
|
202 On Windows, some of them get mapped to normal function key events,
|
|
203 but others need to be handled by APPCOMMAND. Handling them all as
|
|
204 APPCOMMAND events means they can be disabled
|
|
205 (w32-pass-multimedia-buttons-to-system), important on Windows since
|
|
206 the system never sees these keys if Emacs claims to handle them.
|
|
207 On X, the window manager seems to grab the keys it wants
|
|
208 first, so this is not a problem there. */
|
|
209 , MULTIMEDIA_KEY_EVENT
|
|
210 #endif
|
2186
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
211 };
|
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
212
|
45803
|
213 /* If a struct input_event has a kind which is SELECTION_REQUEST_EVENT
|
|
214 or SELECTION_CLEAR_EVENT, then its contents are really described
|
67460
d74c30ee3772
(enum event_kind) [MAC_OS]: Add new MAC_APPLE_EVENT event.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
215 by `struct selection_input_event'; see xterm.h. */
|
2186
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
216
|
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
217 /* The keyboard input buffer is an array of these structures. Each one
|
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
218 represents some sort of input event - a keystroke, a mouse click, or
|
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
219 a window system event. These get turned into their lispy forms when
|
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
220 they are removed from the event queue. */
|
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
221
|
14393
|
222 struct input_event
|
|
223 {
|
2186
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
diff
changeset
|
224 /* What kind of event was this? */
|
39583
|
225 enum event_kind kind;
|
49600
|
226
|
45803
|
227 /* For an ASCII_KEYSTROKE_EVENT and MULTIBYTE_CHAR_KEYSTROKE_EVENT,
|
|
228 this is the character.
|
|
229 For a NON_ASCII_KEYSTROKE_EVENT, this is the keysym code.
|
5361
|
230 For a mouse event, this is the button number. */
|
19700
|
231 /* In WindowsNT, for a mouse wheel event, this is the delta. */
|
5226
|
232 int code;
|
1994
|
233 enum scroll_bar_part part;
|
732
|
234
|
14161
|
235 int modifiers; /* See enum below for interpretation. */
|
|
236
|
|
237 Lisp_Object x, y;
|
|
238 unsigned long timestamp;
|
|
239
|
14393
|
240 /* This is padding just to put the frame_or_window field
|
67460
d74c30ee3772
(enum event_kind) [MAC_OS]: Add new MAC_APPLE_EVENT event.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
diff
changeset
|
241 past the size of struct selection_input_event. */
|
14393
|
242 int *padding[2];
|
|
243
|
1782
|
244 /* This field is copied into a vector while the event is in the queue,
|
|
245 so that garbage collections won't kill it. */
|
10798
|
246 /* In a menu_bar_event, this is a cons cell whose car is the frame
|
|
247 and whose cdr is the Lisp object that is the event's value. */
|
14161
|
248 /* This field is last so that struct selection_input_event
|
|
249 does not overlap with it. */
|
1782
|
250 Lisp_Object frame_or_window;
|
30175
|
251
|
|
252 /* Additional event argument. This is used for TOOL_BAR_EVENTs and
|
|
253 HELP_EVENTs and avoids calling Fcons during signal handling. */
|
|
254 Lisp_Object arg;
|
296
|
255 };
|
21515
|
256
|
51568
|
257 #define EVENT_INIT(event) bzero (&(event), sizeof (struct input_event))
|
|
258
|
1238
|
259 /* Bits in the modifiers member of the input_event structure.
|
|
260 Note that reorder_modifiers assumes that the bits are in canonical
|
49600
|
261 order.
|
1312
|
262
|
|
263 The modifiers applied to mouse clicks are rather ornate. The
|
|
264 window-system-specific code should store mouse clicks with
|
1319
|
265 up_modifier or down_modifier set. Having an explicit down modifier
|
|
266 simplifies some of window-system-independent code; without it, the
|
|
267 code would have to recognize down events by checking if the event
|
|
268 is a mouse click lacking the click and drag modifiers.
|
|
269
|
|
270 The window-system independent code turns all up_modifier events
|
3861
|
271 bits into drag_modifier, click_modifier, double_modifier, or
|
|
272 triple_modifier events. The click_modifier has no written
|
|
273 representation in the names of the symbols used as event heads,
|
|
274 but it does appear in the Qevent_symbol_components property of the
|
|
275 event heads. */
|
296
|
276 enum {
|
1312
|
277 up_modifier = 1, /* Only used on mouse buttons - always
|
|
278 turned into a click or a drag modifier
|
|
279 before lisp code sees the event. */
|
2659
|
280 down_modifier = 2, /* Only used on mouse buttons. */
|
|
281 drag_modifier = 4, /* This is never used in the event
|
1312
|
282 queue; it's only used internally by
|
|
283 the window-system-independent code. */
|
2659
|
284 click_modifier= 8, /* See drag_modifier. */
|
3861
|
285 double_modifier= 16, /* See drag_modifier. */
|
|
286 triple_modifier= 32, /* See drag_modifier. */
|
2659
|
287
|
|
288 /* The next four modifier bits are used also in keyboard events at
|
|
289 the Lisp level.
|
2046
|
290
|
2659
|
291 It's probably not the greatest idea to use the 2^23 bit for any
|
|
292 modifier. It may or may not be the sign bit, depending on
|
|
293 VALBITS, so using it to represent a modifier key means that
|
|
294 characters thus modified have different integer equivalents
|
|
295 depending on the architecture they're running on. Oh, and
|
|
296 applying XINT to a character whose 2^23 bit is set sign-extends
|
|
297 it, so you get a bunch of bits in the mask you didn't want.
|
|
298
|
|
299 The CHAR_ macros are defined in lisp.h. */
|
|
300 alt_modifier = CHAR_ALT, /* Under X, the XK_Alt_[LR] keysyms. */
|
|
301 super_modifier= CHAR_SUPER, /* Under X, the XK_Super_[LR] keysyms. */
|
|
302 hyper_modifier= CHAR_HYPER, /* Under X, the XK_Hyper_[LR] keysyms. */
|
|
303 shift_modifier= CHAR_SHIFT,
|
|
304 ctrl_modifier = CHAR_CTL,
|
4569
|
305 meta_modifier = CHAR_META /* Under X, the XK_Meta_[LR] keysyms. */
|
296
|
306 };
|
|
307
|
80994
|
308 #ifdef HAVE_GPM
|
80986
|
309 #include <gpm.h>
|
83622
|
310 extern int handle_one_term_event (struct tty_display_info *, Gpm_Event *, struct input_event *);
|
81104
|
311 extern void term_mouse_moveto (int, int);
|
80986
|
312
|
84768
53194ec05789
* termhooks.h (term_gpm): Delete. Use gpm_tty's NULLness instead.
Stefan Monnier <monnier@iro.umontreal.ca>
diff
changeset
|
313 /* The device for which we have enabled gpm support. */
|
53194ec05789
* termhooks.h (term_gpm): Delete. Use gpm_tty's NULLness instead.
Stefan Monnier <monnier@iro.umontreal.ca>
diff
changeset
|
314 extern struct tty_display_info *gpm_tty;
|
296
|
315 #endif
|
52401
|
316
|
82990
2ecd1f669db9
Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
317 #endif /* CONSP */
|
52401
|
318
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
319
|
83619
|
320 struct mac_display_info;
|
|
321 struct w32_display_info;
|
|
322
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
323 /* Terminal-local parameters. */
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
324 struct terminal
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
325 {
|
84691
|
326 /* The first two fields are really the header of a vector */
|
|
327 /* The terminal code does not refer to them. */
|
85022
|
328 EMACS_UINT size;
|
84691
|
329 struct Lisp_Vector *vec_next;
|
|
330
|
84953
0440e26f0af7
(struct terminal): Move all Lisp_Object fields traced by
Stefan Monnier <monnier@iro.umontreal.ca>
diff
changeset
|
331 /* Parameter alist of this terminal. */
|
0440e26f0af7
(struct terminal): Move all Lisp_Object fields traced by
Stefan Monnier <monnier@iro.umontreal.ca>
diff
changeset
|
332 Lisp_Object param_alist;
|
0440e26f0af7
(struct terminal): Move all Lisp_Object fields traced by
Stefan Monnier <monnier@iro.umontreal.ca>
diff
changeset
|
333
|
0440e26f0af7
(struct terminal): Move all Lisp_Object fields traced by
Stefan Monnier <monnier@iro.umontreal.ca>
diff
changeset
|
334 /* All fields before `next_terminal' should be Lisp_Object and are traced
|
0440e26f0af7
(struct terminal): Move all Lisp_Object fields traced by
Stefan Monnier <monnier@iro.umontreal.ca>
diff
changeset
|
335 by the GC. All fields afterwards are ignored by the GC. */
|
86940
|
336
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
337 /* Chain of all terminal devices. */
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
338 struct terminal *next_terminal;
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
339
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
340 /* Unique id for this terminal device. */
|
83167
69ebc75cb461
Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
341 int id;
|
69ebc75cb461
Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
342
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
343 /* The number of frames that are on this terminal. */
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
344 int reference_count;
|
83522
a5d712e6585a
Fix crashes in `delete-terminal' caused by recursive calls or X displays with live frames.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
345
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
346 /* The type of the terminal device. */
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
347 enum output_method type;
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
348
|
83525
b2e7507b55c6
Fix C-x 5 2 on the controlling tty; fix some possible crash conditions and a memory leak.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
349 /* The name of the terminal device. Do not use this to uniquely
|
b2e7507b55c6
Fix C-x 5 2 on the controlling tty; fix some possible crash conditions and a memory leak.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
350 identify a terminal; the same device may be opened multiple
|
b2e7507b55c6
Fix C-x 5 2 on the controlling tty; fix some possible crash conditions and a memory leak.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
351 times. */
|
83167
69ebc75cb461
Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
352 char *name;
|
69ebc75cb461
Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
353
|
83323
61487e73bbc2
Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
354 #ifdef MULTI_KBOARD
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
355 /* The terminal's keyboard object. */
|
83323
61487e73bbc2
Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
356 struct kboard *kboard;
|
296
|
357 #endif
|
52401
|
358
|
92109
|
359 #ifdef HAVE_WINDOW_SYSTEM
|
|
360 /* Cache of images. */
|
|
361 struct image_cache *image_cache;
|
|
362 #endif /* HAVE_WINDOW_SYSTEM */
|
|
363
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
364 /* Device-type dependent data shared amongst all frames on this terminal. */
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
365 union display_info
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
366 {
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
367 struct tty_display_info *tty; /* termchar.h */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
368 struct x_display_info *x; /* xterm.h */
|
83580
|
369 struct w32_display_info *w32; /* w32term.h */
|
83619
|
370 struct mac_display_info *mac; /* macterm.h */
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
371 } display_info;
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
372
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
373
|
83127
|
374 /* Coding-system to be used for encoding terminal output. This
|
|
375 structure contains information of a coding-system specified by
|
|
376 the function `set-terminal-coding-system'. Also see
|
|
377 `safe_terminal_coding' in coding.h. */
|
|
378 struct coding_system *terminal_coding;
|
|
379
|
|
380 /* Coding-system of what is sent from terminal keyboard. This
|
|
381 structure contains information of a coding-system specified by
|
|
382 the function `set-keyboard-coding-system'. */
|
|
383 struct coding_system *keyboard_coding;
|
|
384
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
385 /* Terminal characteristics. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
386 /* XXX Are these really used on non-termcap displays? */
|
86940
|
387
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
388 int must_write_spaces; /* Nonzero means spaces in the text must
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
389 actually be output; can't just skip over
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
390 some columns to leave them blank. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
391 int fast_clear_end_of_line; /* Nonzero means terminal has a `ce' string */
|
86940
|
392
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
393 int line_ins_del_ok; /* Terminal can insert and delete lines */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
394 int char_ins_del_ok; /* Terminal can insert and delete chars */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
395 int scroll_region_ok; /* Terminal supports setting the scroll
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
396 window */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
397 int scroll_region_cost; /* Cost of setting the scroll window,
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
398 measured in characters. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
399 int memory_below_frame; /* Terminal remembers lines scrolled
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
400 off bottom */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
401
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
402 #if 0 /* These are not used anywhere. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
403 /* EMACS_INT baud_rate; */ /* Output speed in baud */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
404 int min_padding_speed; /* Speed below which no padding necessary. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
405 int dont_calculate_costs; /* Nonzero means don't bother computing
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
406 various cost tables; we won't use them. */
|
80986
|
407 #endif
|
|
408
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
409
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
410 /* Window-based redisplay interface for this device (0 for tty
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
411 devices). */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
412 struct redisplay_interface *rif;
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
413
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
414 /* Frame-based redisplay interface. */
|
86940
|
415
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
416 /* Text display hooks. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
417
|
83100
|
418 void (*cursor_to_hook) P_ ((struct frame *f, int vpos, int hpos));
|
|
419 void (*raw_cursor_to_hook) P_ ((struct frame *, int, int));
|
86940
|
420
|
83100
|
421 void (*clear_to_end_hook) P_ ((struct frame *));
|
|
422 void (*clear_frame_hook) P_ ((struct frame *));
|
|
423 void (*clear_end_of_line_hook) P_ ((struct frame *, int));
|
86940
|
424
|
83100
|
425 void (*ins_del_lines_hook) P_ ((struct frame *f, int, int));
|
86940
|
426
|
83100
|
427 void (*insert_glyphs_hook) P_ ((struct frame *f, struct glyph *s, int n));
|
|
428 void (*write_glyphs_hook) P_ ((struct frame *f, struct glyph *s, int n));
|
|
429 void (*delete_glyphs_hook) P_ ((struct frame *, int));
|
86940
|
430
|
83100
|
431 void (*ring_bell_hook) P_ ((struct frame *f));
|
86940
|
432
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
433 void (*reset_terminal_modes_hook) P_ ((struct terminal *));
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
434 void (*set_terminal_modes_hook) P_ ((struct terminal *));
|
83100
|
435
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
436 void (*update_begin_hook) P_ ((struct frame *));
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
437 void (*update_end_hook) P_ ((struct frame *));
|
83100
|
438 void (*set_terminal_window_hook) P_ ((struct frame *, int));
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
439
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
440 /* Multi-frame and mouse support hooks. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
441
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
442 /* Return the current position of the mouse.
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
443
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
444 Set *f to the frame the mouse is in, or zero if the mouse is in no
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
445 Emacs frame. If it is set to zero, all the other arguments are
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
446 garbage.
|
86940
|
447
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
448 If the motion started in a scroll bar, set *bar_window to the
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
449 scroll bar's window, *part to the part the mouse is currently over,
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
450 *x to the position of the mouse along the scroll bar, and *y to the
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
451 overall length of the scroll bar.
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
452
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
453 Otherwise, set *bar_window to Qnil, and *x and *y to the column and
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
454 row of the character cell the mouse is over.
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
455
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
456 Set *time to the time the mouse was at the returned position.
|
86940
|
457
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
458 This should clear mouse_moved until the next motion
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
459 event arrives. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
460 void (*mouse_position_hook) P_ ((struct frame **f, int,
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
461 Lisp_Object *bar_window,
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
462 enum scroll_bar_part *part,
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
463 Lisp_Object *x,
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
464 Lisp_Object *y,
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
465 unsigned long *time));
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
466
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
467 /* The window system handling code should set this if the mouse has
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
468 moved since the last call to the mouse_position_hook. Calling that
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
469 hook should clear this. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
470 int mouse_moved;
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
471
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
472 /* When a frame's focus redirection is changed, this hook tells the
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
473 window system code to re-decide where to put the highlight. Under
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
474 X, this means that Emacs lies about where the focus is. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
475 void (*frame_rehighlight_hook) P_ ((struct frame *));
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
476
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
477 /* If we're displaying frames using a window system that can stack
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
478 frames on top of each other, this hook allows you to bring a frame
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
479 to the front, or bury it behind all the other windows. If this
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
480 hook is zero, that means the terminal we're displaying on doesn't
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
481 support overlapping frames, so there's no need to raise or lower
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
482 anything.
|
86940
|
483
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
484 If RAISE is non-zero, F is brought to the front, before all other
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
485 windows. If RAISE is zero, F is sent to the back, behind all other
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
486 windows. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
487 void (*frame_raise_lower_hook) P_ ((struct frame *f, int raise));
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
488
|
83548
c71725faff1a
Merged from emacs@sv.gnu.org. Last-minute emacsclient rewrites be damned!
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
489 /* If the value of the frame parameter changed, whis hook is called.
|
c71725faff1a
Merged from emacs@sv.gnu.org. Last-minute emacsclient rewrites be damned!
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
490 For example, if going from fullscreen to not fullscreen this hook
|
c71725faff1a
Merged from emacs@sv.gnu.org. Last-minute emacsclient rewrites be damned!
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
491 may do something OS dependent, like extended window manager hints on X11. */
|
c71725faff1a
Merged from emacs@sv.gnu.org. Last-minute emacsclient rewrites be damned!
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
492 void (*fullscreen_hook) P_ ((struct frame *f));
|
86940
|
493
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
494
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
495 /* Scroll bar hooks. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
496
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
497 /* The representation of scroll bars is determined by the code which
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
498 implements them, except for one thing: they must be represented by
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
499 lisp objects. This allows us to place references to them in
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
500 Lisp_Windows without worrying about those references becoming
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
501 dangling references when the scroll bar is destroyed.
|
86940
|
502
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
503 The window-system-independent portion of Emacs just refers to
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
504 scroll bars via their windows, and never looks inside the scroll bar
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
505 representation; it always uses hook functions to do all the
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
506 scroll bar manipulation it needs.
|
86940
|
507
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
508 The `vertical_scroll_bar' field of a Lisp_Window refers to that
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
509 window's scroll bar, or is nil if the window doesn't have a
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
510 scroll bar.
|
86940
|
511
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
512 The `scroll_bars' and `condemned_scroll_bars' fields of a Lisp_Frame
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
513 are free for use by the scroll bar implementation in any way it sees
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
514 fit. They are marked by the garbage collector. */
|
86940
|
515
|
|
516
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
517 /* Set the vertical scroll bar for WINDOW to have its upper left corner
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
518 at (TOP, LEFT), and be LENGTH rows high. Set its handle to
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
519 indicate that we are displaying PORTION characters out of a total
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
520 of WHOLE characters, starting at POSITION. If WINDOW doesn't yet
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
521 have a scroll bar, create one for it. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
522 void (*set_vertical_scroll_bar_hook) P_ ((struct window *window,
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
523 int portion, int whole,
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
524 int position));
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
525
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
526
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
527 /* The following three hooks are used when we're doing a thorough
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
528 redisplay of the frame. We don't explicitly know which scroll bars
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
529 are going to be deleted, because keeping track of when windows go
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
530 away is a real pain - can you say set-window-configuration?
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
531 Instead, we just assert at the beginning of redisplay that *all*
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
532 scroll bars are to be removed, and then save scroll bars from the
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
533 fiery pit when we actually redisplay their window. */
|
86940
|
534
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
535 /* Arrange for all scroll bars on FRAME to be removed at the next call
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
536 to `*judge_scroll_bars_hook'. A scroll bar may be spared if
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
537 `*redeem_scroll_bar_hook' is applied to its window before the judgement.
|
86940
|
538
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
539 This should be applied to each frame each time its window tree is
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
540 redisplayed, even if it is not displaying scroll bars at the moment;
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
541 if the HAS_SCROLL_BARS flag has just been turned off, only calling
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
542 this and the judge_scroll_bars_hook will get rid of them.
|
86940
|
543
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
544 If non-zero, this hook should be safe to apply to any frame,
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
545 whether or not it can support scroll bars, and whether or not it is
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
546 currently displaying them. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
547 void (*condemn_scroll_bars_hook) P_ ((struct frame *frame));
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
548
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
549 /* Unmark WINDOW's scroll bar for deletion in this judgement cycle.
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
550 Note that it's okay to redeem a scroll bar that is not condemned. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
551 void (*redeem_scroll_bar_hook) P_ ((struct window *window));
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
552
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
553 /* Remove all scroll bars on FRAME that haven't been saved since the
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
554 last call to `*condemn_scroll_bars_hook'.
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
555
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
556 This should be applied to each frame after each time its window
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
557 tree is redisplayed, even if it is not displaying scroll bars at the
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
558 moment; if the HAS_SCROLL_BARS flag has just been turned off, only
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
559 calling this and condemn_scroll_bars_hook will get rid of them.
|
86940
|
560
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
561 If non-zero, this hook should be safe to apply to any frame,
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
562 whether or not it can support scroll bars, and whether or not it is
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
563 currently displaying them. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
564 void (*judge_scroll_bars_hook) P_ ((struct frame *FRAME));
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
565
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
566
|
83021
32bf8e7cc0c2
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
567 /* Called to read input events.
|
32bf8e7cc0c2
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
568
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
569 TERMINAL indicates which terminal device to read from. Input
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
570 events should be read into BUF, the size of which is given in
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
571 SIZE. EXPECTED is non-zero if the caller suspects that new input
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
572 is available.
|
83021
32bf8e7cc0c2
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
573
|
32bf8e7cc0c2
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
574 A positive return value indicates that that many input events
|
32bf8e7cc0c2
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
575 where read into BUF.
|
32bf8e7cc0c2
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
576 Zero means no events were immediately available.
|
32bf8e7cc0c2
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
577 A value of -1 means a transient read error, while -2 indicates
|
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
578 that the device was closed (hangup), and it should be deleted.
|
83021
32bf8e7cc0c2
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
579
|
32bf8e7cc0c2
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
580 XXX Please note that a non-zero value of EXPECTED only means that
|
32bf8e7cc0c2
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
581 there is available input on at least one of the currently opened
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
582 terminal devices -- but not necessarily on this device.
|
83021
32bf8e7cc0c2
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
583 Therefore, in most cases EXPECTED should be simply ignored.
|
83067
|
584
|
|
585 XXX This documentation needs to be updated. */
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
586 int (*read_socket_hook) P_ ((struct terminal *terminal,
|
83067
|
587 int expected,
|
|
588 struct input_event *hold_quit));
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
589
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
590 /* Called when a frame's display becomes entirely up to date. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
591 void (*frame_up_to_date_hook) P_ ((struct frame *));
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
592
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
593
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
594 /* Called to delete the device-specific portions of a frame that is
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
595 on this terminal device. */
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
596 void (*delete_frame_hook) P_ ((struct frame *));
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
597
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
598 /* Called after the last frame on this terminal is deleted, or when
|
83021
32bf8e7cc0c2
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
599 the display device was closed (hangup).
|
86940
|
600
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
601 If this is NULL, then the generic delete_terminal is called
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
602 instead. Otherwise the hook must call delete_terminal itself.
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
603
|
83021
32bf8e7cc0c2
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
604 The hook must check for and close any live frames that are still
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
605 on the terminal. Fdelete_frame ensures that there are no live
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
606 frames on the terminal when it calls this hook, so infinite
|
83021
32bf8e7cc0c2
Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
607 recursion is prevented. */
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
608 void (*delete_terminal_hook) P_ ((struct terminal *));
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
609 };
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
610
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
611
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
612 /* Chain of all terminal devices currently in use. */
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
613 extern struct terminal *terminal_list;
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
614
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
615 #define FRAME_MUST_WRITE_SPACES(f) ((f)->terminal->must_write_spaces)
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
616 #define FRAME_FAST_CLEAR_END_OF_LINE(f) ((f)->terminal->fast_clear_end_of_line)
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
617 #define FRAME_LINE_INS_DEL_OK(f) ((f)->terminal->line_ins_del_ok)
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
618 #define FRAME_CHAR_INS_DEL_OK(f) ((f)->terminal->char_ins_del_ok)
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
619 #define FRAME_SCROLL_REGION_OK(f) ((f)->terminal->scroll_region_ok)
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
620 #define FRAME_SCROLL_REGION_COST(f) ((f)->terminal->scroll_region_cost)
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
621 #define FRAME_MEMORY_BELOW_FRAME(f) ((f)->terminal->memory_below_frame)
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
622
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
623 #define FRAME_TERMINAL_CODING(f) ((f)->terminal->terminal_coding)
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
624 #define FRAME_KEYBOARD_CODING(f) ((f)->terminal->keyboard_coding)
|
83127
|
625
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
626 #define TERMINAL_TERMINAL_CODING(d) ((d)->terminal_coding)
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
627 #define TERMINAL_KEYBOARD_CODING(d) ((d)->keyboard_coding)
|
83298
ed09a89e2b25
Fix UTF-8 tty input when first frame is an X frame. Steps towards multiple tty locale support.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
628
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
629 #define FRAME_RIF(f) ((f)->terminal->rif)
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
630
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
631 #define FRAME_TERMINAL(f) ((f)->terminal)
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
632
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
633 /* FRAME_WINDOW_P tests whether the frame is a window, and is
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
634 defined to be the predicate for the window system being used. */
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
635
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
636 #ifdef HAVE_X_WINDOWS
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
637 #define FRAME_WINDOW_P(f) FRAME_X_P (f)
|
296
|
638 #endif
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
639 #ifdef HAVE_NTGUI
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
640 #define FRAME_WINDOW_P(f) FRAME_W32_P (f)
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
641 #endif
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
642 #ifdef MAC_OS
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
643 #define FRAME_WINDOW_P(f) FRAME_MAC_P (f)
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
644 #endif
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
645 #ifndef FRAME_WINDOW_P
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
646 #define FRAME_WINDOW_P(f) (0)
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
647 #endif
|
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
648
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
649 /* Return true if the terminal device is not suspended. */
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
650 #define TERMINAL_ACTIVE_P(d) ((d)->type != output_termcap || (d)->display_info.tty->input)
|
83167
69ebc75cb461
Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
651
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
652 extern Lisp_Object get_terminal_param P_ ((struct terminal *, Lisp_Object));
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
653 extern struct terminal *get_terminal P_ ((Lisp_Object terminal, int));
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
654 extern struct terminal *create_terminal P_ ((void));
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
655 extern void delete_terminal P_ ((struct terminal *));
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
656
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
657 /* The initial terminal device, created by initial_term_init. */
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
diff
changeset
|
658 extern struct terminal *initial_terminal;
|
52401
|
659
|
|
660 /* arch-tag: 33a00ecc-52b5-4186-a410-8801ac9f087d
|
|
661 (do not change this comment) */
|