annotate src/window.h @ 25427:dde5fcbfa2af

(Info-tagify): Don't insert more than one newline before the tag table. (Info-tagify): Start by widening. Match node headers that don't list the file name, and more kinds of page separations. Strip properties during tagification. Use start of node header line as tag's position. Fix the "done" message. (Info-validate): Save and restore match data around narrowing down.
author Richard M. Stallman <rms@gnu.org>
date Sun, 29 Aug 1999 19:19:00 +0000
parents cc780404b38d
children 319e90e7bd82
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.
10440
055b4219b6d7 (struct window): New member column_number_displayed.
Karl Heuer <kwzh@gnu.org>
parents: 8833
diff changeset
2 Copyright (C) 1985, 1986, 1993, 1995 Free Software Foundation, Inc.
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4 This file is part of GNU Emacs.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 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
8 the Free Software Foundation; either version 2, or (at your option)
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 any later version.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 GNU General Public License for more details.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
313b0555ba8f 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: 13458
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: 13458
diff changeset
19 Boston, MA 02111-1307, USA. */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
21 #ifndef WINDOW_H_INCLUDED
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
22 #define WINDOW_H_INCLUDED
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
23
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
24 #include "dispextern.h"
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
25
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26 /* Windows are allocated as if they were vectors, but then the
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27 Lisp data type is changed to Lisp_Window. They are garbage
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
28 collected along with the vectors.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
29
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30 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
31
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32 Windows that are leaves of the tree are actually displayed
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33 and show the contents of buffers. Windows that are not leaves
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34 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
35 arranged on the frame. Leaf windows never become non-leaves.
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
36 They are deleted only by calling delete-window on them (but
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37 this can be done implicitly). Combination windows can be created
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38 and deleted at any time.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40 A leaf window has a non-nil buffer field, and also
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41 has markers in its start and pointm fields. Non-leaf windows
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42 have nil in these fields.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 Non-leaf windows are either vertical or horizontal combinations.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
45
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
46 A vertical combination window has children that are arranged on the frame
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47 one above the next. Its vchild field points to the uppermost child.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 The parent field of each of the children points to the vertical
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 combination window. The next field of each child points to the
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50 child below it, or is nil for the lowest child. The prev field
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
51 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
52 highest child.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
53
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54 A horizontal combination window has children that are side by side.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 Its hchild field points to the leftmost child. In each child
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56 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
57 points to the child to the left.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59 The children of a vertical combination window may be leaf windows
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60 or horizontal combination windows. The children of a horizontal
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61 combination window may be leaf windows or vertical combination windows.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
62
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
63 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
64 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
65 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
66 Different windows can be the root at different times;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67 initially the root window is a leaf window, but if more windows
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
68 are created then that leaf window ceases to be root and a newly
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69 made combination window becomes root instead.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
70
998
61c6983219ff entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 769
diff changeset
71 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
72 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
73 the root window is the minibuf window. On minibufferless screens or
61c6983219ff entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 769
diff changeset
74 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
75 one and the same, so its prev and next members are nil.
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
76
1445
3b0906e2b82c * window.h (struct window): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 998
diff changeset
77 A dead window has its buffer, hchild, and vchild windows all nil. */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
78
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
79 struct cursor_pos
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
80 {
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
81 /* Pixel position. These are always window relative. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
82 int x, y;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
83
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
84 /* Glyph matrix position. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
85 int hpos, vpos;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
86 };
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
87
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88 struct window
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89 {
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
90 /* The first two fields are really the header of a vector */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91 /* 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
92 EMACS_INT size;
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
93 struct Lisp_Vector *vec_next;
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
94 /* The frame this window is on. */
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
95 Lisp_Object frame;
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
96 /* t if this window is a minibuffer window. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97 Lisp_Object mini_p;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98 /* Following child (to right or down) at same level of tree */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99 Lisp_Object next;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
100 /* Preceding child (to left or up) at same level of tree */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
101 Lisp_Object prev;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
102 /* First child of this window. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
103 /* vchild is used if this is a vertical combination,
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
104 hchild if this is a horizontal combination. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
105 Lisp_Object hchild, vchild;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
106 /* The window this one is a child of. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
107 Lisp_Object parent;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
108 /* The upper left corner coordinates of this window,
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
109 as integers relative to upper left corner of frame = 0, 0 */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
110 Lisp_Object left;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
111 Lisp_Object top;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
112 /* The size of the window */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
113 Lisp_Object height;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
114 Lisp_Object width;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
115 /* The buffer displayed in this window */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
116 /* Of the fields vchild, hchild and buffer, only one is non-nil. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
117 Lisp_Object buffer;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
118 /* A marker pointing to where in the text to start displaying */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
119 Lisp_Object start;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
120 /* A marker pointing to where in the text point is in this window,
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
121 used only when the window is not selected.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
122 This exists so that when multiple windows show one buffer
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
123 each one can have its own value of point. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
124 Lisp_Object pointm;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
125 /* Non-nil means next redisplay must use the value of start
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
126 set up for it in advance. Set by scrolling commands. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
127 Lisp_Object force_start;
16553
39aa8dd49637 (struct window): New field optional_new_start.
Richard M. Stallman <rms@gnu.org>
parents: 16264
diff changeset
128 /* Non-nil means we have explicitly changed the value of start,
39aa8dd49637 (struct window): New field optional_new_start.
Richard M. Stallman <rms@gnu.org>
parents: 16264
diff changeset
129 but that the next redisplay is not obliged to use the new value. */
39aa8dd49637 (struct window): New field optional_new_start.
Richard M. Stallman <rms@gnu.org>
parents: 16264
diff changeset
130 Lisp_Object optional_new_start;
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
131 /* Number of columns display within the window is scrolled to the left. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
132 Lisp_Object hscroll;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
133 /* Number saying how recently window was selected */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
134 Lisp_Object use_time;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
135 /* Unique number of window assigned when it was created */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
136 Lisp_Object sequence_number;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
137 /* No permanent meaning; used by save-window-excursion's bookkeeping */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
138 Lisp_Object temslot;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
139 /* text.modified of displayed buffer as of last time display completed */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
140 Lisp_Object last_modified;
16192
b67b2e8eacb3 (struct window): New field last_overlay_modified.
Richard M. Stallman <rms@gnu.org>
parents: 15542
diff changeset
141 /* 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
142 Lisp_Object last_overlay_modified;
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
143 /* Value of point at that time */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
144 Lisp_Object last_point;
15542
f57ee448e79e (struct window): New field, last_had_star.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
145 /* 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
146 was last updated. */
f57ee448e79e (struct window): New field, last_had_star.
Richard M. Stallman <rms@gnu.org>
parents: 14186
diff changeset
147 Lisp_Object last_had_star;
1994
73ce9dd21093 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1872
diff changeset
148 /* 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
149 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
150 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
151 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
152 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
153 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
154
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
155 /* 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
156 no margin. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
157 Lisp_Object left_margin_width;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
158 Lisp_Object right_margin_width;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
159
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
160 /* The rest are currently not used or only half used */
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
161 /* Frame coords of mark as of last time display completed */
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
162 /* 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
163 Lisp_Object last_mark_x;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
164 Lisp_Object last_mark_y;
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
165 /* 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
166 of W. Only valid if WINDOW_END_VALID is not nil. */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
167 Lisp_Object window_end_pos;
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
168 /* 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
169 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
170 Lisp_Object window_end_vpos;
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
171 /* t if window_end_pos is truly valid.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
172 This is nil if nontrivial redisplay is preempted
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
173 since in that case the frame image that window_end_pos
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
174 did not get onto the frame. */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
175 Lisp_Object window_end_valid;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
176 /* Non-nil means must regenerate mode line of this window */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
177 Lisp_Object update_mode_line;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
178 /* Non-nil means current value of `start'
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
179 was the beginning of a line when it was chosen. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
180 Lisp_Object start_at_line_beg;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
181 /* Display-table to use for displaying chars in this window.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
182 Nil means use the buffer's own display-table. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
183 Lisp_Object display_table;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
184 /* Non-nil means window is marked as dedicated. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
185 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
186 /* 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
187 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
188 /* 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
189 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
190 /* 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
191 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
192 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
193 Lisp_Object base_line_pos;
2856
794899b97115 (struct window): New slot region_showing.
Richard M. Stallman <rms@gnu.org>
parents: 2304
diff changeset
194 /* 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
195 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
196 Lisp_Object region_showing;
10440
055b4219b6d7 (struct window): New member column_number_displayed.
Karl Heuer <kwzh@gnu.org>
parents: 8833
diff changeset
197 /* 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
198 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
199 Lisp_Object column_number_displayed;
13458
adc8fc9fe6ed (struct window): New field redisplay_end_trigger.
Richard M. Stallman <rms@gnu.org>
parents: 12632
diff changeset
200 /* 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
201 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
202 Lisp_Object redisplay_end_trigger;
25256
631f514ef580 (struct window): New field too_small_ok.
Gerd Moellmann <gerd@gnu.org>
parents: 24996
diff changeset
203 /* 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
204 Lisp_Object too_small_ok;
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
205
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
206 /* No Lisp data may follow below this point without changing
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
207 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
208 first non-Lisp member. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
209
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
210 /* Glyph matrices. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
211 struct glyph_matrix *current_matrix;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
212 struct glyph_matrix *desired_matrix;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
213
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
214 /* Cursor position as of last update that completed without
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
215 pause. This is the position of last_point. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
216 struct cursor_pos last_cursor;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
217
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
218 /* Intended cursor position. This is a position within the
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
219 glyph matrix. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
220 struct cursor_pos cursor;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
221
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
222 /* Where the cursor actually is. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
223 struct cursor_pos phys_cursor;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
224
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
225 /* Cursor type last drawn on the window. Used for X frames; -1
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
226 initially. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
227 int phys_cursor_type;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
228
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
229 /* This is handy for undrawing the cursor. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
230 int phys_cursor_ascent, phys_cursor_height;
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 /* 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
233 set to zero by functions overpainting the cursor image. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
234 unsigned phys_cursor_on_p : 1;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
235
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
236 /* 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
237 blinking cursor. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
238 unsigned cursor_off_p : 1;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
239
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
240 /* Value of cursor_off_p as of the last redisplay. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
241 unsigned last_cursor_off_p : 1;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
242
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
243 /* 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
244 updated in update_frame. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
245 unsigned must_be_updated_p : 1;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
246
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
247 /* Flag indicating that this window is not a real one.
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
248 Currently only used for menu bar windows of frames. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
249 unsigned pseudo_window_p : 1;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
250
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
251 /* Amount by which lines of this window are scrolled in
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
252 y-direction (smooth scrolling). */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
253 int vscroll;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
254
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
255 /* 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
256 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
257 int window_end_bytepos;
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
258 };
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
259
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
260 /* 1 if W is a minibuffer window. */
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
261
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
262 #define MINI_WINDOW_P(W) (!EQ ((W)->mini_p, Qnil))
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
263
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
264 /* 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
265 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
266 a left-hand scroll bar if any. */
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
267
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
268 #define WINDOW_LEFT_MARGIN(W) \
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
269 (XFASTINT ((W)->left) \
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
270 + 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
271
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
272 /* 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
273 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
274
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
275 #define WINDOW_RIGHT_EDGE(W) \
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
276 (XFASTINT ((W)->left) + XFASTINT ((W)->width))
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
277
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
278 /* 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
279 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
280 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
281
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
282 #define WINDOW_RIGHT_MARGIN(W) \
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
283 (WINDOW_RIGHT_EDGE (W) \
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
284 - (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
285 ? FRAME_SCROLL_BAR_COLS (XFRAME (WINDOW_FRAME (W))) \
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
286 : 0))
16264
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 /* 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
289
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
290 #define WINDOW_FULL_WIDTH_P(W) \
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
291 (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
292
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
293 /* 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
294
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
295 #define WINDOW_RIGHTMOST_P(W) \
012a1d850ee8 (WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 16192
diff changeset
296 (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
297
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
298
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
299 /* This is the window in which the terminal's cursor should
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
300 be left when nothing is being done with it. This must
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
301 always be a leaf window, and its buffer is selected by
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
302 the top level editing loop at the end of each command.
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
303
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
304 This value is always the same as
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
305 FRAME_SELECTED_WINDOW (selected_frame). */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
306
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
307 extern Lisp_Object selected_window;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
308
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
309 /* 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
310 recently used window. Its only users are Fselect_window,
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
311 init_window_once, and make_frame. */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
312
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
313 extern int window_select_count;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
314
769
1f320a0729f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
315 /* The minibuffer window of the selected frame.
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
316 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
317 by comparing against this; use the MINI_WINDOW_P macro instead. */
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
318
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
319 extern Lisp_Object minibuf_window;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
320
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
321 /* 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
322 selected. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
323
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
324 extern Lisp_Object Vminibuf_scroll_window;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
325
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
326 /* 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
327 running ('x is the only current possibility) */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
328
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
329 extern Lisp_Object Vwindow_system;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
330
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
331 /* Version number of X windows: 10, 11 or nil. */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
332
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
333 extern Lisp_Object Vwindow_system_version;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
334
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
335 /* 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
336
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
337 extern Lisp_Object Vmouse_window;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
338
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
339 /* Last mouse-click event (nil if no mouse support). */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
340
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
341 extern Lisp_Object Vmouse_event;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
342
20349
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
343 EXFUN (Fnext_window, 3);
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
344 EXFUN (Fselect_window, 1);
20856
1e37bbef998c Change argument number of Fdisplay_buffer to 3.
Kenichi Handa <handa@m17n.org>
parents: 20700
diff changeset
345 EXFUN (Fdisplay_buffer, 3);
20349
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
346 EXFUN (Fset_window_buffer, 2);
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
347 EXFUN (Fset_window_hscroll, 2);
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
348 EXFUN (Fwindow_hscroll, 1);
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
349 EXFUN (Fset_window_vscroll, 2);
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
350 EXFUN (Fwindow_vscroll, 1);
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
351 EXFUN (Fset_window_margins, 3);
20349
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
352 extern Lisp_Object make_window P_ ((void));
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
353 extern void delete_window P_ ((Lisp_Object));
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
354 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
355 EXFUN (Fwindow_dedicated_p, 1);
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
356 extern int window_height P_ ((Lisp_Object));
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
357 extern int window_width P_ ((Lisp_Object));
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
358 extern void set_window_height P_ ((Lisp_Object, int, int));
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
359 extern void set_window_width P_ ((Lisp_Object, int, int));
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
360 extern void change_window_height P_ ((int, int));
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
361 extern void delete_all_subwindows P_ ((struct window *));
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
362
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
363 /* 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
364 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
365 it's not allowed. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
366
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
367 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
368 int run_hooks_p));
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
369
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
370 /* Prompt to display in front of the minibuffer contents. */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
371
7950
c0a4d26e7498 (minibuf_prompt): Now a Lisp_Object. All uses changed.
Karl Heuer <kwzh@gnu.org>
parents: 5235
diff changeset
372 extern Lisp_Object minibuf_prompt;
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
373
488
4fddd0f0fc33 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 361
diff changeset
374 /* The visual width of the above. */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
375
488
4fddd0f0fc33 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 361
diff changeset
376 extern int minibuf_prompt_width;
4fddd0f0fc33 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 361
diff changeset
377
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
378 /* 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
379 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
380 currently active as a minibuffer. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
381
12632
81f12c1d0178 (echo_area_window): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 11171
diff changeset
382 extern Lisp_Object echo_area_window;
81f12c1d0178 (echo_area_window): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 11171
diff changeset
383
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
384 /* Depth in recursive edits. */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
385
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
386 extern int command_loop_level;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
387
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
388 /* Depth in minibuffer invocations. */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
389
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
390 extern int minibuf_level;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
391
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
392 /* 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
393
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
394 extern int update_mode_lines;
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 /* 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
397 last redisplay that finished. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
398
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
399 extern int clip_changed;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
400
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
401 /* Nonzero if window sizes or contents have changed since last
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
402 redisplay that finished */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
403
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
404 extern int windows_or_buffers_changed;
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
405
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
406 /* Number of windows displaying the selected buffer. Normally this is
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
407 1, but it can be more. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
408
361
313b0555ba8f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
409 extern int buffer_shared;
998
61c6983219ff entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 769
diff changeset
410
61c6983219ff entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 769
diff changeset
411 /* 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
412 minimum allowable size. */
24996
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
413
20349
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 16553
diff changeset
414 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
415
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
416 /* 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
417 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
418 can be returned. */
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
419
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
420 struct glyph *get_phys_cursor_glyph P_ ((struct window *w));
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
421
429ec2c075e4 (struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents: 21938
diff changeset
422 #endif /* not WINDOW_H_INCLUDED */