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
];