DIRECTORY Graphics USING [Context], Rope USING [ROPE], ViewerClasses USING [Viewer]; PEViewer: CEDAR DEFINITIONS = BEGIN RedrawProc: TYPE = PROCEDURE [clientData: REF ANY]; QuitProc: TYPE = PROCEDURE [clientData: REF ANY]; ButtonProc: TYPE = PROCEDURE [clientData: REF ANY, event: ATOM, x, y: REAL]; MenuLabelRec: TYPE = RECORD [ label: ATOM, guarded: BOOLEAN _ FALSE ]; BuildViewer: PROCEDURE [name: Rope.ROPE, menuLabels: LIST OF MenuLabelRec, clientData: REF ANY, redrawProc: RedrawProc, quitProc: QuitProc, buttonProc: ButtonProc] RETURNS [pathViewer: ViewerClasses.Viewer, biasViewer: ViewerClasses.Viewer, tensionViewer: ViewerClasses.Viewer]; DrawProc: TYPE = PROCEDURE [context: Graphics.Context]; DrawInViewer: PROCEDURE [pathViewer: ViewerClasses.Viewer, drawProc: DrawProc]; END. ÜPEViewer.mesa Copyright (C) 1984 by Xerox Corporation. All rights reserved. Last Edited by: Plebon, August 18, 1983 1:45 pm This routine makes a viewer with the supplied name and menu labels. The supplied redrawProc is called when the screen must be redrawn (because the viewer changes size, etc.). The supplied quitProc is called to clean up on program termination (which occurs when the viewer is destroyed. This routine calls the PaintProc to draw in the viewer. Êk˜Jšœ ™ J™>Jšœ/™/J˜šÏk ˜ Jšœ œ ˜Jšœœœ˜Jšœœ ˜J˜—Jšœ œ˜J˜Jš˜J˜Jš Ïn œœ œœœ˜3J˜Jš žœœ œœœ˜1J˜Jšž œœ œœœ œœ˜LJ˜šœœœ˜Jšœœ˜ Jšœ œ˜J˜J˜—šž œ œ œœœœœFœk˜–Jšœ ™ —J˜Jšžœœ œ˜7J˜šž œ œ8˜OJ™7—J˜Jšœ˜J˜J˜—…—&m