annotate src/termhooks.h @ 95647:0f6a0e86ee24

Remove platform-independent menu definitions. (menu_items menu_items_inuse, menu_items_allocated) (menu_items_used, menu_items_n_panes) (menu_items_submenu_depth): Move to keyboard.h. (init_menu_items, finish_menu_items, unuse_menu_items) (discard_menu_items, restore_menu_items, save_menu_items) (grow_menu_items, push_submenu_start, push_submenu_end) (push_left_right_boundary, push_menu_pane, push_menu_item) (keymap_panes, single_keymap_panes, single_menu_item) (list_of_panes, list_of_items, find_and_call_menu_selection) (xmalloc_widget_value, free_menubar_widget_value_tree) (parse_single_submenu, digest_single_submenu) (update_submenu_strings): Move to menu.c.
author Chong Yidong <cyd@stupidchicken.com>
date Sun, 08 Jun 2008 04:36:46 +0000
parents 29adfc9354e7
children d45acf0c8d23
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
diff changeset
1 /* Parameters and display hooks for terminal devices.
75227
e90d04cd455a Update copyright for years from Emacs 21 to present (mainly adding
Glenn Morris <rgm@gnu.org>
parents: 73863
diff changeset
2 Copyright (C) 1985, 1986, 1993, 1994, 2001, 2002, 2003, 2004,
79759
fc2bcd2a8aad Add 2008 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 78779
diff changeset
3 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5 This file is part of GNU Emacs.
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6
94994
29adfc9354e7 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 92109
diff changeset
7 GNU Emacs is free software: you can redistribute it and/or modify
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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: 92109
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: 92109
diff changeset
10 (at your option) any later version.
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 GNU Emacs is distributed in the hope that it will be useful,
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 GNU General Public License for more details.
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
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: 92109
diff changeset
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
20
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
21 /* Miscellanea. */
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
22
25001
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
23 struct glyph;
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
24 struct frame;
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
25
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26
1994
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
27 enum scroll_bar_part {
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
28 scroll_bar_above_handle,
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
29 scroll_bar_handle,
15176
87c0298bd4f7 (enum scroll_bar_part): New alternatives
Richard M. Stallman <rms@gnu.org>
parents: 14407
diff changeset
30 scroll_bar_below_handle,
87c0298bd4f7 (enum scroll_bar_part): New alternatives
Richard M. Stallman <rms@gnu.org>
parents: 14407
diff changeset
31 scroll_bar_up_arrow,
25001
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
32 scroll_bar_down_arrow,
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
33 scroll_bar_to_top,
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
34 scroll_bar_to_bottom,
26787
5379722b5468 (scroll_bar_part): Add `scroll_bar_move_ratio'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25544
diff changeset
35 scroll_bar_end_scroll,
5379722b5468 (scroll_bar_part): Add `scroll_bar_move_ratio'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25544
diff changeset
36 scroll_bar_move_ratio
1717
aa7d6d57504b * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1319
diff changeset
37 };
aa7d6d57504b * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1319
diff changeset
38
73863
bf62fb0d4b65 Add fullscreen_hook.
Jan Djärv <jan.h.d@swipnet.se>
parents: 70386
diff changeset
39 /* If the value of the frame parameter changed, whis hook is called.
bf62fb0d4b65 Add fullscreen_hook.
Jan Djärv <jan.h.d@swipnet.se>
parents: 70386
diff changeset
40 For example, if going from fullscreen to not fullscreen this hook
bf62fb0d4b65 Add fullscreen_hook.
Jan Djärv <jan.h.d@swipnet.se>
parents: 70386
diff changeset
41 may do something OS dependent, like extended window manager hints on X11. */
bf62fb0d4b65 Add fullscreen_hook.
Jan Djärv <jan.h.d@swipnet.se>
parents: 70386
diff changeset
42 extern void (*fullscreen_hook) P_ ((struct frame *f));
bf62fb0d4b65 Add fullscreen_hook.
Jan Djärv <jan.h.d@swipnet.se>
parents: 70386
diff changeset
43
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
44
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
45 /* Input queue declarations and hooks. */
1717
aa7d6d57504b * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1319
diff changeset
46
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47 /* Expedient hack: only provide the below definitions to files that
78501
1677cf1c2509 Replace `iff' in comments.
Glenn Morris <rgm@gnu.org>
parents: 78260
diff changeset
48 are prepared to handle lispy things. CONSP is defined if lisp.h
485
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 357
diff changeset
49 has been included before this file. */
4143
5c8de184cccf * termhooks.h: In order to avoid declaring struct input_event
Jim Blandy <jimb@redhat.com>
parents: 3861
diff changeset
50 #ifdef CONSP
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
51
2186
82e8ee492593 (selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents: 2046
diff changeset
52 enum event_kind
82e8ee492593 (selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents: 2046
diff changeset
53 {
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
54 NO_EVENT, /* nothing happened. This should never
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 actually appear in the event queue. */
4799
6af5540f4e4e Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 4584
diff changeset
56
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
57 ASCII_KEYSTROKE_EVENT, /* The ASCII code is in .code, perhaps
4799
6af5540f4e4e Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 4584
diff changeset
58 with modifiers applied.
6af5540f4e4e Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 4584
diff changeset
59 .modifiers holds the state of the
6af5540f4e4e Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 4584
diff changeset
60 modifier keys.
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
61 .frame_or_window is the frame in
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
62 which the key was typed.
485
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 357
diff changeset
63 .timestamp gives a timestamp (in
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 357
diff changeset
64 milliseconds) for the keystroke. */
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
65 MULTIBYTE_CHAR_KEYSTROKE_EVENT, /* The multibyte char code is in .code,
30750
e96da8e19cef (enum event_kind): New member multibyte_char_keystroke.
Kenichi Handa <handa@m17n.org>
parents: 30175
diff changeset
66 perhaps with modifiers applied.
e96da8e19cef (enum event_kind): New member multibyte_char_keystroke.
Kenichi Handa <handa@m17n.org>
parents: 30175
diff changeset
67 The others are the same as
48090
b7e13d33cf41 Comment.
Dave Love <fx@gnu.org>
parents: 46798
diff changeset
68 ASCII_KEYSTROKE_EVENT. */
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
69 NON_ASCII_KEYSTROKE_EVENT, /* .code is a number identifying the
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
70 function key. A code N represents
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
71 a key whose name is
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
72 function_key_names[N]; function_key_names
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
73 is a table in keyboard.c to which you
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
74 should feel free to add missing keys.
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
75 .modifiers holds the state of the
338
4840aae6a876 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 296
diff changeset
76 modifier keys.
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
77 .frame_or_window is the frame in
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
78 which the key was typed.
485
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 357
diff changeset
79 .timestamp gives a timestamp (in
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 357
diff changeset
80 milliseconds) for the keystroke. */
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
81 TIMER_EVENT, /* A timer fired. */
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
82 MOUSE_CLICK_EVENT, /* The button number is in .code; it must
1312
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
83 be >= 0 and < NUM_MOUSE_BUTTONS, defined
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
84 below.
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
85 .modifiers holds the state of the
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
86 modifier keys.
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
87 .x and .y give the mouse position,
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 648
diff changeset
88 in characters, within the window.
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
89 .frame_or_window gives the frame
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
90 the mouse click occurred in.
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91 .timestamp gives a timestamp (in
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
92 milliseconds) for the click. */
51383
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
93 WHEEL_EVENT, /* A wheel event is generated by a
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
94 wheel on a mouse (e.g., MS
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
95 Intellimouse).
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
96 .modifiers holds the rotate
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
97 direction (up or down), and the
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
98 state of the modifier keys.
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
99 .x and .y give the mouse position,
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
100 in characters, within the window.
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
101 .frame_or_window gives the frame
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
102 the wheel event occurred in.
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
103 .timestamp gives a timestamp (in
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
104 milliseconds) for the event. */
83880
2bccdc59cb53 (enum event_kind) <HORIZ_WHEEL_EVENT>: New event.
Jason Rumney <jasonr@gnu.org>
parents: 83652
diff changeset
105 HORIZ_WHEEL_EVENT, /* A wheel event generated by a second
2bccdc59cb53 (enum event_kind) <HORIZ_WHEEL_EVENT>: New event.
Jason Rumney <jasonr@gnu.org>
parents: 83652
diff changeset
106 horizontal wheel that is present on some
2bccdc59cb53 (enum event_kind) <HORIZ_WHEEL_EVENT>: New event.
Jason Rumney <jasonr@gnu.org>
parents: 83652
diff changeset
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>
parents: 54168
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>
parents: 54168
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>
parents: 54168
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>
parents: 54168
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>
parents: 54168
diff changeset
112 language is changed by the
23800
a7dd4cded68c termhooks.h (event_kind) [WINDOWSNT]: Define
Geoff Voelker <voelker@cs.washington.edu>
parents: 21889
diff changeset
113 user. */
19700
3c251b1dcdf5 (event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents: 16588
diff changeset
114 #endif
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
115 SCROLL_BAR_CLICK_EVENT, /* .code gives the number of the mouse button
1717
aa7d6d57504b * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1319
diff changeset
116 that was clicked.
aa7d6d57504b * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1319
diff changeset
117 .modifiers holds the state of the modifier
aa7d6d57504b * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1319
diff changeset
118 keys.
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
119 .part is a lisp symbol indicating which
1994
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
120 part of the scroll bar got clicked.
1717
aa7d6d57504b * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1319
diff changeset
121 .x gives the distance from the start of the
aa7d6d57504b * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1319
diff changeset
122 scroll bar of the click; .y gives the total
aa7d6d57504b * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1319
diff changeset
123 length of the scroll bar.
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
124 .frame_or_window gives the window
1994
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
125 whose scroll bar was clicked in.
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
126 .timestamp gives a timestamp (in
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
127 milliseconds) for the click. */
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
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>
parents: 64770
diff changeset
129 See `struct selection_input_event'. */
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
130 SELECTION_CLEAR_EVENT, /* Another X client cleared our selection. */
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
131 BUFFER_SWITCH_EVENT, /* A process filter has switched buffers. */
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
132 DELETE_WINDOW_EVENT, /* An X client said "delete this window". */
30175
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
133 MENU_BAR_EVENT, /* An event generated by the menu bar.
10798
6f71ef20581c Update comments to reflect changes in xmenu.c.
Karl Heuer <kwzh@gnu.org>
parents: 9728
diff changeset
134 The frame_or_window field's cdr holds the
7097
34c94047f8f9 (menu_bar_event): New event type.
Richard M. Stallman <rms@gnu.org>
parents: 6747
diff changeset
135 Lisp-level event value.
34c94047f8f9 (menu_bar_event): New event type.
Richard M. Stallman <rms@gnu.org>
parents: 6747
diff changeset
136 (Only the toolkit version uses these.) */
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
137 ICONIFY_EVENT, /* An X client iconified this window. */
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
138 DEICONIFY_EVENT, /* An X client deiconified this window. */
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
139 MENU_BAR_ACTIVATE_EVENT, /* A button press in the menu bar
12660
8b9633307acc (enum event_kind): Added menu_bar_activate_event.
Richard M. Stallman <rms@gnu.org>
parents: 10798
diff changeset
140 (toolkit version only). */
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
141 DRAG_N_DROP_EVENT, /* A drag-n-drop event is generated when
21889
93207874c93c (event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents: 21515
diff changeset
142 files selected outside of Emacs are dropped
93207874c93c (event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents: 21515
diff changeset
143 onto an Emacs window.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48090
diff changeset
144 .modifiers holds the state of the
21889
93207874c93c (event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents: 21515
diff changeset
145 modifier keys.
93207874c93c (event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents: 21515
diff changeset
146 .x and .y give the mouse position,
93207874c93c (event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents: 21515
diff changeset
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>
parents: 67460
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>
parents: 67460
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>
parents: 67460
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>
parents: 67460
diff changeset
151 representation of the dropped items.
21889
93207874c93c (event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents: 21515
diff changeset
152 .timestamp gives a timestamp (in
93207874c93c (event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents: 21515
diff changeset
153 milliseconds) for the click. */
30175
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
154 USER_SIGNAL_EVENT, /* A user signal.
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
155 code is a number identifying it,
25001
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
156 index into lispy_user_signals. */
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
157
30175
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
158 /* Help events. Member `frame_or_window' of the input_event is the
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
159 frame on which the event occurred, and member `arg' contains
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
160 the help to show. */
25001
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
161 HELP_EVENT,
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
162
30175
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
163 /* An event from a tool-bar. Member `arg' of the input event
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
164 contains the tool-bar item selected. If `frame_or_window'
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
165 and `arg' are equal, this is a prefix event. */
29514
e31f78844157 (enum event_kind): Add FOCUS_IN_EVENT.
Gerd Moellmann <gerd@gnu.org>
parents: 28482
diff changeset
166 TOOL_BAR_EVENT,
e31f78844157 (enum event_kind): Add FOCUS_IN_EVENT.
Gerd Moellmann <gerd@gnu.org>
parents: 28482
diff changeset
167
e31f78844157 (enum event_kind): Add FOCUS_IN_EVENT.
Gerd Moellmann <gerd@gnu.org>
parents: 28482
diff changeset
168 /* Queued from XTread_socket on FocusIn events. Translated into
e31f78844157 (enum event_kind): Add FOCUS_IN_EVENT.
Gerd Moellmann <gerd@gnu.org>
parents: 28482
diff changeset
169 `switch-frame' events in kbd_buffer_get_event, if necessary. */
43813
7c1c9baea70f (enum event_kind): Added save_session_event.
Jan Djärv <jan.h.d@swipnet.se>
parents: 40080
diff changeset
170 FOCUS_IN_EVENT,
7c1c9baea70f (enum event_kind): Added save_session_event.
Jan Djärv <jan.h.d@swipnet.se>
parents: 40080
diff changeset
171
44299
b7f9e859425a (enum event_kind): New event type `SELECT_WINDOW_EVENT'.
Pavel Janík <Pavel@Janik.cz>
parents: 43813
diff changeset
172 /* Generated when mouse moves over window not currently selected. */
b7f9e859425a (enum event_kind): New event type `SELECT_WINDOW_EVENT'.
Pavel Janík <Pavel@Janik.cz>
parents: 43813
diff changeset
173 SELECT_WINDOW_EVENT,
b7f9e859425a (enum event_kind): New event type `SELECT_WINDOW_EVENT'.
Pavel Janík <Pavel@Janik.cz>
parents: 43813
diff changeset
174
43813
7c1c9baea70f (enum event_kind): Added save_session_event.
Jan Djärv <jan.h.d@swipnet.se>
parents: 40080
diff changeset
175 /* Queued from XTread_socket when session manager sends
7c1c9baea70f (enum event_kind): Added save_session_event.
Jan Djärv <jan.h.d@swipnet.se>
parents: 40080
diff changeset
176 save yourself before shutdown. */
78779
bf8af3b2e5a4 (enum event_kind): Remove trailing comma.
Jan Djärv <jan.h.d@swipnet.se>
parents: 78501
diff changeset
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>
parents: 64770
diff changeset
178
d74c30ee3772 (enum event_kind) [MAC_OS]: Add new MAC_APPLE_EVENT event.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64770
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>
parents: 64770
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>
parents: 64770
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>
parents: 64770
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>
parents: 68651
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>
parents: 68651
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>
parents: 68651
diff changeset
185 are converted to those in Apple events. */
78779
bf8af3b2e5a4 (enum event_kind): Remove trailing comma.
Jan Djärv <jan.h.d@swipnet.se>
parents: 78501
diff changeset
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>
parents: 64770
diff changeset
187 #endif
80986
ae304624e812 (enum event_kind): Add GPM_CLICK_EVENT.
Nick Roberts <nickrob@snap.net.nz>
parents: 75227
diff changeset
188
80994
62b6aa7f8c37 Use HAVE_GPM instead of HAVE_GPM_H.
Nick Roberts <nickrob@snap.net.nz>
parents: 80986
diff changeset
189 #ifdef HAVE_GPM
85114
5039706521c9 Merge from emacs--rel--22
Miles Bader <miles@gnu.org>
parents: 85022 78779
diff changeset
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>
parents: 64770
diff changeset
191 #endif
85981
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
192
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
193 #ifdef HAVE_DBUS
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
194 , DBUS_EVENT
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
195 #endif
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
196
85981
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
197 #ifdef WINDOWSNT
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
198 /* Generated when an APPCOMMAND event is received, in response to
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
199 Multimedia or Internet buttons on some keyboards.
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
200 Such keys are available as normal function keys on X through the
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
201 Xkeyboard extension.
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
202 On Windows, some of them get mapped to normal function key events,
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
203 but others need to be handled by APPCOMMAND. Handling them all as
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
204 APPCOMMAND events means they can be disabled
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
205 (w32-pass-multimedia-buttons-to-system), important on Windows since
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
206 the system never sees these keys if Emacs claims to handle them.
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
207 On X, the window manager seems to grab the keys it wants
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
208 first, so this is not a problem there. */
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
209 , MULTIMEDIA_KEY_EVENT
637a3f0d04e3 (enum event_kind) [WINDOWSNT]: Likewise.
Jason Rumney <jasonr@gnu.org>
parents: 85114
diff changeset
210 #endif
2186
82e8ee492593 (selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents: 2046
diff changeset
211 };
82e8ee492593 (selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents: 2046
diff changeset
212
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
213 /* If a struct input_event has a kind which is SELECTION_REQUEST_EVENT
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
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>
parents: 64770
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>
parents: 2046
diff changeset
216
82e8ee492593 (selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents: 2046
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>
parents: 2046
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>
parents: 2046
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>
parents: 2046
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>
parents: 2046
diff changeset
221
14393
c977e0ae56b4 (struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
222 struct input_event
c977e0ae56b4 (struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
223 {
2186
82e8ee492593 (selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents: 2046
diff changeset
224 /* What kind of event was this? */
39583
936ffa2961ca (struct input_event): Use proper type for `kind'.
Gerd Moellmann <gerd@gnu.org>
parents: 30750
diff changeset
225 enum event_kind kind;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48090
diff changeset
226
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
227 /* For an ASCII_KEYSTROKE_EVENT and MULTIBYTE_CHAR_KEYSTROKE_EVENT,
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
228 this is the character.
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
229 For a NON_ASCII_KEYSTROKE_EVENT, this is the keysym code.
5361
f8be998bdeba (struct input_event): FIx typo in previous change.
Richard M. Stallman <rms@gnu.org>
parents: 5226
diff changeset
230 For a mouse event, this is the button number. */
19700
3c251b1dcdf5 (event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents: 16588
diff changeset
231 /* In WindowsNT, for a mouse wheel event, this is the delta. */
5226
4891291b5785 (struct input_event): `code' is now an int.
Richard M. Stallman <rms@gnu.org>
parents: 5106
diff changeset
232 int code;
1994
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
233 enum scroll_bar_part part;
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 708
diff changeset
234
14161
670721a540c8 (struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents: 14034
diff changeset
235 int modifiers; /* See enum below for interpretation. */
670721a540c8 (struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents: 14034
diff changeset
236
670721a540c8 (struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents: 14034
diff changeset
237 Lisp_Object x, y;
670721a540c8 (struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents: 14034
diff changeset
238 unsigned long timestamp;
670721a540c8 (struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents: 14034
diff changeset
239
14393
c977e0ae56b4 (struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
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>
parents: 64770
diff changeset
241 past the size of struct selection_input_event. */
14393
c977e0ae56b4 (struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
242 int *padding[2];
c977e0ae56b4 (struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
243
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
244 /* This field is copied into a vector while the event is in the queue,
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
245 so that garbage collections won't kill it. */
10798
6f71ef20581c Update comments to reflect changes in xmenu.c.
Karl Heuer <kwzh@gnu.org>
parents: 9728
diff changeset
246 /* In a menu_bar_event, this is a cons cell whose car is the frame
6f71ef20581c Update comments to reflect changes in xmenu.c.
Karl Heuer <kwzh@gnu.org>
parents: 9728
diff changeset
247 and whose cdr is the Lisp object that is the event's value. */
14161
670721a540c8 (struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents: 14034
diff changeset
248 /* This field is last so that struct selection_input_event
670721a540c8 (struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents: 14034
diff changeset
249 does not overlap with it. */
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
250 Lisp_Object frame_or_window;
30175
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
251
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
252 /* Additional event argument. This is used for TOOL_BAR_EVENTs and
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
253 HELP_EVENTs and avoids calling Fcons during signal handling. */
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
254 Lisp_Object arg;
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
255 };
21515
fb4c986db0e2 Add more prototypes.
Andreas Schwab <schwab@suse.de>
parents: 19700
diff changeset
256
51568
5dc40bf1e32a (EVENT_INIT): New macro.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 51466
diff changeset
257 #define EVENT_INIT(event) bzero (&(event), sizeof (struct input_event))
5dc40bf1e32a (EVENT_INIT): New macro.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 51466
diff changeset
258
1238
407100cee78a * termhooks.h (alt_modifier, hyper_modifier, super_modifier,
Jim Blandy <jimb@redhat.com>
parents: 766
diff changeset
259 /* Bits in the modifiers member of the input_event structure.
407100cee78a * termhooks.h (alt_modifier, hyper_modifier, super_modifier,
Jim Blandy <jimb@redhat.com>
parents: 766
diff changeset
260 Note that reorder_modifiers assumes that the bits are in canonical
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48090
diff changeset
261 order.
1312
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
262
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
263 The modifiers applied to mouse clicks are rather ornate. The
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
264 window-system-specific code should store mouse clicks with
1319
20862b54b932 Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1312
diff changeset
265 up_modifier or down_modifier set. Having an explicit down modifier
20862b54b932 Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1312
diff changeset
266 simplifies some of window-system-independent code; without it, the
20862b54b932 Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1312
diff changeset
267 code would have to recognize down events by checking if the event
20862b54b932 Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1312
diff changeset
268 is a mouse click lacking the click and drag modifiers.
20862b54b932 Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1312
diff changeset
269
20862b54b932 Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1312
diff changeset
270 The window-system independent code turns all up_modifier events
3861
fc8c92b69513 * keyboard.c (make_lispy_event): Added detection of double-click
Jim Blandy <jimb@redhat.com>
parents: 2659
diff changeset
271 bits into drag_modifier, click_modifier, double_modifier, or
fc8c92b69513 * keyboard.c (make_lispy_event): Added detection of double-click
Jim Blandy <jimb@redhat.com>
parents: 2659
diff changeset
272 triple_modifier events. The click_modifier has no written
fc8c92b69513 * keyboard.c (make_lispy_event): Added detection of double-click
Jim Blandy <jimb@redhat.com>
parents: 2659
diff changeset
273 representation in the names of the symbols used as event heads,
fc8c92b69513 * keyboard.c (make_lispy_event): Added detection of double-click
Jim Blandy <jimb@redhat.com>
parents: 2659
diff changeset
274 but it does appear in the Qevent_symbol_components property of the
fc8c92b69513 * keyboard.c (make_lispy_event): Added detection of double-click
Jim Blandy <jimb@redhat.com>
parents: 2659
diff changeset
275 event heads. */
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
276 enum {
1312
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
277 up_modifier = 1, /* Only used on mouse buttons - always
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
278 turned into a click or a drag modifier
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
279 before lisp code sees the event. */
2659
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
280 down_modifier = 2, /* Only used on mouse buttons. */
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
281 drag_modifier = 4, /* This is never used in the event
1312
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
282 queue; it's only used internally by
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
283 the window-system-independent code. */
2659
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
284 click_modifier= 8, /* See drag_modifier. */
3861
fc8c92b69513 * keyboard.c (make_lispy_event): Added detection of double-click
Jim Blandy <jimb@redhat.com>
parents: 2659
diff changeset
285 double_modifier= 16, /* See drag_modifier. */
fc8c92b69513 * keyboard.c (make_lispy_event): Added detection of double-click
Jim Blandy <jimb@redhat.com>
parents: 2659
diff changeset
286 triple_modifier= 32, /* See drag_modifier. */
2659
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
287
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
288 /* The next four modifier bits are used also in keyboard events at
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
289 the Lisp level.
2046
9e30cf115e63 (alt_modifier, super_modifier, hyper_modifier):
Richard M. Stallman <rms@gnu.org>
parents: 1994
diff changeset
290
2659
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
291 It's probably not the greatest idea to use the 2^23 bit for any
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
292 modifier. It may or may not be the sign bit, depending on
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
293 VALBITS, so using it to represent a modifier key means that
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
294 characters thus modified have different integer equivalents
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
295 depending on the architecture they're running on. Oh, and
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
296 applying XINT to a character whose 2^23 bit is set sign-extends
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
297 it, so you get a bunch of bits in the mask you didn't want.
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
298
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
299 The CHAR_ macros are defined in lisp.h. */
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
300 alt_modifier = CHAR_ALT, /* Under X, the XK_Alt_[LR] keysyms. */
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
301 super_modifier= CHAR_SUPER, /* Under X, the XK_Super_[LR] keysyms. */
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
302 hyper_modifier= CHAR_HYPER, /* Under X, the XK_Hyper_[LR] keysyms. */
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
303 shift_modifier= CHAR_SHIFT,
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
304 ctrl_modifier = CHAR_CTL,
4569
9ea563d584f4 (enum event_kind): Delete final comma.
Richard M. Stallman <rms@gnu.org>
parents: 4143
diff changeset
305 meta_modifier = CHAR_META /* Under X, the XK_Meta_[LR] keysyms. */
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
306 };
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
307
80994
62b6aa7f8c37 Use HAVE_GPM instead of HAVE_GPM_H.
Nick Roberts <nickrob@snap.net.nz>
parents: 80986
diff changeset
308 #ifdef HAVE_GPM
80986
ae304624e812 (enum event_kind): Add GPM_CLICK_EVENT.
Nick Roberts <nickrob@snap.net.nz>
parents: 75227
diff changeset
309 #include <gpm.h>
83622
0a3247aa24a4 Merged from emacs--devo--0
Miles Bader <miles@gnu.org>
parents: 83619 80994
diff changeset
310 extern int handle_one_term_event (struct tty_display_info *, Gpm_Event *, struct input_event *);
81104
f4a619a438a7 (term_mouse_moveto): New extern.
Nick Roberts <nickrob@snap.net.nz>
parents: 80994
diff changeset
311 extern void term_mouse_moveto (int, int);
80986
ae304624e812 (enum event_kind): Add GPM_CLICK_EVENT.
Nick Roberts <nickrob@snap.net.nz>
parents: 75227
diff changeset
312
84768
53194ec05789 * termhooks.h (term_gpm): Delete. Use gpm_tty's NULLness instead.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 84691
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>
parents: 84691
diff changeset
314 extern struct tty_display_info *gpm_tty;
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
315 #endif
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51568
diff changeset
316
82990
2ecd1f669db9 Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
parents: 82989
diff changeset
317 #endif /* CONSP */
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51568
diff changeset
318
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
319
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83580
diff changeset
320 struct mac_display_info;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83580
diff changeset
321 struct w32_display_info;
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83580
diff changeset
322
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
diff changeset
323 /* Terminal-local parameters. */
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
diff changeset
324 struct terminal
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
325 {
84691
920b65c5b922 (struct terminal): Make it into a pseudovector.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 83880
diff changeset
326 /* The first two fields are really the header of a vector */
920b65c5b922 (struct terminal): Make it into a pseudovector.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 83880
diff changeset
327 /* The terminal code does not refer to them. */
85022
96eb42c9e0e3 * window.h (struct window):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 84953
diff changeset
328 EMACS_UINT size;
84691
920b65c5b922 (struct terminal): Make it into a pseudovector.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 83880
diff changeset
329 struct Lisp_Vector *vec_next;
920b65c5b922 (struct terminal): Make it into a pseudovector.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 83880
diff changeset
330
84953
0440e26f0af7 (struct terminal): Move all Lisp_Object fields traced by
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 84768
diff changeset
331 /* Parameter alist of this terminal. */
0440e26f0af7 (struct terminal): Move all Lisp_Object fields traced by
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 84768
diff changeset
332 Lisp_Object param_alist;
0440e26f0af7 (struct terminal): Move all Lisp_Object fields traced by
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 84768
diff changeset
333
0440e26f0af7 (struct terminal): Move all Lisp_Object fields traced by
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 84768
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>
parents: 84768
diff changeset
335 by the GC. All fields afterwards are ignored by the GC. */
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
336
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 83423
diff changeset
338 struct terminal *next_terminal;
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
339
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 83127
diff changeset
341 int id;
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83127
diff changeset
342
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 82992
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>
parents: 83516
diff changeset
345
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 82992
diff changeset
347 enum output_method type;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 83522
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>
parents: 83522
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>
parents: 83522
diff changeset
351 times. */
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83127
diff changeset
352 char *name;
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83127
diff changeset
353
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83298
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>
parents: 83423
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>
parents: 83298
diff changeset
356 struct kboard *kboard;
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
357 #endif
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51568
diff changeset
358
92109
4d9fc08769fa Consolidate the image_cache to the terminal struct.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
359 #ifdef HAVE_WINDOW_SYSTEM
4d9fc08769fa Consolidate the image_cache to the terminal struct.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
360 /* Cache of images. */
4d9fc08769fa Consolidate the image_cache to the terminal struct.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
361 struct image_cache *image_cache;
4d9fc08769fa Consolidate the image_cache to the terminal struct.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
362 #endif /* HAVE_WINDOW_SYSTEM */
4d9fc08769fa Consolidate the image_cache to the terminal struct.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
363
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 82992
diff changeset
365 union display_info
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
366 {
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
368 struct x_display_info *x; /* xterm.h */
83580
a791f826b2cc (display_info) [WINDOWSNT]: Add w32.
Jason Rumney <jasonr@gnu.org>
parents: 83554
diff changeset
369 struct w32_display_info *w32; /* w32term.h */
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83580
diff changeset
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>
parents: 82992
diff changeset
371 } display_info;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
372
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
373
83127
5182815e0ee1 Make terminal_coding and keyboard_coding display-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83100
diff changeset
374 /* Coding-system to be used for encoding terminal output. This
5182815e0ee1 Make terminal_coding and keyboard_coding display-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83100
diff changeset
375 structure contains information of a coding-system specified by
5182815e0ee1 Make terminal_coding and keyboard_coding display-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83100
diff changeset
376 the function `set-terminal-coding-system'. Also see
5182815e0ee1 Make terminal_coding and keyboard_coding display-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83100
diff changeset
377 `safe_terminal_coding' in coding.h. */
5182815e0ee1 Make terminal_coding and keyboard_coding display-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83100
diff changeset
378 struct coding_system *terminal_coding;
5182815e0ee1 Make terminal_coding and keyboard_coding display-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83100
diff changeset
379
5182815e0ee1 Make terminal_coding and keyboard_coding display-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83100
diff changeset
380 /* Coding-system of what is sent from terminal keyboard. This
5182815e0ee1 Make terminal_coding and keyboard_coding display-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83100
diff changeset
381 structure contains information of a coding-system specified by
5182815e0ee1 Make terminal_coding and keyboard_coding display-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83100
diff changeset
382 the function `set-keyboard-coding-system'. */
5182815e0ee1 Make terminal_coding and keyboard_coding display-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83100
diff changeset
383 struct coding_system *keyboard_coding;
5182815e0ee1 Make terminal_coding and keyboard_coding display-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83100
diff changeset
384
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
385 /* Terminal characteristics. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
386 /* XXX Are these really used on non-termcap displays? */
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
387
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
391 int fast_clear_end_of_line; /* Nonzero means terminal has a `ce' string */
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
392
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
396 window */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
398 measured in characters. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
400 off bottom */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
401
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
406 various cost tables; we won't use them. */
80986
ae304624e812 (enum event_kind): Add GPM_CLICK_EVENT.
Nick Roberts <nickrob@snap.net.nz>
parents: 75227
diff changeset
407 #endif
ae304624e812 (enum event_kind): Add GPM_CLICK_EVENT.
Nick Roberts <nickrob@snap.net.nz>
parents: 75227
diff changeset
408
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
409
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
411 devices). */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
412 struct redisplay_interface *rif;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
413
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
414 /* Frame-based redisplay interface. */
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
415
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
416 /* Text display hooks. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
417
83100
4970ad4995f5 Eliminated updating_frame.
Karoly Lorentey <lorentey@elte.hu>
parents: 83067
diff changeset
418 void (*cursor_to_hook) P_ ((struct frame *f, int vpos, int hpos));
4970ad4995f5 Eliminated updating_frame.
Karoly Lorentey <lorentey@elte.hu>
parents: 83067
diff changeset
419 void (*raw_cursor_to_hook) P_ ((struct frame *, int, int));
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
420
83100
4970ad4995f5 Eliminated updating_frame.
Karoly Lorentey <lorentey@elte.hu>
parents: 83067
diff changeset
421 void (*clear_to_end_hook) P_ ((struct frame *));
4970ad4995f5 Eliminated updating_frame.
Karoly Lorentey <lorentey@elte.hu>
parents: 83067
diff changeset
422 void (*clear_frame_hook) P_ ((struct frame *));
4970ad4995f5 Eliminated updating_frame.
Karoly Lorentey <lorentey@elte.hu>
parents: 83067
diff changeset
423 void (*clear_end_of_line_hook) P_ ((struct frame *, int));
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
424
83100
4970ad4995f5 Eliminated updating_frame.
Karoly Lorentey <lorentey@elte.hu>
parents: 83067
diff changeset
425 void (*ins_del_lines_hook) P_ ((struct frame *f, int, int));
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
426
83100
4970ad4995f5 Eliminated updating_frame.
Karoly Lorentey <lorentey@elte.hu>
parents: 83067
diff changeset
427 void (*insert_glyphs_hook) P_ ((struct frame *f, struct glyph *s, int n));
4970ad4995f5 Eliminated updating_frame.
Karoly Lorentey <lorentey@elte.hu>
parents: 83067
diff changeset
428 void (*write_glyphs_hook) P_ ((struct frame *f, struct glyph *s, int n));
4970ad4995f5 Eliminated updating_frame.
Karoly Lorentey <lorentey@elte.hu>
parents: 83067
diff changeset
429 void (*delete_glyphs_hook) P_ ((struct frame *, int));
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
430
83100
4970ad4995f5 Eliminated updating_frame.
Karoly Lorentey <lorentey@elte.hu>
parents: 83067
diff changeset
431 void (*ring_bell_hook) P_ ((struct frame *f));
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
432
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 83423
diff changeset
434 void (*set_terminal_modes_hook) P_ ((struct terminal *));
83100
4970ad4995f5 Eliminated updating_frame.
Karoly Lorentey <lorentey@elte.hu>
parents: 83067
diff changeset
435
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
437 void (*update_end_hook) P_ ((struct frame *));
83100
4970ad4995f5 Eliminated updating_frame.
Karoly Lorentey <lorentey@elte.hu>
parents: 83067
diff changeset
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>
parents: 82992
diff changeset
439
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
441
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
443
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
446 garbage.
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
447
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
452
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
455
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
456 Set *time to the time the mouse was at the returned position.
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
457
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
459 event arrives. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
461 Lisp_Object *bar_window,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
462 enum scroll_bar_part *part,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
463 Lisp_Object *x,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
464 Lisp_Object *y,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
465 unsigned long *time));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
466
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
469 hook should clear this. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
470 int mouse_moved;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
471
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
476
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 83423
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>
parents: 82992
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>
parents: 82992
diff changeset
482 anything.
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
483
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
486 windows. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
488
83548
c71725faff1a Merged from emacs@sv.gnu.org. Last-minute emacsclient rewrites be damned!
Karoly Lorentey <lorentey@elte.hu>
parents: 83525 73863
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>
parents: 83525 73863
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>
parents: 83525 73863
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>
parents: 83525 73863
diff changeset
492 void (*fullscreen_hook) P_ ((struct frame *f));
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
493
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
494
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
495 /* Scroll bar hooks. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
496
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
501 dangling references when the scroll bar is destroyed.
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
502
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
506 scroll bar manipulation it needs.
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
507
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
510 scroll bar.
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
511
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
514 fit. They are marked by the garbage collector. */
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
515
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
516
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
523 int portion, int whole,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
524 int position));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
525
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
526
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
533 fiery pit when we actually redisplay their window. */
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
534
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
537 `*redeem_scroll_bar_hook' is applied to its window before the judgement.
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
538
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
542 this and the judge_scroll_bars_hook will get rid of them.
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
543
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
546 currently displaying them. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
548
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
552
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
555
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
559 calling this and condemn_scroll_bars_hook will get rid of them.
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
560
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
563 currently displaying them. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
565
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
566
83021
32bf8e7cc0c2 Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83011
diff changeset
567 /* Called to read input events.
32bf8e7cc0c2 Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83011
diff changeset
568
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 83423
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>
parents: 83423
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>
parents: 83423
diff changeset
572 is available.
83021
32bf8e7cc0c2 Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83011
diff changeset
573
32bf8e7cc0c2 Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83011
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>
parents: 83011
diff changeset
575 where read into BUF.
32bf8e7cc0c2 Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83011
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>
parents: 83011
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>
parents: 83332
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>
parents: 83011
diff changeset
579
32bf8e7cc0c2 Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83011
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>
parents: 83011
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>
parents: 83423
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>
parents: 83011
diff changeset
583 Therefore, in most cases EXPECTED should be simply ignored.
83067
b44978264e1d Merged in changes from CVS HEAD
Karoly Lorentey <lorentey@elte.hu>
parents: 83065 54168
diff changeset
584
b44978264e1d Merged in changes from CVS HEAD
Karoly Lorentey <lorentey@elte.hu>
parents: 83065 54168
diff changeset
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>
parents: 83423
diff changeset
586 int (*read_socket_hook) P_ ((struct terminal *terminal,
83067
b44978264e1d Merged in changes from CVS HEAD
Karoly Lorentey <lorentey@elte.hu>
parents: 83065 54168
diff changeset
587 int expected,
b44978264e1d Merged in changes from CVS HEAD
Karoly Lorentey <lorentey@elte.hu>
parents: 83065 54168
diff changeset
588 struct input_event *hold_quit));
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
589
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
592
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
593
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 83423
diff changeset
595 on this terminal device. */
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
597
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 83011
diff changeset
599 the display device was closed (hangup).
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 85981
diff changeset
600
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 83423
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>
parents: 82992
diff changeset
603
83021
32bf8e7cc0c2 Fixed tty faces during combo sessions. Plus other assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83011
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>
parents: 83423
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>
parents: 83423
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>
parents: 83011
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>
parents: 83423
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>
parents: 82992
diff changeset
609 };
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
610
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
611
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 83423
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>
parents: 82992
diff changeset
614
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 83423
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>
parents: 83423
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>
parents: 83423
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>
parents: 83423
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>
parents: 83423
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>
parents: 83423
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>
parents: 82992
diff changeset
622
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 83423
diff changeset
624 #define FRAME_KEYBOARD_CODING(f) ((f)->terminal->keyboard_coding)
83127
5182815e0ee1 Make terminal_coding and keyboard_coding display-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83100
diff changeset
625
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 83423
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>
parents: 83288
diff changeset
628
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 82992
diff changeset
630
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 82992
diff changeset
632
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
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>
parents: 82992
diff changeset
635
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
636 #ifdef HAVE_X_WINDOWS
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
637 #define FRAME_WINDOW_P(f) FRAME_X_P (f)
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
638 #endif
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
639 #ifdef HAVE_NTGUI
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
641 #endif
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
642 #ifdef MAC_OS
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
644 #endif
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
645 #ifndef FRAME_WINDOW_P
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
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>
parents: 82992
diff changeset
647 #endif
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
648
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 83423
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>
parents: 83127
diff changeset
651
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 83423
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>
parents: 83423
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>
parents: 83423
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>
parents: 82992
diff changeset
656
83431
76396de7f50a Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83423
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>
parents: 83423
diff changeset
658 extern struct terminal *initial_terminal;
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51568
diff changeset
659
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51568
diff changeset
660 /* arch-tag: 33a00ecc-52b5-4186-a410-8801ac9f087d
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51568
diff changeset
661 (do not change this comment) */