File: SVEditToolMenusImplD.mesa
Last edited by Bier on August 1, 1985 5:28:03 pm PDT
Copyright © 1984 by Xerox Corporation. All rights reserved.
Contents: Procedures which build sections of the EditTool
DIRECTORY
Buttons,
Containers,
Labels,
Rope,
Rules,
ViewerTools,
VFonts,
SVEditToolMenus,
SVEditUser,
SVEditUserB,
SVInterfaceTypes;
SVEditToolMenusImplD: 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;
nameSize: CARDINAL = 130;
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
BuildAssemblyOpsSection: PUBLIC PROC [editToolData: EditToolData] = {
firstButton, drawCSButton, deleteButton, editButton: Buttons.Button;
setOpButton, selectOpButton: Buttons.Button;
FIRST! DrawCS! DELETE! EDIT!
SET PointSetOp<op>
firstButton ← Buttons.Create[
info: [name: "First!",
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.First,
clientData: editToolData
];
drawCSButton ← Buttons.Create[
info: [name: "DrawCS!",
wx: firstButton.wx + firstButton.ww + entryHSpace,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.DrawCS,
clientData: editToolData
];
deleteButton ← Buttons.Create[
info: [name: "Delete!",
wx: firstButton.wx + column2,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.DeleteButton,
clientData: editToolData
];
editButton ← Buttons.Create[
info: [name: "Edit!",
wx: firstButton.wx + column3,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.Edit,
clientData: editToolData
];
editToolData.height ← editToolData.height + entryVSpace + entryHeight;
SET PointSetOp Op: <op>
setOpButton← Buttons.Create[
info: [name: "Set Pointset Op!",
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.SetOp,
clientData: editToolData
];
selectOpButton ← Buttons.Create[
info: [name: "Op:",
wx: setOpButton.wx + column2,
wy: editToolData.height, wh: entryHeight,
parent: editToolData.outer, border: FALSE],
proc: SVEditUser.SelectOp,
clientData: editToolData
];
editToolData.sceneSection.opLabel ← Labels.Create[
info: [name: "union",
wx: selectOpButton.wx + selectOpButton.ww + entryHSpace,
wy: editToolData.height, wh: entryHeight,
ww: VFonts.StringWidth["intersection>>>"],
parent: editToolData.outer, border: FALSE]];
editToolData.height ← editToolData.height + entryVSpace + entryHeight;
}; -- end of BuildAssemblyOpsSection
boldFont: VFonts.Font ← VFonts.EstablishFont[family: "Helvetica", size: 10, bold: TRUE,
 italic: FALSE, defaultOnFailure: TRUE];
END.