DIRECTORY AMBridge, AMTypes, RTTypesBasic, RTMiniModel, BBApply, Rope, Menus, ViewerClasses, ViewerOps, ViewerTools, ViewRec, VFonts, Buttons, Containers, Labels, Rules, Process, Convert, MessageWindow, IO, Icons, Real; ViewRecInsides: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; TypedVariable: TYPE = AMTypes.TypedVariable; Type: TYPE = AMTypes.Type; Viewer: TYPE = ViewerClasses.Viewer; Int: TYPE = ViewRec.Int; RecordViewer: TYPE = ViewRec.RecordViewer; OtherStuffProc: TYPE = ViewRec.OtherStuffProc; DoitProc: TYPE = ViewRec.DoitProc; CreateOptions: TYPE = ViewRec.CreateOptions; Recognizer: TYPE = ViewRec.Recognizer; Reductions: TYPE = ViewRec.Reductions; Handler: TYPE = ViewRec.Handler; SimpleHandler: TYPE = ViewRec.SimpleHandler; ComplexHandler: TYPE = ViewRec.ComplexHandler; Updater: TYPE = ViewRec.Updater; AddPlace: TYPE = ViewRec.AddPlace; RList: TYPE = LIST OF Recognizer; DataList: TYPE = LIST OF Data; Data: TYPE = REF DataRec; DataRec: TYPE = RECORD [ v: Viewer _ NIL, asRV: RecordViewer _ NIL, rvParent: Data _ NIL, edParent: EltData _ NIL, feedBack, argContainer: Viewer _ NIL, toDo: DoitProc _ NIL, toDoData: REF ANY _ NIL, argPlace: INTEGER _ 0, curProc: ProcData _ NIL, running: BOOLEAN _ FALSE, runner: PROCESS, runningProc: ProcData _ NIL, destroyed: BOOLEAN _ FALSE, first, last: EltData _ NIL, holdOff, highlightSelectedProc: BOOLEAN]; EltData: TYPE = REF EltDataRec; EltDataRec: TYPE = RECORD [ name: ROPE, parent: Data, prev, next: EltData _ NIL, update: UpdateProc _ NIL, destroyed: BOOLEAN _ FALSE, opened: BOOLEAN _ FALSE, variable: BOOLEAN _ TRUE, b: Buttons.Button, --only non-NIL for some t: Viewer _ NIL, --only non-NIL for some ToRope: ToRopeProc _ NIL, --only non-NIL for some AssignRope: AssignRopeProc _ NIL, --only non-NIL for some var, old: TypedVariable, --unless a Proc typeDoc: ROPE _ NIL, notifyRequests: NotifyList _ NIL, details: SELECT et: EltType FROM Proc => [ argret: Viewer, argRV, retRV: Data, hasDom, hasRet: BOOLEAN, domainInst, retInst: TypedVariable, proc: TypedVariable, stateLabel: Labels.Label _ NIL, gregState: GregState _ Other, running, argsShown: BOOLEAN _ FALSE, runningProcess: PROCESS, userAbort: CARDINAL _ 0], Simple => [ handler: SimpleHandler, handlerData: REF ANY, wideAsTV: TypedVariable, targType: Type], Complex => [ handlerData, clientData: REF ANY, updater: Updater], Record => [ d: Data] ENDCASE ]; EltType: TYPE = {Proc, Record, Simple, Complex}; GregState: TYPE = {Dispatched, DispatchedAndEdited, Returned, Aborted, Other}; ToRopeProc: TYPE = PROC [ed: EltData] RETURNS [asRope: ROPE]; AssignRopeProc: TYPE = PROC [ed: EltData, asRope: ROPE] RETURNS [success: BOOLEAN]; ProcData: TYPE = REF EltDataRec[Proc]; RecordData: TYPE = REF EltDataRec[Record]; SimpleData: TYPE = REF EltDataRec[Simple]; ComplexData: TYPE = REF EltDataRec[Complex]; UpdateProc: TYPE = PROC [ed: EltData, always: BOOLEAN]; BindingList: TYPE = ViewRec.BindingList; Binding: TYPE = ViewRec.Binding; NotifyList: TYPE = ViewRec.NotifyList; NameStyles: TYPE = RECORD [quiescent, opened, invariant, running, beingShown: ATOM]; nowhere: INTEGER = 1000; nameStyles: NameStyles; roots: DataList; befores: ARRAY Reductions OF RList; afterAlls: RList; classRecers: ARRAY AMTypes.Class OF RList; ecHandlerProp, gtHandlerProp: ATOM; ProcButtonProc, InnerProcButtonProc, NVButtonProc, RecordButtonProc: Menus.ClickProc; ProcDoit: DoitProc; ProcUpdate, UpdateNV, UpdateRecord, UpdateComplex: UpdateProc; SimpleToRope: ToRopeProc; SimpleAssignRope: AssignRopeProc; DestroyEltViewer: ViewerClasses.DestroyProc; OKProc: PROC [pt: Type, argSpecs, retSpecs: BindingList, doAllRecords: BOOLEAN] RETURNS [ok, hasDom, hasRange: BOOLEAN]; SimpleEnough: PROC [rt: Type, specs: BindingList, doAllRecords: BOOLEAN] RETURNS [ok: BOOLEAN, count: CARDINAL]; Recognize: PROC [t: Type, specials: RList, onlyRecognize: BOOLEAN] RETURNS [recognized: BOOLEAN, handler, handlerData: REF ANY]; MemberStuff: PROC [tt, et: Type] RETURNS [biggest, listr: ROPE]; SelectBindings: PROC [bl: BindingList, name: ROPE, pos: INT] RETURNS [sublist, altSublist: BindingList, val: TypedVariable, found, visible, editable: BOOLEAN, notifies: NotifyList, recers: RList]; BindingListAppend: PROC [a, b: BindingList] RETURNS [c: BindingList]; ShowState: PROC [ed: EltData, paint: BOOLEAN _ TRUE]; SetRope: PROC [ed: EltData, to: ROPE, paint: BOOLEAN _ TRUE]; RVToData: PROC [RecordViewer] RETURNS [Data]; END. œFILE: [Ivy]ViewRec>ViewRecInsides.Mesa last edited by Spreitzer March 10, 1983 4:27 pm Last Edited by: Maxwell, November 16, 1982 3:29 pm Κ˜J˜Jšœ1™1Jšœ/™/Jšœ2™2J˜codešΟk ˜ KšœΑœ˜ΡK˜—KšΠbxœœ œ˜#K˜Kš˜K˜Kšœœœ˜Kšœœ˜,Kšœœ˜Kšœœ˜$Kšœœ˜Kšœœ˜*Kšœœ˜.Kšœ œ˜"Kšœœ˜,Kšœ œ˜&Kšœ œ˜&Kšœ œ˜ Kšœœ˜,Kšœœ˜.Kšœ œ˜ Kšœ œ˜"K˜Kšœœœœ ˜!K˜K˜Kšœ œœœ˜Kšœœœ ˜šœ œœ˜Kšœ œ˜Kšœœ˜Kšœœ˜Kšœœ˜Kšœ!œ˜%Kšœœ˜Kšœ œœœ˜Kšœ œ˜Kšœœ˜Kšœ œœ˜Kšœœ˜Kšœœ˜Kšœ œœ˜Kšœœ˜Kšœ œ˜)K˜—Kšœ œœ ˜šœ œœ˜Kšœœ˜ K˜ Kšœœ˜Kšœœ˜Kšœ œœ˜Kšœœœ˜Kšœ œœ˜KšœΟc˜,Kšœ œŸ˜*KšœœŸ˜2KšœœŸ˜:KšœŸ˜*Kšœ œœ˜Kšœœ˜!šœ œ ˜ ˜ K˜K˜Kšœœ˜K˜#K˜Kšœœ˜K˜Kšœœœ˜$Kšœœ˜Kšœ œ˜—˜ K˜Kšœ œœ˜K˜K˜—˜ Kšœœœ˜!K˜—˜ K˜—Kš˜—K˜K˜—Kšœ œ#˜0K˜Kšœ œ?˜NK˜Kš Οn œœœœ œ˜=š œœœœ˜7Kšœ œ˜K˜—Kšœ œœ˜&Kšœ œœ˜*Kšœ œœ˜*Kšœ œœ˜,K˜Kš  œœœœ˜7K˜Kšœ œ˜(Kšœ œ˜ Kšœ œ˜&K˜šœ œœ˜8Kšœœ˜K˜—Kšœ œ˜K˜K˜K˜K˜K˜Kšœ œ œ˜#K˜Kšœ œœ˜*Kšœœ˜#K˜Kš Cœ˜UK˜Kš œ ˜K˜Kš 1œ ˜>K˜Kš  œ ˜Kš œ˜!K˜Kš œ˜,K˜Kš  œœ;œœœ˜xK˜Kš   œœ.œœœ œ˜pK˜Kš  œœ+œœœœœ˜€K˜Kš  œœœœ˜@K˜š œœœœ˜