Next: Process Internals, Previous: Buffer Internals, Up: Object Internals
The fields of a window (for a complete list, see the definition of
struct window
in window.h) include:
frame
mini_p
nil
if this window is a minibuffer window.
parent
Parent windows do not display buffers, and play little role in display
except to shape their child windows. Emacs Lisp programs usually have
no access to the parent windows; they operate on the windows at the
leaves of the tree, which actually display buffers.
hchild
vchild
hchild
is used if the window is subdivided
horizontally by child windows, and vchild
if it is subdivided
vertically. In a live window, only one of hchild
, vchild
,
and buffer
(q.v.) is non-nil
.
next
prev
next
is
nil
if the window is the right-most or bottom-most in its group;
prev
is nil
if it is the left-most or top-most in its
group.
left_col
top_line
total_cols
total_lines
buffer
start
pointm
force_start
nil
, it says that the window has been
scrolled explicitly by the Lisp program. This affects what the next
redisplay does if point is off the screen: instead of scrolling the
window to show the text around point, it moves point to a location that
is on the screen.
frozen_window_start_p
start
of this window should not be changed, even if point
gets invisible.
start_at_line_beg
nil
means current value of start
was the beginning of a line
when it was chosen.
use_time
get-lru-window
uses this field.
sequence_number
last_modified
modiff
field of the window's buffer, as of the last time
a redisplay completed in this window.
last_overlay_modified
overlay_modiff
field of the window's buffer, as of the last
time a redisplay completed in this window.
last_point
last_had_star
nil
value means the window's buffer was “modified” when the
window was last updated.
vertical_scroll_bar
left_margin_cols
right_margin_cols
nil
means no margin.
left_fringe_width
right_fringe_width
nil
or t
means use the values of the frame.
fringes_outside_margins
nil
value means the fringes outside the display margins;
othersize they are between the margin and the text.
window_end_pos
z
minus the buffer position of the last glyph
in the current matrix of the window. The value is only valid if
window_end_valid
is not nil
.
window_end_bytepos
window_end_pos
.
window_end_vpos
window_end_pos
.
window_end_valid
nil
value if window_end_pos
is truly
valid. This is nil
if nontrivial redisplay is pre-empted, since in that
case the display that window_end_pos
was computed for did not get
onto the screen.
cursor
last_cursor
cursor
as of the last redisplay that finished.
phys_cursor
phys_cursor_type
phys_cursor_height
phys_cursor_width
phys_cursor_on_p
cursor_off_p
last_cursor_off_p
cursor_off_p
as of the time of
the last redisplay.
must_be_updated_p
hscroll
vscroll
dedicated
nil
if this window is dedicated to its buffer.
display_table
nil
if none is specified for it.
update_mode_line
nil
means this window's mode line needs to be updated.
base_line_number
nil
.
This is used for displaying the line number of point in the mode line.
base_line_pos
nil
meaning none is known. If it is a buffer, don't display
the line number as long as the window shows that buffer.
column_number_displayed
nil
if column numbers are not being displayed.
current_matrix
desired_matrix