File: SVEditToolMenusImplB.mesa
Last edited by Bier on August 1, 1985 5:23:16 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;
BuildCameraSection1: PUBLIC PROC [editToolData: EditToolData] = {
This section implements a set of buttons in this format:
Camera name: <name> Get! Add! Set!
cameraNamePrompt, getButton, setButton, useCameraButton: 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;
};
BuildCameraSection2: PUBLIC PROC [editToolData: EditToolData] = {
origin: 0,0,1800 focus point: 0,0,0
resolution: 72 focal length: 1800
style: <DrawStyle> frame (two points): [-200,200], [200, -200]
originPrompt, focusPointPrompt, slantPrompt: Buttons.Button;
resolutionPrompt, focalLengthPrompt, projectionButton: Buttons.Button;
framePrompt: Buttons.Button;
clippingPlanePrompt, visibleAssemblyPrompt: Buttons.Button;
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 BuildCameraSection2
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;
};
END.