-- File: SVEditToolMenusImplB.mesa
-- Last edited by Bier on December 19, 1982 12:07 am
-- Author: Eric Bier on July 7, 1983 11:25 am
-- Contents: Procedures which build sections of the EditTool (continued).

DIRECTORY
 Buttons,
 Labels,
 Rope,
 Rules,
 ViewerTools,
 VFonts,
 SVEditToolMenus,
 SVEditUser,
 SVEditUserB;

SVEditToolMenusImplB: PROGRAM
IMPORTS Buttons, Labels, SVEditUser, SVEditUserB, VFonts, ViewerTools
EXPORTS SVEditToolMenus =
BEGIN

EditToolData: TYPE = SVEditUser.EditToolData;

-- declare the standard distances between menu lines.

entryHeight: CARDINAL = SVEditToolMenus.entryHeight;
entryVSpace: CARDINAL = SVEditToolMenus.entryVSpace;
entryHSpace: CARDINAL = SVEditToolMenus.entryHSpace;
column0: CARDINAL = SVEditToolMenus.column0;
column1: CARDINAL = SVEditToolMenus.column1;
column2: CARDINAL = SVEditToolMenus.column2;
column3: CARDINAL = SVEditToolMenus.column3;

BuildRenameSection: PUBLIC PROC [editToolData: EditToolData] = {
-- This section implements a set of buttons, text windows, and options listers in this format:
-- Rename! newName:  <Rope>
  
 renameButton, newNamePrompt: Buttons.Button;
 initialNameRope: Rope.ROPE ← "NewName";
  
 renameButton ← Buttons.Create[
  info: [name: "Rename!", wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.Rename,
  clientData: editToolData
  ];
  
 newNamePrompt ← Buttons.Create[
  info: [name: "new name:",
     wx: renameButton.wx + column2,
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.NewNamePrompt,
  clientData: editToolData
  ];
  
 editToolData.renameSection.newName ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: newNamePrompt.wx + newNamePrompt.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["<<<<<DogWithYellowCat"],
  wh: entryHeight,
  data: initialNameRope,
  scrollable: FALSE, border: FALSE]];
  
 editToolData.height ← editToolData.height + entryVSpace + entryHeight;


}; -- end of BuildRenameSection

