DIRECTORY EBTypes, Rope; EBNullDoc: CEDAR DEFINITIONS = BEGIN ActiveDoc: TYPE = EBTypes.ActiveDoc; ActiveButton: TYPE = EBTypes.ActiveButton; ROPE: TYPE = Rope.ROPE; Create: PROC [docName: ROPE] RETURNS [doc: ActiveDoc]; Instantiate: PROC [doc: ActiveDoc]; CreateBOOLButton: PROC [doc: ActiveDoc, buttonName: ROPE, initialVarVal: BOOL] RETURNS [ActiveButton]; CreateATOMButton: PROC [doc: ActiveDoc, buttonName: ROPE, initialVarVal: ATOM] RETURNS [ActiveButton]; CreateROPEButton: PROC [doc: ActiveDoc, buttonName: ROPE, initialVarVal: ROPE] RETURNS [ActiveButton]; CreateINTButton: PROC [doc: ActiveDoc, buttonName: ROPE, initialVarVal: INT] RETURNS [ActiveButton]; CreateREALButton: PROC [doc: ActiveDoc, buttonName: ROPE, initialVarVal: REAL] RETURNS [ActiveButton]; CreateRopeEnumerationButton: PROC [doc: ActiveDoc, buttonName: ROPE, initialVarVal: ROPE, type: LIST OF ROPE] RETURNS [ActiveButton]; CreateEnumeratedButton: PROC [doc: ActiveDoc, buttonName: ROPE, initialVarVal: REF, type: LIST OF REF] RETURNS [ActiveButton]; AddBOOLVariable: PROC [button: ActiveButton, varName: ROPE, varVal: BOOL]; AddATOMVariable: PROC [button: ActiveButton, varName: ROPE, varVal: ATOM]; AddROPEVariable: PROC [button: ActiveButton, varName: ROPE, varVal: ROPE]; AddINTVariable: PROC [button: ActiveButton, varName: ROPE, varVal: INT]; AddREALVariable: PROC [button: ActiveButton, varName: ROPE, varVal: REAL]; AddRopeEnumerationVariable: PROC [button: ActiveButton, varName: ROPE, varVal: ROPE, type: LIST OF ROPE]; AddEnumeratedVariable: PROC [button: ActiveButton, varName: ROPE, varVal: REF, type: LIST OF REF]; END. ` EBNullDoc.mesa Copyright Ó 1992 by Xerox Corporation. All rights reserved. Kenneth A. Pier, September 29, 1992 5:13 pm PDT users must create a new NullDoc, create all the buttons for the doc, add all the variables to all the buttons, then call Instantiate CreateRopeEnumerationButton is preferable to CreateEnumeratedButton because it does better type checking and avoids the spurious use of REF TEXT where ROPE is required. CreateButton: PROC [doc: ActiveDoc, buttonName: ROPE, initialVarVal: ] RETURNS [ActiveButton]; AddVariable: PROC [button: ActiveButton, varName: ROPE, varVal: ]; ʽ•NewlineDelimiter ™™J™