annotate src/window.h @ 49393:85246e86a2cd

* w32term.c (x_draw_glyph_string_foreground) (x_draw_composite_glyph_string_foreground): Implement overstriking. * w32term.c (x_write_glyphs): Clear phys_cursor_on_p if current phys_cursor's hpos is overwritten. This is still not completely correct, as it doesn't really make sense to use hpos at all to get the cursor glyph (as that is relative to the width of the characters on the line, which may have changed during the update). * w32term.c (notice_overwritten_cursor): Handle the special case of the cursor being in the first blank non-text line at the end of a window. * w32term.c (x_draw_hollow_cursor, x_draw_bar_cursor) (x_draw_phys_cursor_glyph): Set phys_cursor_width here. Compute from the x position returned by x_draw_glyphs. * w32term.c (note_mode_line_or_margin_highlight): Renamed from note_mode_line_highlight and extended. * w32term.c (last_window): New variable. (w32_read_socket) <WM_MOUSEMOVE>: Generate SELECT_WINDOW_EVENTs. (note_mouse_movement): Remove reimplemented code in #if 0.
author Jason Rumney <jasonr@gnu.org>
date Wed, 22 Jan 2003 23:04:05 +0000
parents a8fde13e8625
children 23a1cea22d13
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1 /* Window definitions for GNU Emacs.
35399
21663e5e70de (WINDOW_LIVE_P): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 34746
diff changeset
2 Copyright (C) 1985, 1986, 1993, 1995, 1997, 1998, 1999, 2000, 2001
21663e5e70de (WINDOW_LIVE_P): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 34746
diff changeset
3 Free Software Foundation, Inc.
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5 This file is part of GNU Emacs.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 GNU Emacs is free software; you can redistribute it and/or modify
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8 it under the terms of the GNU General Public License as published by
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 488
diff changeset
9 the Free Software Foundation; either version 2, or (at your option)
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10 any later version.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 GNU Emacs is distributed in the hope that it will be useful,
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 GNU General Public License for more details.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 along with GNU Emacs; see the file COPYING. If not, write to
14186
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 13458
diff changeset
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 13458
diff changeset
20 Boston, MA 02111-1307, USA. */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
22 #ifndef WINDOW_H_INCLUDED
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
23 #define WINDOW_H_INCLUDED
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
24
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
25 #include "dispextern.h"
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27 /* Windows are allocated as if they were vectors, but then the
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
28 Lisp data type is changed to Lisp_Window. They are garbage
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
29 collected along with the vectors.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
31 All windows in use are arranged into a tree, with pointers up and down.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33 Windows that are leaves of the tree are actually displayed
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34 and show the contents of buffers. Windows that are not leaves
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
35 are used for representing the way groups of leaf windows are
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
36 arranged on the frame. Leaf windows never become non-leaves.
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37 They are deleted only by calling delete-window on them (but
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38 this can be done implicitly). Combination windows can be created
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39 and deleted at any time.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41 A leaf window has a non-nil buffer field, and also
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42 has markers in its start and pointm fields. Non-leaf windows
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43 have nil in these fields.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
45 Non-leaf windows are either vertical or horizontal combinations.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
47 A vertical combination window has children that are arranged on the frame
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 one above the next. Its vchild field points to the uppermost child.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 The parent field of each of the children points to the vertical
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50 combination window. The next field of each child points to the
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
51 child below it, or is nil for the lowest child. The prev field
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52 of each child points to the child above it, or is nil for the
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
53 highest child.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 A horizontal combination window has children that are side by side.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56 Its hchild field points to the leftmost child. In each child
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
57 the next field points to the child to the right and the prev field
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58 points to the child to the left.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60 The children of a vertical combination window may be leaf windows
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61 or horizontal combination windows. The children of a horizontal
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
62 combination window may be leaf windows or vertical combination windows.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
63
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
64 At the top of the tree are two windows which have nil as parent.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
65 The second of these is minibuf_window. The first one manages all
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
66 the frame area that is not minibuffer, and is called the root window.
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67 Different windows can be the root at different times;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
68 initially the root window is a leaf window, but if more windows
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69 are created then that leaf window ceases to be root and a newly
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
70 made combination window becomes root instead.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
71
998
61c6983219ff entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 769
diff changeset
72 In any case, on screens which have an ordinary window and a
61c6983219ff entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 769
diff changeset
73 minibuffer, prev of the minibuf window is the root window and next of
61c6983219ff entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 769
diff changeset
74 the root window is the minibuf window. On minibufferless screens or
61c6983219ff entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 769
diff changeset
75 minibuffer-only screens, the root window and the minibuffer window are
1445
3b0906e2b82c * window.h (struct window): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 998
diff changeset
76 one and the same, so its prev and next members are nil.
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
77
1445
3b0906e2b82c * window.h (struct window): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 998
diff changeset
78 A dead window has its buffer, hchild, and vchild windows all nil. */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
79
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
80 struct cursor_pos
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
81 {
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
82 /* Pixel position. These are always window relative. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
83 int x, y;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
84
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
85 /* Glyph matrix position. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
86 int hpos, vpos;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
87 };
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
88
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89 struct window
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
90 {
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91 /* The first two fields are really the header of a vector */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
92 /* The window code does not refer to them. */
8833
e2b9f8616738 (struct window): Use EMACS_INT.
Richard M. Stallman <rms@gnu.org>
parents: 7950
diff changeset
93 EMACS_INT size;
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
94 struct Lisp_Vector *vec_next;
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
95 /* The frame this window is on. */
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
96 Lisp_Object frame;
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97 /* t if this window is a minibuffer window. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98 Lisp_Object mini_p;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99 /* Following child (to right or down) at same level of tree */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
100 Lisp_Object next;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
101 /* Preceding child (to left or up) at same level of tree */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
102 Lisp_Object prev;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
103 /* First child of this window. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
104 /* vchild is used if this is a vertical combination,
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
105 hchild if this is a horizontal combination. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
106 Lisp_Object hchild, vchild;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
107 /* The window this one is a child of. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
108 Lisp_Object parent;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
109 /* The upper left corner coordinates of this window,
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
110 as integers relative to upper left corner of frame = 0, 0 */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
111 Lisp_Object left;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
112 Lisp_Object top;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
113 /* The size of the window */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
114 Lisp_Object height;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
115 Lisp_Object width;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
116 /* The buffer displayed in this window */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
117 /* Of the fields vchild, hchild and buffer, only one is non-nil. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
118 Lisp_Object buffer;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
119 /* A marker pointing to where in the text to start displaying */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
120 Lisp_Object start;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
121 /* A marker pointing to where in the text point is in this window,
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
122 used only when the window is not selected.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
123 This exists so that when multiple windows show one buffer
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
124 each one can have its own value of point. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
125 Lisp_Object pointm;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
126 /* Non-nil means next redisplay must use the value of start
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
127 set up for it in advance. Set by scrolling commands. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
128 Lisp_Object force_start;
16553
39aa8dd49637 (struct window): New field optional_new_start.
Richard M. Stallman <rms@gnu.org>
parents: 16264
diff changeset
129 /* Non-nil means we have explicitly changed the value of start,
26249
344d89e485f2 Extend comment for optional_new_start.
Gerd Moellmann <gerd@gnu.org>
parents: 25793
diff changeset
130 but that the next redisplay is not obliged to use the new value.
344d89e485f2 Extend comment for optional_new_start.
Gerd Moellmann <gerd@gnu.org>
parents: 25793
diff changeset
131 This is used in Fdelete_other_windows to force a call to
46107
a8fde13e8625 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 43988
diff changeset
132 Vwindow_scroll_functions; also by Frecenter with argument. */
16553
39aa8dd49637 (struct window): New field optional_new_start.
Richard M. Stallman <rms@gnu.org>
parents: 16264
diff changeset
133 Lisp_Object optional_new_start;
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
134 /* Number of columns display within the window is scrolled to the left. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
135 Lisp_Object hscroll;
34746
10539ef3d8e8 (struct window): New member min_hscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 34497
diff changeset
136 /* Minimum hscroll for automatic hscrolling. This is the value
10539ef3d8e8 (struct window): New member min_hscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 34497
diff changeset
137 the user has set, by set-window-hscroll for example. */
10539ef3d8e8 (struct window): New member min_hscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 34497
diff changeset
138 Lisp_Object min_hscroll;
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
139 /* Number saying how recently window was selected */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
140 Lisp_Object use_time;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
141 /* Unique number of window assigned when it was created */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
142 Lisp_Object sequence_number;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
143 /* No permanent meaning; used by save-window-excursion's bookkeeping */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
144 Lisp_Object temslot;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
145 /* text.modified of displayed buffer as of last time display completed */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
146 Lisp_Object last_modified;
16192
b67b2e8eacb3 (struct window): New field last_overlay_modified.
Richard M. Stallman <rms@gnu.org>
parents: 15542
diff changeset
147 /* BUF_OVERLAY_MODIFIED of displayed buffer as of last complete update. */
b67b2e8eacb3 (struct window): New field last_overlay_modified.
Richard M. Stallman <rms@gnu.org>
parents: 15542
diff changeset
148 Lisp_Object last_overlay_modified;
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
149 /* Value of point at that time */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
150 Lisp_Object last_point;
15542
f57ee448e79e (struct window): New field, last_had_star.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
151 /* Non-nil if the buffer was "modified" when the window
f57ee448e79e (struct window): New field, last_had_star.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
152 was last updated. */
f57ee448e79e (struct window): New field, last_had_star.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
153 Lisp_Object last_had_star;
1994
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1872
diff changeset
154 /* This window's vertical scroll bar. This field is only for use
1784
11f62e53acff Make scrollbar structures into lisp objects, so that they can be
Jim Blandy <jimb@redhat.com>
parents: 1717
diff changeset
155 by the window-system-dependent code which implements the
1994
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1872
diff changeset
156 scroll bars; it can store anything it likes here. If this
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1872
diff changeset
157 window is newly created and we haven't displayed a scroll bar in
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1872
diff changeset
158 it yet, or if the frame doesn't have any scroll bars, this is nil. */
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1872
diff changeset
159 Lisp_Object vertical_scroll_bar;
1717
aa7d6d57504b * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1526
diff changeset
160
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
161 /* Width of left and right marginal areas. A value of nil means
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
162 no margin. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
163 Lisp_Object left_margin_width;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
164 Lisp_Object right_margin_width;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
165
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
166 /* The rest are currently not used or only half used */
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
167 /* Frame coords of mark as of last time display completed */
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
168 /* May be nil if mark does not exist or was not on frame */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
169 Lisp_Object last_mark_x;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
170 Lisp_Object last_mark_y;
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
171 /* Z - the buffer position of the last glyph in the current matrix
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
172 of W. Only valid if WINDOW_END_VALID is not nil. */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
173 Lisp_Object window_end_pos;
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
174 /* Glyph matrix row of the last glyph in the current matrix
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
175 of W. Only valid if WINDOW_END_VALID is not nil. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
176 Lisp_Object window_end_vpos;
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
177 /* t if window_end_pos is truly valid.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
178 This is nil if nontrivial redisplay is preempted
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
179 since in that case the frame image that window_end_pos
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
180 did not get onto the frame. */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
181 Lisp_Object window_end_valid;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
182 /* Non-nil means must regenerate mode line of this window */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
183 Lisp_Object update_mode_line;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
184 /* Non-nil means current value of `start'
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
185 was the beginning of a line when it was chosen. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
186 Lisp_Object start_at_line_beg;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
187 /* Display-table to use for displaying chars in this window.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
188 Nil means use the buffer's own display-table. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
189 Lisp_Object display_table;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
190 /* Non-nil means window is marked as dedicated. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
191 Lisp_Object dedicated;
2304
480abddc8bdd (struct window): New fields base_line_number and base_line_pos.
Richard M. Stallman <rms@gnu.org>
parents: 1994
diff changeset
192 /* Line number and position of a line somewhere above the
480abddc8bdd (struct window): New fields base_line_number and base_line_pos.
Richard M. Stallman <rms@gnu.org>
parents: 1994
diff changeset
193 top of the screen. */
480abddc8bdd (struct window): New fields base_line_number and base_line_pos.
Richard M. Stallman <rms@gnu.org>
parents: 1994
diff changeset
194 /* If this field is nil, it means we don't have a base line. */
480abddc8bdd (struct window): New fields base_line_number and base_line_pos.
Richard M. Stallman <rms@gnu.org>
parents: 1994
diff changeset
195 Lisp_Object base_line_number;
480abddc8bdd (struct window): New fields base_line_number and base_line_pos.
Richard M. Stallman <rms@gnu.org>
parents: 1994
diff changeset
196 /* If this field is nil, it means we don't have a base line.
480abddc8bdd (struct window): New fields base_line_number and base_line_pos.
Richard M. Stallman <rms@gnu.org>
parents: 1994
diff changeset
197 If it is a buffer, it means don't display the line number
480abddc8bdd (struct window): New fields base_line_number and base_line_pos.
Richard M. Stallman <rms@gnu.org>
parents: 1994
diff changeset
198 as long as the window shows that buffer. */
480abddc8bdd (struct window): New fields base_line_number and base_line_pos.
Richard M. Stallman <rms@gnu.org>
parents: 1994
diff changeset
199 Lisp_Object base_line_pos;
2856
794899b97115 (struct window): New slot region_showing.
Richard M. Stallman <rms@gnu.org>
parents: 2304
diff changeset
200 /* If we have highlighted the region (or any part of it),
794899b97115 (struct window): New slot region_showing.
Richard M. Stallman <rms@gnu.org>
parents: 2304
diff changeset
201 this is the mark position that we used, as an integer. */
794899b97115 (struct window): New slot region_showing.
Richard M. Stallman <rms@gnu.org>
parents: 2304
diff changeset
202 Lisp_Object region_showing;
10440
055b4219b6d7 (struct window): New member column_number_displayed.
Karl Heuer <kwzh@gnu.org>
parents: 8833
diff changeset
203 /* The column number currently displayed in this window's mode line,
055b4219b6d7 (struct window): New member column_number_displayed.
Karl Heuer <kwzh@gnu.org>
parents: 8833
diff changeset
204 or nil if column numbers are not being displayed. */
055b4219b6d7 (struct window): New member column_number_displayed.
Karl Heuer <kwzh@gnu.org>
parents: 8833
diff changeset
205 Lisp_Object column_number_displayed;
13458
adc8fc9fe6ed (struct window): New field redisplay_end_trigger.
Richard M. Stallman <rms@gnu.org>
parents: 12632
diff changeset
206 /* If redisplay in this window goes beyond this buffer position,
adc8fc9fe6ed (struct window): New field redisplay_end_trigger.
Richard M. Stallman <rms@gnu.org>
parents: 12632
diff changeset
207 must run the redisplay-end-trigger-hook. */
adc8fc9fe6ed (struct window): New field redisplay_end_trigger.
Richard M. Stallman <rms@gnu.org>
parents: 12632
diff changeset
208 Lisp_Object redisplay_end_trigger;
25256
631f514ef580 (struct window): New field too_small_ok.
Gerd Moellmann <gerd@gnu.org>
parents: 24996
diff changeset
209 /* Non-nil means don't delete this window for becoming "too small". */
631f514ef580 (struct window): New field too_small_ok.
Gerd Moellmann <gerd@gnu.org>
parents: 24996
diff changeset
210 Lisp_Object too_small_ok;
25793
2bbee3534773 (struct window): New members orig_top, orig_height.
Gerd Moellmann <gerd@gnu.org>
parents: 25740
diff changeset
211
2bbee3534773 (struct window): New members orig_top, orig_height.
Gerd Moellmann <gerd@gnu.org>
parents: 25740
diff changeset
212 /* Original window height and top before mini-window was
2bbee3534773 (struct window): New members orig_top, orig_height.
Gerd Moellmann <gerd@gnu.org>
parents: 25740
diff changeset
213 enlarged. */
2bbee3534773 (struct window): New members orig_top, orig_height.
Gerd Moellmann <gerd@gnu.org>
parents: 25740
diff changeset
214 Lisp_Object orig_height, orig_top;
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
215
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
216 /* No Lisp data may follow below this point without changing
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
217 mark_object in alloc.c. The member current_matrix must be the
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
218 first non-Lisp member. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
219
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
220 /* Glyph matrices. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
221 struct glyph_matrix *current_matrix;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
222 struct glyph_matrix *desired_matrix;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
223
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
224 /* Cursor position as of last update that completed without
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
225 pause. This is the position of last_point. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
226 struct cursor_pos last_cursor;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
227
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
228 /* Intended cursor position. This is a position within the
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
229 glyph matrix. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
230 struct cursor_pos cursor;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
231
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
232 /* Where the cursor actually is. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
233 struct cursor_pos phys_cursor;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
234
43619
03e9839bc157 (struct window): New member phys_cursor_width.
Kim F. Storm <storm@cua.dk>
parents: 43595
diff changeset
235 /* Cursor type and width of last cursor drawn on the window.
03e9839bc157 (struct window): New member phys_cursor_width.
Kim F. Storm <storm@cua.dk>
parents: 43595
diff changeset
236 Used for X and w32 frames; -1 initially. */
03e9839bc157 (struct window): New member phys_cursor_width.
Kim F. Storm <storm@cua.dk>
parents: 43595
diff changeset
237 int phys_cursor_type, phys_cursor_width;
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
238
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
239 /* This is handy for undrawing the cursor. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
240 int phys_cursor_ascent, phys_cursor_height;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
241
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
242 /* Non-zero means the cursor is currently displayed. This can be
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
243 set to zero by functions overpainting the cursor image. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
244 unsigned phys_cursor_on_p : 1;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
245
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
246 /* 0 means cursor is logically on, 1 means it's off. Used for
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
247 blinking cursor. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
248 unsigned cursor_off_p : 1;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
249
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
250 /* Value of cursor_off_p as of the last redisplay. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
251 unsigned last_cursor_off_p : 1;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
252
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
253 /* 1 means desired matrix has been build and window must be
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
254 updated in update_frame. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
255 unsigned must_be_updated_p : 1;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
256
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
257 /* Flag indicating that this window is not a real one.
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
258 Currently only used for menu bar windows of frames. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
259 unsigned pseudo_window_p : 1;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
260
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
261 /* Amount by which lines of this window are scrolled in
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
262 y-direction (smooth scrolling). */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
263 int vscroll;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
264
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
265 /* Z_BYTE - the buffer position of the last glyph in the current matrix
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
266 of W. Only valid if WINDOW_END_VALID is not nil. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
267 int window_end_bytepos;
25518
319e90e7bd82 New member frozen_window_start_p.
Gerd Moellmann <gerd@gnu.org>
parents: 25376
diff changeset
268
319e90e7bd82 New member frozen_window_start_p.
Gerd Moellmann <gerd@gnu.org>
parents: 25376
diff changeset
269 /* 1 means the window start of this window is frozen and may not
319e90e7bd82 New member frozen_window_start_p.
Gerd Moellmann <gerd@gnu.org>
parents: 25376
diff changeset
270 be changed during redisplay. If point is not in the window,
319e90e7bd82 New member frozen_window_start_p.
Gerd Moellmann <gerd@gnu.org>
parents: 25376
diff changeset
271 accept that. */
319e90e7bd82 New member frozen_window_start_p.
Gerd Moellmann <gerd@gnu.org>
parents: 25376
diff changeset
272 unsigned frozen_window_start_p : 1;
25740
68659a16bc42 (struct window): New member height_fixed_p.
Gerd Moellmann <gerd@gnu.org>
parents: 25713
diff changeset
273
68659a16bc42 (struct window): New member height_fixed_p.
Gerd Moellmann <gerd@gnu.org>
parents: 25713
diff changeset
274 /* 1 means that this window's height is temporarily fixed. Used
68659a16bc42 (struct window): New member height_fixed_p.
Gerd Moellmann <gerd@gnu.org>
parents: 25713
diff changeset
275 in resize_mini_window to precent resizing selected_window, if
68659a16bc42 (struct window): New member height_fixed_p.
Gerd Moellmann <gerd@gnu.org>
parents: 25713
diff changeset
276 possible. */
68659a16bc42 (struct window): New member height_fixed_p.
Gerd Moellmann <gerd@gnu.org>
parents: 25713
diff changeset
277 unsigned height_fixed_p : 1;
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
278 };
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
279
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
280 /* 1 if W is a minibuffer window. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
281
39585
72b9c859446e (MINI_WINDOW_P): Use NILP.
Gerd Moellmann <gerd@gnu.org>
parents: 35399
diff changeset
282 #define MINI_WINDOW_P(W) (!NILP ((W)->mini_p))
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
283
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
284 /* Return the window column at which the text in window W starts.
16264
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
285 This is different from the `left' field because it does not include
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
286 a left-hand scroll bar if any. */
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
287
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
288 #define WINDOW_LEFT_MARGIN(W) \
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
289 (XFASTINT ((W)->left) \
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
290 + FRAME_LEFT_SCROLL_BAR_WIDTH (XFRAME (WINDOW_FRAME (W))))
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
291
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
292 /* Return the window column before which window W ends.
16264
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
293 This includes a right-hand scroll bar, if any. */
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
294
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
295 #define WINDOW_RIGHT_EDGE(W) \
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
296 (XFASTINT ((W)->left) + XFASTINT ((W)->width))
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
297
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
298 /* Return the window column before which the text in window W ends.
16264
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
299 This is different from WINDOW_RIGHT_EDGE because it does not include
20700
524d1cfb6913 (WINDOW_RIGHT_MARGIN): Deduct width of vertical line
Richard M. Stallman <rms@gnu.org>
parents: 20349
diff changeset
300 a scroll bar or window-separating line on the right edge. */
16264
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
301
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
302 #define WINDOW_RIGHT_MARGIN(W) \
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
303 (WINDOW_RIGHT_EDGE (W) \
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
304 - (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT (XFRAME (WINDOW_FRAME (W))) \
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
305 ? FRAME_SCROLL_BAR_COLS (XFRAME (WINDOW_FRAME (W))) \
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
306 : 0))
16264
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
307
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
308 /* 1 if window W takes up the full width of its frame. */
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
309
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
310 #define WINDOW_FULL_WIDTH_P(W) \
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
311 (XFASTINT ((W)->width) == FRAME_WINDOW_WIDTH (XFRAME (WINDOW_FRAME (W))))
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
312
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
313 /* 1 if window W's has no other windows to its right in its frame. */
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
314
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
315 #define WINDOW_RIGHTMOST_P(W) \
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
316 (WINDOW_RIGHT_EDGE (W) == FRAME_WINDOW_WIDTH (XFRAME (WINDOW_FRAME (W))))
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
317
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
318
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
319 /* This is the window in which the terminal's cursor should
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
320 be left when nothing is being done with it. This must
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
321 always be a leaf window, and its buffer is selected by
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
322 the top level editing loop at the end of each command.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
323
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
324 This value is always the same as
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
325 FRAME_SELECTED_WINDOW (selected_frame). */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
326
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
327 extern Lisp_Object selected_window;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
328
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
329 /* This is a time stamp for window selection, so we can find the least
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
330 recently used window. Its only users are Fselect_window,
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
331 init_window_once, and make_frame. */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
332
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
333 extern int window_select_count;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
334
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
335 /* The minibuffer window of the selected frame.
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
336 Note that you cannot test for minibufferness of an arbitrary window
998
61c6983219ff entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 769
diff changeset
337 by comparing against this; use the MINI_WINDOW_P macro instead. */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
338
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
339 extern Lisp_Object minibuf_window;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
340
43572
33baa349c070 (Vminibuf_selected_window): Declare extern.
Kim F. Storm <storm@cua.dk>
parents: 39585
diff changeset
341 /* Non-nil means it is the window whose mode line should be
33baa349c070 (Vminibuf_selected_window): Declare extern.
Kim F. Storm <storm@cua.dk>
parents: 39585
diff changeset
342 shown as the selected window when the minibuffer is selected. */
33baa349c070 (Vminibuf_selected_window): Declare extern.
Kim F. Storm <storm@cua.dk>
parents: 39585
diff changeset
343
43595
b7964dae2379 (minibuf_selected_window): Renamed from Vminibuf_selected_window.
Kim F. Storm <storm@cua.dk>
parents: 43572
diff changeset
344 extern Lisp_Object minibuf_selected_window;
43572
33baa349c070 (Vminibuf_selected_window): Declare extern.
Kim F. Storm <storm@cua.dk>
parents: 39585
diff changeset
345
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
346 /* Non-nil => window to for C-M-v to scroll when the minibuffer is
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
347 selected. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
348
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
349 extern Lisp_Object Vminibuf_scroll_window;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
350
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
351 /* Nil or a symbol naming the window system under which emacs is
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
352 running ('x is the only current possibility) */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
353
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
354 extern Lisp_Object Vwindow_system;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
355
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
356 /* Version number of X windows: 10, 11 or nil. */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
357
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
358 extern Lisp_Object Vwindow_system_version;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
359
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
360 /* Window that the mouse is over (nil if no mouse support). */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
361
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
362 extern Lisp_Object Vmouse_window;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
363
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
364 /* Last mouse-click event (nil if no mouse support). */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
365
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
366 extern Lisp_Object Vmouse_event;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
367
20349
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
368 EXFUN (Fnext_window, 3);
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
369 EXFUN (Fselect_window, 1);
20856
1e37bbef998c Change argument number of Fdisplay_buffer to 3.
Kenichi Handa <handa@m17n.org>
parents: 20700
diff changeset
370 EXFUN (Fdisplay_buffer, 3);
20349
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
371 EXFUN (Fset_window_buffer, 2);
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
372 EXFUN (Fset_window_hscroll, 2);
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
373 EXFUN (Fwindow_hscroll, 1);
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
374 EXFUN (Fset_window_vscroll, 2);
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
375 EXFUN (Fwindow_vscroll, 1);
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
376 EXFUN (Fset_window_margins, 3);
32991
a3db89bef2e5 * window.h (Fwindow_live_p): Declare.
Ken Raeburn <raeburn@raeburn.org>
parents: 30361
diff changeset
377 EXFUN (Fwindow_live_p, 1);
34497
61a2e6e5ca5f (Fset_window_point): Declare.
Dave Love <fx@gnu.org>
parents: 32991
diff changeset
378 EXFUN (Fset_window_point, 2);
20349
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
379 extern Lisp_Object make_window P_ ((void));
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
380 extern void delete_window P_ ((Lisp_Object));
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
381 extern Lisp_Object window_from_coordinates P_ ((struct frame *, int, int, int *, int));
20349
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
382 EXFUN (Fwindow_dedicated_p, 1);
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
383 extern int window_height P_ ((Lisp_Object));
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
384 extern int window_width P_ ((Lisp_Object));
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
385 extern void set_window_height P_ ((Lisp_Object, int, int));
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
386 extern void set_window_width P_ ((Lisp_Object, int, int));
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
387 extern void delete_all_subwindows P_ ((struct window *));
25713
54a8aba6712b (freeze_window_starts): Fix typo in prototype.
Gerd Moellmann <gerd@gnu.org>
parents: 25518
diff changeset
388 extern void freeze_window_starts P_ ((struct frame *, int));
30361
e1ea6e214873 (foreach_window): Change prototype.
Gerd Moellmann <gerd@gnu.org>
parents: 26249
diff changeset
389 extern void foreach_window P_ ((struct frame *,
e1ea6e214873 (foreach_window): Change prototype.
Gerd Moellmann <gerd@gnu.org>
parents: 26249
diff changeset
390 int (* fn) (struct window *, void *),
e1ea6e214873 (foreach_window): Change prototype.
Gerd Moellmann <gerd@gnu.org>
parents: 26249
diff changeset
391 void *));
25793
2bbee3534773 (struct window): New members orig_top, orig_height.
Gerd Moellmann <gerd@gnu.org>
parents: 25740
diff changeset
392 extern void grow_mini_window P_ ((struct window *, int));
2bbee3534773 (struct window): New members orig_top, orig_height.
Gerd Moellmann <gerd@gnu.org>
parents: 25740
diff changeset
393 extern void shrink_mini_window P_ ((struct window *));
2bbee3534773 (struct window): New members orig_top, orig_height.
Gerd Moellmann <gerd@gnu.org>
parents: 25740
diff changeset
394
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
395
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
396 /* Make WINDOW display BUFFER as its contents. RUN_HOOKS_P non-zero
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
397 means it's allowed to run hooks. See make_frame for a case where
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
398 it's not allowed. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
399
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
400 void set_window_buffer P_ ((Lisp_Object window, Lisp_Object buffer,
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
401 int run_hooks_p));
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
402
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
403 /* Prompt to display in front of the minibuffer contents. */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
404
7950
c0a4d26e7498 (minibuf_prompt): Now a Lisp_Object. All uses changed.
Karl Heuer <kwzh@gnu.org>
parents: 5235
diff changeset
405 extern Lisp_Object minibuf_prompt;
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
406
488
4fddd0f0fc33 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 361
diff changeset
407 /* The visual width of the above. */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
408
488
4fddd0f0fc33 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 361
diff changeset
409 extern int minibuf_prompt_width;
4fddd0f0fc33 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 361
diff changeset
410
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
411 /* This is the window where the echo area message was displayed. It
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
412 is always a minibuffer window, but it may not be the same window
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
413 currently active as a minibuffer. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
414
12632
81f12c1d0178 (echo_area_window): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 11171
diff changeset
415 extern Lisp_Object echo_area_window;
81f12c1d0178 (echo_area_window): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 11171
diff changeset
416
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
417 /* Depth in recursive edits. */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
418
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
419 extern int command_loop_level;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
420
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
421 /* Depth in minibuffer invocations. */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
422
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
423 extern int minibuf_level;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
424
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
425 /* true iff we should redraw the mode lines on the next redisplay. */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
426
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
427 extern int update_mode_lines;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
428
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
429 /* Nonzero if BEGV - BEG or Z - ZV of current buffer has changed since
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
430 last redisplay that finished. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
431
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
432 extern int clip_changed;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
433
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
434 /* Nonzero if window sizes or contents have changed since last
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
435 redisplay that finished */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
436
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
437 extern int windows_or_buffers_changed;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
438
43988
44b653625dac (cursor_type_changed): Hew variable.
Richard M. Stallman <rms@gnu.org>
parents: 43619
diff changeset
439 /* Nonzero means a frame's cursor type has been changed. */
44b653625dac (cursor_type_changed): Hew variable.
Richard M. Stallman <rms@gnu.org>
parents: 43619
diff changeset
440
44b653625dac (cursor_type_changed): Hew variable.
Richard M. Stallman <rms@gnu.org>
parents: 43619
diff changeset
441 extern int cursor_type_changed;
44b653625dac (cursor_type_changed): Hew variable.
Richard M. Stallman <rms@gnu.org>
parents: 43619
diff changeset
442
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
443 /* Number of windows displaying the selected buffer. Normally this is
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
444 1, but it can be more. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
445
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
446 extern int buffer_shared;
998
61c6983219ff entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 769
diff changeset
447
61c6983219ff entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 769
diff changeset
448 /* If *ROWS or *COLS are too small a size for FRAME, set them to the
61c6983219ff entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 769
diff changeset
449 minimum allowable size. */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
450
20349
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
451 extern void check_frame_size P_ ((struct frame *frame, int *rows, int *cols));
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
452
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
453 /* Return a pointer to the glyph W's physical cursor is on. Value is
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
454 null if W's current matrix is invalid, so that no meaningfull glyph
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
455 can be returned. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
456
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
457 struct glyph *get_phys_cursor_glyph P_ ((struct window *w));
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
458
35399
21663e5e70de (WINDOW_LIVE_P): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 34746
diff changeset
459 /* Value is non-zero if WINDOW is a live window. */
21663e5e70de (WINDOW_LIVE_P): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 34746
diff changeset
460
21663e5e70de (WINDOW_LIVE_P): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 34746
diff changeset
461 #define WINDOW_LIVE_P(WINDOW) \
21663e5e70de (WINDOW_LIVE_P): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 34746
diff changeset
462 (WINDOWP ((WINDOW)) && !NILP (XWINDOW ((WINDOW))->buffer))
21663e5e70de (WINDOW_LIVE_P): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 34746
diff changeset
463
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
464 #endif /* not WINDOW_H_INCLUDED */