Perspective - visible portion of an interactor
A perspective object describes which part of an interactor's total display area
is visible in the interactor's canvas. The main use of perspectives is for
scrolling, panning, and zooming interactors. The member variables
(x0, y0) define the origin of the interactor's display
area; width and height define the total height of the area. The
member variables (curx, cury) define the lower-left
corner of the interactor's canvas relative to the total area; curwidth
and curheight define how much of the total area is displayed in the
The member variables sx, sy, lx, and
ly specify small and large increments in each dimension. These
increments are used by a scroller to implement line and page scrolling.
- Define a new perspective with all member variables initialized to
- void Attach(Interactor*)
- Add to the list of interactors that are interested in updates to the
perspective. These interactors reflect the perspective visually; examples
include scrollers and sliders.
- void Detach(Interactor*)
- Remove an interactor from the list of those interested in updates. This
operation should be called from the interactor's destructor.
- void Init(Coord x0, Coord y0, Coord width, Coord height)
- Initialize the perspective display area.
- void Update()
- Notify all the interactors interested in the perspective that it has
changed. The perspective's interactor should call Update after modifying
Adjuster(3I), Interactor(3I), Panner(3I), Scroller(3I)