Next: Process Internals, Previous: Buffer Internals, Up: Object Internals [Contents][Index]
The fields of a window (for a complete list, see the definition of
struct window
in window.h) include:
frame
The frame that this window is on.
mini_p
Non-nil
if this window is a minibuffer window.
parent
Internally, Emacs arranges windows in a tree; each group of siblings has a parent window whose area includes all the siblings. This field points to a window’s 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
These fields contain the window’s leftmost child and its topmost child
respectively. 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
The next sibling and previous sibling of this window. 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
The left-hand edge of the window, measured in columns, relative to the leftmost column in the frame (column 0).
top_line
The top edge of the window, measured in lines, relative to the topmost line in the frame (line 0).
total_cols
total_lines
The width and height of the window, measured in columns and lines respectively. The width includes the scroll bar and fringes, and/or the separator line on the right of the window (if any).
buffer
The buffer that the window is displaying.
start
A marker pointing to the position in the buffer that is the first character displayed in the window.
pointm
This is the value of point in the current buffer when this window is selected; when it is not selected, it retains its previous value.
force_start
If this flag is non-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
This field is set temporarily to 1 to indicate to redisplay that
start
of this window should not be changed, even if point
gets invisible.
start_at_line_beg
Non-nil
means current value of start
was the beginning of a line
when it was chosen.
use_time
This is the last time that the window was selected. The function
get-lru-window
uses this field.
sequence_number
A unique number assigned to this window when it was created.
last_modified
The modiff
field of the window’s buffer, as of the last time
a redisplay completed in this window.
last_overlay_modified
The overlay_modiff
field of the window’s buffer, as of the last
time a redisplay completed in this window.
last_point
The buffer’s value of point, as of the last time a redisplay completed in this window.
last_had_star
A non-nil
value means the window’s buffer was “modified” when the
window was last updated.
vertical_scroll_bar
This window’s vertical scroll bar.
left_margin_cols
right_margin_cols
The widths of the left and right margins in this window. A value of
nil
means no margin.
left_fringe_width
right_fringe_width
The widths of the left and right fringes in this window. A value of
nil
or t
means use the values of the frame.
fringes_outside_margins
A non-nil
value means the fringes outside the display margins;
othersize they are between the margin and the text.
window_end_pos
This is computed as 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
The byte position corresponding to window_end_pos
.
window_end_vpos
The window-relative vertical position of the line containing
window_end_pos
.
window_end_valid
This field is set to a non-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
A structure describing where the cursor is in this window.
last_cursor
The value of cursor
as of the last redisplay that finished.
phys_cursor
A structure describing where the cursor of this window physically is.
phys_cursor_type
phys_cursor_height
phys_cursor_width
The type, height, and width of the cursor that was last displayed on this window.
phys_cursor_on_p
This field is non-zero if the cursor is physically on.
cursor_off_p
Non-zero means the cursor in this window is logically off. This is used for blinking the cursor.
last_cursor_off_p
This field contains the value of cursor_off_p
as of the time of
the last redisplay.
must_be_updated_p
This is set to 1 during redisplay when this window must be updated.
hscroll
This is the number of columns that the display in the window is scrolled horizontally to the left. Normally, this is 0.
vscroll
Vertical scroll amount, in pixels. Normally, this is 0.
dedicated
Non-nil
if this window is dedicated to its buffer.
display_table
The window’s display table, or nil
if none is specified for it.
update_mode_line
Non-nil
means this window’s mode line needs to be updated.
base_line_number
The line number of a certain position in the buffer, or nil
.
This is used for displaying the line number of point in the mode line.
base_line_pos
The position in the buffer for which the line number is known, or
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
The column number currently displayed in this window’s mode line, or nil
if column numbers are not being displayed.
current_matrix
desired_matrix
Glyph matrices describing the current and desired display of this window.
Next: Process Internals, Previous: Buffer Internals, Up: Object Internals [Contents][Index]