PERefresh.mesa
Written by Darlene Plebon on August 31, 1983 11:19 am
Refresh process routines. This process redraws the entire image at background priority whenever it is notified that an operation has been performed which may have damaged the displayed image. Active segments and vertices are NOT redrawn. Vertices are only drawn for the active trajectory.
DIRECTORY
PETypes,
PEViewer USING [DrawProc],
ViewerClasses USING [Viewer];
PERefresh: CEDAR DEFINITIONS =
BEGIN OPEN PETypes, PEViewer;
RefreshData: TYPE = REF ANY;
CreateRefreshProcess: PROCEDURE [pathViewer: ViewerClasses.Viewer, clientRedrawProc: DrawProc ← NIL] RETURNS [data: RefreshData];
This routine creates the refresh process.
DestroyRefreshProcess: PROCEDURE [data: RefreshData];
This routine causes the refresh process to kill itself.
EnableSegmentRefresh: PROCEDURE [segment: Segment];
This routine allows the specified segment to be refreshed on refresh requests.
DisableSegmentRefresh: PROCEDURE [segment: Segment];
This routine prevents the specified segment from being refreshed.
EnableTrajectoryRefresh: PROCEDURE [trajectory: Trajectory];
This routine allows the specified trajectory to be refreshed on refresh requests.
DisableTrajectoryRefresh: PROCEDURE [trajectory: Trajectory];
This routine prevents the specified trajectory from being refreshed.
NewRefreshData: PROCEDURE [data: RefreshData, trajectoryList: TrajectoryList, activeTrajectory: TrajectoryNode];
This procedure provides information about the image to be refreshed. In particular, it provides a list of trajectories to be refreshed and which trajectory is active (i.e. the trajectory whose vertices are to be refreshed). This routine should be called whenever this information changes.
RequestRefresh: PROCEDURE [data: RefreshData, erase: BOOLEAN ← FALSE];
This routine requests that the image be refreshed. It may optionally request that the screen be erased first.
END.