<> <> <> <> DIRECTORY GGHistoryTypes, GGHistoryTypesOpaque, GGInterfaceTypes, GGModelTypes, RefTab, Rope, ViewerClasses; GGHistory: CEDAR DEFINITIONS = BEGIN OPEN GGHistoryTypes; GGData: TYPE = GGInterfaceTypes.GGData; Change: TYPE = GGHistoryTypesOpaque.Change; Scene: TYPE = GGModelTypes.Scene; Slice: TYPE = GGModelTypes.Slice; SliceDescriptor: TYPE = GGModelTypes.SliceDescriptor; SliceParts: TYPE = GGModelTypes.SliceParts; Viewer: TYPE = ViewerClasses.Viewer; HistoryTool: TYPE = REF HistoryToolObj; HistoryToolObj: TYPE = RECORD [ layout: Layout, eventNumArg: Viewer, sizeArg: Viewer, textField: Viewer]; Layout: TYPE = REF LayoutRec; LayoutRec: TYPE = RECORD [ entryLeft: INTEGER _ 5, initLeft: INTEGER _ 5, heightSoFar: INTEGER _ 5, initHeight: INTEGER _ 5, entryHeight: INTEGER _ 15, entryVSpace: INTEGER _ 5, gapSize: INTEGER _ 5, container: Viewer ]; <> <<>> NewCurrent: PROC [name: Rope.ROPE, ggData: GGData] RETURNS [HistoryEvent]; <> <> <> <> GetCurrent: PROC [ggData: GGData] RETURNS [event: HistoryEvent, index: INT]; <> <<>> PushCurrent: PROC [ggData: GGData]; <> <> NewCapture: PROC [name: Rope.ROPE, ggData: GGData]; <> <<>> KillAdvanceCapture: PROC [ggData: GGData]; <> <<>> DoAdvanceCapture: PROC [ggData: GGData]; <> <<>> <> <<>> Note: PROC [event: HistoryEvent, historyProc: HistoryProc, historyData: REF Change]; < to list of subevents>> <<>> Undo: PROC [historyEvent: HistoryEvent, currentEvent: HistoryEvent]; <> <> <> <<>> UndoN: PROC [ggData: GGData, N: INT _ 0]; <> <> <<>> Create: PROC [name: Rope.ROPE] RETURNS [HistoryEvent]; <> SetCurrent: PROC [ggData: GGData, event: HistoryEvent]; -- sets current event to event SetHistory: PROC [ggData: GGData, list: LIST OF HistoryEvent]; -- sets history list to list GetHistory: PROC [ggData: GGData] RETURNS [LIST OF HistoryEvent]; Push: PROC [event: HistoryEvent, list: LIST OF HistoryEvent]; Reset: PROC [event: HistoryEvent]; <> ResetHistory: PROC [ggData: GGData]; <> Empty: PROC [event: HistoryEvent] RETURNS [BOOL]; <> <> <<>> BuildTool: PROC [caption: Rope.ROPE, ggData: GGData] RETURNS [HistoryTool]; <> <<>> CapTool: PROC [caption: Rope.ROPE, ggData: GGData]; <> <<>> ClearTool: PROC [ggData: GGData]; <> <<>> END.