-- File: SVEditToolMenusImplB.mesa -- Last edited by Bier on December 19, 1982 12:07 am -- Author: Eric Bier on July 7, 1983 11:25 am -- Contents: Procedures which build sections of the EditTool (continued). DIRECTORY Buttons, Labels, Rope, Rules, ViewerTools, VFonts, SVEditToolMenus, SVEditUser, SVEditUserB; SVEditToolMenusImplB: PROGRAM IMPORTS Buttons, Labels, SVEditUser, SVEditUserB, VFonts, ViewerTools EXPORTS SVEditToolMenus = BEGIN EditToolData: TYPE = SVEditUser.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; BuildRenameSection: PUBLIC PROC [editToolData: EditToolData] = { -- This section implements a set of buttons, text windows, and options listers in this format: -- Rename! newName: renameButton, newNamePrompt: Buttons.Button; initialNameRope: Rope.ROPE _ "NewName"; renameButton _ Buttons.Create[ info: [name: "Rename!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.Rename, clientData: editToolData ]; newNamePrompt _ Buttons.Create[ info: [name: "new name:", wx: renameButton.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.NewNamePrompt, clientData: editToolData ]; editToolData.renameSection.newName _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: newNamePrompt.wx + newNamePrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["<<<< isColorFile: -- material: resolution: -- tubeHeight: tubeRadius: -- SET COLOR R,G,B: getArtworkButton, picNamePrompt, isColorButton: Buttons.Button; materialButton, resolutionButton: Buttons.Button; setColorButton, rgbPrompt: Buttons.Button; initialPicNameRope: Rope.ROPE _ "TinaEyes.ais"; initialIsColorRope: Rope.ROPE _ "FALSE"; initialResolutionRope: Rope.ROPE _ "72.0"; initialRGBRope: Rope.ROPE _ "0.75, 0.75, 0.75"; 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: initialPicNameRope, 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: initialIsColorRope, scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; -- material: resolution: 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: initialResolutionRope, scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; -- SET COLOR R,G,B: setColorButton _ Buttons.Create[ info: [name: "SetColorArtwork!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.SetColor, 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: initialRGBRope, 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: tube radius: 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: VFonts.StringWidth["188.88 "], 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: VFonts.StringWidth["188.88 "], 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: tube radius: setBoxArtworkButton, xyzPrompt, oMapCycle: Buttons.Button; initialXYZRope: Rope.ROPE _ "100, 100, 100"; initialOMapRope: Rope.ROPE _ "Orthogonal"; 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: initialOMapRope, 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: Normalize! rotateButton, degreesPrompt, normButton: Buttons.Button; initialDegreesRope: Rope.ROPE _ "45"; 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: VFonts.StringWidth["188.88, "], wh: entryHeight, data: initialDegreesRope, 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 BuildLightSourceSection: PUBLIC PROC [editToolData: EditToolData] = { -- This section implements a set of buttons, text windows, and options listers in this format: -- AddLight! DeleteLight! EditLight! -- lightName: position: color: addLightButton, deleteLightButton, editLightButton: Buttons.Button; lightNamePrompt, positionPrompt, colorPrompt: Buttons.Button; initialLightNameRope: Rope.ROPE _ "WhiteLight"; initialPositionRope: Rope.ROPE _ "600, 600, 600"; initialColorRope: Rope.ROPE _ "0.75, 0.75, 0.75"; addLightButton _ Buttons.Create[ info: [name: "AddLight!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.AddLight, clientData: editToolData ]; deleteLightButton _ Buttons.Create[ info: [name: "DeleteLight!", wx: addLightButton.wx + addLightButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.DeleteLight, clientData: editToolData ]; editLightButton _ Buttons.Create[ info: [name: "EditLight!", wx: deleteLightButton.wx + deleteLightButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.EditLight, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; lightNamePrompt _ Buttons.Create[ info: [name: "light name:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.LightNamePrompt, clientData: editToolData ]; editToolData.lightSection.name _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: lightNamePrompt.wx + lightNamePrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["WhiteLight "], wh: entryHeight, data: initialLightNameRope, scrollable: FALSE, border: FALSE]]; positionPrompt _ Buttons.Create[ info: [name: "position:", wx: editToolData.lightSection.name.wx + editToolData.lightSection.name.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.LightPositionPrompt, clientData: editToolData ]; editToolData.lightSection.position _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: positionPrompt.wx + positionPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["188.88, 188.188, 188.88 "], wh: entryHeight, data: initialPositionRope, scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; colorPrompt _ Buttons.Create[ info: [name: "color:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.LightColorPrompt, clientData: editToolData ]; editToolData.lightSection.color _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: colorPrompt.wx + colorPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["9.10000e-1, 9.10000e-1, 9.10000e-1 "], wh: entryHeight, data: initialColorRope, scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; BuildCameraSection: PUBLIC PROC [editToolData: EditToolData] = { -- This section implements a set of buttons in this format: -- SETCAMERA! [_] FocusPoint: -- [_] Origin: [_] FocalLength: <1800> setCameraButton, setFocusButton, focusPrompt, setResButton, resolutionPrompt: Buttons.Button; setOriginButton, originPrompt, setFocalLengthButton, focalLengthPrompt: Buttons.Button; shadowPrompt, setShadowButton: Buttons.Button; initialFocusRope: Rope.ROPE _ "0, 0, 0"; initialOriginRope: Rope.ROPE _ "0, 0, 1800"; initialFocalLengthRope: Rope.ROPE _ "1800"; initialResolutionRope: Rope.ROPE _ "72"; setCameraButton _ Buttons.Create[ info: [name: "Set Camera!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.SetCamera, clientData: editToolData ]; setFocusButton _ Buttons.Create[ info: [name: " _ ", wx: setCameraButton.wx + column1, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE], proc: SVEditUserB.SetFocus, clientData: editToolData ]; focusPrompt _ Buttons.Create[ info: [name: "focus point:", wx: setFocusButton.wx + setFocusButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.FocusPrompt, clientData: editToolData ]; editToolData.cameraSection.focus _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: focusPrompt.wx + focusPrompt.ww + entryHSpace, wy: editToolData.height, ww: VFonts.StringWidth["188.8, 188.8, 188.8"], wh: entryHeight, data: initialFocusRope, scrollable: FALSE, border: FALSE]]; setResButton_ Buttons.Create[ info: [name: " _ ", wx: editToolData.cameraSection.focus.wx + editToolData.cameraSection.focus.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE], proc: SVEditUserB.SetResolution, clientData: editToolData ]; resolutionPrompt _ Buttons.Create[ info: [name: "resolution:", wx: setResButton.wx + setResButton.ww + entryHSpace, 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.8yy"], wh: entryHeight, data: initialResolutionRope, scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; setOriginButton _ Buttons.Create[ info: [name: " _ ", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE], proc: SVEditUserB.SetCamera, clientData: editToolData ]; originPrompt _ Buttons.Create[ info: [name: "origin:", wx: setOriginButton.wx + setOriginButton.ww + entryHSpace, 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["188.8, 188.8, 188.8"], wh: entryHeight, data: initialOriginRope, scrollable: FALSE, border: FALSE]]; setFocalLengthButton _ Buttons.Create[ info: [name: " _ ", wx: editToolData.cameraSection.origin.wx + editToolData.cameraSection.origin.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE], proc: SVEditUserB.SetFocalLength, clientData: editToolData ]; focalLengthPrompt _ Buttons.Create[ info: [name: "focal length:", wx: setFocalLengthButton.wx + setFocalLengthButton.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: initialFocalLengthRope, scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; setShadowButton _ Buttons.Create[ info: [name: " _ ", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE], proc: SVEditUserB.SetShadows, clientData: editToolData ]; shadowPrompt _ Buttons.Create[ info: [name: "Shadows: ", wx: setShadowButton.wx + setShadowButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.ShadowsPrompt, clientData: editToolData ]; editToolData.cameraSection.shadowLabel _ Labels.Create[ [name: "FALSE", wx: shadowPrompt.wx + shadowPrompt.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE] ]; editToolData.cameraSection.shadowValue _ FALSE; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildCameraSection END.