DIRECTORY AtomButtons, Rope, Rules, VFonts, SVEditToolMenus, SVInterfaceTypes, SVUserInput; SVEditToolMenusImplB: CEDAR PROGRAM IMPORTS AtomButtons, VFonts, SVUserInput 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; BuildCameraSection1: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; cameraNameSize: NAT _ VFonts.StringWidth["The view from the west."]; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Camera name:", LIST[LIST[$CameraNamePrompt ]]]], [text["", CameraNameInData, cameraNameSize]], [button["Get!", LIST[LIST[$GetCamera ]]]], [button["Set!", LIST[LIST[$SetCamera ]]]], [button["Use!", LIST[LIST[$UseCamera ]]]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; BuildCameraSection2: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; pointSize: NAT _ VFonts.StringWidth["-1800, -188.8, -188.8>>>"]; smallPointSize: NAT _ VFonts.StringWidth["188.8, 188.8, 188"]; realSize: NAT _ VFonts.StringWidth["188.8>>>"]; frameSize, clippingPlanesSize, visibleAssembliesSize: NAT; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["origin:", LIST[LIST[$CameraOriginPrompt ]]]], [text["0,0,1800", OriginInData, pointSize]], [button["focusPoint:", LIST[LIST[$FocusPrompt ]]]], [text["0, 0, 0", FocusPointInData, smallPointSize]], [button["slant:", LIST[LIST[$SlantPrompt ]]]], [text["0", SlantInData, realSize]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["resolution:", LIST[LIST[$ScanResolutionPrompt ]] ]], [text["72", ResolutionInData, realSize]], [button["focal length:", LIST[LIST[$FocalLengthPrompt ]] ]], [text["1800", FocalLengthInData, VFonts.StringWidth["1800 "] ]], [button["projection:", LIST[LIST[$ProjectionCycle ]] ]], [label["perspect", ProjectionInData]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; frameSize _ VFonts.StringWidth["[[302.5,105.6], [302.5,105.6] fullScreen: FALSE]>>>>>"]; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["frame:", LIST[LIST[$FramePrompt ]] ]], [text["[[0,200],[200,0] fullScreen: TRUE]", FrameInData, frameSize]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; clippingPlanesSize _ VFonts.StringWidth["[1,0,0,1], [2.5,3.2,5.6,7.8], [2.5,3.2,5.6,7.8]>>>"]; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Clipping Planes: ", LIST[LIST[$ClippingPlanePrompt]] ]], [text["[0,0,1,0]", ClippingPlanesInData, clippingPlanesSize]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; visibleAssembliesSize _ VFonts.StringWidth["teapot, teacup, table, sceneAssembly, poodle>>>"]; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Visible Assemblies: ", LIST[LIST[$VisibleAssemblyPrompt]] ]], [text["sceneAssembly", VisibleAssembliesInData, visibleAssembliesSize]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildCameraSection2 BuildCameraOrderSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; cameraOrderSize: NAT; cameraOrderSize _ VFonts.StringWidth["Front, Top, Side, Bottom, Left, Right>>>"]; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["camera order: ", LIST[LIST[$CameraOrderPrompt]] ]], [text["Front, Top, Side", CameraOrderInData, cameraOrderSize]], [button["Get!", LIST[LIST[$GetCameraOrder]] ]], [button["Set!", LIST[LIST[$SetCameraOrder]] ]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; CameraNameInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.cameraSection.name _ button; }; OriginInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.cameraSection.origin _ button; }; FocusPointInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.cameraSection.focusPoint _ button; }; SlantInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.cameraSection.slant _ button; }; ResolutionInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.cameraSection.resolution _ button; }; FocalLengthInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.cameraSection.focalLength _ button; }; ProjectionInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.cameraSection.projection _ button; }; FrameInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.cameraSection.frame _ button; }; ClippingPlanesInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.cameraSection.clippingPlanes _ button; }; VisibleAssembliesInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.cameraSection.visibleAssemblies _ button; }; CameraOrderInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.cameraOrderSection.order _ button; }; END. nFile: SVEditToolMenusImplB.mesa Last edited by Bier on May 4, 1987 5:40:40 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 in this format: Camera name: Get! Add! Set! Camera name: Get! Set! Use! origin: 0,0,1800 focus point: 0,0,0 resolution: 72 focal length: 1800 style: frame (two points): [-200,200], [200, -200] origin: 0,0,1800 focus point: 0,0,0 slant: 0 resolution: 72 focal length: 1800 projection: perspect frame: [[-200,200], [200, -200] fullScreen: TRUE] This section implements a set of buttons in this format: camera order: Front, Top, Side Get! Set! camera order: Front, Top, Side Κ½˜Iheadšœ™Jšœ1™1Jšœ Οmœ1™Lšœ žœ"˜/Lšœ6žœ˜:J˜Jš :™:šœwžœ˜|Jšœžœžœ˜6Lšœ,˜,Jšœžœžœ˜3Lšœ4˜4Jšœžœžœ˜.Lšœ"˜"Jšœ˜—J˜JšœF˜FJ˜Jš @™@J˜šœwžœ˜|Jšœžœžœ˜=Lšœ)˜)Jšœžœžœ˜