Mercurial > emacs
annotate src/termhooks.h @ 25851:544c7e5dd4c5
#
author | Dave Love <fx@gnu.org> |
---|---|
date | Sun, 03 Oct 1999 12:14:18 +0000 |
parents | 693ca9ba497a |
children | 5379722b5468 |
rev | line source |
---|---|
296 | 1 /* Hooks by which low level terminal operations |
2 can be made to call other routines. | |
7307 | 3 Copyright (C) 1985, 1986, 1993, 1994 Free Software Foundation, Inc. |
296 | 4 |
5 This file is part of GNU Emacs. | |
6 | |
7 GNU Emacs is free software; you can redistribute it and/or modify | |
8 it under the terms of the GNU General Public License as published by | |
648 | 9 the Free Software Foundation; either version 2, or (at your option) |
296 | 10 any later version. |
11 | |
12 GNU Emacs is distributed in the hope that it will be useful, | |
13 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 GNU General Public License for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
18 along with GNU Emacs; see the file COPYING. If not, write to | |
14186
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
14161
diff
changeset
|
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
14161
diff
changeset
|
20 Boston, MA 02111-1307, USA. */ |
296 | 21 |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
22 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
23 /* Miscellanea. */ |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
24 |
25001
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
25 struct glyph; |
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
26 struct frame; |
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
27 |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
28 /* If nonzero, send all terminal output characters to this stream also. */ |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
29 extern FILE *termscript; |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
30 |
21515 | 31 /* Only use prototypes when lisp.h has been included. */ |
32 #ifndef P_ | |
33 #define P_(X) () | |
34 #endif | |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
35 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
36 /* Text display hooks. */ |
296 | 37 |
25001
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
38 extern void (*cursor_to_hook) P_ ((int vpos, int hpos)); |
21515 | 39 extern void (*raw_cursor_to_hook) P_ ((int, int)); |
296 | 40 |
21515 | 41 extern void (*clear_to_end_hook) P_ ((void)); |
42 extern void (*clear_frame_hook) P_ ((void)); | |
43 extern void (*clear_end_of_line_hook) P_ ((int)); | |
296 | 44 |
21515 | 45 extern void (*ins_del_lines_hook) P_ ((int, int)); |
296 | 46 |
25001
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
47 extern void (*change_line_highlight_hook) P_ ((int, int, int, int)); |
21515 | 48 extern void (*reassert_line_highlight_hook) P_ ((int, int)); |
296 | 49 |
25001
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
50 extern void (*insert_glyphs_hook) P_ ((struct glyph *s, int n)); |
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
51 extern void (*write_glyphs_hook) P_ ((struct glyph *s, int n)); |
21515 | 52 extern void (*delete_glyphs_hook) P_ ((int)); |
296 | 53 |
21515 | 54 extern void (*ring_bell_hook) P_ ((void)); |
296 | 55 |
21515 | 56 extern void (*reset_terminal_modes_hook) P_ ((void)); |
57 extern void (*set_terminal_modes_hook) P_ ((void)); | |
58 extern void (*update_begin_hook) P_ ((struct frame *)); | |
59 extern void (*update_end_hook) P_ ((struct frame *)); | |
60 extern void (*set_terminal_window_hook) P_ ((int)); | |
296 | 61 |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
62 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
63 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
64 /* Multi-frame and mouse support hooks. */ |
296 | 65 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
66 enum scroll_bar_part { |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
67 scroll_bar_above_handle, |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
68 scroll_bar_handle, |
15176
87c0298bd4f7
(enum scroll_bar_part): New alternatives
Richard M. Stallman <rms@gnu.org>
parents:
14407
diff
changeset
|
69 scroll_bar_below_handle, |
87c0298bd4f7
(enum scroll_bar_part): New alternatives
Richard M. Stallman <rms@gnu.org>
parents:
14407
diff
changeset
|
70 scroll_bar_up_arrow, |
25001
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
71 scroll_bar_down_arrow, |
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
72 scroll_bar_to_top, |
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
73 scroll_bar_to_bottom, |
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
74 scroll_bar_end_scroll |
1717
aa7d6d57504b
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1319
diff
changeset
|
75 }; |
aa7d6d57504b
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1319
diff
changeset
|
76 |
aa7d6d57504b
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1319
diff
changeset
|
77 /* Return the current position of the mouse. |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
78 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
79 Set *f to the frame the mouse is in, or zero if the mouse is in no |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
80 Emacs frame. If it is set to zero, all the other arguments are |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
81 garbage. |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
82 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
83 If the motion started in a scroll bar, set *bar_window to the |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
84 scroll bar's window, *part to the part the mouse is currently over, |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
85 *x to the position of the mouse along the scroll bar, and *y to the |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
86 overall length of the scroll bar. |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
87 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
88 Otherwise, set *bar_window to Qnil, and *x and *y to the column and |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
89 row of the character cell the mouse is over. |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
90 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
91 Set *time to the time the mouse was at the returned position. |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
92 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
93 This should clear mouse_moved until the next motion |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
94 event arrives. */ |
21515 | 95 extern void (*mouse_position_hook) P_ ((struct frame **f, int, |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
96 Lisp_Object *bar_window, |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
97 enum scroll_bar_part *part, |
485 | 98 Lisp_Object *x, |
99 Lisp_Object *y, | |
21515 | 100 unsigned long *time)); |
296 | 101 |
485 | 102 /* The window system handling code should set this if the mouse has |
103 moved since the last call to the mouse_position_hook. Calling that | |
104 hook should clear this. */ | |
105 extern int mouse_moved; | |
296 | 106 |
766 | 107 /* When a frame's focus redirection is changed, this hook tells the |
357 | 108 window system code to re-decide where to put the highlight. Under |
485 | 109 X, this means that Emacs lies about where the focus is. */ |
21515 | 110 extern void (*frame_rehighlight_hook) P_ ((struct frame *)); |
338 | 111 |
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1782
diff
changeset
|
112 /* If we're displaying frames using a window system that can stack |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1782
diff
changeset
|
113 frames on top of each other, this hook allows you to bring a frame |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1782
diff
changeset
|
114 to the front, or bury it behind all the other windows. If this |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1782
diff
changeset
|
115 hook is zero, that means the device we're displaying on doesn't |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1782
diff
changeset
|
116 support overlapping frames, so there's no need to raise or lower |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1782
diff
changeset
|
117 anything. |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1782
diff
changeset
|
118 |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1782
diff
changeset
|
119 If RAISE is non-zero, F is brought to the front, before all other |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1782
diff
changeset
|
120 windows. If RAISE is zero, F is sent to the back, behind all other |
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1782
diff
changeset
|
121 windows. */ |
21515 | 122 extern void (*frame_raise_lower_hook) P_ ((struct frame *f, int raise)); |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
123 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
124 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
125 /* Scroll bar hooks. */ |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
126 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
127 /* The representation of scroll bars is determined by the code which |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
128 implements them, except for one thing: they must be represented by |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
129 lisp objects. This allows us to place references to them in |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
130 Lisp_Windows without worrying about those references becoming |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
131 dangling references when the scroll bar is destroyed. |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
132 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
133 The window-system-independent portion of Emacs just refers to |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
134 scroll bars via their windows, and never looks inside the scroll bar |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
135 representation; it always uses hook functions to do all the |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
136 scroll bar manipulation it needs. |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
137 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
138 The `vertical_scroll_bar' field of a Lisp_Window refers to that |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
139 window's scroll bar, or is nil if the window doesn't have a |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
140 scroll bar. |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
141 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
142 The `scroll_bars' and `condemned_scroll_bars' fields of a Lisp_Frame |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
143 are free for use by the scroll bar implementation in any way it sees |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
144 fit. They are marked by the garbage collector. */ |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
145 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
146 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
147 /* Set the vertical scroll bar for WINDOW to have its upper left corner |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
148 at (TOP, LEFT), and be LENGTH rows high. Set its handle to |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
149 indicate that we are displaying PORTION characters out of a total |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
150 of WHOLE characters, starting at POSITION. If WINDOW doesn't yet |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
151 have a scroll bar, create one for it. */ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
152 extern void (*set_vertical_scroll_bar_hook) |
21515 | 153 P_ ((struct window *window, |
154 int portion, int whole, int position)); | |
1717
aa7d6d57504b
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1319
diff
changeset
|
155 |
aa7d6d57504b
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1319
diff
changeset
|
156 |
aa7d6d57504b
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1319
diff
changeset
|
157 /* The following three hooks are used when we're doing a thorough |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
158 redisplay of the frame. We don't explicitly know which scroll bars |
1717
aa7d6d57504b
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1319
diff
changeset
|
159 are going to be deleted, because keeping track of when windows go |
aa7d6d57504b
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1319
diff
changeset
|
160 away is a real pain - can you say set-window-configuration? |
aa7d6d57504b
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1319
diff
changeset
|
161 Instead, we just assert at the beginning of redisplay that *all* |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
162 scroll bars are to be removed, and then save scroll bars from the |
14034 | 163 fiery pit when we actually redisplay their window. */ |
1717
aa7d6d57504b
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1319
diff
changeset
|
164 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
165 /* Arrange for all scroll bars on FRAME to be removed at the next call |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
166 to `*judge_scroll_bars_hook'. A scroll bar may be spared if |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
167 `*redeem_scroll_bar_hook' is applied to its window before the judgement. |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
168 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
169 This should be applied to each frame each time its window tree is |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
170 redisplayed, even if it is not displaying scroll bars at the moment; |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
171 if the HAS_SCROLL_BARS flag has just been turned off, only calling |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
172 this and the judge_scroll_bars_hook will get rid of them. |
1717
aa7d6d57504b
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1319
diff
changeset
|
173 |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
174 If non-zero, this hook should be safe to apply to any frame, |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
175 whether or not it can support scroll bars, and whether or not it is |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
176 currently displaying them. */ |
21515 | 177 extern void (*condemn_scroll_bars_hook) P_ ((struct frame *frame)); |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
178 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
179 /* Unmark WINDOW's scroll bar for deletion in this judgement cycle. |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
180 Note that it's okay to redeem a scroll bar that is not condemned. */ |
21515 | 181 extern void (*redeem_scroll_bar_hook) P_ ((struct window *window)); |
1717
aa7d6d57504b
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1319
diff
changeset
|
182 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
183 /* Remove all scroll bars on FRAME that haven't been saved since the |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
184 last call to `*condemn_scroll_bars_hook'. |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
185 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
186 This should be applied to each frame after each time its window |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
187 tree is redisplayed, even if it is not displaying scroll bars at the |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
188 moment; if the HAS_SCROLL_BARS flag has just been turned off, only |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
189 calling this and condemn_scroll_bars_hook will get rid of them. |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
190 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
191 If non-zero, this hook should be safe to apply to any frame, |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
192 whether or not it can support scroll bars, and whether or not it is |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
193 currently displaying them. */ |
21515 | 194 extern void (*judge_scroll_bars_hook) P_ ((struct frame *FRAME)); |
1717
aa7d6d57504b
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1319
diff
changeset
|
195 |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
196 |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
197 /* 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
|
198 |
296 | 199 /* Expedient hack: only provide the below definitions to files that |
6747
135dd9df7893
(enum event_kind): Add buffer_switch_event.
Karl Heuer <kwzh@gnu.org>
parents:
6602
diff
changeset
|
200 are prepared to handle lispy things. CONSP is defined iff lisp.h |
485 | 201 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
|
202 #ifdef CONSP |
296 | 203 |
2186
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
204 enum event_kind |
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
205 { |
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
206 no_event, /* nothing happened. This should never |
296 | 207 actually appear in the event queue. */ |
4799 | 208 |
209 ascii_keystroke, /* The ASCII code is in .code, perhaps | |
210 with modifiers applied. | |
211 .modifiers holds the state of the | |
212 modifier keys. | |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
213 .frame_or_window is the frame in |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
214 which the key was typed. |
485 | 215 .timestamp gives a timestamp (in |
216 milliseconds) for the keystroke. */ | |
2186
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
217 non_ascii_keystroke, /* .code is a number identifying the |
296 | 218 function key. A code N represents |
219 a key whose name is | |
220 function_key_names[N]; function_key_names | |
221 is a table in keyboard.c to which you | |
222 should feel free to add missing keys. | |
223 .modifiers holds the state of the | |
338 | 224 modifier keys. |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
225 .frame_or_window is the frame in |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
226 which the key was typed. |
485 | 227 .timestamp gives a timestamp (in |
228 milliseconds) for the keystroke. */ | |
14407
78c37f6d697b
(event_kind): New event type: timer_event.
Richard M. Stallman <rms@gnu.org>
parents:
14393
diff
changeset
|
229 timer_event, /* A timer fired. */ |
2186
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
230 mouse_click, /* 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
|
231 be >= 0 and < NUM_MOUSE_BUTTONS, defined |
540110352c0d
* termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1238
diff
changeset
|
232 below. |
296 | 233 .modifiers holds the state of the |
234 modifier keys. | |
235 .x and .y give the mouse position, | |
708 | 236 in characters, within the window. |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
237 .frame_or_window gives the frame |
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
238 the mouse click occurred in. |
296 | 239 .timestamp gives a timestamp (in |
240 milliseconds) for the click. */ | |
19700
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
241 #ifdef WINDOWSNT |
21889
93207874c93c
(event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
242 mouse_wheel, /* A mouse-wheel event is generated |
93207874c93c
(event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
243 on WINDOWSNT by a |
19700
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
244 wheel on a mouse (e.g., MS Intellimouse). |
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
245 The event contains a delta that corresponds |
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
246 to the amount and direction that the wheel |
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
247 is rotated. This delta is typically |
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
248 used to implement a scroll or zoom. |
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
249 .code gives the delta. |
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
250 .modifiers holds the state of the |
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
251 modifier keys. |
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
252 .x and .y give the mouse position, |
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
253 in characters, within the window. |
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
254 .frame_or_window gives the frame |
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
255 the wheel event occurred in. |
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
256 .timestamp gives a timestamp (in |
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
257 milliseconds) for the wheel event. */ |
23800
a7dd4cded68c
termhooks.h (event_kind) [WINDOWSNT]: Define
Geoff Voelker <voelker@cs.washington.edu>
parents:
21889
diff
changeset
|
258 language_change_event, /* A language_change event is generated |
a7dd4cded68c
termhooks.h (event_kind) [WINDOWSNT]: Define
Geoff Voelker <voelker@cs.washington.edu>
parents:
21889
diff
changeset
|
259 on WINDOWSNT when the keyboard layout |
a7dd4cded68c
termhooks.h (event_kind) [WINDOWSNT]: Define
Geoff Voelker <voelker@cs.washington.edu>
parents:
21889
diff
changeset
|
260 or input language is changed by the |
a7dd4cded68c
termhooks.h (event_kind) [WINDOWSNT]: Define
Geoff Voelker <voelker@cs.washington.edu>
parents:
21889
diff
changeset
|
261 user. */ |
19700
3c251b1dcdf5
(event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16588
diff
changeset
|
262 #endif |
2186
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
263 scroll_bar_click, /* .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
|
264 that was clicked. |
aa7d6d57504b
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1319
diff
changeset
|
265 .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
|
266 keys. |
296 | 267 .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
|
268 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
|
269 .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
|
270 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
|
271 length of the scroll bar. |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
272 .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
|
273 whose scroll bar was clicked in. |
296 | 274 .timestamp gives a timestamp (in |
275 milliseconds) for the click. */ | |
15176
87c0298bd4f7
(enum scroll_bar_part): New alternatives
Richard M. Stallman <rms@gnu.org>
parents:
14407
diff
changeset
|
276 #ifdef WINDOWSNT |
16588
481b7874a1e9
Change identifiers of the form win32* to w32*.
Geoff Voelker <voelker@cs.washington.edu>
parents:
15181
diff
changeset
|
277 w32_scroll_bar_click, /* as for scroll_bar_click, but only generated |
15176
87c0298bd4f7
(enum scroll_bar_part): New alternatives
Richard M. Stallman <rms@gnu.org>
parents:
14407
diff
changeset
|
278 by MS-Windows scroll bar controls. */ |
87c0298bd4f7
(enum scroll_bar_part): New alternatives
Richard M. Stallman <rms@gnu.org>
parents:
14407
diff
changeset
|
279 #endif |
2186
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
280 selection_request_event, /* Another X client wants a selection from us. |
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
281 See `struct selection_event'. */ |
5106
2df44d5e75eb
(delete_window_event): New event kind.
Richard M. Stallman <rms@gnu.org>
parents:
4799
diff
changeset
|
282 selection_clear_event, /* Another X client cleared our selection. */ |
6747
135dd9df7893
(enum event_kind): Add buffer_switch_event.
Karl Heuer <kwzh@gnu.org>
parents:
6602
diff
changeset
|
283 buffer_switch_event, /* A process filter has switched buffers. */ |
7097
34c94047f8f9
(menu_bar_event): New event type.
Richard M. Stallman <rms@gnu.org>
parents:
6747
diff
changeset
|
284 delete_window_event, /* An X client said "delete this window". */ |
9728
5fdefb7f9921
(iconify_event, deiconify_event): New events.
Karl Heuer <kwzh@gnu.org>
parents:
7307
diff
changeset
|
285 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
|
286 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
|
287 Lisp-level event value. |
34c94047f8f9
(menu_bar_event): New event type.
Richard M. Stallman <rms@gnu.org>
parents:
6747
diff
changeset
|
288 (Only the toolkit version uses these.) */ |
9728
5fdefb7f9921
(iconify_event, deiconify_event): New events.
Karl Heuer <kwzh@gnu.org>
parents:
7307
diff
changeset
|
289 iconify_event, /* An X client iconified this window. */ |
12660
8b9633307acc
(enum event_kind): Added menu_bar_activate_event.
Richard M. Stallman <rms@gnu.org>
parents:
10798
diff
changeset
|
290 deiconify_event, /* An X client deiconified this window. */ |
25001
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
291 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
|
292 (toolkit version only). */ |
24376
c0b139a546c0
(event_kind): Add user_signal.
Andreas Schwab <schwab@suse.de>
parents:
23800
diff
changeset
|
293 drag_n_drop, /* 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
|
294 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
|
295 onto an Emacs window. |
93207874c93c
(event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
296 Currently used only on Windows NT. |
93207874c93c
(event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
297 .modifiers holds the state of the |
93207874c93c
(event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
298 modifier keys. |
93207874c93c
(event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
299 .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
|
300 in characters, within the window. |
93207874c93c
(event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
301 .frame_or_window is a cons of the frame |
93207874c93c
(event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
302 in which the drop was made and a list of |
93207874c93c
(event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
303 the filenames of the dropped files. |
93207874c93c
(event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
304 .timestamp gives a timestamp (in |
93207874c93c
(event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents:
21515
diff
changeset
|
305 milliseconds) for the click. */ |
25001
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
306 user_signal, /* A user signal. |
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
307 .code is a number identifying it, |
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
308 index into lispy_user_signals. */ |
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
309 |
25544
693ca9ba497a
Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents:
25001
diff
changeset
|
310 /* Currently only returned when the mouse enters a tool-bar item that |
25001
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
311 has a help string. Member frame_or_window of the input_event is |
25544
693ca9ba497a
Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents:
25001
diff
changeset
|
312 a cons cell whose car is the tool-bar's frame and whose cdr is the |
25001
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
313 help string. */ |
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
314 HELP_EVENT, |
65dabc032485
(scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents:
24376
diff
changeset
|
315 |
25544
693ca9ba497a
Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents:
25001
diff
changeset
|
316 TOOL_BAR_EVENT |
2186
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
317 }; |
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
318 |
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
319 /* If a struct input_event has a kind which is selection_request_event |
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
320 or selection_clear_event, then its contents are really described |
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
321 by `struct selection_event'; see xterm.h. */ |
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
322 |
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
323 /* 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
|
324 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
|
325 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
|
326 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
|
327 |
14393
c977e0ae56b4
(struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
328 struct input_event |
c977e0ae56b4
(struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
329 { |
2186
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
330 |
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
331 /* What kind of event was this? */ |
14393
c977e0ae56b4
(struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
332 int kind; |
296 | 333 |
5226
4891291b5785
(struct input_event): `code' is now an int.
Richard M. Stallman <rms@gnu.org>
parents:
5106
diff
changeset
|
334 /* For an ascii_keystroke, this is the character. |
4891291b5785
(struct input_event): `code' is now an int.
Richard M. Stallman <rms@gnu.org>
parents:
5106
diff
changeset
|
335 For a non_ascii_keystroke, 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
|
336 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
|
337 /* 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
|
338 int code; |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
339 enum scroll_bar_part part; |
732 | 340 |
14161
670721a540c8
(struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents:
14034
diff
changeset
|
341 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
|
342 |
670721a540c8
(struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents:
14034
diff
changeset
|
343 Lisp_Object x, y; |
670721a540c8
(struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents:
14034
diff
changeset
|
344 unsigned long timestamp; |
670721a540c8
(struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents:
14034
diff
changeset
|
345 |
14393
c977e0ae56b4
(struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
346 /* This is padding just to put the frame_or_window field |
c977e0ae56b4
(struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
347 past the size of struct selection_event. */ |
c977e0ae56b4
(struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
348 int *padding[2]; |
c977e0ae56b4
(struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
349 |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
350 /* 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
|
351 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
|
352 /* 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
|
353 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
|
354 /* 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
|
355 does not overlap with it. */ |
1782
5d58b9f1ff22
* termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1717
diff
changeset
|
356 Lisp_Object frame_or_window; |
296 | 357 }; |
21515 | 358 |
359 /* Called to read input events. */ | |
360 extern int (*read_socket_hook) P_ ((int, struct input_event *, int, int)); | |
361 | |
362 /* Called when a frame's display becomes entirely up to date. */ | |
363 extern void (*frame_up_to_date_hook) P_ ((struct frame *)); | |
2186
82e8ee492593
(selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents:
2046
diff
changeset
|
364 |
1312
540110352c0d
* termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1238
diff
changeset
|
365 /* This is used in keyboard.c, to tell how many buttons we will need |
540110352c0d
* termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1238
diff
changeset
|
366 to track the positions of. */ |
540110352c0d
* termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1238
diff
changeset
|
367 #define NUM_MOUSE_BUTTONS (5) |
540110352c0d
* termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1238
diff
changeset
|
368 |
1238
407100cee78a
* termhooks.h (alt_modifier, hyper_modifier, super_modifier,
Jim Blandy <jimb@redhat.com>
parents:
766
diff
changeset
|
369 /* 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
|
370 Note that reorder_modifiers assumes that the bits are in canonical |
1312
540110352c0d
* termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1238
diff
changeset
|
371 order. |
540110352c0d
* termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1238
diff
changeset
|
372 |
540110352c0d
* termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1238
diff
changeset
|
373 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
|
374 window-system-specific code should store mouse clicks with |
1319 | 375 up_modifier or down_modifier set. Having an explicit down modifier |
376 simplifies some of window-system-independent code; without it, the | |
377 code would have to recognize down events by checking if the event | |
378 is a mouse click lacking the click and drag modifiers. | |
379 | |
380 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
|
381 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
|
382 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
|
383 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
|
384 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
|
385 event heads. */ |
296 | 386 enum { |
1312
540110352c0d
* termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1238
diff
changeset
|
387 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
|
388 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
|
389 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
|
390 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
|
391 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
|
392 queue; it's only used internally by |
540110352c0d
* termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
1238
diff
changeset
|
393 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
|
394 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
|
395 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
|
396 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
|
397 |
3e8799eff918
* lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents:
2186
diff
changeset
|
398 /* 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
|
399 the Lisp level. |
2046
9e30cf115e63
(alt_modifier, super_modifier, hyper_modifier):
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
400 |
2659
3e8799eff918
* lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents:
2186
diff
changeset
|
401 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
|
402 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
|
403 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
|
404 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
|
405 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
|
406 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
|
407 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
|
408 |
3e8799eff918
* lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents:
2186
diff
changeset
|
409 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
|
410 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
|
411 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
|
412 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
|
413 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
|
414 ctrl_modifier = CHAR_CTL, |
4569
9ea563d584f4
(enum event_kind): Delete final comma.
Richard M. Stallman <rms@gnu.org>
parents:
4143
diff
changeset
|
415 meta_modifier = CHAR_META /* Under X, the XK_Meta_[LR] keysyms. */ |
296 | 416 }; |
417 | |
418 #endif |