DIRECTORY GGModelTypes, RefTab; GGHistoryTypesOpaque: CEDAR DEFINITIONS = BEGIN Scene: TYPE = GGModelTypes.Scene; Slice: TYPE = GGModelTypes.Slice; SliceParts: TYPE = GGModelTypes.SliceParts; ChangeType: TYPE = {changingprops, changingstate, capture}; -- to be expanded Change: TYPE = RECORD [ -- to be expanded SELECT kind: ChangeType FROM changingprops => [ op: ATOM, -- an atom, like $SetColor or $SetLineWidth, triggering this entry slice: Slice, -- the slice being changed parts: SliceParts, -- the slice parts being changed oldValue: REF -- the old value of the changing property ], changingstate => [ op: ATOM, -- an atom, like $SetScaleUnit scene: Scene, oldValue: REF -- the old value of the changing state variable ], capture => [ scene: Scene, virginData: LIST OF Slice, -- hiding place for data needed to undo a capture virginMap: RefTab.Ref -- key: virginSlice, value: oldSlice. Used to restore captured data to the original storage occupied when a capture occurs. ], ENDCASE ]; END. HGGHistoryTypesOpaque.mesa Contents: The Change TYPE. Copyright Σ 1986, 1988 by Xerox Corporation. All rights reserved. Last edited by Bier on October 31, 1988 4:10:57 pm PST Bier, October 31, 1988 5:10:06 pm PST There is one Change record for each subevent. A subevent is usually a single change on a single operand. Κ˜Icodešœ™šΟnœΟkœ™KšœB™BKšœ3ž™6K™%—K™šž ˜ Kšœ˜—K˜Kšœžœž œ˜)Kšž˜K˜Kšœžœ˜!Kšœžœ˜!Kšœ žœ˜+K˜K™iK˜Kšœ žœ,Οc˜MK˜šœžœžœŸ˜)Kšžœž˜K˜šœ˜KšœžœŸB˜LKšœŸ˜(KšœŸ ˜3Kšœ žœŸ)˜8K˜K˜—šœ˜KšœžœŸ˜(K˜ Kšœ žœŸ/˜>K˜K˜—šœ ˜ K˜ Kšœ žœžœŸ1˜LKšœŸ|˜’K˜K˜—Kšž˜Kšœ˜—K˜Kšžœ˜K˜—…—τ½