BuildMoveSection: PUBLIC PROC [editToolData: EditToolData] = {
-- This section implements a set of buttons, text windows, and options listers in this format:
-- Move Assembly!

 [] ← Buttons.Create[
  info: [name: "Move Assembly!",
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.Move,
  clientData: editToolData
  ];
 editToolData.height ← editToolData.height + entryVSpace + entryHeight;
  
 }; -- end of BuildMoveSection

BuildArtworkSection: PUBLIC PROC [editToolData: EditToolData] = {
-- This section implements a set of buttons, text windows, and options listers in this format:
-- SetArtwork! GetArtwork! picName: <rope> isColorFile: <BOOL>
-- material: <plastic> resolution: <real>
-- tubeHeight: <real> tubeRadius: <real>
-- SET COLOR  R,G,B: <red, green, blue>
  
 getArtworkButton, picNamePrompt, isColorButton: Buttons.Button;
 materialButton, resolutionButton: Buttons.Button;
 setColorButton, rgbPrompt: Buttons.Button;
 initialPicNameRope: Rope.ROPE ← "TinaEyes.ais";
 initialIsColorRope: Rope.ROPE ← "FALSE";
 initialResolutionRope: Rope.ROPE ← "72.0";
 initialRGBRope: Rope.ROPE ← "0.75, 0.75, 0.75";

  getArtworkButton ← Buttons.Create[
  info: [name: "GetArtwork!",
       wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUserB.GetArtwork,
  clientData: editToolData
  ];
  
 picNamePrompt ← Buttons.Create[
  info: [name: "picName:",
       wx: getArtworkButton.wx + getArtworkButton.ww + entryHSpace,
       wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.ArtworkNamePrompt,
  clientData: editToolData
  ];

 editToolData.artworkSection.picName ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: picNamePrompt.wx + picNamePrompt.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["TinasEyes.ais "],
  wh: entryHeight,
  data: initialPicNameRope,
  scrollable: FALSE, border: FALSE]];
  
 isColorButton ← Buttons.Create[
  info: [name: "isColorFile:",
       wx: editToolData.artworkSection.picName.wx +
         editToolData.artworkSection.picName.ww + entryHSpace,
       wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.IsColor,
  clientData: editToolData
  ];

 editToolData.artworkSection.isColor ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: isColorButton.wx + isColorButton.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["FALSE "],
  wh: entryHeight,
  data: initialIsColorRope,
  scrollable: FALSE, border: FALSE]];

editToolData.height ← editToolData.height + entryVSpace + entryHeight;

-- material: <plastic> resolution: <real>

 materialButton ← Buttons.Create[
  info: [name: "material:",
        wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.MaterialCycle,
  clientData: editToolData
  ];

 editToolData.artworkSection.material ← Labels.Create[
  info: [name: "plastic",
    wx: materialButton.wx + materialButton.ww + entryHSpace,
    wy: editToolData.height, wh: entryHeight,
    parent: editToolData.outer, border: FALSE]];
   
 editToolData.artworkSection.materialValue ← 1;
   

 resolutionButton ← Buttons.Create[
  info: [name: "resolution:",
       wx: editToolData.artworkSection.material.wx +
         editToolData.artworkSection.material.ww + entryHSpace,
       wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.ResolutionPrompt,
  clientData: editToolData
  ];
  
 editToolData.artworkSection.resolution ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: resolutionButton.wx + resolutionButton.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["188.88 "],
  wh: entryHeight,
  data: initialResolutionRope,
  scrollable: FALSE, border: FALSE]];
  
     
 editToolData.height ← editToolData.height + entryVSpace + entryHeight;

-- SET COLOR  R,G,B: <red, green, blue>

 setColorButton ← Buttons.Create[
  info: [name: "SetColorArtwork!",
     wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.SetColor,
  clientData: editToolData
  ];
  
 rgbPrompt ← Buttons.Create[
  info: [name: "r, g, b:",
     wx: setColorButton.wx + column2,
     wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.RGBPrompt,
  clientData: editToolData
  ];
  
 editToolData.artworkSection.rgb ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: rgbPrompt.wx + rgbPrompt.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["9.10000e-1, 9.10000e-1, 9.10000e-1 "],
  wh: entryHeight,
  data: initialRGBRope,
  scrollable: FALSE, border: FALSE]];
  
 editToolData.height ← editToolData.height + entryVSpace + entryHeight;



 };

BuildTubeArtworkSection: PUBLIC PROC [editToolData: EditToolData] = {
-- This section implements a set of buttons, text windows, and options listers in this format:
-- SetTubeArtwork! tube height: <real> tube radius: <real>

 setTubeArtworkButton, tubeHeightPrompt, tubeRadiusPrompt: Buttons.Button;
 initialHeightRope: Rope.ROPE ← "100";
 initialRadiusRope: Rope.ROPE ← "50";

 setTubeArtworkButton ← Buttons.Create[
  info: [name: "SetTubeArtwork!",
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUserB.SetTubeArtwork,
  clientData: editToolData
  ];
  
 tubeHeightPrompt ← Buttons.Create[
  info: [name: "tubeH:",
      wx: setTubeArtworkButton.wx + setTubeArtworkButton.ww + entryHSpace,
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.TubeHeightPrompt,
  clientData: editToolData
  ];
  
 editToolData.artworkSection.tubeHeight ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: tubeHeightPrompt.wx + tubeHeightPrompt.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["188.88 "],
  wh: entryHeight,
  data: initialHeightRope,
  scrollable: FALSE, border: FALSE]];
  
 tubeRadiusPrompt ← Buttons.Create[
  info: [name: "tubeR:",
      wx: editToolData.artworkSection.tubeHeight.wx +
        editToolData.artworkSection.tubeHeight.ww + entryHSpace,
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.TubeRadiusPrompt,
  clientData: editToolData
  ];

 editToolData.artworkSection.tubeRadius ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: tubeRadiusPrompt.wx + tubeRadiusPrompt.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["188.88 "],
  wh: entryHeight,
  data: initialRadiusRope,
  scrollable: FALSE, border: FALSE]];
  

 editToolData.height ← editToolData.height + entryVSpace + entryHeight;

 };

