Mercurial > emacs
annotate src/window.h @ 88190:e40931b9db5d
(rmail-auto-file): Rewrote test for "filed" using
rmail-desc-get-keywords.
author | Alex Schroeder <alex@gnu.org> |
---|---|
date | Tue, 17 Jan 2006 10:04:38 +0000 |
parents | d7ddb3e565de |
children |
rev | line source |
---|---|
361 | 1 /* Window definitions for GNU Emacs. |
88155 | 2 Copyright (C) 1985, 1986, 1993, 1995, 1997, 1998, 1999, 2000, 2001, |
3 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. | |
361 | 4 |
5 This file is part of GNU Emacs. | |
6 | |
7 GNU Emacs is free software; you can redistribute it and/or modify | |
8 it under the terms of the GNU General Public License as published by | |
732 | 9 the Free Software Foundation; either version 2, or (at your option) |
361 | 10 any later version. |
11 | |
12 GNU Emacs is distributed in the hope that it will be useful, | |
13 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 GNU General Public License for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
18 along with GNU Emacs; see the file COPYING. If not, write to | |
88155 | 19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
20 Boston, MA 02110-1301, USA. */ | |
361 | 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 | 26 |
88155 | 27 extern Lisp_Object Qleft, Qright; |
28 | |
361 | 29 /* Windows are allocated as if they were vectors, but then the |
30 Lisp data type is changed to Lisp_Window. They are garbage | |
31 collected along with the vectors. | |
32 | |
33 All windows in use are arranged into a tree, with pointers up and down. | |
34 | |
35 Windows that are leaves of the tree are actually displayed | |
36 and show the contents of buffers. Windows that are not leaves | |
37 are used for representing the way groups of leaf windows are | |
769 | 38 arranged on the frame. Leaf windows never become non-leaves. |
361 | 39 They are deleted only by calling delete-window on them (but |
40 this can be done implicitly). Combination windows can be created | |
41 and deleted at any time. | |
42 | |
43 A leaf window has a non-nil buffer field, and also | |
44 has markers in its start and pointm fields. Non-leaf windows | |
45 have nil in these fields. | |
46 | |
47 Non-leaf windows are either vertical or horizontal combinations. | |
48 | |
769 | 49 A vertical combination window has children that are arranged on the frame |
361 | 50 one above the next. Its vchild field points to the uppermost child. |
51 The parent field of each of the children points to the vertical | |
52 combination window. The next field of each child points to the | |
53 child below it, or is nil for the lowest child. The prev field | |
54 of each child points to the child above it, or is nil for the | |
55 highest child. | |
56 | |
57 A horizontal combination window has children that are side by side. | |
58 Its hchild field points to the leftmost child. In each child | |
59 the next field points to the child to the right and the prev field | |
60 points to the child to the left. | |
61 | |
62 The children of a vertical combination window may be leaf windows | |
63 or horizontal combination windows. The children of a horizontal | |
64 combination window may be leaf windows or vertical combination windows. | |
65 | |
66 At the top of the tree are two windows which have nil as parent. | |
67 The second of these is minibuf_window. The first one manages all | |
769 | 68 the frame area that is not minibuffer, and is called the root window. |
361 | 69 Different windows can be the root at different times; |
70 initially the root window is a leaf window, but if more windows | |
71 are created then that leaf window ceases to be root and a newly | |
72 made combination window becomes root instead. | |
73 | |
998 | 74 In any case, on screens which have an ordinary window and a |
75 minibuffer, prev of the minibuf window is the root window and next of | |
76 the root window is the minibuf window. On minibufferless screens or | |
77 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
|
78 one and the same, so its prev and next members are nil. |
361 | 79 |
1445
3b0906e2b82c
* window.h (struct window): Doc fix.
Jim Blandy <jimb@redhat.com>
parents:
998
diff
changeset
|
80 A dead window has its buffer, hchild, and vchild windows all nil. */ |
361 | 81 |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
82 struct cursor_pos |
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 /* Pixel position. These are always window relative. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
85 int x, y; |
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 /* Glyph matrix position. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
88 int hpos, vpos; |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
89 }; |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
90 |
361 | 91 struct window |
92 { | |
93 /* The first two fields are really the header of a vector */ | |
94 /* 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
|
95 EMACS_INT size; |
361 | 96 struct Lisp_Vector *vec_next; |
769 | 97 /* The frame this window is on. */ |
98 Lisp_Object frame; | |
361 | 99 /* t if this window is a minibuffer window. */ |
100 Lisp_Object mini_p; | |
101 /* Following child (to right or down) at same level of tree */ | |
102 Lisp_Object next; | |
103 /* Preceding child (to left or up) at same level of tree */ | |
104 Lisp_Object prev; | |
105 /* First child of this window. */ | |
106 /* vchild is used if this is a vertical combination, | |
107 hchild if this is a horizontal combination. */ | |
108 Lisp_Object hchild, vchild; | |
109 /* The window this one is a child of. */ | |
110 Lisp_Object parent; | |
111 /* The upper left corner coordinates of this window, | |
769 | 112 as integers relative to upper left corner of frame = 0, 0 */ |
88155 | 113 Lisp_Object left_col; |
114 Lisp_Object top_line; | |
361 | 115 /* The size of the window */ |
88155 | 116 Lisp_Object total_lines; |
117 Lisp_Object total_cols; | |
361 | 118 /* The buffer displayed in this window */ |
119 /* Of the fields vchild, hchild and buffer, only one is non-nil. */ | |
120 Lisp_Object buffer; | |
121 /* A marker pointing to where in the text to start displaying */ | |
122 Lisp_Object start; | |
123 /* A marker pointing to where in the text point is in this window, | |
124 used only when the window is not selected. | |
125 This exists so that when multiple windows show one buffer | |
126 each one can have its own value of point. */ | |
127 Lisp_Object pointm; | |
128 /* Non-nil means next redisplay must use the value of start | |
129 set up for it in advance. Set by scrolling commands. */ | |
130 Lisp_Object force_start; | |
16553
39aa8dd49637
(struct window): New field optional_new_start.
Richard M. Stallman <rms@gnu.org>
parents:
16264
diff
changeset
|
131 /* 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
|
132 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
|
133 This is used in Fdelete_other_windows to force a call to |
46107 | 134 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
|
135 Lisp_Object optional_new_start; |
361 | 136 /* Number of columns display within the window is scrolled to the left. */ |
137 Lisp_Object hscroll; | |
34746
10539ef3d8e8
(struct window): New member min_hscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
34497
diff
changeset
|
138 /* 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
|
139 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
|
140 Lisp_Object min_hscroll; |
361 | 141 /* Number saying how recently window was selected */ |
142 Lisp_Object use_time; | |
143 /* Unique number of window assigned when it was created */ | |
144 Lisp_Object sequence_number; | |
145 /* No permanent meaning; used by save-window-excursion's bookkeeping */ | |
146 Lisp_Object temslot; | |
147 /* text.modified of displayed buffer as of last time display completed */ | |
148 Lisp_Object last_modified; | |
16192
b67b2e8eacb3
(struct window): New field last_overlay_modified.
Richard M. Stallman <rms@gnu.org>
parents:
15542
diff
changeset
|
149 /* 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
|
150 Lisp_Object last_overlay_modified; |
361 | 151 /* Value of point at that time */ |
152 Lisp_Object last_point; | |
15542
f57ee448e79e
(struct window): New field, last_had_star.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
153 /* 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
|
154 was last updated. */ |
f57ee448e79e
(struct window): New field, last_had_star.
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
155 Lisp_Object last_had_star; |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1872
diff
changeset
|
156 /* 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
|
157 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
|
158 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
|
159 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
|
160 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
|
161 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
|
162 |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
163 /* 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
|
164 no margin. */ |
88155 | 165 Lisp_Object left_margin_cols, right_margin_cols; |
166 | |
167 /* Width of left and right fringes. | |
168 A value of nil or t means use frame values. */ | |
169 Lisp_Object left_fringe_width, right_fringe_width; | |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
170 |
88155 | 171 /* Non-nil means fringes are drawn outside display margins; |
172 othersize draw them between margin areas and text. */ | |
173 Lisp_Object fringes_outside_margins; | |
174 | |
175 /* Pixel width of scroll bars. | |
176 A value of nil or t means use frame values. */ | |
177 Lisp_Object scroll_bar_width; | |
178 /* Type of vertical scroll bar. A value of nil means | |
179 no scroll bar. A value of t means use frame value. */ | |
180 Lisp_Object vertical_scroll_bar_type; | |
181 | |
769 | 182 /* Frame coords of mark as of last time display completed */ |
183 /* May be nil if mark does not exist or was not on frame */ | |
361 | 184 Lisp_Object last_mark_x; |
185 Lisp_Object last_mark_y; | |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
186 /* 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
|
187 of W. Only valid if WINDOW_END_VALID is not nil. */ |
361 | 188 Lisp_Object window_end_pos; |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
189 /* 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
|
190 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
|
191 Lisp_Object window_end_vpos; |
361 | 192 /* t if window_end_pos is truly valid. |
193 This is nil if nontrivial redisplay is preempted | |
769 | 194 since in that case the frame image that window_end_pos |
195 did not get onto the frame. */ | |
361 | 196 Lisp_Object window_end_valid; |
197 /* Non-nil means must regenerate mode line of this window */ | |
198 Lisp_Object update_mode_line; | |
199 /* Non-nil means current value of `start' | |
200 was the beginning of a line when it was chosen. */ | |
201 Lisp_Object start_at_line_beg; | |
202 /* Display-table to use for displaying chars in this window. | |
203 Nil means use the buffer's own display-table. */ | |
204 Lisp_Object display_table; | |
205 /* Non-nil means window is marked as dedicated. */ | |
206 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
|
207 /* 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
|
208 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
|
209 /* 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
|
210 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
|
211 /* 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
|
212 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
|
213 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
|
214 Lisp_Object base_line_pos; |
2856
794899b97115
(struct window): New slot region_showing.
Richard M. Stallman <rms@gnu.org>
parents:
2304
diff
changeset
|
215 /* 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
|
216 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
|
217 Lisp_Object region_showing; |
10440
055b4219b6d7
(struct window): New member column_number_displayed.
Karl Heuer <kwzh@gnu.org>
parents:
8833
diff
changeset
|
218 /* 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
|
219 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
|
220 Lisp_Object column_number_displayed; |
13458
adc8fc9fe6ed
(struct window): New field redisplay_end_trigger.
Richard M. Stallman <rms@gnu.org>
parents:
12632
diff
changeset
|
221 /* 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
|
222 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
|
223 Lisp_Object redisplay_end_trigger; |
25256
631f514ef580
(struct window): New field too_small_ok.
Gerd Moellmann <gerd@gnu.org>
parents:
24996
diff
changeset
|
224 /* 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
|
225 Lisp_Object too_small_ok; |
25793
2bbee3534773
(struct window): New members orig_top, orig_height.
Gerd Moellmann <gerd@gnu.org>
parents:
25740
diff
changeset
|
226 |
2bbee3534773
(struct window): New members orig_top, orig_height.
Gerd Moellmann <gerd@gnu.org>
parents:
25740
diff
changeset
|
227 /* 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
|
228 enlarged. */ |
88155 | 229 Lisp_Object orig_total_lines, orig_top_line; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46107
diff
changeset
|
230 |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
231 /* No Lisp data may follow below this point without changing |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
232 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
|
233 first non-Lisp member. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
234 |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
235 /* Glyph matrices. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
236 struct glyph_matrix *current_matrix; |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
237 struct glyph_matrix *desired_matrix; |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
238 |
88155 | 239 /* Scaling factor for the glyph_matrix size calculation in this window. |
240 Used if window contains many small images or uses proportional fonts, | |
241 as the normal may yield a matrix which is too small. */ | |
242 int nrows_scale_factor, ncols_scale_factor; | |
243 | |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
244 /* Cursor position as of last update that completed without |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
245 pause. This is the position of last_point. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
246 struct cursor_pos last_cursor; |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
247 |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
248 /* Intended cursor position. This is a position within the |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
249 glyph matrix. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
250 struct cursor_pos cursor; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46107
diff
changeset
|
251 |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
252 /* Where the cursor actually is. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
253 struct cursor_pos phys_cursor; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46107
diff
changeset
|
254 |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46107
diff
changeset
|
255 /* Cursor type and width of last cursor drawn on the window. |
43619
03e9839bc157
(struct window): New member phys_cursor_width.
Kim F. Storm <storm@cua.dk>
parents:
43595
diff
changeset
|
256 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
|
257 int phys_cursor_type, phys_cursor_width; |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
258 |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
259 /* This is handy for undrawing the cursor. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
260 int phys_cursor_ascent, phys_cursor_height; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46107
diff
changeset
|
261 |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
262 /* 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
|
263 set to zero by functions overpainting the cursor image. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
264 unsigned phys_cursor_on_p : 1; |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
265 |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
266 /* 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
|
267 blinking cursor. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
268 unsigned cursor_off_p : 1; |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
269 |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
270 /* Value of cursor_off_p as of the last redisplay. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
271 unsigned last_cursor_off_p : 1; |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
272 |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
273 /* 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
|
274 updated in update_frame. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
275 unsigned must_be_updated_p : 1; |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
276 |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
277 /* Flag indicating that this window is not a real one. |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
278 Currently only used for menu bar windows of frames. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
279 unsigned pseudo_window_p : 1; |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
280 |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
281 /* Amount by which lines of this window are scrolled in |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
282 y-direction (smooth scrolling). */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
283 int vscroll; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46107
diff
changeset
|
284 |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
285 /* 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
|
286 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
|
287 int window_end_bytepos; |
25518
319e90e7bd82
New member frozen_window_start_p.
Gerd Moellmann <gerd@gnu.org>
parents:
25376
diff
changeset
|
288 |
319e90e7bd82
New member frozen_window_start_p.
Gerd Moellmann <gerd@gnu.org>
parents:
25376
diff
changeset
|
289 /* 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
|
290 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
|
291 accept that. */ |
319e90e7bd82
New member frozen_window_start_p.
Gerd Moellmann <gerd@gnu.org>
parents:
25376
diff
changeset
|
292 unsigned frozen_window_start_p : 1; |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
293 }; |
361 | 294 |
295 /* 1 if W is a minibuffer window. */ | |
296 | |
39585 | 297 #define MINI_WINDOW_P(W) (!NILP ((W)->mini_p)) |
361 | 298 |
88155 | 299 /* General window layout: |
300 | |
301 LEFT_EDGE_COL RIGHT_EDGE_COL | |
302 | | | |
303 | | | |
304 | BOX_LEFT_EDGE_COL | | |
305 | | BOX_RIGHT_EDGE_COL | | |
306 | | | | | |
307 v v v v | |
308 <-><-><---><-----------><---><-><-> | |
309 ^ ^ ^ ^ ^ ^ ^ | |
310 | | | | | | | | |
311 | | | | | | +-- RIGHT_SCROLL_BAR_COLS | |
312 | | | | | +----- RIGHT_FRINGE_WIDTH | |
313 | | | | +--------- RIGHT_MARGIN_COLS | |
314 | | | | | |
315 | | | +------------------ TEXT_AREA_COLS | |
316 | | | | |
317 | | +--------------------------- LEFT_MARGIN_COLS | |
318 | +------------------------------- LEFT_FRINGE_WIDTH | |
319 +---------------------------------- LEFT_SCROLL_BAR_COLS | |
320 | |
321 */ | |
322 | |
323 | |
324 /* A handy macro. */ | |
325 | |
326 #define WINDOW_XFRAME(W) \ | |
327 (XFRAME (WINDOW_FRAME ((W)))) | |
328 | |
329 /* Return the canonical column width of the frame of window W. */ | |
330 | |
331 #define WINDOW_FRAME_COLUMN_WIDTH(W) \ | |
332 (FRAME_COLUMN_WIDTH (WINDOW_XFRAME ((W)))) | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46107
diff
changeset
|
333 |
88155 | 334 /* Return the canonical column width of the frame of window W. */ |
335 | |
336 #define WINDOW_FRAME_LINE_HEIGHT(W) \ | |
337 (FRAME_LINE_HEIGHT (WINDOW_XFRAME ((W)))) | |
338 | |
339 | |
340 /* Return the frame width in canonical column units. | |
341 This includes scroll bars and fringes. */ | |
342 | |
343 #define WINDOW_TOTAL_COLS(W) \ | |
344 (XFASTINT ((W)->total_cols)) | |
345 | |
346 /* Return the frame height in canonical line units. | |
347 This includes header and mode lines, if any. */ | |
348 | |
349 #define WINDOW_TOTAL_LINES(W) \ | |
350 (XFASTINT ((W)->total_lines)) | |
351 | |
16264
012a1d850ee8
(WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
16192
diff
changeset
|
352 |
88155 | 353 /* Return the total pixel width of window W. */ |
354 | |
355 #define WINDOW_TOTAL_WIDTH(W) \ | |
356 (WINDOW_TOTAL_COLS (W) * WINDOW_FRAME_COLUMN_WIDTH (W)) | |
357 | |
358 /* Return the total pixel height of window W. */ | |
359 | |
360 #define WINDOW_TOTAL_HEIGHT(W) \ | |
361 (WINDOW_TOTAL_LINES (W) * WINDOW_FRAME_LINE_HEIGHT (W)) | |
362 | |
363 | |
364 /* Return the canonical frame column at which window W starts. | |
365 This includes a left-hand scroll bar, if any. */ | |
366 | |
367 #define WINDOW_LEFT_EDGE_COL(W) \ | |
368 (XFASTINT ((W)->left_col)) | |
369 | |
370 /* Return the canonical frame column before which window W ends. | |
16264
012a1d850ee8
(WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
16192
diff
changeset
|
371 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
|
372 |
88155 | 373 #define WINDOW_RIGHT_EDGE_COL(W) \ |
374 (WINDOW_LEFT_EDGE_COL (W) + WINDOW_TOTAL_COLS (W)) | |
375 | |
376 /* Return the canonical frame line at which window W starts. | |
377 This includes a header line, if any. */ | |
378 | |
379 #define WINDOW_TOP_EDGE_LINE(W) \ | |
380 (XFASTINT ((W)->top_line)) | |
381 | |
382 /* Return the canonical frame line before which window W ends. | |
383 This includes a mode line, if any. */ | |
384 | |
385 #define WINDOW_BOTTOM_EDGE_LINE(W) \ | |
386 (WINDOW_TOP_EDGE_LINE (W) + WINDOW_TOTAL_LINES (W)) | |
387 | |
388 | |
389 /* Return the frame x-position at which window W starts. | |
390 This includes a left-hand scroll bar, if any. */ | |
16264
012a1d850ee8
(WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
16192
diff
changeset
|
391 |
88155 | 392 #define WINDOW_LEFT_EDGE_X(W) \ |
393 (FRAME_INTERNAL_BORDER_WIDTH (WINDOW_XFRAME (W)) \ | |
394 + WINDOW_LEFT_EDGE_COL (W) * WINDOW_FRAME_COLUMN_WIDTH (W)) | |
395 | |
396 /* Return the frame x- position before which window W ends. | |
397 This includes a right-hand scroll bar, if any. */ | |
398 | |
399 #define WINDOW_RIGHT_EDGE_X(W) \ | |
400 (FRAME_INTERNAL_BORDER_WIDTH (WINDOW_XFRAME (W)) \ | |
401 + WINDOW_RIGHT_EDGE_COL (W) * WINDOW_FRAME_COLUMN_WIDTH (W)) | |
16264
012a1d850ee8
(WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
16192
diff
changeset
|
402 |
88155 | 403 /* Return the frame y-position at which window W starts. |
404 This includes a header line, if any. */ | |
405 | |
406 #define WINDOW_TOP_EDGE_Y(W) \ | |
407 (FRAME_INTERNAL_BORDER_WIDTH (WINDOW_XFRAME (W)) \ | |
408 + WINDOW_TOP_EDGE_LINE (W) * WINDOW_FRAME_LINE_HEIGHT (W)) | |
409 | |
410 /* Return the frame y-position before which window W ends. | |
411 This includes a mode line, if any. */ | |
412 | |
413 #define WINDOW_BOTTOM_EDGE_Y(W) \ | |
414 (FRAME_INTERNAL_BORDER_WIDTH (WINDOW_XFRAME (W)) \ | |
415 + WINDOW_BOTTOM_EDGE_LINE (W) * WINDOW_FRAME_LINE_HEIGHT (W)) | |
416 | |
16264
012a1d850ee8
(WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
16192
diff
changeset
|
417 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46107
diff
changeset
|
418 /* 1 if window W takes up the full width of its frame. */ |
16264
012a1d850ee8
(WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
16192
diff
changeset
|
419 |
012a1d850ee8
(WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
16192
diff
changeset
|
420 #define WINDOW_FULL_WIDTH_P(W) \ |
88155 | 421 (WINDOW_TOTAL_COLS (W) == FRAME_TOTAL_COLS (WINDOW_XFRAME (W))) |
422 | |
423 /* 1 if window W's has no other windows to its left in its frame. */ | |
424 | |
425 #define WINDOW_LEFTMOST_P(W) \ | |
426 (WINDOW_LEFT_EDGE_COL (W) == 0) | |
16264
012a1d850ee8
(WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
16192
diff
changeset
|
427 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46107
diff
changeset
|
428 /* 1 if window W's has no other windows to its right in its frame. */ |
16264
012a1d850ee8
(WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
16192
diff
changeset
|
429 |
012a1d850ee8
(WINDOW_LEFT_MARGIN): New macro.
Richard M. Stallman <rms@gnu.org>
parents:
16192
diff
changeset
|
430 #define WINDOW_RIGHTMOST_P(W) \ |
88155 | 431 (WINDOW_RIGHT_EDGE_COL (W) == FRAME_TOTAL_COLS (WINDOW_XFRAME (W))) |
432 | |
433 | |
434 /* Return the frame column at which the text (or left fringe) in | |
435 window W starts. This is different from the `LEFT_EDGE' because it | |
436 does not include a left-hand scroll bar if any. */ | |
437 | |
438 #define WINDOW_BOX_LEFT_EDGE_COL(W) \ | |
439 (WINDOW_LEFT_EDGE_COL (W) \ | |
440 + WINDOW_LEFT_SCROLL_BAR_COLS (W)) | |
441 | |
442 /* Return the window column before which the text in window W ends. | |
443 This is different from WINDOW_RIGHT_EDGE_COL because it does not | |
444 include a scroll bar or window-separating line on the right edge. */ | |
445 | |
446 #define WINDOW_BOX_RIGHT_EDGE_COL(W) \ | |
447 (WINDOW_RIGHT_EDGE_COL (W) \ | |
448 - WINDOW_RIGHT_SCROLL_BAR_COLS (W)) | |
449 | |
450 | |
451 /* Return the frame position at which the text (or left fringe) in | |
452 window W starts. This is different from the `LEFT_EDGE' because it | |
453 does not include a left-hand scroll bar if any. */ | |
454 | |
455 #define WINDOW_BOX_LEFT_EDGE_X(W) \ | |
456 (FRAME_INTERNAL_BORDER_WIDTH (WINDOW_XFRAME (W)) \ | |
457 + WINDOW_BOX_LEFT_EDGE_COL (W) * WINDOW_FRAME_COLUMN_WIDTH (W)) | |
458 | |
459 /* Return the window column before which the text in window W ends. | |
460 This is different from WINDOW_RIGHT_EDGE_COL because it does not | |
461 include a scroll bar or window-separating line on the right edge. */ | |
462 | |
463 #define WINDOW_BOX_RIGHT_EDGE_X(W) \ | |
464 (FRAME_INTERNAL_BORDER_WIDTH (WINDOW_XFRAME (W)) \ | |
465 + WINDOW_BOX_RIGHT_EDGE_COL (W) * WINDOW_FRAME_COLUMN_WIDTH (W)) | |
466 | |
467 | |
468 /* Width of left margin area in columns. */ | |
469 | |
470 #define WINDOW_LEFT_MARGIN_COLS(W) \ | |
471 (NILP ((W)->left_margin_cols) \ | |
472 ? 0 \ | |
473 : XINT ((W)->left_margin_cols)) | |
474 | |
475 /* Width of right marginal area in columns. */ | |
476 | |
477 #define WINDOW_RIGHT_MARGIN_COLS(W) \ | |
478 (NILP ((W)->right_margin_cols) \ | |
479 ? 0 \ | |
480 : XINT ((W)->right_margin_cols)) | |
481 | |
482 /* Width of left margin area in pixels. */ | |
483 | |
484 #define WINDOW_LEFT_MARGIN_WIDTH(W) \ | |
485 (NILP ((W)->left_margin_cols) \ | |
486 ? 0 \ | |
487 : (XINT ((W)->left_margin_cols) \ | |
488 * WINDOW_FRAME_COLUMN_WIDTH (W))) | |
489 | |
490 /* Width of right marginal area in pixels. */ | |
491 | |
492 #define WINDOW_RIGHT_MARGIN_WIDTH(W) \ | |
493 (NILP ((W)->right_margin_cols) \ | |
494 ? 0 \ | |
495 : (XINT ((W)->right_margin_cols) \ | |
496 * WINDOW_FRAME_COLUMN_WIDTH (W))) | |
497 | |
498 /* Total width of fringes reserved for drawing truncation bitmaps, | |
499 continuation bitmaps and alike. The width is in canonical char | |
500 units of the frame. This must currently be the case because window | |
501 sizes aren't pixel values. If it weren't the case, we wouldn't be | |
502 able to split windows horizontally nicely. */ | |
503 | |
504 #define WINDOW_FRINGE_COLS(W) \ | |
505 ((INTEGERP ((W)->left_fringe_width) \ | |
506 || INTEGERP ((W)->right_fringe_width)) \ | |
507 ? ((WINDOW_LEFT_FRINGE_WIDTH (W) \ | |
508 + WINDOW_RIGHT_FRINGE_WIDTH (W) \ | |
509 + WINDOW_FRAME_COLUMN_WIDTH (W) - 1) \ | |
510 / WINDOW_FRAME_COLUMN_WIDTH (W)) \ | |
511 : FRAME_FRINGE_COLS (WINDOW_XFRAME (W))) | |
512 | |
513 /* Column-width of the left and right fringe. */ | |
514 | |
515 #define WINDOW_LEFT_FRINGE_COLS(W) \ | |
516 ((WINDOW_LEFT_FRINGE_WIDTH ((W)) \ | |
517 + WINDOW_FRAME_COLUMN_WIDTH (W) - 1) \ | |
518 / WINDOW_FRAME_COLUMN_WIDTH (W)) | |
519 | |
520 #define WINDOW_RIGHT_FRINGE_COLS(W) \ | |
521 ((WINDOW_RIGHT_FRINGE_WIDTH ((W)) \ | |
522 + WINDOW_FRAME_COLUMN_WIDTH (W) - 1) \ | |
523 / WINDOW_FRAME_COLUMN_WIDTH (W)) | |
524 | |
525 /* Pixel-width of the left and right fringe. */ | |
526 | |
527 #define WINDOW_LEFT_FRINGE_WIDTH(W) \ | |
528 (INTEGERP ((W)->left_fringe_width) \ | |
529 ? XFASTINT ((W)->left_fringe_width) \ | |
530 : FRAME_LEFT_FRINGE_WIDTH (WINDOW_XFRAME (W))) | |
531 | |
532 #define WINDOW_RIGHT_FRINGE_WIDTH(W) \ | |
533 (INTEGERP ((W)->right_fringe_width) \ | |
534 ? XFASTINT ((W)->right_fringe_width) \ | |
535 : FRAME_RIGHT_FRINGE_WIDTH (WINDOW_XFRAME (W))) | |
536 | |
537 /* Total width of fringes in pixels. */ | |
538 | |
539 #define WINDOW_TOTAL_FRINGE_WIDTH(W) \ | |
540 (WINDOW_LEFT_FRINGE_WIDTH (W) + WINDOW_RIGHT_FRINGE_WIDTH (W)) | |
541 | |
542 /* Are fringes outside display margins in window W. */ | |
543 | |
544 #define WINDOW_HAS_FRINGES_OUTSIDE_MARGINS(W) \ | |
545 (!NILP ((W)->fringes_outside_margins)) | |
546 | |
547 /* Say whether scroll bars are currently enabled for window W, | |
548 and which side they are on. */ | |
549 | |
550 #define WINDOW_VERTICAL_SCROLL_BAR_TYPE(w) \ | |
551 (EQ ((w)->vertical_scroll_bar_type, Qt) \ | |
552 ? FRAME_VERTICAL_SCROLL_BAR_TYPE (WINDOW_XFRAME (w)) \ | |
553 : EQ ((w)->vertical_scroll_bar_type, Qleft) \ | |
554 ? vertical_scroll_bar_left \ | |
555 : EQ ((w)->vertical_scroll_bar_type, Qright) \ | |
556 ? vertical_scroll_bar_right \ | |
557 : vertical_scroll_bar_none) \ | |
558 | |
559 #define WINDOW_HAS_VERTICAL_SCROLL_BAR(w) \ | |
560 (EQ ((w)->vertical_scroll_bar_type, Qt) \ | |
561 ? FRAME_HAS_VERTICAL_SCROLL_BARS (WINDOW_XFRAME (w)) \ | |
562 : !NILP ((w)->vertical_scroll_bar_type)) | |
563 | |
564 #define WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT(w) \ | |
565 (EQ ((w)->vertical_scroll_bar_type, Qt) \ | |
566 ? FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (WINDOW_XFRAME (w)) \ | |
567 : EQ ((w)->vertical_scroll_bar_type, Qleft)) | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46107
diff
changeset
|
568 |
88155 | 569 #define WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT(w) \ |
570 (EQ ((w)->vertical_scroll_bar_type, Qt) \ | |
571 ? FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT (WINDOW_XFRAME (w))\ | |
572 : EQ ((w)->vertical_scroll_bar_type, Qright)) | |
573 | |
574 /* Width that a scroll bar in window W should have, if there is one. | |
575 Measured in pixels. If scroll bars are turned off, this is still | |
576 nonzero. */ | |
577 | |
578 #define WINDOW_CONFIG_SCROLL_BAR_WIDTH(w) \ | |
579 (INTEGERP ((w)->scroll_bar_width) \ | |
580 ? XFASTINT ((w)->scroll_bar_width) \ | |
581 : FRAME_CONFIG_SCROLL_BAR_WIDTH (WINDOW_XFRAME (w))) | |
582 | |
583 /* Width that a scroll bar in window W should have, if there is one. | |
584 Measured in columns (characters). If scroll bars are turned off, | |
585 this is still nonzero. */ | |
586 | |
587 #define WINDOW_CONFIG_SCROLL_BAR_COLS(w) \ | |
588 (INTEGERP ((w)->scroll_bar_width) \ | |
589 ? ((XFASTINT ((w)->scroll_bar_width) \ | |
590 + WINDOW_FRAME_COLUMN_WIDTH (w) - 1) \ | |
591 / WINDOW_FRAME_COLUMN_WIDTH (w)) \ | |
592 : FRAME_CONFIG_SCROLL_BAR_COLS (WINDOW_XFRAME (w))) | |
593 | |
594 /* Width of a scroll bar in window W, measured in columns (characters), | |
595 but only if scroll bars are on the left. If scroll bars are on | |
596 the right in this frame, or there are no scroll bars, value is 0. */ | |
597 | |
598 #define WINDOW_LEFT_SCROLL_BAR_COLS(w) \ | |
599 (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w) \ | |
600 ? (WINDOW_CONFIG_SCROLL_BAR_COLS (w)) \ | |
601 : 0) | |
602 | |
603 /* Width of a left scroll bar area in window W , measured in pixels. */ | |
604 | |
605 #define WINDOW_LEFT_SCROLL_BAR_AREA_WIDTH(w) \ | |
606 (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w) \ | |
607 ? (WINDOW_CONFIG_SCROLL_BAR_COLS (w) * WINDOW_FRAME_COLUMN_WIDTH (w)) \ | |
608 : 0) | |
609 | |
610 /* Width of a scroll bar in window W, measured in columns (characters), | |
611 but only if scroll bars are on the right. If scroll bars are on | |
612 the left in this frame, or there are no scroll bars, value is 0. */ | |
613 | |
614 #define WINDOW_RIGHT_SCROLL_BAR_COLS(w) \ | |
615 (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w) \ | |
616 ? WINDOW_CONFIG_SCROLL_BAR_COLS (w) \ | |
617 : 0) | |
618 | |
619 /* Width of a left scroll bar area in window W , measured in pixels. */ | |
620 | |
621 #define WINDOW_RIGHT_SCROLL_BAR_AREA_WIDTH(w) \ | |
622 (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w) \ | |
623 ? (WINDOW_CONFIG_SCROLL_BAR_COLS (w) * WINDOW_FRAME_COLUMN_WIDTH (w)) \ | |
624 : 0) | |
625 | |
626 | |
627 /* Actual width of a scroll bar in window W, measured in columns. */ | |
628 | |
629 #define WINDOW_SCROLL_BAR_COLS(w) \ | |
630 (WINDOW_HAS_VERTICAL_SCROLL_BAR (w) \ | |
631 ? WINDOW_CONFIG_SCROLL_BAR_COLS (w) \ | |
632 : 0) | |
633 | |
634 /* Width of a left scroll bar area in window W , measured in pixels. */ | |
635 | |
636 #define WINDOW_SCROLL_BAR_AREA_WIDTH(w) \ | |
637 (WINDOW_HAS_VERTICAL_SCROLL_BAR (w) \ | |
638 ? (WINDOW_CONFIG_SCROLL_BAR_COLS (w) * WINDOW_FRAME_COLUMN_WIDTH (w)) \ | |
639 : 0) | |
640 | |
641 | |
642 /* Return the frame position where the scroll bar of window W starts. */ | |
643 | |
644 #define WINDOW_SCROLL_BAR_AREA_X(W) \ | |
645 (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (W) \ | |
646 ? WINDOW_BOX_RIGHT_EDGE_X (W) \ | |
647 : WINDOW_LEFT_EDGE_X (W)) | |
648 | |
649 | |
650 /* Height in pixels, and in lines, of the mode line. | |
651 May be zero if W doesn't have a mode line. */ | |
652 | |
653 #define WINDOW_MODE_LINE_HEIGHT(W) \ | |
654 (WINDOW_WANTS_MODELINE_P ((W)) \ | |
655 ? CURRENT_MODE_LINE_HEIGHT (W) \ | |
656 : 0) | |
657 | |
658 #define WINDOW_MODE_LINE_LINES(W) \ | |
659 (!! WINDOW_WANTS_MODELINE_P ((W))) | |
660 | |
661 /* Height in pixels, and in lines, of the header line. | |
662 Zero if W doesn't have a header line. */ | |
663 | |
664 #define WINDOW_HEADER_LINE_HEIGHT(W) \ | |
665 (WINDOW_WANTS_HEADER_LINE_P ((W)) \ | |
666 ? CURRENT_HEADER_LINE_HEIGHT (W) \ | |
667 : 0) | |
668 | |
669 #define WINDOW_HEADER_LINE_LINES(W) \ | |
670 (!! WINDOW_WANTS_HEADER_LINE_P ((W))) | |
671 | |
672 /* Pixel height of window W without mode line. */ | |
673 | |
674 #define WINDOW_BOX_HEIGHT_NO_MODE_LINE(W) \ | |
675 (WINDOW_TOTAL_HEIGHT ((W)) \ | |
676 - WINDOW_MODE_LINE_HEIGHT ((W))) | |
677 | |
678 /* Pixel height of window W without mode and header line. */ | |
679 | |
680 #define WINDOW_BOX_TEXT_HEIGHT(W) \ | |
681 (WINDOW_TOTAL_HEIGHT ((W)) \ | |
682 - WINDOW_MODE_LINE_HEIGHT ((W)) \ | |
683 - WINDOW_HEADER_LINE_HEIGHT ((W))) | |
684 | |
685 | |
686 /* Convert window W relative pixel X to frame pixel coordinates. */ | |
687 | |
688 #define WINDOW_TO_FRAME_PIXEL_X(W, X) \ | |
689 ((X) + WINDOW_BOX_LEFT_EDGE_X ((W))) | |
690 | |
691 /* Convert window W relative pixel Y to frame pixel coordinates. */ | |
692 | |
693 #define WINDOW_TO_FRAME_PIXEL_Y(W, Y) \ | |
694 ((Y) + WINDOW_TOP_EDGE_Y ((W))) | |
695 | |
696 /* Convert frame relative pixel X to window relative pixel X. */ | |
697 | |
698 #define FRAME_TO_WINDOW_PIXEL_X(W, X) \ | |
699 ((X) - WINDOW_BOX_LEFT_EDGE_X ((W))) | |
700 | |
701 /* Convert frame relative pixel Y to window relative pixel Y. */ | |
702 | |
703 #define FRAME_TO_WINDOW_PIXEL_Y(W, Y) \ | |
704 ((Y) - WINDOW_TOP_EDGE_Y ((W))) | |
705 | |
706 /* Convert a text area relative x-position in window W to frame X | |
707 pixel coordinates. */ | |
708 | |
709 #define WINDOW_TEXT_TO_FRAME_PIXEL_X(W, X) \ | |
710 (window_box_left ((W), TEXT_AREA) + (X)) | |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
711 |
361 | 712 /* This is the window in which the terminal's cursor should |
713 be left when nothing is being done with it. This must | |
714 always be a leaf window, and its buffer is selected by | |
715 the top level editing loop at the end of each command. | |
716 | |
717 This value is always the same as | |
769 | 718 FRAME_SELECTED_WINDOW (selected_frame). */ |
361 | 719 |
720 extern Lisp_Object selected_window; | |
721 | |
722 /* This is a time stamp for window selection, so we can find the least | |
723 recently used window. Its only users are Fselect_window, | |
769 | 724 init_window_once, and make_frame. */ |
361 | 725 |
726 extern int window_select_count; | |
727 | |
769 | 728 /* The minibuffer window of the selected frame. |
361 | 729 Note that you cannot test for minibufferness of an arbitrary window |
998 | 730 by comparing against this; use the MINI_WINDOW_P macro instead. */ |
361 | 731 |
732 extern Lisp_Object minibuf_window; | |
733 | |
43572
33baa349c070
(Vminibuf_selected_window): Declare extern.
Kim F. Storm <storm@cua.dk>
parents:
39585
diff
changeset
|
734 /* 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
|
735 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
|
736 |
43595
b7964dae2379
(minibuf_selected_window): Renamed from Vminibuf_selected_window.
Kim F. Storm <storm@cua.dk>
parents:
43572
diff
changeset
|
737 extern Lisp_Object minibuf_selected_window; |
43572
33baa349c070
(Vminibuf_selected_window): Declare extern.
Kim F. Storm <storm@cua.dk>
parents:
39585
diff
changeset
|
738 |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
739 /* 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
|
740 selected. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
741 |
361 | 742 extern Lisp_Object Vminibuf_scroll_window; |
743 | |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
744 /* 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
|
745 running ('x is the only current possibility) */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
746 |
361 | 747 extern Lisp_Object Vwindow_system; |
748 | |
749 /* Version number of X windows: 10, 11 or nil. */ | |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
750 |
361 | 751 extern Lisp_Object Vwindow_system_version; |
752 | |
753 /* 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
|
754 |
361 | 755 extern Lisp_Object Vmouse_window; |
756 | |
757 /* Last mouse-click event (nil if no mouse support). */ | |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
758 |
361 | 759 extern Lisp_Object Vmouse_event; |
760 | |
20349 | 761 EXFUN (Fnext_window, 3); |
88155 | 762 EXFUN (Fselect_window, 2); |
20856
1e37bbef998c
Change argument number of Fdisplay_buffer to 3.
Kenichi Handa <handa@m17n.org>
parents:
20700
diff
changeset
|
763 EXFUN (Fdisplay_buffer, 3); |
88155 | 764 EXFUN (Fset_window_buffer, 3); |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
765 EXFUN (Fset_window_hscroll, 2); |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
766 EXFUN (Fwindow_hscroll, 1); |
88155 | 767 EXFUN (Fset_window_vscroll, 3); |
768 EXFUN (Fwindow_vscroll, 2); | |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
769 EXFUN (Fset_window_margins, 3); |
32991
a3db89bef2e5
* window.h (Fwindow_live_p): Declare.
Ken Raeburn <raeburn@raeburn.org>
parents:
30361
diff
changeset
|
770 EXFUN (Fwindow_live_p, 1); |
34497 | 771 EXFUN (Fset_window_point, 2); |
20349 | 772 extern Lisp_Object make_window P_ ((void)); |
773 extern void delete_window P_ ((Lisp_Object)); | |
88155 | 774 extern Lisp_Object window_from_coordinates P_ ((struct frame *, int, int, |
775 enum window_part *, | |
776 int *, int*, int)); | |
20349 | 777 EXFUN (Fwindow_dedicated_p, 1); |
778 extern int window_height P_ ((Lisp_Object)); | |
779 extern int window_width P_ ((Lisp_Object)); | |
780 extern void set_window_height P_ ((Lisp_Object, int, int)); | |
781 extern void set_window_width P_ ((Lisp_Object, int, int)); | |
88155 | 782 extern void change_window_heights P_ ((Lisp_Object, int)); |
20349 | 783 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
|
784 extern void freeze_window_starts P_ ((struct frame *, int)); |
30361
e1ea6e214873
(foreach_window): Change prototype.
Gerd Moellmann <gerd@gnu.org>
parents:
26249
diff
changeset
|
785 extern void foreach_window P_ ((struct frame *, |
e1ea6e214873
(foreach_window): Change prototype.
Gerd Moellmann <gerd@gnu.org>
parents:
26249
diff
changeset
|
786 int (* fn) (struct window *, void *), |
e1ea6e214873
(foreach_window): Change prototype.
Gerd Moellmann <gerd@gnu.org>
parents:
26249
diff
changeset
|
787 void *)); |
25793
2bbee3534773
(struct window): New members orig_top, orig_height.
Gerd Moellmann <gerd@gnu.org>
parents:
25740
diff
changeset
|
788 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
|
789 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
|
790 |
361 | 791 |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
792 /* 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
|
793 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
|
794 it's not allowed. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
795 |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
796 void set_window_buffer P_ ((Lisp_Object window, Lisp_Object buffer, |
88155 | 797 int run_hooks_p, int keep_margins_p)); |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
798 |
361 | 799 /* Prompt to display in front of the minibuffer contents. */ |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
800 |
7950
c0a4d26e7498
(minibuf_prompt): Now a Lisp_Object. All uses changed.
Karl Heuer <kwzh@gnu.org>
parents:
5235
diff
changeset
|
801 extern Lisp_Object minibuf_prompt; |
361 | 802 |
488 | 803 /* The visual width of the above. */ |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
804 |
488 | 805 extern int minibuf_prompt_width; |
806 | |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
807 /* 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
|
808 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
|
809 currently active as a minibuffer. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
810 |
12632
81f12c1d0178
(echo_area_window): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
11171
diff
changeset
|
811 extern Lisp_Object echo_area_window; |
81f12c1d0178
(echo_area_window): Declared.
Richard M. Stallman <rms@gnu.org>
parents:
11171
diff
changeset
|
812 |
361 | 813 /* Depth in recursive edits. */ |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
814 |
361 | 815 extern int command_loop_level; |
816 | |
817 /* Depth in minibuffer invocations. */ | |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
818 |
361 | 819 extern int minibuf_level; |
820 | |
821 /* 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
|
822 |
361 | 823 extern int update_mode_lines; |
824 | |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
825 /* 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
|
826 last redisplay that finished. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
827 |
361 | 828 extern int clip_changed; |
829 | |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
830 /* Nonzero if window sizes or contents have changed since last |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
831 redisplay that finished */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
832 |
361 | 833 extern int windows_or_buffers_changed; |
834 | |
43988
44b653625dac
(cursor_type_changed): Hew variable.
Richard M. Stallman <rms@gnu.org>
parents:
43619
diff
changeset
|
835 /* 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
|
836 |
44b653625dac
(cursor_type_changed): Hew variable.
Richard M. Stallman <rms@gnu.org>
parents:
43619
diff
changeset
|
837 extern int cursor_type_changed; |
44b653625dac
(cursor_type_changed): Hew variable.
Richard M. Stallman <rms@gnu.org>
parents:
43619
diff
changeset
|
838 |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
839 /* Number of windows displaying the selected buffer. Normally this is |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
840 1, but it can be more. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
841 |
361 | 842 extern int buffer_shared; |
998 | 843 |
844 /* If *ROWS or *COLS are too small a size for FRAME, set them to the | |
845 minimum allowable size. */ | |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
846 |
20349 | 847 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
|
848 |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
849 /* 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
|
850 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
|
851 can be returned. */ |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
852 |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
853 struct glyph *get_phys_cursor_glyph P_ ((struct window *w)); |
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
854 |
35399
21663e5e70de
(WINDOW_LIVE_P): New macro.
Gerd Moellmann <gerd@gnu.org>
parents:
34746
diff
changeset
|
855 /* 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
|
856 |
21663e5e70de
(WINDOW_LIVE_P): New macro.
Gerd Moellmann <gerd@gnu.org>
parents:
34746
diff
changeset
|
857 #define WINDOW_LIVE_P(WINDOW) \ |
21663e5e70de
(WINDOW_LIVE_P): New macro.
Gerd Moellmann <gerd@gnu.org>
parents:
34746
diff
changeset
|
858 (WINDOWP ((WINDOW)) && !NILP (XWINDOW ((WINDOW))->buffer)) |
21663e5e70de
(WINDOW_LIVE_P): New macro.
Gerd Moellmann <gerd@gnu.org>
parents:
34746
diff
changeset
|
859 |
88155 | 860 |
861 /* These used to be in lisp.h. */ | |
862 | |
863 extern Lisp_Object Qwindowp, Qwindow_live_p; | |
864 extern Lisp_Object Vwindow_list; | |
865 | |
866 EXFUN (Fwindow_end, 2); | |
867 EXFUN (Fselected_window, 0); | |
868 EXFUN (Fwindow_minibuffer_p, 1); | |
869 EXFUN (Fdelete_window, 1); | |
870 EXFUN (Fwindow_buffer, 1); | |
871 EXFUN (Fget_buffer_window, 2); | |
872 EXFUN (Fsave_window_excursion, UNEVALLED); | |
873 EXFUN (Fsplit_window, 3); | |
874 EXFUN (Fset_window_configuration, 1); | |
875 EXFUN (Fcurrent_window_configuration, 1); | |
876 extern int compare_window_configurations P_ ((Lisp_Object, Lisp_Object, int)); | |
877 EXFUN (Fcoordinates_in_window_p, 2); | |
878 EXFUN (Fwindow_at, 3); | |
879 EXFUN (Fpos_visible_in_window_p, 3); | |
880 extern void mark_window_cursors_off P_ ((struct window *)); | |
881 extern int window_internal_height P_ ((struct window *)); | |
882 extern int window_internal_width P_ ((struct window *)); | |
883 EXFUN (Frecenter, 1); | |
884 EXFUN (Fscroll_other_window, 1); | |
885 EXFUN (Fset_window_start, 3); | |
886 extern void temp_output_buffer_show P_ ((Lisp_Object)); | |
887 extern void replace_buffer_in_all_windows P_ ((Lisp_Object)); | |
888 extern void init_window_once P_ ((void)); | |
889 extern void init_window P_ ((void)); | |
890 extern void syms_of_window P_ ((void)); | |
891 extern void keys_of_window P_ ((void)); | |
892 | |
893 extern int window_box_text_cols P_ ((struct window *w)); | |
894 | |
24996
429ec2c075e4
(struct window): Add vscroll.
Gerd Moellmann <gerd@gnu.org>
parents:
21938
diff
changeset
|
895 #endif /* not WINDOW_H_INCLUDED */ |
88155 | 896 |
897 /* arch-tag: d4a6942f-e433-4ffe-ac10-2c3574f28577 | |
898 (do not change this comment) */ |