aboutsummaryrefslogtreecommitdiffstats
path: root/src/termhooks.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/termhooks.h')
-rw-r--r--src/termhooks.h32
1 files changed, 21 insertions, 11 deletions
diff --git a/src/termhooks.h b/src/termhooks.h
index 04104eb41e9..9cab853ed3d 100644
--- a/src/termhooks.h
+++ b/src/termhooks.h
@@ -28,7 +28,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
28INLINE_HEADER_BEGIN 28INLINE_HEADER_BEGIN
29 29
30enum scroll_bar_part { 30enum scroll_bar_part {
31 scroll_bar_nowhere = -1, 31 scroll_bar_nowhere,
32 scroll_bar_above_handle, 32 scroll_bar_above_handle,
33 scroll_bar_handle, 33 scroll_bar_handle,
34 scroll_bar_below_handle, 34 scroll_bar_below_handle,
@@ -255,28 +255,36 @@ enum event_kind
255struct input_event 255struct input_event
256{ 256{
257 /* What kind of event was this? */ 257 /* What kind of event was this? */
258 enum event_kind kind; 258 ENUM_BF (event_kind) kind : 16;
259
260 /* Used in scroll back click events. */
261 ENUM_BF (scroll_bar_part) part : 16;
259 262
260 /* For an ASCII_KEYSTROKE_EVENT and MULTIBYTE_CHAR_KEYSTROKE_EVENT, 263 /* For an ASCII_KEYSTROKE_EVENT and MULTIBYTE_CHAR_KEYSTROKE_EVENT,
261 this is the character. 264 this is the character.
262 For a NON_ASCII_KEYSTROKE_EVENT, this is the keysym code. 265 For a NON_ASCII_KEYSTROKE_EVENT, this is the keysym code.
263 For a mouse event, this is the button number. 266 For a mouse event, this is the button number. */
264 For a HELP_EVENT, this is the position within the object 267 unsigned code;
265 (stored in ARG below) where the help was found. */
266 ptrdiff_t code;
267 enum scroll_bar_part part;
268 268
269 int modifiers; /* See enum below for interpretation. */ 269 /* See enum below for interpretation. */
270 unsigned modifiers;
270 271
272 /* One would prefer C integers, but HELP_EVENT uses these to
273 record frame or window object and a help form, respectively. */
271 Lisp_Object x, y; 274 Lisp_Object x, y;
275
276 /* Usually a time as reported by window system-specific event loop.
277 For a HELP_EVENT, this is the position within the object (stored
278 in ARG below) where the help was found. */
272 Time timestamp; 279 Time timestamp;
273 280
274 /* This field is copied into a vector while the event is in 281 /* This field is copied into a vector while the event is in
275 the queue, so that garbage collections won't kill it. */ 282 the queue, so that garbage collections won't kill it. */
276 Lisp_Object frame_or_window; 283 Lisp_Object frame_or_window;
277 284
278 /* Additional event argument. This is used for TOOL_BAR_EVENTs and 285 /* This additional argument is used in attempt to avoid extra consing
279 HELP_EVENTs and avoids calling Fcons during signal handling. */ 286 when building events. Unfortunately some events have to pass much
287 more data than it's reasonable to pack directly into this structure. */
280 Lisp_Object arg; 288 Lisp_Object arg;
281}; 289};
282 290
@@ -673,7 +681,9 @@ extern struct terminal *terminal_list;
673 (t->type == output_ns ? t->display_info.ns->name_list_element : Qnil) 681 (t->type == output_ns ? t->display_info.ns->name_list_element : Qnil)
674#endif 682#endif
675 683
676extern struct terminal *get_terminal (Lisp_Object terminal, bool); 684extern struct terminal *decode_live_terminal (Lisp_Object);
685extern struct terminal *decode_tty_terminal (Lisp_Object);
686extern struct terminal *get_named_terminal (const char *);
677extern struct terminal *create_terminal (enum output_method, 687extern struct terminal *create_terminal (enum output_method,
678 struct redisplay_interface *); 688 struct redisplay_interface *);
679extern void delete_terminal (struct terminal *); 689extern void delete_terminal (struct terminal *);