BuildBoxArtworkSection: PUBLIC PROC [editToolData: EditToolData] = {
-- This section implements a set of buttons, text windows, and options listers in this format:
-- SetTubeArtwork! tube height: <real> tube radius: <real>

 setBoxArtworkButton, xyzPrompt, oMapCycle: Buttons.Button;
 initialXYZRope: Rope.ROPE ← "100, 100, 100";
 initialOMapRope: Rope.ROPE ← "Orthogonal";

 setBoxArtworkButton ← Buttons.Create[
  info: [name: "SetBoxArtwork!",
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUserB.SetBoxArtwork,
  clientData: editToolData
  ];
  
 xyzPrompt ← Buttons.Create[
  info: [name: "X,Y,Z:",
      wx: setBoxArtworkButton.wx + setBoxArtworkButton.ww + entryHSpace,
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.BoxXYZPrompt,
  clientData: editToolData
  ];
  
 editToolData.artworkSection.boxXYZ ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: xyzPrompt.wx + xyzPrompt.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["188.88, 188.88 188.88 "],
  wh: entryHeight,
  data: initialXYZRope,
  scrollable: FALSE, border: FALSE]];
  
 oMapCycle ← Buttons.Create[
  info: [name: "OMap:",
      wx: editToolData.artworkSection.boxXYZ.wx +
        editToolData.artworkSection.boxXYZ.ww + entryHSpace,
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.BoxOCycle,
  clientData: editToolData
  ];
  
 editToolData.artworkSection.oMapLabel ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: oMapCycle.wx + oMapCycle.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["Orthogonal "],
  wh: entryHeight,
  data: initialOMapRope,
  scrollable: FALSE, border: FALSE]];
   
 editToolData.height ← editToolData.height + entryVSpace + entryHeight;

 }; -- end of BuildBoxArtworkSecition

