CDDynamicObsCommands.mesa (part of ChipNDale)
Copyright © 1985 by Xerox Corporation. All rights reserved.
by Christian Jacobi, June 5, 1985 8:02:35 pm PDT
Last Edited by Christian Jacobi, July 4, 1985 5:05:12 pm PDT
DIRECTORY
CD, Rope, CDGenerate, CDGenerateBackdoor, CDDynamicObs, CDMenus, CDMenuSpecials, CDSequencer, CDValue, CDPanel, CDProperties, TerminalIO;
CDDynamicObsCommands: CEDAR PROGRAM
IMPORTS CDDynamicObs, CDGenerateBackdoor, CDMenus, CDMenuSpecials, CDSequencer, CDValue, CDPanel, CDProperties, TerminalIO, Rope =
BEGIN
DynamicGeneratorsComm: PROC [comm: CDSequencer.Command] =
BEGIN
key: Rope.ROPE;
design: CD.Design ← comm.design;
key ← CDMenuSpecials.SelectOneOf[CDGenerateBackdoor.publicTables, "dynamicize generator"];
IF Rope.IsEmpty[key] THEN TerminalIO.WriteRope["not done\n"]
ELSE {
key ← CDDynamicObs.GetTable[key].name;
TerminalIO.WriteRope[Rope.Cat["created (and now uses) [", key, "]\n"]];
CDProperties.PutPropOnDesign[design, $GeneratorProc, key];
CDValue.Store[design, $GeneratorProc, key];
CDPanel.RedisplayLabels[design];
}
END;
CDMenus.CreateEntry[$GeneratorMenu, "create dynamic generator", $DynamicGenerators];
CDSequencer.ImplementCommand[$DynamicGenerators, DynamicGeneratorsComm];
END.