DIRECTORY CD, Rope, CDGenerate, CDGenerateBackdoor, CDDynamicObs, CDCommandOps, CDMenuSpecials, CDSequencer, CDValue, CDPanel, CDProperties, TerminalIO; CDDynamicObsCommands: CEDAR PROGRAM IMPORTS CDCommandOps, CDDynamicObs, CDGenerateBackdoor, CDMenuSpecials, CDSequencer, CDValue, CDPanel, CDProperties, TerminalIO, Rope = BEGIN DynamicGeneratorsComm: PROC [comm: CDSequencer.Command] = { design: CD.Design _ comm.design; key: Rope.ROPE; key _ CDMenuSpecials.SelectOneOf[CDGenerateBackdoor.publicContexts, "dynamicize generator"]; IF Rope.IsEmpty[key] THEN TerminalIO.PutRope["not done\n"] ELSE { key _ CDDynamicObs.GetContext[key].name; TerminalIO.PutRopes["created (and now uses) [", key, "]\n"]; CDProperties.PutDesignProp[design, $GeneratorProc, key]; CDValue.Store[design, $GeneratorProc, key]; [] _ CDPanel.PutUp[design, $GeneratorProc]; } }; CDSequencer.ImplementCommand[$DynamicGenerators, DynamicGeneratorsComm]; CDCommandOps.RegisterWithMenu[menu: $GeneratorMenu, entry: "create dynamic generator", doc: "crazy object class", key: $DynamicGenerators, proc: DynamicGeneratorsComm]; END. ξCDDynamicObsCommands.mesa (part of ChipNDale) Copyright c 1985 by Xerox Corporation. All rights reserved. Created by Christian Jacobi, June 5, 1985 8:02:35 pm PDT Last edited by: Christian Jacobi, February 16, 1987 3:46:47 pm PST Κ ˜codešœ-™-Kšœ Οmœ1™