<> <> <> <> DIRECTORY Buttons, Containers, Rope, Rules, ViewerTools, VFonts, SVEditToolMenus, SVEditUser, SVEditUserB, SVInterfaceTypes; SVEditToolMenusImplA: PROGRAM IMPORTS Buttons, Containers, Rules, SVEditUser, SVEditUserB, VFonts, ViewerTools EXPORTS SVEditToolMenus = BEGIN EditToolData: TYPE = SVInterfaceTypes.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; nameSize: CARDINAL = 130; numberSize: CARDINAL = 80; numberSize3: CARDINAL = 160; 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, addSteiner, addExtra1, addExtra2, addExtra3, addExtra4: Buttons.Button; addHalfSpace _ Buttons.Create[ info: [name: "Add HalfSpace!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddHalfSpace, clientData: editToolData ]; addSteiner _ Buttons.Create[ info: [name: "Add Steiner!", wx: addHalfSpace.wx + addHalfSpace.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddSteiner, clientData: editToolData ]; addExtra1 _ Buttons.Create[ info: [name: "Add1!", wx: addSteiner.wx + addSteiner.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddExtra1, clientData: editToolData ]; addExtra2 _ Buttons.Create[ info: [name: "Add2!", wx: addExtra1.wx + addExtra1.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddExtra2, clientData: editToolData ]; addExtra3 _ Buttons.Create[ info: [name: "Add3!", wx: addExtra2.wx + addExtra2.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddExtra3, clientData: editToolData ]; addExtra4 _ Buttons.Create[ info: [name: "Add4!", wx: addExtra3.wx + addExtra3.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.AddExtra4, 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: numberSize, 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 _ "360, 40, 160"; 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: numberSize3, 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: numberSize, 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: numberSize, 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: numberSize, 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: numberSize, 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; 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: "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: numberSize, wh: entryHeight, data: "100", scrollable: FALSE, border: FALSE]]; sectionPrompt _ Buttons.Create[ info: [name: "section:", 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: numberSize, wh: entryHeight, data: "50", scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildTorusSection BuildLinearSweepSection: PUBLIC PROC [editToolData: EditToolData] = { <> <>> addLinear, depthPrompt: Buttons.Button; addLinear _ Buttons.Create[ info: [name: "Add Linear!", 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: numberSize, wh: entryHeight, data: "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!", 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] = { <> <> copyButton, renameButton, newParentButton: Buttons.Button; copyButton _ Buttons.Create[ info: [name: "Copy!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.Copy, clientData: editToolData ]; renameButton _ Buttons.Create[ info: [ name: "Rename!", wx: copyButton.wx + copyButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE ], proc: SVEditUser.Rename, clientData: editToolData ]; newParentButton _ Buttons.Create[ info: [name: "NewParent!", wx: renameButton.wx + renameButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.NewParent, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildCopySection 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.