<> <> <> <> <> DIRECTORY Buttons, Labels, Rope, ViewerTools, SVEditToolMenus, SVEditUser, SVEditUserB, SVInterfaceTypes, VFonts; SVEditToolMenusImplC: CEDAR PROGRAM IMPORTS Buttons, Labels, 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; column2Quarter: CARDINAL = 190; column2Half: CARDINAL = 225; column3: CARDINAL = SVEditToolMenus.column3; nameSize: CARDINAL = 140; numberSize: CARDINAL = 80; numberSize3: CARDINAL = 160; boldFont: VFonts.Font _ VFonts.EstablishFont[family: "Helvetica", size: 10, bold: TRUE, italic: FALSE, defaultOnFailure: TRUE]; BuildCurrentSceneSection: PUBLIC PROC [editToolData: EditToolData] = { <> < NEW VIEWER NEW OUTPUT>> <> scenePrompt, newViewer, newOutput: Buttons.Button; helpButton, colorMapButton, bwMapButton, restartButton, closeAll: 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: nameSize, wh: entryHeight, data: "DefaultScene", scrollable: FALSE, border: FALSE]]; newViewer _ Buttons.Create[ info: [name: "New Viewer", wx: editToolData.sceneSection.sceneName.wx + editToolData.sceneSection.sceneName.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE], proc: SVEditUser.NewViewer, clientData: editToolData ]; newOutput _ Buttons.Create[ info: [name: "New Typescript", wx: newViewer.wx + newViewer.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE], proc: SVEditUser.NewOutput, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; <> <<>> helpButton _ Buttons.Create[ info: [name: "Help!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.Help, clientData: editToolData ]; colorMapButton _ Buttons.Create[ info: [name: "ColorMap!", wx: helpButton.wx + helpButton.ww + entryHSpace, 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 ]; restartButton _ Buttons.Create[ info: [name: "Restart!", wx: bwMapButton.wx + bwMapButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.Restart, clientData: editToolData ]; closeAll _ Buttons.Create[ info: [ name: "DestroyAll", wx: restartButton.wx + restartButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE], proc: SVEditUser.DestroyAllSolidviewsWindows, clientData: editToolData, guarded: TRUE, documentation: "Will Close Down Solidviews" ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; BuildTextInputSection: PUBLIC PROC [editToolData: EditToolData] = { currentAssemblyPrompt: Buttons.Button; text1Prompt: Buttons.Button; selectedTextLabel, selectedTextPlane, selectedTextSource, selectedTextTarget, selectedTextParent: Buttons.Button; <>> <>> <> <<>> < Parent: >> < TopTarget: >> <<>> <<>> < Source! Target! Parent!>> currentAssemblyPrompt _ Buttons.Create[ info: [name: "Skitter:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.CurrentAssemblyPrompt, clientData: editToolData ]; editToolData.sceneSection.current _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: currentAssemblyPrompt.wx + currentAssemblyPrompt.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "", scrollable: FALSE, border: FALSE]]; <> <> <> <> <> <> <<],>> <> <> <<];>> <<>> <> <> <> <> <> <> <<],>> <> <> <<];>> <<>> <> <> <> <> <> <> <<],>> <> <> <<];>> <<>> editToolData.height _ editToolData.height + entryVSpace + entryHeight; < Source! Target! Parent!>> text1Prompt _ Buttons.Create[ info: [name: "Text1:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.Text1PromptButton, clientData: editToolData ]; editToolData.sceneSection.text1 _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: text1Prompt.wx + text1Prompt.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "sceneAssembly", scrollable: FALSE, border: FALSE]]; <> <> <> <> <> <> <<],>> <> <> <<];>> <<>> <> <> <> <> <> <> <<],>> <> <> <<];>> <<>> <> <> <> <> <> <> <<],>> <> <> <<];>> editToolData.height _ editToolData.height + entryVSpace + entryHeight; <<>> <> <<>> selectedTextLabel _ Labels.Create[ info: [name: "Selected Text:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE]]; selectedTextPlane _ Buttons.Create[ info: [ name: "Plane!", wx: selectedTextLabel.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE ], proc: SVEditUser.SelectedTextPlaneButton, clientData: editToolData ]; selectedTextSource _ Buttons.Create[ info: [ name: "Source!", wx: selectedTextLabel.wx + column2Half, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE ], proc: SVEditUser.SelectedTextSourceButton, clientData: editToolData ]; selectedTextTarget _ Buttons.Create[ info: [ name: "Target!", wx: selectedTextSource.wx + selectedTextSource.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE ], proc: SVEditUser.SelectedTextTargetButton, clientData: editToolData ]; selectedTextParent _ Buttons.Create[ info: [ name: "Parent!", wx: selectedTextTarget.wx + selectedTextTarget.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE ], proc: SVEditUser.SelectedTextParentButton, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; <<>> }; BuildDerivedTextSection: PUBLIC PROC [editToolData: EditToolData] = { newPrompt, parentPrompt: Buttons.Button; sourceLabel, targetLabel, planeLabel: Buttons.Button; < Parent: >> < Target: >> <>> <<>> newPrompt _ Buttons.Create[ info: [name: "New:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.NewPrompt, clientData: editToolData ]; editToolData.sceneSection.new _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: newPrompt.wx + newPrompt.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "Charlie", scrollable: FALSE, border: FALSE]]; parentPrompt _ Buttons.Create[ info: [name: "Parent:", wx: newPrompt.wx + column2Quarter, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.ParentPrompt, clientData: editToolData ]; editToolData.sceneSection.parent _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: parentPrompt.wx + parentPrompt.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "sceneAssembly", scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; sourceLabel _ Labels.Create[ info: [name: "Source:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE]]; editToolData.sceneSection.source _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: sourceLabel.wx + sourceLabel.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "", scrollable: FALSE, border: TRUE]]; ViewerTools.InhibitUserEdits[editToolData.sceneSection.source]; targetLabel _ Labels.Create[ info: [name: "Target:", wx: sourceLabel.wx + column2Quarter, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE]]; editToolData.sceneSection.target _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: targetLabel.wx + targetLabel.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "", scrollable: FALSE, border: TRUE]]; ViewerTools.InhibitUserEdits[editToolData.sceneSection.target]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; planeLabel _ Labels.Create[ info: [name: "Plane:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE]]; editToolData.sceneSection.plane _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: planeLabel.wx + planeLabel.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "", scrollable: FALSE, border: TRUE]]; ViewerTools.InhibitUserEdits[editToolData.sceneSection.plane]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; BuildAssemblyOpsSection: PUBLIC PROC [editToolData: EditToolData] = { firstButton, drawCSButton, deleteButton, editButton: Buttons.Button; setOpButton, selectOpButton: Buttons.Button; <<>> <> < >> 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; <>> 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 BuildTransformSection: PUBLIC PROC [editToolData: EditToolData] = { <> <>> <>> <>> <>> <> 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; <>> scaleButton _ Buttons.Create[ info: [name: "ScalePrimitive!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.ScalePrimitive, clientData: editToolData, font: boldFont ]; 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: numberSize3, wh: entryHeight, data: "2, 2, 2", 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, font: boldFont ]; 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: numberSize, wh: entryHeight, data: "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, font: boldFont ]; 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: numberSize3, wh: entryHeight, data: "0, 200, 0", 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, font: boldFont ]; 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, font: boldFont ]; 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, font: boldFont ]; 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: numberSize, wh: entryHeight, data: "90", 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 END.