DESCRIPTIONA 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 canvas.
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 zero.
- 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 its perspective.