DIRECTORY <> CardTab, GGBasicTypes, GGCoreTypes, GGInterfaceTypes, GGModelTypes, Imager, ImagerTransformation; GGRefreshTypes: CEDAR DEFINITIONS = BEGIN BoundBox: TYPE = GGCoreTypes.BoundBox; FeatureData: TYPE = GGModelTypes.FeatureData; GGData: TYPE = GGInterfaceTypes.GGData; Point: TYPE = GGBasicTypes.Point; Sandwich: TYPE = REF SandwichObj; SandwichObj: TYPE; -- opaque so GGRefresh doesn't depend on BufferedRefresh Slice: TYPE = GGModelTypes.Slice; SliceDescriptor: TYPE = GGModelTypes.SliceDescriptor; PaintProc: TYPE = PROC [ggData: GGData, request: REF ¬ NIL, bounds: BoundBox, clientData: REF ¬ NIL]; RefreshDataObj: TYPE = RECORD [ oldTransform: ImagerTransformation.Transformation, suppressRefresh: BOOL ¬ FALSE, suppressScreen: BOOL ¬ FALSE, -- allows painting layer update but no screen refresh paintAction: ATOM, sandwich: Sandwich, clientToViewer: ImagerTransformation.Transformation, -- remembers BiScroller to allow reuse of sandwich when window opens anew lineCache: CardTab.Ref, -- remembers which lines have been drawn in Foreground savedLineTable: CardTab.Ref, dragInProgress: BOOL ¬ FALSE, caretIsMoving: BOOL ¬ FALSE, spotPoint: Point ¬ [0.0, 0.0], -- For Gravity Testing hitPoint: Point ¬ [0.0, 0.0], -- For Gravity Testing overlayList: LIST OF SliceDescriptor, orderedOverlayList: LIST OF SliceDescriptor, -- maintained by routines in GGRefreshImpl. NIL => must rebuild ordered list addedObject: Slice, -- used to implement GGRefresh.FinishedAdding recentFeature: FeatureData, -- maintained by DuringSelect routines. Most recently hit feature. Could be used for refresh optimization of ExtendSelection. startBoundBox: BoundBox, -- being phased out paintBox: BoundBox, -- aggregate bound box for the latest refresh call beforeBox: BoundBox, -- old selections, attractor feedback, caret, or anchor are within this box totalBox: BoundBox, -- accumulated bounding boxes since refresh was turned off. textInProgress: Slice, -- text slice to be updated by AddChar if nonNil. Any mouse click makes this NIL, completing typein. A character typed when isNIL starts a new textInProgress areaFollowColorTool: BOOL ¬ FALSE, lineFollowColorTool: BOOL ¬ FALSE, other: REF ANY -- for extensibility ]; END. ’ GGRefreshTypes.mesa Copyright Σ 1988, 1992 by Xerox Corporation. All rights reserved. Bier, August 17, 1992 10:07 pm PDT Kenneth A. Pier, August 18, 1992 2:11 pm PDT Contents: Optimizing Gargoyle refresh is an on-going process requiring new data structures. The real concrete types of this data structures are defined here so that changing them will not require recompiling GGInterfaceTypes ΚE–(cedarcode) style•NewlineDelimiter ™defaultšœ™Kšœ Οeœ6™BK™"K™,Kšœβ™βK™—šΟk ˜ K˜v—K˜KšΟnœžœž œž˜)K˜Kšœ žœ˜&Kšœ žœ˜-Icodešœžœ˜'Kšœžœ˜!Lšœ žœžœ ˜!Lšœ žœΟc8˜KKšœžœ˜!Kšœžœ ˜5K˜Lš œ žœžœžœžœ žœžœ˜ešœžœžœ˜K˜2Kšœžœžœ˜Kšœžœžœ 5˜SKšœ žœ˜K˜Kšœ5 I˜~Kšœ 6˜NKšœ˜Kšœžœžœ˜Kšœžœžœ˜Kšœ ˜5Kšœ ˜4Kšœ žœžœ˜%Kšœžœžœ L˜yKšœ -˜AKšœ ~˜šKšœ ˜,Kšœ 2˜FKšœ K˜`Kšœ ;˜OKšœ ˜΄Kšœžœžœ˜"Kšœžœžœ˜"Kšœžœžœ ˜#K˜K˜—Kšžœ˜—…—Β ™