CDDynamicObsCommands.mesa (part of ChipNDale)
Copyright © 1985 by Xerox Corporation. All rights reserved.
Created by Christian Jacobi, June 5, 1985 8:02:35 pm PDT
Last edited by: Christian Jacobi, October 20, 1986 1:01:21 pm PDT
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] =
BEGIN
key: Rope.ROPE;
design: CD.Design ← comm.design;
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.ToDisplay[design, $GeneratorProc];
}
END;
CDSequencer.ImplementCommand[$DynamicGenerators, DynamicGeneratorsComm];
CDCommandOps.RegisterWithMenu[menu: $GeneratorMenu, entry: "create dynamic generator", doc: "crazy object class", key: $DynamicGenerators, proc: DynamicGeneratorsComm];
END.