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, February 16, 1987 3:46:47 pm PST
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.