File: SVEditToolMenusImplB.mesa
Last edited by Bier on May 23, 1985 10:42:12 pm PDT
Copyright © 1984 by Xerox Corporation. All rights reserved.
Contents: Procedures which build sections of the EditTool (continued).
DIRECTORY
Buttons,
Labels,
Rope,
Rules,
ViewerTools,
VFonts,
SVEditToolMenus,
SVEditUser,
SVEditUserB,
SVInterfaceTypes;
SVEditToolMenusImplB: PROGRAM
IMPORTS Buttons, Labels, SVEditUser, SVEditUserB, VFonts, ViewerTools
EXPORTS SVEditToolMenus =
BEGIN
EditToolData: TYPE = SVInterfaceTypes.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;
numberSize: CARDINAL = 80;
numberSize3: CARDINAL = 160;
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>
getArtworkButton, picNamePrompt, isColorButton: Buttons.Button;
materialButton, resolutionButton: Buttons.Button;
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: "TinaEyes.ais",
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: "FALSE",
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: "72",
scrollable: FALSE, border: FALSE]];
editToolData.height ← editToolData.height + entryVSpace + entryHeight;
};
Build3DArtworkSection: PUBLIC PROC [editToolData: EditToolData] = {
SET COLOR R,G,B: <red, green, blue>
set3DButton: Buttons.Button;
set3DButton ← Buttons.Create[
info: [name: "Set3DArtwork!",
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUserB.Set3DArtwork,
clientData: editToolData
];
editToolData.height ← editToolData.height + entryVSpace + entryHeight;
};
BuildColorArtworkSection: PUBLIC PROC [editToolData: EditToolData] = {
SET COLOR R,G,B: <red, green, blue>
setColorButton, rgbPrompt: Buttons.Button;
setColorButton ← Buttons.Create[
info: [name: "SetColorArtwork!",
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUserB.SetColorArtwork,
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: "0.75, 0.75, 0.75",
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: numberSize,
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: numberSize,
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";
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: "Orthogonal",
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;
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: numberSize,
wh: entryHeight,
data: "45",
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;
setAmbientButton, getAmbientButton: Buttons.Button;
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["MysteriousLight "],
wh: entryHeight,
data: "WhiteLight",
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: numberSize3,
wh: entryHeight,
data: "600, 600, 600",
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: numberSize3,
wh: entryHeight,
data: "0.75, 0.75, 0.75",
scrollable: FALSE, border: FALSE]];
setAmbientButton ← Buttons.Create[
info: [name: "SetAmbient!",
wx: editToolData.lightSection.color.wx +
editToolData.lightSection.color.ww + entryHSpace,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUserB.SetAmbient,
clientData: editToolData
];
getAmbientButton ← Buttons.Create[
info: [name: "GetAmbient!",
wx: setAmbientButton.wx + setAmbientButton.ww + entryHSpace,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUserB.GetAmbient,
clientData: editToolData
];
editToolData.height ← editToolData.height + entryVSpace + entryHeight;
};
BuildCameraSection: PUBLIC PROC [editToolData: EditToolData] = {
This section implements a set of buttons in this format:
Camera name: <name> Get! Add! Set!
origin: 0,0,1800 focus point: 0,0,0
resolution: 72 focal length: 1800
style: <DrawStyle> frame (two points): [-200,200], [200, -200]
cameraNamePrompt, getButton, setButton, useCameraButton: Buttons.Button;
originPrompt, focusPointPrompt, slantPrompt: Buttons.Button;
resolutionPrompt, focalLengthPrompt, projectionButton: Buttons.Button;
framePrompt: Buttons.Button;
clippingPlanePrompt, visibleAssemblyPrompt: Buttons.Button;
Camera name: <name> Get! Set! Use!
cameraNamePrompt ← Buttons.Create[
info: [name: "Camera name:",
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.CameraNamePrompt,
clientData: editToolData
];
editToolData.cameraSection.name ← ViewerTools.MakeNewTextViewer[[
parent: editToolData.outer,
wx: cameraNamePrompt.wx + cameraNamePrompt.ww + entryHSpace,
wy: editToolData.height,
ww: VFonts.StringWidth["The view from the west."],
wh: entryHeight,
data: "",
scrollable: FALSE, border: FALSE]];
getButton ← Buttons.Create[
info: [name: "Get!",
wx: editToolData.cameraSection.name.wx +
editToolData.cameraSection.name.ww + entryHSpace,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUserB.GetCamera,
clientData: editToolData
];
setButton ← Buttons.Create[
info: [name: "Set!",
wx: getButton.wx + getButton.ww + entryHSpace,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUserB.SetCamera,
clientData: editToolData
];
useCameraButton ← Buttons.Create[
info: [name: "Use!",
wx: setButton.wx + setButton.ww + entryHSpace,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUserB.UseCamera,
clientData: editToolData
];
editToolData.height ← editToolData.height + entryVSpace + entryHeight;
origin: 0,0,1800 focus point: 0,0,0 slant: 0
originPrompt ← Buttons.Create[
info: [name: "origin:",
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["-1800, -188.8, -188.8>>>"],
wh: entryHeight,
data: "0,0,1800",
scrollable: FALSE, border: FALSE]];
focusPointPrompt ← Buttons.Create[
info: [name: "focusPoint:",
wx: editToolData.cameraSection.origin.wx +
editToolData.cameraSection.origin.ww + entryHSpace,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.FocusPrompt,
clientData: editToolData
];
editToolData.cameraSection.focusPoint ← ViewerTools.MakeNewTextViewer[[
parent: editToolData.outer,
wx: focusPointPrompt.wx + focusPointPrompt.ww + entryHSpace,
wy: editToolData.height,
ww: VFonts.StringWidth["188.8, 188.8, 188"],
wh: entryHeight,
data: "0, 0, 0",
scrollable: FALSE, border: FALSE]];
slantPrompt ← Buttons.Create[
info: [name: "slant:",
wx: editToolData.cameraSection.focusPoint.wx +
editToolData.cameraSection.focusPoint.ww + entryHSpace,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.SlantPrompt,
clientData: editToolData
];
editToolData.cameraSection.slant ← ViewerTools.MakeNewTextViewer[[
parent: editToolData.outer,
wx: slantPrompt.wx + slantPrompt.ww + entryHSpace,
wy: editToolData.height,
ww: VFonts.StringWidth["188.8>>>"],
wh: entryHeight,
data: "0",
scrollable: FALSE, border: FALSE]];
editToolData.height ← editToolData.height + entryVSpace + entryHeight;
resolution: 72 focal length: 1800  projection: perspect
resolutionPrompt ← Buttons.Create[
info: [name: "resolution:",
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.8>>>"],
wh: entryHeight,
data: "72",
scrollable: FALSE, border: FALSE]];
focalLengthPrompt ← Buttons.Create[
info: [name: "focal length:",
wx: editToolData.cameraSection.resolution.wx +
editToolData.cameraSection.resolution.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: "1800",
scrollable: FALSE, border: FALSE]];
projectionButton ← Buttons.Create[
info: [name: "projection:",
wx: editToolData.cameraSection.focalLength.wx +
editToolData.cameraSection.focalLength.ww + entryHSpace,
wy: editToolData.height,
wh: entryHeight,
parent: editToolData.outer,
border: FALSE],
proc: SVEditUser.ProjectionCycle,
clientData: editToolData
];
editToolData.cameraSection.projection ← Labels.Create[
info: [name: "perspect",
wx: projectionButton.wx + projectionButton.ww + entryHSpace,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE]];
editToolData.height ← editToolData.height + entryVSpace + entryHeight;
frame: [[-200,200], [200, -200] fullScreen: TRUE]
framePrompt ← Buttons.Create[
info: [name: "frame: ",
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.FramePrompt,
clientData: editToolData
];
editToolData.cameraSection.frame ← ViewerTools.MakeNewTextViewer[[
parent: editToolData.outer,
wx: framePrompt.wx + framePrompt.ww + entryHSpace,
wy: editToolData.height,
ww: VFonts.StringWidth["[[302.5,105.6], [302.5,105.6] fullScreen: FALSE]>>>>>"],
wh: entryHeight,
data: "[[0,200],[200,0] fullScreen: TRUE]",
scrollable: FALSE, border: FALSE]];
editToolData.height ← editToolData.height + entryVSpace + entryHeight;
clippingPlanePrompt ← Buttons.Create[
info: [name: "Clipping Planes: ",
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.ClippingPlanePrompt,
clientData: editToolData
];
editToolData.cameraSection.clippingPlanes ← ViewerTools.MakeNewTextViewer[[
parent: editToolData.outer,
wx: clippingPlanePrompt.wx + clippingPlanePrompt.ww + entryHSpace,
wy: editToolData.height,
ww: VFonts.StringWidth["[1,0,0,1], [2.5,3.2,5.6,7.8], [2.5,3.2,5.6,7.8]>>>"],
wh: entryHeight,
data: "[0,0,1,0]",
scrollable: FALSE, border: FALSE]];
editToolData.height ← editToolData.height + entryVSpace + entryHeight;
visibleAssemblyPrompt ← Buttons.Create[
info: [name: "Visible Assemblies: ",
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.VisibleAssemblyPrompt,
clientData: editToolData
];
editToolData.cameraSection.visibleAssemblies ← ViewerTools.MakeNewTextViewer[[
parent: editToolData.outer,
wx: visibleAssemblyPrompt.wx + visibleAssemblyPrompt.ww + entryHSpace,
wy: editToolData.height,
ww: VFonts.StringWidth["teapot, teacup, table, sceneAssembly, poodle>>>"],
wh: entryHeight,
data: "sceneAssembly",
scrollable: FALSE, border: FALSE]];
editToolData.height ← editToolData.height + entryVSpace + entryHeight;
}; -- end of BuildCameraSection
BuildCameraOrderSection: PUBLIC PROC [editToolData: EditToolData] = {
This section implements a set of buttons in this format:
camera order: Front, Top, Side Get! Set!
orderPrompt, getOrder, setOrder: Buttons.Button;
camera order: Front, Top, Side
orderPrompt ← Buttons.Create[
info: [name: "camera order:",
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.CameraOrderPrompt,
clientData: editToolData
];
editToolData.cameraOrderSection.order ← ViewerTools.MakeNewTextViewer[[
parent: editToolData.outer,
wx: orderPrompt.wx + orderPrompt.ww + entryHSpace,
wy: editToolData.height,
ww: VFonts.StringWidth["Front, Top, Side, Bottom, Left, Right>>>"],
wh: entryHeight,
data: "Front, Top, Side",
scrollable: FALSE, border: FALSE]];
getOrder ← Buttons.Create[
info: [name: "Get!",
wx: editToolData.cameraOrderSection.order.wx + editToolData.cameraOrderSection.order.ww + entryHSpace,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUserB.GetCameraOrder,
clientData: editToolData
];
setOrder ← Buttons.Create[
info: [name: "Set!",
wx: getOrder.wx + getOrder.ww + entryHSpace,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUserB.SetCameraOrder,
clientData: editToolData
];
editToolData.height ← editToolData.height + entryVSpace + entryHeight;
};
BuildShadowSection: PUBLIC PROC [editToolData: EditToolData] = {
This section implements a set of buttons in this format:
Shadows: FALSE Set!
shadowPrompt, setShadows: Buttons.Button;
Shadows: FALSE Set!
shadowPrompt ← Buttons.Create[
info: [name: "Shadows:",
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.ShadowsPrompt,
clientData: editToolData
];
editToolData.shadowSection.shadowLabel ← Labels.Create[
info: [name: "FALSE",
wx: shadowPrompt.wx + shadowPrompt.ww + entryHSpace,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE]];
editToolData.shadowSection.shadowValue ← FALSE;
setShadows ← Buttons.Create[
info: [name: "Set!",
wx: editToolData.shadowSection.shadowLabel.wx + editToolData.shadowSection.shadowLabel.ww + entryHSpace,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.SetShadows,
clientData: editToolData
];
editToolData.height ← editToolData.height + entryVSpace + entryHeight;
};
END.