-- File: Scratchpad2dUser.mesa -- Last edited by Bier on December 18, 1982 1:41 am -- Author: Eric Bier on March 22, 1983 1:22 pm -- Contents: Functions called by the buttons on a Scratchpad2d viewer. DIRECTORY Containers, CoordSys, Graphics, Matrix3d, Menus, PadGraphics, SV2d, SweepGeometry, ViewerClasses; Scratchpad2dUser: CEDAR DEFINITIONS = BEGIN CoordSystem: TYPE = REF CoordSysObj; CoordSysObj: TYPE = CoordSys.CoordSysObj; MouseButton: TYPE = Menus.MouseButton; Path: TYPE = REF PathObj; PathObj: TYPE = SV2d.PathObj; Polygon: TYPE = REF PolygonObj; PolygonObj: TYPE = SV2d.PolygonObj; Point2d: TYPE = Matrix3d.Point2d; Viewer: TYPE = ViewerClasses.Viewer; ScratchViewerData: TYPE = REF ScratchViewerDataObj; ScratchViewerDataObj: TYPE = RECORD [ outer: Containers.Container _ NIL, -- handle for the enclosing container height: CARDINAL _ 0, textSection: TextSectionData, scratchpad: ViewerClasses.Viewer _ NIL ]; TextSectionData: TYPE = REF TextSectionDataObj; TextSectionDataObj: TYPE = RECORD [ degrees: ViewerClasses.Viewer _ NIL]; ScratchpadData: TYPE = REF ScratchpadDataObj; ScratchpadDataObj: TYPE = RECORD [ origin: Point2d, path: Path, mode: ScratchpadMode, index: NAT, scratchViewerData: ScratchViewerData, proc: PROC [dc: Graphics.Context]]; ScratchpadMode: TYPE = {off, pointAt, drawLin, drawRevo}; Painter: PROC [proc: PROC [Graphics.Context], scratchViewerData: ScratchViewerData _ NIL]; PaintLin: PROC [scratchViewerData: ScratchViewerData]; PaintRevo: PROC [scratchViewerData: ScratchViewerData]; Erase: PROC [parent: REF ANY, clientData: REF ANY, mouseButton: MouseButton, shift, control: BOOL]; Normals: PROC [parent: REF ANY, clientData: REF ANY, mouseButton: MouseButton, shift, control: BOOL]; PlaceOrigin: PROC [viewer: Viewer]; CrossHairs: PROC [parent: REF ANY, clientData: REF ANY, mouseButton: MouseButton, shift, control: BOOL]; DrawScene: PROC [parent: REF ANY, clientData: REF ANY, mouseButton: MouseButton, shift, control: BOOL]; DrawLin: PROC [parent: REF ANY, clientData: REF ANY, mouseButton: MouseButton, shift, control: BOOL]; DrawRevo: PROC [parent: REF ANY, clientData: REF ANY, mouseButton: MouseButton, shift, control: BOOL]; NewLin: PROC [parent: REF ANY, clientData: REF ANY, mouseButton: MouseButton, shift, control: BOOL]; NewRevo: PROC [parent: REF ANY, clientData: REF ANY, mouseButton: MouseButton, shift, control: BOOL]; TestPoints: PROC [parent: REF ANY, clientData: REF ANY, mouseButton: MouseButton, shift, control: BOOL]; Circle: PROC [parent: REF ANY, clientData: REF ANY, mouseButton: MouseButton, shift, control: BOOL]; EditMode: TYPE = {lin, revo}; Edit: PROC [path: Path, mode: EditMode, scratchViewerData: ScratchViewerData]; -- makes poly be the current polygon. END.