BuildArtworkTransformSection: PUBLIC PROC [editToolData: EditToolData] = {
-- This section implements a set of buttons, text windows, and options listers in this format:
-- Rotate! degrees: <real> Normalize!
 rotateButton, degreesPrompt, normButton: Buttons.Button;
 initialDegreesRope: Rope.ROPE ← "45";

 rotateButton ← Buttons.Create[
  info: [name: "Rotate!",
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUserB.RotateArtwork,
  clientData: editToolData
  ];
  
 degreesPrompt ← Buttons.Create[
  info: [name: "degrees:",
      wx: rotateButton.wx + rotateButton.ww + entryHSpace,
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.ArtworkDegreesPrompt,
  clientData: editToolData
  ];
  
 editToolData.artworkTransformSection.degrees ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: degreesPrompt.wx + degreesPrompt.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["188.88, "],
  wh: entryHeight,
  data: initialDegreesRope,
  scrollable: FALSE, border: FALSE]];
  

 normButton ← Buttons.Create[
  info: [name: "Normalize!",
      wx: editToolData.artworkTransformSection.degrees.wx +
        editToolData.artworkTransformSection.degrees.ww + entryHSpace,
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUserB.NormalizeArtwork,
  clientData: editToolData
  ];
  
 editToolData.height ← editToolData.height + entryVSpace + entryHeight;

 }; -- end of BuildArtworkTransformSection
  


BuildLightSourceSection: PUBLIC PROC [editToolData: EditToolData] = {
-- This section implements a set of buttons, text windows, and options listers in this format:
-- AddLight! DeleteLight! EditLight!
-- lightName: <rope> position: <BOOL> color: <red, green, blue>
  
 addLightButton, deleteLightButton, editLightButton: Buttons.Button;
 lightNamePrompt, positionPrompt, colorPrompt: Buttons.Button;
 initialLightNameRope: Rope.ROPE ← "WhiteLight";
 initialPositionRope: Rope.ROPE ← "600, 600, 600";
 initialColorRope: Rope.ROPE ← "0.75, 0.75, 0.75";

 addLightButton ← Buttons.Create[
  info: [name: "AddLight!",
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUserB.AddLight,
  clientData: editToolData
  ];

 deleteLightButton ← Buttons.Create[
  info: [name: "DeleteLight!",
      wx: addLightButton.wx + addLightButton.ww + entryHSpace,
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUserB.DeleteLight,
  clientData: editToolData
  ];
  
 editLightButton ← Buttons.Create[
  info: [name: "EditLight!",
      wx: deleteLightButton.wx + deleteLightButton.ww + entryHSpace,
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUserB.EditLight,
  clientData: editToolData
  ];
  
 editToolData.height ← editToolData.height + entryVSpace + entryHeight;

 lightNamePrompt ← Buttons.Create[
  info: [name: "light name:",
       wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.LightNamePrompt,
  clientData: editToolData
  ];

 editToolData.lightSection.name ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: lightNamePrompt.wx + lightNamePrompt.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["WhiteLight "],
  wh: entryHeight,
  data: initialLightNameRope,
  scrollable: FALSE, border: FALSE]];
  
 positionPrompt ← Buttons.Create[
  info: [name: "position:",
      wx: editToolData.lightSection.name.wx +
       editToolData.lightSection.name.ww + entryHSpace,
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.LightPositionPrompt,
  clientData: editToolData
  ];

 editToolData.lightSection.position ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: positionPrompt.wx + positionPrompt.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["188.88, 188.188, 188.88 "],
  wh: entryHeight,
  data: initialPositionRope,
  scrollable: FALSE, border: FALSE]];
  
 editToolData.height ← editToolData.height + entryVSpace + entryHeight;

 colorPrompt ← Buttons.Create[
  info: [name: "color:",
      wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.LightColorPrompt,
  clientData: editToolData
  ];
  
 editToolData.lightSection.color ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: colorPrompt.wx + colorPrompt.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["9.10000e-1, 9.10000e-1, 9.10000e-1 "],
  wh: entryHeight,
  data: initialColorRope,
  scrollable: FALSE, border: FALSE]];


 editToolData.height ← editToolData.height + entryVSpace + entryHeight;
  
 };
  

BuildCameraSection: PUBLIC PROC [editToolData: EditToolData] = {
-- This section implements a set of buttons in this format:
-- SETCAMERA! [←] FocusPoint: <x, y, z>
--  [←] Origin: <x, y, z> [←] FocalLength: <1800>

 setCameraButton, setFocusButton, focusPrompt, setResButton, resolutionPrompt: Buttons.Button;
 setOriginButton, originPrompt, setFocalLengthButton, focalLengthPrompt: Buttons.Button;
 shadowPrompt, setShadowButton: Buttons.Button;
 initialFocusRope: Rope.ROPE ← "0, 0, 0";
 initialOriginRope: Rope.ROPE ← "0, 0, 1800";
 initialFocalLengthRope: Rope.ROPE ← "1800";
 initialResolutionRope: Rope.ROPE ← "72";

 setCameraButton ← Buttons.Create[
  info: [name: "Set Camera!",
     wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUserB.SetCamera,
  clientData: editToolData
  ];
  
 setFocusButton ← Buttons.Create[
  info: [name: " ← ",
     wx: setCameraButton.wx + column1,
     wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: TRUE],
  proc: SVEditUserB.SetFocus,
  clientData: editToolData
  ];
  
 focusPrompt ← Buttons.Create[
  info: [name: "focus point:",
     wx: setFocusButton.wx + setFocusButton.ww + entryHSpace,
     wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.FocusPrompt,
  clientData: editToolData
  ];
  
 editToolData.cameraSection.focus ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: focusPrompt.wx + focusPrompt.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["188.8, 188.8, 188.8"],
  wh: entryHeight,
  data: initialFocusRope,
  scrollable: FALSE, border: FALSE]];
  
 setResButton← Buttons.Create[
  info: [name: " ← ",
     wx: editToolData.cameraSection.focus.wx +
     editToolData.cameraSection.focus.ww + entryHSpace,
     wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: TRUE],
  proc: SVEditUserB.SetResolution,
  clientData: editToolData
  ];
  
 resolutionPrompt ← Buttons.Create[
  info: [name: "resolution:",
     wx: setResButton.wx + setResButton.ww + entryHSpace,
     wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.ScanResolutionPrompt,
  clientData: editToolData
  ];
  
 editToolData.cameraSection.resolution ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: resolutionPrompt.wx + resolutionPrompt.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["188.8yy"],
  wh: entryHeight,
  data: initialResolutionRope,
  scrollable: FALSE, border: FALSE]];
  
 editToolData.height ← editToolData.height + entryVSpace + entryHeight;

 setOriginButton ← Buttons.Create[
  info: [name: " ← ",
     wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: TRUE],
  proc: SVEditUserB.SetCamera,
  clientData: editToolData
  ];
  
 originPrompt ← Buttons.Create[
  info: [name: "origin:",
     wx: setOriginButton.wx + setOriginButton.ww + entryHSpace,
     wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.CameraOriginPrompt,
  clientData: editToolData
  ];
  
 editToolData.cameraSection.origin ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: originPrompt.wx + originPrompt.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["188.8, 188.8, 188.8"],
  wh: entryHeight,
  data: initialOriginRope,
  scrollable: FALSE, border: FALSE]];
  

 setFocalLengthButton ← Buttons.Create[
  info: [name: " ← ",
     wx: editToolData.cameraSection.origin.wx +
       editToolData.cameraSection.origin.ww + entryHSpace,
     wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: TRUE],
  proc: SVEditUserB.SetFocalLength,
  clientData: editToolData
  ];

 focalLengthPrompt ← Buttons.Create[
  info: [name: "focal length:",
     wx: setFocalLengthButton.wx + setFocalLengthButton.ww + entryHSpace,
     wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.FocalLengthPrompt,
  clientData: editToolData
  ];

 editToolData.cameraSection.focalLength ← ViewerTools.MakeNewTextViewer[[
  parent: editToolData.outer,
  wx: focalLengthPrompt.wx + focalLengthPrompt.ww + entryHSpace,
  wy: editToolData.height,
  ww: VFonts.StringWidth["1800 "],
  wh: entryHeight,
  data: initialFocalLengthRope,
  scrollable: FALSE, border: FALSE]];
  
 editToolData.height ← editToolData.height + entryVSpace + entryHeight;

 setShadowButton ← Buttons.Create[
  info: [name: " ← ",
     wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: TRUE],
  proc: SVEditUserB.SetShadows,
  clientData: editToolData
  ];

 shadowPrompt ← Buttons.Create[
  info: [name: "Shadows: ",
     wx: setShadowButton.wx + setShadowButton.ww + entryHSpace,
     wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE],
  proc: SVEditUser.ShadowsPrompt,
  clientData: editToolData
  ];

 editToolData.cameraSection.shadowLabel ← Labels.Create[
  [name: "FALSE",
     wx: shadowPrompt.wx + shadowPrompt.ww + entryHSpace,
     wy: editToolData.height, wh: entryHeight,
     parent: editToolData.outer, border: FALSE]
  ];
 editToolData.cameraSection.shadowValue ← FALSE;
  
 editToolData.height ← editToolData.height + entryVSpace + entryHeight;

 }; -- end of BuildCameraSection



END.