DIRECTORY Buttons, Labels, Rope, Rules, ViewerTools, VFonts, SVEditToolMenus, SVEditUser, SVEditUserB, SVInterfaceTypes; SVEditToolMenusImplE: 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; column3: CARDINAL = SVEditToolMenus.column3; numberSize: CARDINAL = 80; numberSize3: CARDINAL = 160; BuildLightSourceSection: PUBLIC PROC [editToolData: EditToolData] = { addLightButton, deleteLightButton, editLightButton: Buttons.Button; lightNamePrompt, positionPrompt, colorPrompt: Buttons.Button; setAmbientButton, getAmbientButton: Buttons.Button; 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["MysteriousLight "], wh: entryHeight, data: "WhiteLight", 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: numberSize3, wh: entryHeight, data: "600, 600, 600", 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: numberSize3, wh: entryHeight, data: "0.75, 0.75, 0.75", scrollable: FALSE, border: FALSE]]; setAmbientButton _ Buttons.Create[ info: [name: "SetAmbient!", wx: editToolData.lightSection.color.wx + editToolData.lightSection.color.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.SetAmbient, clientData: editToolData ]; getAmbientButton _ Buttons.Create[ info: [name: "GetAmbient!", wx: setAmbientButton.wx + setAmbientButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.GetAmbient, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; BuildShadowSection: PUBLIC PROC [editToolData: EditToolData] = { shadowPrompt, setShadows: Buttons.Button; shadowPrompt _ Buttons.Create[ info: [name: "Shadows:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.ShadowsPrompt, clientData: editToolData ]; editToolData.shadowSection.shadowLabel _ Labels.Create[ info: [name: "FALSE", wx: shadowPrompt.wx + shadowPrompt.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE]]; editToolData.shadowSection.shadowValue _ FALSE; setShadows _ Buttons.Create[ info: [name: "Set!", wx: editToolData.shadowSection.shadowLabel.wx + editToolData.shadowSection.shadowLabel.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.SetShadows, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; boldFont: VFonts.Font _ VFonts.EstablishFont[family: "Helvetica", size: 10, bold: TRUE, italic: FALSE, defaultOnFailure: TRUE]; BuildTransformSection1: PUBLIC PROC [editToolData: EditToolData] = { scaleButton, scaleXYZPrompt: Buttons.Button; evenScaleButton, evenScaleXYZPrompt: 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; }; BuildTransformSection2: PUBLIC PROC [editToolData: EditToolData] = { translateButton, transXYZPrompt: Buttons.Button; rotxButton, rotyButton, rotzButton, degreesPrompt: Buttons.Button; normRot, norm, align, abut, abutX, abutY, abutZ: Buttons.Button; 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. ¼File: SVEditToolMenusImplE.mesa Last edited by Bier on August 1, 1985 5:31:49 pm PDT Copyright c 1984 by Xerox Corporation. All rights reserved. Contents: Procedures which build sections of the EditTool (continued). Declare the standard distances between menu lines. This section implements a set of buttons, text windows, and options listers in this format: AddLight! DeleteLight! EditLight! lightName: position: color: This section implements a set of buttons in this format: Shadows: FALSE Set! Shadows: FALSE Set! This section implements a set of buttons, text windows, and options listers in this format: SCALE PRIMITIVE X,Y,Z: EVENSCALEs scalar: SCALEX,Y,Z: EVENSCALE X,Y,Z: TRANSLATE X,Y,Z,: ROTX ROTY ROTZ DEGREES: NormalizeRot! Normalize! Align! Abut! AbutX! AbutY! AbutZ! TRANSLATE X,Y,Z,: ROTX ROTY ROTZ DEGREES: Ê Ý˜Iheadšœ™Jšœ4™4Jšœ Ïmœ1™˜EJšžœ˜—Jšž˜J˜Jšœžœ!˜3J˜Jšœ2™2J˜Jšœ žœ˜4Jšœ žœ˜4Jšœ žœ˜4Jšœ žœ˜,Jšœ žœ˜,Jšœ žœ˜,Jšœ žœ˜,Jšœ žœ˜Jšœ žœ˜J˜šÏnœžœžœ!˜EJšœ[™[Jšœ"™"Jšœ>™>J˜JšœC˜CJšœ=˜=Jšœ3˜3J˜šœ ˜ šœ˜JšœNžœ˜U—Jšœ˜Jšœ˜Jšœ˜—J˜šœ#˜#šœ˜Jšœ‡žœ˜Ž—Jšœ˜Jšœ˜Jšœ˜—J˜šœ!˜!šœ˜Jšœžœ˜”—Jšœ˜Jšœ˜Jšœ˜—J˜JšœF˜FJ˜šœ!˜!šœ˜JšœNžœ˜U—Jšœ!˜!Jšœ˜Jšœ˜—J˜šœ@˜@Jšœ˜Jšœ:˜:Jšœ˜Jšœ.˜.Jšœ˜Jšœ˜Jšœ žœ žœ˜#—J˜šœ ˜ šœ˜Jšœ§žœ˜®—Jšœ%˜%Jšœ˜Jšœ˜—J˜šœD˜DJšœ˜Jšœ8˜8Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ žœ žœ˜#—J˜JšœF˜FJ˜šœ˜šœ˜JšœNžœ˜U—Jšœ"˜"Jšœ˜Jšœ˜—J˜šœA˜AJšœ˜Jšœ2˜2Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ žœ žœ˜#J˜—šœ"˜"šœ˜šœ(˜(Jšœ1˜1—Jšœ)˜)Jšœ$žœ˜+—Jšœ˜Jšœ˜Jšœ˜J˜—šœ"˜"šœ˜Jšœ<˜