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. N GGHistoryTypesOpaque.mesa Contents: The Change TYPE. Copyright ำ 1986, 1988, 1992 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. สฎ•NewlineDelimiter –(cedarcode) style™codešœ™Kšฯnœฯkœ™Kšœ ฯeœ=™HKšœ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˜—…—๔๐