Mercurial > emacs
annotate src/termchar.h @ 1776:20c6f4aa5843
Make scrollbar structures into lisp objects, so that they can be
GC'd; this allows windows and scrollbars can refer to each other
without worrying about dangling pointers.
* xterm.h (struct x_display): vertical_scrollbars and
judge_timestamp members deleted.
(struct scrollbar): Redesigned to be a template for a Lisp_Vector.
(SCROLLBAR_VEC_SIZE, XSCROLLBAR, SCROLLBAR_PACK, SCROLLBAR_UNPACK,
SCROLLBAR_X_WINDOW, SET_SCROLLBAR_X_WINDOW,
VERTICAL_SCROLLBAR_INSIDE_WIDTH, VERTICAL_SCROLLBAR_TOP_RANGE,
VERTICAL_SCROLLBAR_INSIDE_HEIGHT, VERTICAL_SCROLLBAR_MIN_HANDLE):
New macros, to help deal with the lispy structures, and deal with
the graphics.
* frame.h (WINDOW_VERTICAL_SCROLLBAR): Macro deleted.
(struct frame): New fields `scrollbars' and
`condemned_scrollbars', for use by the scrollbar implementation.
[MULTI_FRAME and not MULTI_FRAME] (FRAME_SCROLLBARS,
FRAME_CONDEMNED_SCROLLBARS): Accessors for the new field.
* window.h (struct window): Doc fix for vertical_scrollbar field.
* frame.c (make_frame): Initialize the `scrollbars' and
`condemned_scrollbars' fields of the new frame.
* alloc.c (mark_object): Mark the `scrollbars' and
`condemned_scrollbars' slots of frames.
* xterm.c (x_window_to_scrollbar): Scrollbars are chained on
frames' scrollbar field, not their x.display->vertical_scrollbars
field.
(x_scrollbar_create, x_scrollbar_set_handle, x_scrollbar_move,
x_scrollbar_remove, XTset_vertical_scrollbar,
XTcondemn_scrollbars, XTredeem_scrollbar, XTjudge_scrollbars,
x_scrollbar_expose, x_scrollbar_handle_click,
x_scrollbar_handle_motion): Substantially rewritten to correct
typos and brainos, and to accomodate the lispy structures.
* frame.h (FRAME_SAMPLE_VISIBILITY): Make sure frame is marked as
garbaged whenever it goes from invisible to visible.
* dispextern.h (frame_garbaged): Move extern declaration from here...
* frame.h (frame_garbaged): ... to here. The FRAME_SAMPLE_VISIBILITY
macro uses it now, and this seems to be just as modular. Make a
new page, just for this and message_buf_print.
(struct frame): Doc fix for the `visible' field.
* process.c: #include "frame.h" instead of "dispextern.h"; the
only thing we care about from it is the frame_garbaged
declaration.
* ymakefile: Note dependency change.
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Thu, 14 Jan 1993 15:09:51 +0000 |
parents | b9e81bfc7ad9 |
children | 033119853eab |
rev | line source |
---|---|
486 | 1 /* Flags and parameters describing terminal's characteristics. |
2 Copyright (C) 1985, 1986 Free Software Foundation, Inc. | |
3 | |
4 This file is part of GNU Emacs. | |
5 | |
6 GNU Emacs is free software; you can redistribute it and/or modify | |
7 it under the terms of the GNU General Public License as published by | |
8 the Free Software Foundation; either version 1, or (at your option) | |
9 any later version. | |
10 | |
11 GNU Emacs is distributed in the hope that it will be useful, | |
12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with GNU Emacs; see the file COPYING. If not, write to | |
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | |
19 | |
20 | |
21 extern int baud_rate; /* Output speed in baud */ | |
22 extern int must_write_spaces; /* Nonzero means spaces in the text | |
23 must actually be output; can't just skip | |
24 over some columns to leave them blank. */ | |
25 extern int min_padding_speed; /* Speed below which no padding necessary */ | |
26 extern int fast_clear_end_of_line; /* Nonzero means terminal has | |
27 command for this */ | |
28 | |
29 extern int line_ins_del_ok; /* Terminal can insert and delete lines */ | |
30 extern int char_ins_del_ok; /* Terminal can insert and delete chars */ | |
31 extern int scroll_region_ok; /* Terminal supports setting the scroll | |
32 window */ | |
766 | 33 extern int memory_below_frame; /* Terminal remembers lines scrolled |
486 | 34 off bottom */ |
35 extern int fast_clear_end_of_line; /* Terminal has a `ce' string */ | |
36 | |
37 extern int dont_calculate_costs; /* Nonzero means don't bother computing | |
38 various cost tables; we won't use them. */ | |
39 | |
766 | 40 /* Nonzero means no need to redraw the entire frame on resuming |
486 | 41 a suspended Emacs. This is useful on terminals with multiple pages, |
42 where one page is used for Emacs and another for all else. */ | |
43 extern int no_redraw_on_reenter; |