DIRECTORY GGBasicTypes, GGHistoryTypes, GGInterfaceTypes, GGModelTypes, GGUserInput, ImagerTransformation, Rope; GGMouseEvent: CEDAR DEFINITIONS = BEGIN BoundBox: TYPE = GGModelTypes.BoundBox; Caret: TYPE = GGInterfaceTypes.Caret; FeatureData: TYPE = GGInterfaceTypes.FeatureData; GGData: TYPE = GGInterfaceTypes.GGData; HistoryEvent: TYPE = GGHistoryTypes.HistoryEvent; Point: TYPE = GGBasicTypes.Point; Scene: TYPE = GGModelTypes.Scene; SelectMode: TYPE = GGModelTypes.SelectMode; Sequence: TYPE = GGModelTypes.Sequence; Slice: TYPE = GGModelTypes.Slice; SliceDescriptor: TYPE = GGModelTypes.SliceDescriptor; Traj: TYPE = GGModelTypes.Traj; TrajEnd: TYPE = GGModelTypes.TrajEnd; TrajPartType: TYPE = GGModelTypes.TrajPartType; UserInputProc: TYPE = GGUserInput.UserInputProc; Vector: TYPE = GGBasicTypes.Vector; MouseProc: TYPE = PROC [input: LIST OF REF ANY, ggData: GGData, worldPt: Point]; StartProc: TYPE = PROC [input: LIST OF REF ANY, ggData: GGData, worldPt: Point] RETURNS [success: BOOL _ TRUE]; SelectFeedbackProc: TYPE = PROC [feature: FeatureData, caretPt: Point, ggData: GGData]; InitializeFSM: PROC [ggData: GGData]; ResetMouseMachinery: PROC [ggData: GGData]; HandleMouse: UserInputProc; HandleMouseless: UserInputProc; SelectFromFeature: PROC [ggData: GGData, testPoint: Point, point: Point, normal: Vector, feature: FeatureData, hitData: REF ANY]; StartSelect: StartProc; DuringSelect: MouseProc; EndSelect: MouseProc; StartExtendSelect: StartProc; -- extends at a particular level StartExtendSelection: StartProc; -- extends at the current level DuringExtendSelection: MouseProc; EndExtendSelection: MouseProc; StartDeselect: StartProc; DuringDeselect: MouseProc; EndDeselect: MouseProc; StartAddBezier: StartProc; DuringBezierDrag: MouseProc; EndBezierAdd: MouseProc; AbortBezierAdd: PROC [input: LIST OF REF ANY, ggData: GGData, worldPt: Point]; ContinueBezierAdd: StartProc; SaveSavedState: PROC [ggData: GGData]; UpdateSelectionsForAdd: PROC [scene: Scene, oldTraj, newTraj: Traj, trajEnd: TrajEnd] RETURNS [newNormal, newHot: Sequence]; UpdateCaretForAdd: PROC [caret: Caret, newOutline: Slice, newNormal: Sequence, worldPt: Point]; StartMotion: PROC [ggData: GGData, opName: Rope.ROPE, bagType: ATOM, worldPt: Point, saveState: BOOL _ TRUE, needAnchor: BOOL _ FALSE, backgroundOK: BOOL _ FALSE, newCurrent: BOOL _ TRUE] RETURNS [success: BOOL _ TRUE]; DragTheCaret: PROC [worldPt: Point, ggData: GGData, opName: Rope.ROPE] RETURNS [mapPoint: Point]; SafelyGetCaretTraj: PROC [caret: Caret] RETURNS [chair: SliceDescriptor, traj: Traj, jointNum: NAT]; TransformObjectsAfterMove: PROC [scene: Scene, transform: ImagerTransformation.Transformation, editConstraints: GGModelTypes.EditConstraints, history: HistoryEvent]; ContinueMotion: PROC [ggData: GGData, opName: Rope.ROPE, bagType: ATOM, worldPt: Point, startBox: BoundBox _ NIL] RETURNS [success: BOOL _ TRUE]; FinishAbort: PUBLIC PROC [ggData: GGData]; SetCaretAttractorEndpoint: PROC [ggData: GGData, mapPoint: Point, normal: Vector, testPoint: Point, feature: FeatureData, hitData: REF ANY]; SetStrokeColorRemote: PROC [ggData: GGData, sliceD: SliceDescriptor] RETURNS [doNormalBehavior: BOOL _ FALSE, done: BOOL _ FALSE]; SetFillColorRemote: PROC [ggData: GGData, sliceD: SliceDescriptor] RETURNS [doNormalBehavior: BOOL _ FALSE, done: BOOL _ FALSE]; END. ’GGMouseEvent.mesa Last edited by Bier on July 16, 1987 8:10:46 pm PDT Contents: Once an event reaches the front of the slack-process queue, it is dispatched to one of the procedures in this module. Pier, July 13, 1988 3:09:39 pm PDT Kurlander July 13, 1986 3:09:20 pm PDT Eisenman, October 1, 1987 9:51:57 am PDT Bier, May 29, 1990 10:40:12 am PDT Called as part of Reviving Gargoyle after an ERROR window must be aborted. Restores the GGMouseEvent invariants. Procedures for GGMouseEventImpl* communication. In GGMouseEventImplA.SelectJoint In GGMouseEventImplB.SetCaretAttractorEndpoint Used by GGMouseEventImplC Special Behaviors for "active" Gargoyle objects Κυ˜Icode™Kšœ3™3šΟnœx™€Kšœ"™"Kšœ#Οk™&Kšœ(™(K™"—K™šž ˜ Kšœf˜fK˜—Kš œžœž œž˜'˜Kšœ žœ˜'Kšœžœ˜%Kšœ žœ ˜1Kšœžœ˜'Kšœžœ˜1Kšœžœ˜!Kšœžœ˜!Kšœ žœ˜+Kšœ žœ˜'Kšœžœ˜!Kšœžœ ˜5Kšœžœ˜Kšœ žœ˜%Kšœžœ˜/Kšœžœ˜0Kšœžœ˜#—K˜Kš œ žœžœ žœžœžœžœ"˜PKšœ žœžœ žœžœžœžœ"žœ žœžœ˜oKšœžœžœ8˜WK˜Kš œžœ˜%šœžœ˜+Kšœ-žœ?™q—K˜Kš œ˜Kšœ˜K˜Kšœžœažœžœ˜K˜K™/™Kšœ ™ Kšœ.™.—Kš œ ˜Kš œ ˜Kš œ ˜K˜Kšœ Οc ˜>Kšœ Ÿ˜@Kšœ ˜!Kšœ ˜K˜Kš œ ˜Kšœ ˜Kš œ ˜K˜Kšœ ˜Kšœ ˜Kš œ ˜Kš œžœ žœžœžœžœ"˜NKšœ ˜K˜Kšœ™Kšœžœ˜&Kšœžœ:žœ˜|KšœžœH˜_Kš œžœžœ žœžœžœžœžœžœžœžœžœžœ žœžœ˜ΫKš œžœ/žœžœ˜aKšœžœžœ0žœ˜dKšœžœ†˜₯Kšœžœžœ žœ'žœžœ žœžœ˜‘Kš œžœžœ˜*K˜K˜Kšœžœdžœžœ˜ŒK˜K™/Kšœžœ+žœžœžœžœžœ˜‚Kšœžœ+žœžœžœžœžœ˜€Kšžœ˜—…— ±