GGRefreshTypes.mesa
Copyright © 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
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: BOOLFALSE,
suppressScreen: BOOLFALSE, -- 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: BOOLFALSE,
caretIsMoving: BOOLFALSE,
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: BOOLFALSE,
lineFollowColorTool: BOOLFALSE,
other: REF ANY -- for extensibility
];
END.