<> <> <> DIRECTORY Buttons, Containers, Labels, Rope, Rules, ViewerTools, VFonts, SVEditToolMenus, SVEditUser, SVEditUserB; SVEditToolMenusImplA: PROGRAM IMPORTS Buttons, Containers, Labels, Rules, SVEditUser, SVEditUserB, VFonts, ViewerTools EXPORTS SVEditToolMenus = BEGIN EditToolData: TYPE = SVEditUser.EditToolData; <> 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; BuildCurrentSceneSection: PUBLIC PROC [editToolData: EditToolData] = { <> < NEW VIEWER NEW OUTPUT>> <WITHRESPECTTO: >> <> < ColorMap! BWMap!>> scenePrompt, newViewer, newOutput: Buttons.Button; assemblyNamePrompt, wrtPrompt: Buttons.Button; firstButton, drawCSButton, deleteButton, editButton: Buttons.Button; setOpButton, selectOpButton, colorMapButton, bwMapButton: Buttons.Button; editToolData.height _ editToolData.height + entryVSpace;-- space down from the top of the viewer < NEW VIEWER NEW OUTPUT>> scenePrompt _ Buttons.Create[ info: [name: "Scene:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.ScenePrompt, clientData: editToolData ]; editToolData.sceneSection.sceneName _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: scenePrompt.wx + scenePrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["DogWithCat.pic"], wh: entryHeight, data: "DefaultScene", scrollable: FALSE, border: FALSE]]; newViewer _ Buttons.Create[ info: [name: "New Viewer", wx: scenePrompt.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE], proc: SVEditUser.NewViewer, clientData: editToolData ]; newOutput _ Buttons.Create[ info: [name: "New Output", wx: scenePrompt.wx + column3, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE], proc: SVEditUser.NewOutput, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; < WITHRESPECTTO: >> assemblyNamePrompt _ Buttons.Create[ info: [name: "Assembly:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AssemblyNamePrompt, clientData: editToolData ]; editToolData.sceneSection.assemblyName _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: assemblyNamePrompt.wx + assemblyNamePrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth[">>>>DogWithBigNose"], wh: entryHeight, data: "NoName", scrollable: FALSE, border: FALSE]]; wrtPrompt _ Buttons.Create[ info: [name: "With Respect To:", wx: assemblyNamePrompt.wx + column2 + VFonts.StringWidth[">>>>"], wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.WithRespectToPrompt, clientData: editToolData ]; editToolData.sceneSection.wrt _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: wrtPrompt.wx + wrtPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["TipOfDogsBigNose"], wh: entryHeight, data: "sceneAssembly", scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; <> 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 Assembly!", wx: firstButton.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.Delete, 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; < ColorMap!>> setOpButton_ Buttons.Create[ info: [name: "Set Pointset Operation!", 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]]; colorMapButton _ Buttons.Create[ info: [name: "ColorMap!", wx: setOpButton.wx + column3, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.SetColorMap, clientData: editToolData ]; bwMapButton _ Buttons.Create[ info: [name: "BWMap!", wx: colorMapButton.wx + colorMapButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.BWMap, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildCurrentSceneSection BuildCompositeSection: PUBLIC PROC [editToolData: EditToolData] = { <> <> addComp: Buttons.Button; addComp _ Buttons.Create[ info: [name: "Add Composite!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddComposite, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; BuildHalfSpaceSection: PUBLIC PROC [editToolData: EditToolData] = { <> <> addHalfSpace: Buttons.Button; addHalfSpace _ Buttons.Create[ info: [name: "Add HalfSpace!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddHalfSpace, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildHalfSpaceSection BuildSphereSection: PUBLIC PROC [editToolData: EditToolData] = { <> <>> addSphere, radiusPrompt: Buttons.Button; initialRadiusRope: Rope.ROPE _ "100"; addSphere _ Buttons.Create[ info: [name: "Add Sphere!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddSphere, clientData: editToolData ]; radiusPrompt _ Buttons.Create[ info: [name: "radius:", wx: addSphere.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.SphereRadiusPrompt, clientData: editToolData ]; editToolData.sphereSection.radius _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: radiusPrompt.wx + radiusPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["188.88"], wh: entryHeight, data: initialRadiusRope,-- "100" scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildSphereSection BuildBlockSection: PUBLIC PROC [editToolData: EditToolData] = { <> <>> addBlock, xyzPrompt: Buttons.Button; initialXYZRope: Rope.ROPE _ "30, 30, 30"; addBlock _ Buttons.Create[ info: [name: "Add Block!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddBlock, clientData: editToolData ]; xyzPrompt _ Buttons.Create[ info: [name: "x, y, z:", wx: addBlock.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.BlockXYZPrompt, clientData: editToolData ]; editToolData.blockSection.xyz _ 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]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildBlockSection BuildCylinderSection: PUBLIC PROC [editToolData: EditToolData] = { <> <HEIGHT: >> addCyl, radiusPrompt, heightPrompt: Buttons.Button; initialRadiusRope: Rope.ROPE _ "100"; initialHeightRope: Rope.ROPE _ "200"; addCyl _ Buttons.Create[ info: [name: "Add Cylinder!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddCyl, clientData: editToolData ]; radiusPrompt _ Buttons.Create[ info: [name: "radius:", wx: addCyl.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.CylinderRadiusPrompt, clientData: editToolData ]; editToolData.cylinderSection.radius _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: radiusPrompt.wx + radiusPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["188.88"], wh: entryHeight, data: initialRadiusRope,-- "100" scrollable: FALSE, border: FALSE]]; heightPrompt _ Buttons.Create[ info: [name: "height:", wx: addCyl.wx + column3, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.CylinderHeightPrompt, clientData: editToolData ]; editToolData.cylinderSection.height _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: heightPrompt.wx + heightPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["188.88"], wh: entryHeight, data: initialHeightRope,-- "100" scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildCylinderSection BuildConeSection: PUBLIC PROC [editToolData: EditToolData] = { <> <HEIGHT: >> addCone, radiusPrompt, heightPrompt: Buttons.Button; initialRadiusRope: Rope.ROPE _ "100"; initialHeightRope: Rope.ROPE _ "200"; addCone _ Buttons.Create[ info: [name: "Add Cone!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddCone, clientData: editToolData ]; radiusPrompt _ Buttons.Create[ info: [name: "radius:", wx: addCone.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.ConeRadiusPrompt, clientData: editToolData ]; editToolData.coneSection.radius _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: radiusPrompt.wx + radiusPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["188.88"], wh: entryHeight, data: initialRadiusRope,-- "100" scrollable: FALSE, border: FALSE]]; heightPrompt _ Buttons.Create[ info: [name: "height:", wx: addCone.wx + column3, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.ConeHeightPrompt, clientData: editToolData ]; editToolData.coneSection.height _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: heightPrompt.wx + heightPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["188.88"], wh: entryHeight, data: initialHeightRope,-- "100" scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildConeSection BuildTorusSection: PUBLIC PROC [editToolData: EditToolData] = { <> < section radius: >> addTorus, bigRadiusPrompt, sectionPrompt: Buttons.Button; initialBigRadius: Rope.ROPE _ "100"; initialSectionRadius: Rope.ROPE _ "50"; addTorus _ Buttons.Create[ info: [name: "Add Torus!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddTorus, clientData: editToolData ]; bigRadiusPrompt _ Buttons.Create[ info: [name: "big radius:", wx: addTorus.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.BigRadiusPrompt, clientData: editToolData ]; editToolData.torusSection.bigRadius _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: bigRadiusPrompt.wx + bigRadiusPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["188.88 "], wh: entryHeight, data: initialBigRadius, scrollable: FALSE, border: FALSE]]; sectionPrompt _ Buttons.Create[ info: [name: "section radius:", wx: addTorus.wx + column3, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.SectionRadiusPrompt, clientData: editToolData ]; editToolData.torusSection.sectionRadius _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: sectionPrompt.wx + sectionPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["188.88 "], wh: entryHeight, data: initialSectionRadius, scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildTorusSection BuildLinearSweepSection: PUBLIC PROC [editToolData: EditToolData] = { <> <>> addLinear, depthPrompt: Buttons.Button; initialDepthRope: Rope.ROPE _ "100"; addLinear _ Buttons.Create[ info: [name: "Add Linear Sweep!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddLinear, clientData: editToolData ]; depthPrompt _ Buttons.Create[ info: [name: "depth:", wx: addLinear.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.LinDepthPrompt, clientData: editToolData ]; editToolData.linSection.depth _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: depthPrompt.wx + depthPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["188.88 "], wh: entryHeight, data: initialDepthRope,-- "100" scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildLinearSweepSection BuildRevoluteSweepSection: PUBLIC PROC [editToolData: EditToolData] = { <> <> addRevo: Buttons.Button; addRevo _ Buttons.Create[ info: [name: "Add Revolute Sweep!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddRevo, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildRevoluteSweepSection BuildCopySection: PUBLIC PROC [editToolData: EditToolData] = { <> < COPYFROM: >> copyButton, prefixPrompt, copyFromPrompt: Buttons.Button; initialPrefixRope: Rope.ROPE _ "2"; initialAssemblyNameRope: Rope.ROPE _ "sceneAssembly"; copyButton _ Buttons.Create[ info: [name: "Copy!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.Copy, clientData: editToolData ]; prefixPrompt _Buttons.Create[ info: [name: "prefix:", wx: copyButton.wx + column1, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.PrefixPrompt, clientData: editToolData ]; editToolData.copySection.prefix _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: prefixPrompt.wx + prefixPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["222"], wh: entryHeight, data: initialPrefixRope, scrollable: FALSE, border: FALSE]]; copyFromPrompt _ Buttons.Create[ info: [name: "copy from:", wx: copyButton.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.CopyFromPrompt, clientData: editToolData ]; editToolData.copySection.assemblyName _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: copyFromPrompt.wx + copyFromPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["<<<> <>> <>> <>> <>> <> scaleButton, scaleXYZPrompt: Buttons.Button; evenScaleButton, evenScaleXYZPrompt: Buttons.Button; translateButton, transXYZPrompt: Buttons.Button; rotxButton, rotyButton, rotzButton, degreesPrompt: Buttons.Button; normRot, norm, align, abut, abutX, abutY, abutZ: Buttons.Button; initialScaleXYZRope: Rope.ROPE _ "2, 2, 2"; initialEvenScaleXYZRope: Rope.ROPE _ "2"; initialTranslateXYZRope: Rope.ROPE _ "0, 200, 0"; initialDegreesRope: Rope.ROPE _ "20"; <>> scaleButton _ Buttons.Create[ info: [name: "ScalePrimitive!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.ScalePrimitive, clientData: editToolData ]; scaleXYZPrompt _ Buttons.Create[ info: [name: "X, Y, Z:", wx: scaleButton.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.ScaleXYZPrompt, clientData: editToolData ]; editToolData.transformSection.scaleXYZ _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: scaleXYZPrompt.wx + scaleXYZPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["<<<188.88888, 188.88888, 188.88888"], wh: entryHeight, data: initialScaleXYZRope,-- "100" scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; <>> evenScaleButton _ Buttons.Create[ info: [name: "EvenScale!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.EvenScale, clientData: editToolData ]; evenScaleXYZPrompt _ Buttons.Create[ info: [name: "scalar:", wx: scaleButton.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.EvenScaleXYZPrompt, clientData: editToolData ]; editToolData.transformSection.scalar _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: evenScaleXYZPrompt.wx + evenScaleXYZPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["188.88 "], wh: entryHeight, data: initialEvenScaleXYZRope,-- "2" scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; <>> translateButton _ Buttons.Create[ info: [name: "Translate!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.Trans, clientData: editToolData ]; transXYZPrompt _ Buttons.Create[ info: [name: "X, Y, Z:", wx: translateButton.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.TranslateXYZPrompt, clientData: editToolData ]; editToolData.transformSection.transXYZ _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: transXYZPrompt.wx + transXYZPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["188.88, 188.88, 188.88"], wh: entryHeight, data: initialTranslateXYZRope,-- "100" scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; <>> rotxButton _ Buttons.Create[ info: [name: "RotX!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.RotX, clientData: editToolData ]; rotyButton _ Buttons.Create[ info: [name: "RotY!", wx: rotxButton.wx + rotxButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.RotY, clientData: editToolData ]; rotzButton _ Buttons.Create[ info: [name: "RotZ!", wx: rotyButton.wx + rotyButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.RotZ, clientData: editToolData ]; degreesPrompt _ Buttons.Create[ info: [name: "degrees:", wx: rotxButton.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.DegreesPrompt, clientData: editToolData ]; editToolData.transformSection.degrees _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: degreesPrompt.wx + degreesPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["188.88, 188.88, 188.88"], wh: entryHeight, data: initialDegreesRope,-- "20" scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; normRot _ Buttons.Create[ info: [name: "NormalizeRot!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.NormalizeRot, clientData: editToolData ]; norm _ Buttons.Create[ info: [name: "Normalize!", wx: normRot.wx + normRot.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.Normalize, clientData: editToolData ]; align _ Buttons.Create[ info: [name: "Align!", wx: norm.wx + norm.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.Align, clientData: editToolData ]; abut _ Buttons.Create[ info: [name: "Abut!", wx: align.wx + align.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.Abut, clientData: editToolData ]; abutX _ Buttons.Create[ info: [name: "AbutX!", wx: abut.wx + abut.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.AbutX, clientData: editToolData ]; abutY _ Buttons.Create[ info: [name: "AbutY!", wx: abutX.wx + abutX.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.AbutY, clientData: editToolData ]; abutZ _ Buttons.Create[ info: [name: "AbutZ!", wx: abutY.wx + abutY.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.AbutZ, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildTransfromSection BuildListingSection: PUBLIC PROC [editToolData: EditToolData] = { <> <> scenesButton, assembliesButton, coordsysButton, lightsButton, moButton, viewersButton, camerasButton: Buttons.Button; scenesButton _ Buttons.Create[ info: [name: "ListScenes!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.ListScenes, clientData: editToolData ]; assembliesButton _ Buttons.Create[ info: [name: "ListAssemblies!", wx: scenesButton.wx + scenesButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.ListAssemblies, clientData: editToolData ]; coordsysButton _ Buttons.Create[ info: [name: "ListCoordSystems!", wx: assembliesButton.wx + assembliesButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.ListCoordSystems, clientData: editToolData ]; lightsButton _ Buttons.Create[ info: [name: "ListLights!", wx: coordsysButton.wx + coordsysButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.ListLights, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; moButton _ Buttons.Create[ info: [name: "ListMasterObjects!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.ListMasterObjects, clientData: editToolData ]; viewersButton _ Buttons.Create[ info: [name: "ListViews!", wx: moButton.wx + moButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.ListViewers, clientData: editToolData ]; camerasButton _ Buttons.Create[ info: [name: "ListCameras!", wx: viewersButton.wx + viewersButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.ListCameras, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildListingSection AddARule: PUBLIC PROC [editToolData: EditToolData] = { rule: Rules.Rule; rule _ Rules.Create[[ parent: editToolData.outer, wy: editToolData.height, ww: editToolData.outer.cw, wh: 2 ]]; Containers.ChildXBound[editToolData.outer, rule]; editToolData.height _ editToolData.height + rule.wh + entryVSpace; }; -- end of AddARule END.