DIRECTORY TerminalIO USING [WriteRope, WriteLn], CD USING [Design, Object, Instance, InstanceList, Rect, highLightError], CDSequencer USING [Command, ImplementCommand], CDOps USING [InstList, DelayedRedraw, ReOrderInstance], CDCommandOps USING [WriteInfo], CDBasics USING [Extend], CDMenus USING [CreateEntry], CDViewer USING [ShowAndScale, ViewersOf, ViewerList], CDInstances USING [InstRectI]; CDShowErrorCommands: CEDAR PROGRAM IMPORTS TerminalIO, CDMenus, CDSequencer, CDOps, CDCommandOps, CDBasics, CDViewer, CDInstances = BEGIN ShowErrorComm: PROCEDURE [comm: CDSequencer.Command] = BEGIN applList: CD.InstanceList = CDOps.InstList[comm.design]; foundSome: BOOL _ FALSE; TerminalIO.WriteRope[ "Show error "]; FOR a: CD.InstanceList _ applList, a.rest WHILE a#NIL DO IF a.first.ob.layer=CD.highLightError THEN { inst: CD.Instance = a.first; foundSome _ TRUE; IF ~inst.selected THEN { eRect: CD.Rect = CDInstances.InstRectI[inst]; inst.selected _ TRUE; CDOps.DelayedRedraw[comm.design, eRect, FALSE]; CDCommandOps.WriteInfo[inst]; TerminalIO.WriteLn[]; FOR vl: CDViewer.ViewerList _ CDViewer.ViewersOf[comm], vl.rest WHILE vl#NIL DO CDViewer.ShowAndScale[viewer: vl.first, rect: CDBasics.Extend[eRect, 30*comm.design.technology.lambda] ]; ENDLOOP; CDOps.ReOrderInstance[comm.design, inst]; EXIT } }; REPEAT FINISHED => IF foundSome THEN TerminalIO.WriteRope["All errors in this cell are already selected\n"] ELSE TerminalIO.WriteRope[ "No errors in this cell\n"] ENDLOOP; END; CDMenus.CreateEntry[menu: $SpecialMenu, entry: "select next error", key: $ShowErrors]; CDSequencer.ImplementCommand[$ShowErrors, ShowErrorComm,, doQueue]; END. CDShowErrorCommands.mesa Copyright (C) 1984, 1985 by Xerox Corporation. All rights reserved. Written by Shand, July 25, 1984 7:13:44 pm PDT Last Edited by: Jacobi, February 16, 1985 5:34:35 pm PST Last Edited by: Jacobi, September 19, 1985 2:43:39 pm PDT Κ ˜code™KšœD™DK™.K™8K™9K˜—šΟk ˜ Kšœ œ˜&Kšœœ@˜HKšœ œ˜.Kšœœ,˜7Kšœ œ ˜Kšœ œ ˜Kšœœ˜Kšœ œ'˜5Kšœ œ ˜—K˜šΠblœœ˜"KšœZ˜a—Kš˜K˜šΟn œ œ˜7Kš˜Kšœ œ,˜8Kšœ œœ˜Kšœ%˜%š œœ!œœ˜8šœœœ˜,Kšœœ˜Kšœ œ˜šœœ˜Kšœœ$˜-Kšœœ˜Kšœ(œ˜/Kšœ˜Kšœ˜šœ>œœ˜PKšœi˜iKšœ˜—Kšœ)˜)Kš˜K˜—K˜—šœœ˜Kšœ œG˜XKšœ2˜6—Kšœ˜—Kšœ˜—K™KšœV˜VKšœC˜CKšœ˜K˜—…—r „