DIRECTORY BufferedRefresh, CardTab, GGBasicTypes, GGCoreTypes, GGModelTypes, GGRefresh, ImagerTransformation; GGRefreshTypes: CEDAR DEFINITIONS = BEGIN BoundBox: TYPE = GGCoreTypes.BoundBox; FeatureData: TYPE = GGModelTypes.FeatureData; Point: TYPE = GGBasicTypes.Point; Sandwich: TYPE = GGRefresh.Sandwich; Slice: TYPE = GGModelTypes.Slice; SliceDescriptor: TYPE = GGModelTypes.SliceDescriptor; 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 c 1988 by Xerox Corporation. All rights reserved. Bier, September 23, 1991 4:08 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 Kenneth A. Pier, April 8, 1992 3:46 pm PDT Κχ•NewlineDelimiter ™Icodešœ™Kšœ Οmœ1™