<> <> <> <> DIRECTORY Menus, Pipal, PipalReal, ViewerClasses; PipalEditor: CEDAR DEFINITIONS = BEGIN <> <> <> CreateViewer: PROC [object: Pipal.Object] RETURNS [viewer: ViewerClasses.Viewer]; <> <> OutputRequestType: TYPE = {clearAndRepaintArea, repaintAll, paintOutline, changeCursor, grabInputFocus, translate, scale}; OutputRequest: TYPE = RECORD [ type: OutputRequestType, data: REF _ NIL < area to be repainted;>> < object to be repainted;>> < new transformation to be repainted;>> < REF CursorType;>> ]; <> View: TYPE = REF ViewRec; ViewRec: TYPE = RECORD [ transformation: PipalReal.Transformation, cursor: ViewerClasses.CursorType _ textPointer, state: REF _ NIL ]; NotifyProc: TYPE = PROC [mutant: Pipal.Object, view: View, input: LIST OF REF ANY] RETURNS [requests: LIST OF OutputRequest _ NIL, new: Pipal.Object]; CreateBiscroller: PROC [mutant: Pipal.Object, tipTable: Pipal.ROPE, notify: NotifyProc, state: REF _ NIL, buttons: BOOL _ FALSE] RETURNS [view: View]; END.