DIRECTORY CD USING [Design, Technology, Number, Layer], CDSequencer USING [CommandProc, QueueMethod], Rope USING [ROPE], ViewerClasses USING [Viewer]; CDPanel: CEDAR DEFINITIONS = BEGIN Create: PROC [design: CD.Design] RETURNS [ViewerClasses.Viewer]; Line: PROC [tech: CD.Technology _ NIL]; Layer: PROC [layer: CD.Layer, text: Rope.ROPE, min, default: CD.Number _ 1, option: NAT _ 0, tech: CD.Technology _ NIL]; Info: TYPE = RECORD [ text: Rope.ROPE _ NIL, cdValueKey: REF _ NIL, redisplay: BOOL _ FALSE, width: INT _ -1, space: INT _ -1, xpos: INT _ -1, maxx: INT _ -1, border: BOOL _ FALSE ]; Number: PROC [button: Info, number: Info, min: INT _ FIRST[INT], max: INT _ LAST[INT], default: INT _ 0, lambda: INT _ 1, tech: CD.Technology _ NIL]; Button: PROC [button: Info, proc: CDSequencer.CommandProc _ NIL, command: ATOM _ NIL, data: REF _ NIL, queue: CDSequencer.QueueMethod _ useDefault, topLine: BOOL _ FALSE, tech: CD.Technology _ NIL]; Label: PROC [label: Info, tech: CD.Technology _ NIL]; Text: PROC [button: Info, text: Info, editable: BOOL _ TRUE, tech: CD.Technology _ NIL]; TakeDownText: PROC [design: CD.Design, cdValueKey: REF] RETURNS [rope: Rope.ROPE]; PutUpText: PROC [design: CD.Design, cdValueKey: REF, rope: Rope.ROPE]; TakeDown: PROC [design: CD.Design, cdValueKey: REF] RETURNS [REF]; PutUp: PROC [design: CD.Design, cdValueKey: REF] RETURNS [REF]; PutUpAll: PROC [design: CD.Design]; END. ®CDPanel.mesa (part of ChipNDale) Copyright c 1983, 1987 by Xerox Corporation. All rights reserved. Created by Christian Jacobi, August 8, 1983 5:20 pm Last edited by: Christian Jacobi, March 19, 1987 12:03:36 pm PST Control panels for the display and modification of values by the interactive user. Don't use define procedures from forked process! (order gets fooled). --Creates a control panel panel. --Only one panel-viewer per design is created; --If panel-viewer already exists, simply returns it. --Use a new line for the next feature. --Defines a layer entry in control panel. --Only layers of technology tech may be used. --Use CDLayers to querry or update values; display is updated automatically. --cdValueKey must have been correctly registered with CDValue! CDPanel does NOT itself. --(allows hooking entries onto already used keys). --Defines a number entry in control panel. --Displayed value does not follow changes of CDValue.StoreInt; but redisplay works. --lambda=0: use lambda of technology. --Restriction: button.cdValueKey, number.text must be NIL. --Defines a button in control panel. --The button is always forked. --data is hanged on comm.data. --Defines a label in control panel. --Defines a rope entry in control panel. --cdValue on design typical a ROPE; technology may have LIST OF ROPE. --Usually it is bad to set rope.redisplay to true: user edited text may get lost. --Restriction: button.cdValueKey must be NIL. --Shortcut for text entries. --Takes the displayed rope, stores it using CDValue.Store, and also returns it. --Shortcut for text entries. --Takes the given rope, stores it using CDValue.Store and updates the display on the panel. --Takes any displayed entry, stores it using CDValue.Store, and, also returns it. --Fetches value using CDValue.Fetch, returns it, and, --puts it into the display if redisplay flag is true. --Fetches with CDValue and update display for all entries for which redisplay is true. Ê¢˜codešœ#™#Kšœ Ïmœ7™BKšœ4™4K™@—K˜šÏk ˜ Kšžœžœ%˜-Kšœ žœ˜-Kšœžœžœ˜Kšœžœ ˜K˜—KšÏnœžœž œ˜Kšž˜K˜šœT™TKšœE™E—K˜šŸœžœ žœ žœ˜@KšÏc!™!Kš .™.Kš 4™4K˜—šŸœžœžœ žœ˜'Kš &™&K˜—šŸœžœ žœžœžœžœ žœ žœ˜xKš )™)Kš -™-Kš L™LK˜—šœžœžœ˜Kšœ žœžœ˜Kš œ žœžœ žœžœ˜1Kšœžœžœ˜"Kšœžœ žœ˜Kšœžœž˜Kšœ˜Kš X™XKš 2™2K˜—šŸœžœ#žœžœžœžœžœžœ žœžœ žœžœ˜•Kšœ (™*Kš S™SKš %™%Kš œ  œ œ  ™:K˜—šŸœžœ0žœ žœžœžœžœ8žœžœžœ žœ˜ÆKšœ "™$Kšœ™Kšœ™K˜—š Ÿœžœ žœžœ žœ˜5Kšœ !™#K˜—š Ÿœžœ&žœžœžœžœ˜XKšœ &™(Kš œ <™EKšœQ™QKšœ œ   œ™-—˜š Ÿ œžœ žœžœžœ žœ˜RKš ™K™O—K˜š Ÿ œžœ žœžœ žœ˜FKš ™Kšœ[™[—K˜—K˜š Ÿœžœ žœžœžœžœ˜BK™Q—K˜š Ÿœžœ žœžœžœžœ˜?K™6K™5—K˜šŸœžœ žœ ˜#K™V—K˜Kšžœ˜K˜K˜K˜—…—¢ò