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, startBox: BoundBox ¬ NIL] 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 Copyright Σ 1992 by Xerox Corporation. All rights reserved. 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, June 24, 1992 11:01 am 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 Κ)–(cedarcode) style•NewlineDelimiter ™code™Kšœ Οeœ1™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šŸœ˜—…— 29