annotate src/termhooks.h @ 83004:7900111db01c

Converted display hooks to be display-local. Plus many bugfixes. lib-src/emacsclient.c (window_change_signal): Renamed to pass_signal_to_emacs. (init_signal): Pass SIGINT and SIGQUIT to the emacs process. lisp/faces.el (face-valid-attribute-values): Use the window-system function, not the variable. (read-face-attribute, face-spec-set-match-display, frame-set-background-mode) (face-set-after-frame-default): Ditto. lisp/frame.el (make-frame-on-tty): Added interactive declaration (suggested by Robert J. Chassell). Use tty-create-frame-with-faces, not make-terminal-frame. src/termhooks.h (struct display_method): Renamed to display for brevity. (struct display): Added all display hook variables as members of this structure. Added next_display, reference_count, type and display_info components. (FRAME_MUST_WRITE_SPACES, FRAME_FAST_CLEAR_END_OF_LINE, FRAME_LINE_INS_DEL_OK) (FRAME_CHAR_INS_DEL_OK, FRAME_SCROLL_REGION_OK, FRAME_SCROLL_REGION_COST) (FRAME_MEMORY_BELOW_FRAME, FRAME_RIF): Updated for struct display. (FRAME_DISPLAY): New macro. (create_display, delete_display): New prototypes. src/frame.h (struct frame): Added `display' member, removed display_method. (FRAME_LIVE_P): Look at f->display, not f->output_data. src/termchar.h (struct tty_display_info): Removed display_method component. (FRAME_TTY): Use the display structure, not output_data. src/term.c (display_list): New variable. (cursor_to_hook, raw_cursor_to_hook, clear_to_end_hook, clear_frame_hook) (clear_end_of_line_hook, ins_del_lines_hook, delete_glyphs_hook) (ring_bell_hook, reset_terminal_modes_hook, set_terminal_modes_hook) (update_begin_hook, update_end_hook, set_terminal_window_hook) (insert_glyphs_hook, write_glyphs_hook, delete_glyphs_hoo, read_socket_hook) (frame_up_to_date_hook, mouse_position_hook, frame_rehighlight_hook) (frame_raise_lower_hook, set_vertical_scroll_bar_hook, condemn_scroll_bars_hook) (redeem_scroll_bar_hook, judge_scroll_bars_hook): Moved to struct display. (tty_display_method_template): Removed. (syms_of_term): Don't initialize tty_display_method_template. (ring_bell, set_terminal_modes, reset_terminal_modes, update_begin) (update_end, set_terminal_window, cursor_to, raw_cursor_to, clear_to_end) (clear_frame, clear_end_of_line, write_glyphs, insert_glyphs) (delete_glyphs, ins_del_lines): Access display hooks through the frame pointer. (Ftty_display_color_p): Use the frame given as a parameter, or else return nil. (Ftty_display_color_cells): Ditto. (get_named_tty): Renamed to get_named_tty_display, changed return type to struct display. (term_dummy_init): Renamed to initial_term_init. Create and return an initial display. (term_init): Initialize a new struct display and return a pointer to it instead of tty_display_info. Removed frame initialization kludge. (Fdelete_tty): Updated for struct display. (delete_tty): The parameter type is now struct display, not tty_display_info. Delete the display, too. (create_tty_output): New function for creating tty_output structures. (delete_tty_output): New function for deleting tty_output structures. (create_display): New function for creating and registering display structures. (delete_display): New function for deleting and unregistering display structures. src/dispextern.h: Updated prototypes. src/dispnew.c: Include frame.h before termhooks.h. (init_display): Updated term_init call to new signature. src/emacs.c: Include frame.h (for termhooks.h). src/keymap.c: Ditto. src/lread.c: Ditto. src/xsmfns.c: Ditto. src/process.c: Include frame.h before termhooks.h. src/frame.c (Fwindow_system): New function. (syms_of_frame): Initialize it. (make_terminal_frame): Open the terminal device before creating the new frame. Disable scrollbars here, term_init cannot do that anymore. (Fdelete_frame): Use the new delete_frame_hook, don't do display-specific frame deletion here. Ditto for delete_display_hook. (Fmouse_position, Fmouse_pixel_position, Fraise_frame, Flower_frame) (Fredirect_frame_focus): Access display hooks through the frame pointer. src/keyboard.c: Include frame.h before termhooks.h. (start_polling, input_polling_used, stop_polling, gobble_input): Ignore read_socket_hook. (kbd_buffer_get_event, Fset_input_mode): Access display hooks through the frame pointer. (read_avail_input): Loop through all display devices for and call all read_socket_hook functions. Check ttys even if read_socket_hook returned an error. src/sysdep.c (discard_tty_input): Ignore read_socket_hook. (stuff_char): Don't do anything if the current frame is not on a termcap display. (request_sigio, unrequest_sigio): Ignore read_socket_hook. (init_sys_modes): Always call narrow_foreground_group. Set up terminal modes and sigio even under X. src/xdisp.c (message2_nolog, message3_nolog, redisplay_internal) (set_vertical_scroll_bar, redisplay_window): Access display hooks through the frame pointer. (echo_area_display): Don't be afraid of termcap frames during an X+tty combo session. src/xfaces.c: Include termhooks.h. (Ftty_supports_face_attributes_p): Use the given frame, not selected_frame. src/xfns.c (x_set_scroll_bar_foreground, x_set_scroll_bar_background): Access display hooks through the frame pointer. (Fx_create_frame, x_create_tip_frame): Initialize the frame's display structure. src/xmenu.c: Include termhooks.h after frame.h. src/xselect.c (x_own_selection, some_frame_on_display, x_get_foreign_selection) (Fx_disown_selection_internal, Fx_get_cut_buffer_internal) (Fx_store_cut_buffer_internal, Fx_rotate_cut_buffers_internal): Don't do anything if the selected frame is not an X frame. src/xterm.c (x_display_method): Removed. (x_create_frame_display, x_delete_frame_display): New functions for handling struct display objects. (x_term_init): Set up a new struct display object, too. (x_delete_display): Delete the struct display corresponding to the X display. (x_initialize): Moved hook initialization to x_create_frame_display. src/xterm.h (x_display_method): Removed. (struct x_display_info): Added frame_display component. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-44
author Karoly Lorentey <lorentey@elte.hu>
date Mon, 05 Jan 2004 05:54:35 +0000
parents 5de4189e659d
children 040dd41ed7d0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
1 /* Parameters and display hooks for output devices
51568
5dc40bf1e32a (EVENT_INIT): New macro.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 51466
diff changeset
2 Copyright (C) 1985,86,93,94,2003 Free Software Foundation, Inc.
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4 This file is part of GNU Emacs.
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
648
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
8 the Free Software Foundation; either version 2, or (at your option)
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 any later version.
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 GNU General Public License for more details.
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 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
18 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
19 Boston, MA 02111-1307, USA. */
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
21
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
22 /* Miscellanea. */
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
23
25001
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
24 struct glyph;
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
25 struct frame;
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
26
21515
fb4c986db0e2 Add more prototypes.
Andreas Schwab <schwab@suse.de>
parents: 19700
diff changeset
27 /* Only use prototypes when lisp.h has been included. */
fb4c986db0e2 Add more prototypes.
Andreas Schwab <schwab@suse.de>
parents: 19700
diff changeset
28 #ifndef P_
fb4c986db0e2 Add more prototypes.
Andreas Schwab <schwab@suse.de>
parents: 19700
diff changeset
29 #define P_(X) ()
fb4c986db0e2 Add more prototypes.
Andreas Schwab <schwab@suse.de>
parents: 19700
diff changeset
30 #endif
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
31
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32
1994
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
33 enum scroll_bar_part {
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
34 scroll_bar_above_handle,
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
35 scroll_bar_handle,
15176
87c0298bd4f7 (enum scroll_bar_part): New alternatives
Richard M. Stallman <rms@gnu.org>
parents: 14407
diff changeset
36 scroll_bar_below_handle,
87c0298bd4f7 (enum scroll_bar_part): New alternatives
Richard M. Stallman <rms@gnu.org>
parents: 14407
diff changeset
37 scroll_bar_up_arrow,
25001
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
38 scroll_bar_down_arrow,
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
39 scroll_bar_to_top,
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
40 scroll_bar_to_bottom,
26787
5379722b5468 (scroll_bar_part): Add `scroll_bar_move_ratio'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25544
diff changeset
41 scroll_bar_end_scroll,
5379722b5468 (scroll_bar_part): Add `scroll_bar_move_ratio'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 25544
diff changeset
42 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
43 };
aa7d6d57504b * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1319
diff changeset
44
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
45
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
46 /* 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
47
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 /* 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
49 are prepared to handle lispy things. CONSP is defined iff lisp.h
485
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 357
diff changeset
50 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
51 #ifdef CONSP
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52
2186
82e8ee492593 (selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents: 2046
diff changeset
53 enum event_kind
82e8ee492593 (selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents: 2046
diff changeset
54 {
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
55 NO_EVENT, /* nothing happened. This should never
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56 actually appear in the event queue. */
4799
6af5540f4e4e Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 4584
diff changeset
57
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
58 ASCII_KEYSTROKE_EVENT, /* The ASCII code is in .code, perhaps
4799
6af5540f4e4e Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 4584
diff changeset
59 with modifiers applied.
6af5540f4e4e Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 4584
diff changeset
60 .modifiers holds the state of the
6af5540f4e4e Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 4584
diff changeset
61 modifier keys.
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
62 .frame_or_window is the frame in
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
63 which the key was typed.
485
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 357
diff changeset
64 .timestamp gives a timestamp (in
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 357
diff changeset
65 milliseconds) for the keystroke. */
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
66 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
67 perhaps with modifiers applied.
e96da8e19cef (enum event_kind): New member multibyte_char_keystroke.
Kenichi Handa <handa@m17n.org>
parents: 30175
diff changeset
68 The others are the same as
48090
b7e13d33cf41 Comment.
Dave Love <fx@gnu.org>
parents: 46798
diff changeset
69 ASCII_KEYSTROKE_EVENT. */
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
70 NON_ASCII_KEYSTROKE_EVENT, /* .code is a number identifying the
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
71 function key. A code N represents
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
72 a key whose name is
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
73 function_key_names[N]; function_key_names
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
74 is a table in keyboard.c to which you
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
75 should feel free to add missing keys.
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
76 .modifiers holds the state of the
338
4840aae6a876 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 296
diff changeset
77 modifier keys.
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
78 .frame_or_window is the frame in
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
79 which the key was typed.
485
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 357
diff changeset
80 .timestamp gives a timestamp (in
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 357
diff changeset
81 milliseconds) for the keystroke. */
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
82 TIMER_EVENT, /* A timer fired. */
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
83 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
84 be >= 0 and < NUM_MOUSE_BUTTONS, defined
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
85 below.
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
86 .modifiers holds the state of the
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
87 modifier keys.
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88 .x and .y give the mouse position,
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 648
diff changeset
89 in characters, within the window.
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
90 .frame_or_window gives the frame
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
91 the mouse click occurred in.
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
92 .timestamp gives a timestamp (in
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
93 milliseconds) for the click. */
51383
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
94 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
95 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
96 Intellimouse).
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
97 .modifiers holds the rotate
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
98 direction (up or down), and the
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
99 state of the modifier keys.
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
100 .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
101 in characters, within the window.
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
102 .frame_or_window gives the frame
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
103 the wheel event occurred in.
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
104 .timestamp gives a timestamp (in
8f30748bdf8f (enum event_kind): Added new WHEEL_EVENT event.
Jason Rumney <jasonr@gnu.org>
parents: 49600
diff changeset
105 milliseconds) for the event. */
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
106 #ifdef WINDOWSNT
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
107 LANGUAGE_CHANGE_EVENT, /* A LANGUAGE_CHANGE_EVENT is generated
23800
a7dd4cded68c termhooks.h (event_kind) [WINDOWSNT]: Define
Geoff Voelker <voelker@cs.washington.edu>
parents: 21889
diff changeset
108 on WINDOWSNT when the keyboard layout
a7dd4cded68c termhooks.h (event_kind) [WINDOWSNT]: Define
Geoff Voelker <voelker@cs.washington.edu>
parents: 21889
diff changeset
109 or input language is changed by the
a7dd4cded68c termhooks.h (event_kind) [WINDOWSNT]: Define
Geoff Voelker <voelker@cs.washington.edu>
parents: 21889
diff changeset
110 user. */
19700
3c251b1dcdf5 (event_kind) [WINDOWSNT]: New event type: mouse_wheel.
Geoff Voelker <voelker@cs.washington.edu>
parents: 16588
diff changeset
111 #endif
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
112 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
113 that was clicked.
aa7d6d57504b * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1319
diff changeset
114 .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
115 keys.
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
116 .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
117 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
118 .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
119 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
120 length of the scroll bar.
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
121 .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
122 whose scroll bar was clicked in.
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
123 .timestamp gives a timestamp (in
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
124 milliseconds) for the click. */
15176
87c0298bd4f7 (enum scroll_bar_part): New alternatives
Richard M. Stallman <rms@gnu.org>
parents: 14407
diff changeset
125 #ifdef WINDOWSNT
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
126 W32_SCROLL_BAR_CLICK_EVENT, /* 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
127 by MS-Windows scroll bar controls. */
87c0298bd4f7 (enum scroll_bar_part): New alternatives
Richard M. Stallman <rms@gnu.org>
parents: 14407
diff changeset
128 #endif
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
129 SELECTION_REQUEST_EVENT, /* Another X client wants a selection from us.
2186
82e8ee492593 (selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents: 2046
diff changeset
130 See `struct selection_event'. */
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
131 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
132 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
133 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
134 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
135 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
136 Lisp-level event value.
34c94047f8f9 (menu_bar_event): New event type.
Richard M. Stallman <rms@gnu.org>
parents: 6747
diff changeset
137 (Only the toolkit version uses these.) */
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
138 ICONIFY_EVENT, /* An X client iconified this window. */
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
139 DEICONIFY_EVENT, /* An X client deiconified this window. */
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
140 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
141 (toolkit version only). */
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
142 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
143 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
144 onto an Emacs window.
93207874c93c (event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents: 21515
diff changeset
145 Currently used only on Windows NT.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48090
diff changeset
146 .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
147 modifier keys.
93207874c93c (event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents: 21515
diff changeset
148 .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
149 in characters, within the window.
93207874c93c (event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents: 21515
diff changeset
150 .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
151 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
152 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
153 .timestamp gives a timestamp (in
93207874c93c (event_kind): New event type `drag_n_drop'.
Richard M. Stallman <rms@gnu.org>
parents: 21515
diff changeset
154 milliseconds) for the click. */
30175
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
155 USER_SIGNAL_EVENT, /* A user signal.
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
156 code is a number identifying it,
25001
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
157 index into lispy_user_signals. */
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
158
30175
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
159 /* 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
160 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
161 the help to show. */
25001
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
162 HELP_EVENT,
65dabc032485 (scroll_bar_end_scroll): New.
Gerd Moellmann <gerd@gnu.org>
parents: 24376
diff changeset
163
30175
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
164 /* 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
165 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
166 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
167 TOOL_BAR_EVENT,
e31f78844157 (enum event_kind): Add FOCUS_IN_EVENT.
Gerd Moellmann <gerd@gnu.org>
parents: 28482
diff changeset
168
e31f78844157 (enum event_kind): Add FOCUS_IN_EVENT.
Gerd Moellmann <gerd@gnu.org>
parents: 28482
diff changeset
169 /* 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
170 `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
171 FOCUS_IN_EVENT,
7c1c9baea70f (enum event_kind): Added save_session_event.
Jan Djärv <jan.h.d@swipnet.se>
parents: 40080
diff changeset
172
44299
b7f9e859425a (enum event_kind): New event type `SELECT_WINDOW_EVENT'.
Pavel Janík <Pavel@Janik.cz>
parents: 43813
diff changeset
173 /* 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
174 SELECT_WINDOW_EVENT,
b7f9e859425a (enum event_kind): New event type `SELECT_WINDOW_EVENT'.
Pavel Janík <Pavel@Janik.cz>
parents: 43813
diff changeset
175
43813
7c1c9baea70f (enum event_kind): Added save_session_event.
Jan Djärv <jan.h.d@swipnet.se>
parents: 40080
diff changeset
176 /* 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
177 save yourself before shutdown. */
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
178 SAVE_SESSION_EVENT
2186
82e8ee492593 (selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents: 2046
diff changeset
179 };
82e8ee492593 (selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents: 2046
diff changeset
180
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
181 /* 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
182 or SELECTION_CLEAR_EVENT, then its contents are really described
2186
82e8ee492593 (selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents: 2046
diff changeset
183 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
184
82e8ee492593 (selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents: 2046
diff changeset
185 /* 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
186 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
187 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
188 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
189
14393
c977e0ae56b4 (struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
190 struct input_event
c977e0ae56b4 (struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
191 {
2186
82e8ee492593 (selection_request_event, selection_clear_event): New event kinds.
Richard M. Stallman <rms@gnu.org>
parents: 2046
diff changeset
192 /* 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
193 enum event_kind kind;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 48090
diff changeset
194
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
195 /* 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
196 this is the character.
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 44299
diff changeset
197 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
198 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
199 /* 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
200 int code;
1994
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
201 enum scroll_bar_part part;
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 708
diff changeset
202
14161
670721a540c8 (struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents: 14034
diff changeset
203 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
204
670721a540c8 (struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents: 14034
diff changeset
205 Lisp_Object x, y;
670721a540c8 (struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents: 14034
diff changeset
206 unsigned long timestamp;
670721a540c8 (struct input_event): Put frame_or_window last.
Richard M. Stallman <rms@gnu.org>
parents: 14034
diff changeset
207
14393
c977e0ae56b4 (struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
208 /* 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
209 past the size of struct selection_event. */
c977e0ae56b4 (struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
210 int *padding[2];
c977e0ae56b4 (struct input_event): New field `padding'.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
211
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
212 /* 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
213 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
214 /* 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
215 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
216 /* 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
217 does not overlap with it. */
1782
5d58b9f1ff22 * termhooks.h (mouse_position_hook): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
218 Lisp_Object frame_or_window;
30175
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
219
67c99cc46d03 (struct input_event): Add member `arg'.
Gerd Moellmann <gerd@gnu.org>
parents: 29514
diff changeset
220 /* 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
221 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
222 Lisp_Object arg;
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
223 };
21515
fb4c986db0e2 Add more prototypes.
Andreas Schwab <schwab@suse.de>
parents: 19700
diff changeset
224
51568
5dc40bf1e32a (EVENT_INIT): New macro.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 51466
diff changeset
225 #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
226
1238
407100cee78a * termhooks.h (alt_modifier, hyper_modifier, super_modifier,
Jim Blandy <jimb@redhat.com>
parents: 766
diff changeset
227 /* 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
228 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
229 order.
1312
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
230
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
231 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
232 window-system-specific code should store mouse clicks with
1319
20862b54b932 Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1312
diff changeset
233 up_modifier or down_modifier set. Having an explicit down modifier
20862b54b932 Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1312
diff changeset
234 simplifies some of window-system-independent code; without it, the
20862b54b932 Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1312
diff changeset
235 code would have to recognize down events by checking if the event
20862b54b932 Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1312
diff changeset
236 is a mouse click lacking the click and drag modifiers.
20862b54b932 Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1312
diff changeset
237
20862b54b932 Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1312
diff changeset
238 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
239 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
240 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
241 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
242 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
243 event heads. */
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
244 enum {
1312
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
245 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
246 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
247 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
248 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
249 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
250 queue; it's only used internally by
540110352c0d * termhooks.h (struct input_event): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1238
diff changeset
251 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
252 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
253 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
254 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
255
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
256 /* 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
257 the Lisp level.
2046
9e30cf115e63 (alt_modifier, super_modifier, hyper_modifier):
Richard M. Stallman <rms@gnu.org>
parents: 1994
diff changeset
258
2659
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
259 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
260 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
261 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
262 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
263 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
264 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
265 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
266
3e8799eff918 * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2186
diff changeset
267 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
268 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
269 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
270 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
271 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
272 ctrl_modifier = CHAR_CTL,
4569
9ea563d584f4 (enum event_kind): Delete final comma.
Richard M. Stallman <rms@gnu.org>
parents: 4143
diff changeset
273 meta_modifier = CHAR_META /* Under X, the XK_Meta_[LR] keysyms. */
296
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
274 };
558b874b5259 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
275
82990
2ecd1f669db9 Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
parents: 82989
diff changeset
276 #endif /* CONSP */
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51568
diff changeset
277
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
278
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
279 /* Display-local parameters. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
280 struct display
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
281 {
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
282 /* Chain of all displays. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
283 struct display *next_display;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
284
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
285 /* The number of frames that are on this display. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
286 int reference_count;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
287
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
288 /* The type of the display. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
289 enum output_method type;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
290
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
291 /* Display-type dependent data shared amongst all frames on this display. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
292 union display_info
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
293 {
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
294 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
295 struct x_display_info *x; /* xterm.h */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
296 } display_info;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
297
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
298
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
299 /* Terminal characteristics. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
300 /* XXX Are these really used on non-termcap displays? */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
301
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
302 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
303 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
304 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
305 int fast_clear_end_of_line; /* Nonzero means terminal has a `ce' string */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
306
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
307 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
308 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
309 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
310 window */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
311 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
312 measured in characters. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
313 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
314 off bottom */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
315
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
316 #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
317 /* 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
318 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
319 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
320 various cost tables; we won't use them. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
321 #endif
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
322
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
323
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
324 /* 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
325 devices). */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
326 struct redisplay_interface *rif;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
327
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
328 /* Frame-based redisplay interface. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
329
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
330 /* Text display hooks. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
331
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
332 void (*cursor_to_hook) P_ ((int vpos, int hpos));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
333 void (*raw_cursor_to_hook) P_ ((int, int));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
334
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
335 void (*clear_to_end_hook) P_ ((void));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
336 void (*clear_frame_hook) P_ ((void));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
337 void (*clear_end_of_line_hook) P_ ((int));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
338
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
339 void (*ins_del_lines_hook) P_ ((int, int));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
340
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
341 void (*insert_glyphs_hook) P_ ((struct glyph *s, int n));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
342 void (*write_glyphs_hook) P_ ((struct glyph *s, int n));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
343 void (*delete_glyphs_hook) P_ ((int));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
344
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
345 void (*ring_bell_hook) P_ ((void));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
346
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
347 void (*reset_terminal_modes_hook) P_ ((void));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
348 void (*set_terminal_modes_hook) P_ ((void));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
349 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
350 void (*update_end_hook) P_ ((struct frame *));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
351 void (*set_terminal_window_hook) P_ ((int));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
352
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
353 /* 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
354
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
355 /* 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
356
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
357 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
358 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
359 garbage.
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
360
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
361 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
362 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
363 *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
364 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
365
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
366 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
367 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
368
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
369 Set *time to the time the mouse was at the returned position.
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
370
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
371 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
372 event arrives. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
373 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
374 Lisp_Object *bar_window,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
375 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
376 Lisp_Object *x,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
377 Lisp_Object *y,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
378 unsigned long *time));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
379
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
380 /* 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
381 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
382 hook should clear this. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
383 int mouse_moved;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
384
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
385 /* 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
386 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
387 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
388 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
389
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
390 /* 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
391 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
392 to the front, or bury it behind all the other windows. If this
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
393 hook is zero, that means the device we're displaying on doesn't
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
394 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
395 anything.
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
396
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
397 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
398 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
399 windows. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
400 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
401
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
402
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
403 /* Scroll bar hooks. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
404
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
405 /* 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
406 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
407 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
408 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
409 dangling references when the scroll bar is destroyed.
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
410
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
411 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
412 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
413 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
414 scroll bar manipulation it needs.
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
415
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
416 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
417 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
418 scroll bar.
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
419
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
420 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
421 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
422 fit. They are marked by the garbage collector. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
423
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
424
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
425 /* 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
426 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
427 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
428 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
429 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
430 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
431 int portion, int whole,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
432 int position));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
433
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
434
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
435 /* 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
436 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
437 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
438 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
439 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
440 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
441 fiery pit when we actually redisplay their window. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
442
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
443 /* 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
444 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
445 `*redeem_scroll_bar_hook' is applied to its window before the judgement.
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
446
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
447 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
448 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
449 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
450 this and the judge_scroll_bars_hook will get rid of them.
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
451
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
452 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
453 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
454 currently displaying them. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
455 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
456
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
457 /* 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
458 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
459 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
460
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
461 /* 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
462 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
463
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
464 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
465 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
466 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
467 calling this and condemn_scroll_bars_hook will get rid of them.
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
468
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
469 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
470 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
471 currently displaying them. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
472 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
473
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
474
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
475 /* Called to read input events. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
476 int (*read_socket_hook) P_ ((struct input_event *, int, int));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
477
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
478 /* 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
479 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
480
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
481
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
482 /* Called to delete the device-specific portions of a frame that is
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
483 on this display. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
484 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
485
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
486 /* Called after the last frame on this display is deleted.
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
487 If this is NULL, then the generic delete_frame() is called.
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
488
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
489 Fdelete_frame ensures that there are no live frames on the
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
490 display when it calls this hook. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
491 void (*delete_display_hook) P_ ((struct display *));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
492
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
493 };
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
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
496 /* Chain of all displays currently in use. */
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
497 extern struct display *display_list;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
498
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
499 #define FRAME_MUST_WRITE_SPACES(f) ((f)->display->must_write_spaces)
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
500 #define FRAME_FAST_CLEAR_END_OF_LINE(f) ((f)->display->fast_clear_end_of_line)
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
501 #define FRAME_LINE_INS_DEL_OK(f) ((f)->display->line_ins_del_ok)
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
502 #define FRAME_CHAR_INS_DEL_OK(f) ((f)->display->char_ins_del_ok)
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
503 #define FRAME_SCROLL_REGION_OK(f) ((f)->display->scroll_region_ok)
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
504 #define FRAME_SCROLL_REGION_COST(f) ((f)->display->scroll_region_cost)
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
505 #define FRAME_MEMORY_BELOW_FRAME(f) ((f)->display->memory_below_frame)
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
506
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
507 #define FRAME_RIF(f) ((f)->display->rif)
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
508
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
509 #define FRAME_DISPLAY(f) ((f)->display)
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
510
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
511 /* 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
512 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
513
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
514 #ifdef HAVE_X_WINDOWS
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
515 #define FRAME_WINDOW_P(f) FRAME_X_P (f)
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
516 #endif
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
517 #ifdef HAVE_NTGUI
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
518 #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
519 #endif
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
520 #ifdef MAC_OS
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
521 #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
522 #endif
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
523 #ifndef FRAME_WINDOW_P
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
524 #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
525 #endif
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
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
528 extern struct display *create_display P_ ((void));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
529 extern void delete_display P_ ((struct display *));
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82992
diff changeset
530
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51568
diff changeset
531 /* arch-tag: 33a00ecc-52b5-4186-a410-8801ac9f087d
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51568
diff changeset
532 (do not change this comment) */