DEC Text Processing Utility Data Types
3.14 Window Data Type
3.14.3 Displaying Window Values
When you use the CREATE_WINDOW built-in procedure to create a window,
DECTPU saves the numbers of the screen lines that delimit the window in
original_top and original_bottom. When you map a window to the screen with
the MAP built-in procedure, the window becomes visible on the screen. If it is the
only window on the screen, its visible_top and visible_bottom values are the same
as its original_top and original_bottom values. You can use SHOW (WINDOWS)
to display the original and the visible values or the GET_INFO built-in procedure
to retrieve them.
However, if there is already a window on the screen and you map another window
over part of it, the values for the previous window’s visible_top, visible_bottom,
and visible_length are modified. The value for visible_length of the previous
window is different from its original_length until the new window is removed
from the screen. As long as the new window is on the screen and does not have
another window mapped over it, its original top and bottom are the same as its
visible top and bottom.
3.14.4 Mapping Windows
When you want a window and its associated buffer to be visible on the screen, use
the MAP built-in procedure. Mapping a window to the screen has the following
effects:
• The mapped window becomes the current window and the cursor is moved to
the editing point in the buffer associated with the window.
• The buffer associated with the window becomes the current buffer.
• The window is marked as visible and mapped.
• The visible_top, visible_bottom, and visible_length of the window are
calculated and stored. Initially, these values are the same as the original
values that were calculated when the window was created. (See the last item
in the next list.)
Mapping a window to the screen may have the following side effects:
• The newly mapped window may occlude other windows. This happens when
the original_top or original_bottom line of the newly mapped window overlaps
the boundaries of existing visible windows. Overlapping can cause some
windows to be totally occluded or not visible. Occluded windows are still
marked mapped; when the window that is covering them is unmapped, they
may reappear on the screen without being explicitly remapped.
• If the newly mapped window divides a window into two parts, only the top
part of the segmented window continues to be updated. The lower part of the
segmented window is erased at the next window update.
• The visible_top, visible_bottom, and visible_length values of a window that is
occluded change from their original values.
When a newly mapped window becomes the current window (the MAP,
POSITION, and ADJUST_WINDOW built-in procedures cause this to happen),
the cursor is placed in the current window. In addition to the active cursor
position in the current window, there is a marker that designates a cursor
position in all other windows. The cursor position in a window other than the
current window is the last location of the cursor when it was in the window. By
maintaining a cursor position in all windows, DECTPU lets you edit in multiple
locations of a single buffer if that buffer is associated with more than one window.
3–24 DEC Text Processing Utility Data Types