DIRECTORY AtomButtons, Containers, Rope, Rules, ViewerTools, SVEditToolMenus, SVInterfaceTypes, SVUserInput; SVEditToolMenusImplA: CEDAR PROGRAM IMPORTS AtomButtons, Containers, Rules, 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; nameSize: CARDINAL = 130; numberSize: CARDINAL = 80; numberSize3: CARDINAL = 160; BuildCompositeSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Add Composite!", LIST[LIST[$AddComposite]]]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; BuildHalfSpaceSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Add HalfSpace!", LIST[LIST[$AddHalfSpace,$Add],NIL,LIST[$AddHalfSpace,$Replace]] ]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildHalfSpaceSection BuildSphereSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; initialRadiusRope: Rope.ROPE _ "100"; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Add Sphere!", LIST[LIST[$AddSphere,$Add],NIL,LIST[$AddSphere,$Replace]] ]], [button["radius:", LIST[LIST[$SphereRadiusPrompt]], column2]], [text[initialRadiusRope, SphereRadiusInData, numberSize]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildSphereSection BuildBlockSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; initialXYZRope: Rope.ROPE _ "200, 200, 200"; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Add Block!", LIST[LIST[$AddBlock,$Add],NIL,LIST[$AddBlock,$Replace]] ]], [button["x, y, z:", LIST[LIST[$BlockXYZPrompt]], column2 ]], [text[initialXYZRope, BlockXYZInData, numberSize3]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildBlockSection BuildCylinderSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; initialRadiusRope: Rope.ROPE _ "100"; initialHeightRope: Rope.ROPE _ "200"; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Add Cylinder!", LIST[LIST[$AddCyl,$Add],NIL,LIST[$AddCyl,$Replace]] ]], [button["radius:", LIST[LIST[$CylinderRadiusPrompt]], column2]], [text[initialRadiusRope, CylRadiusInData, numberSize]], [button["height:", LIST[LIST[$CylinderHeightPrompt]], column3]], [text[initialHeightRope, CylHeightInData, numberSize]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildCylinderSection BuildConeSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; initialRadiusRope: Rope.ROPE _ "100"; initialHeightRope: Rope.ROPE _ "200"; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Add Cone!", LIST[LIST[$AddCone,$Add],NIL,LIST[$AddCone,$Replace]] ]], [button["radius:", LIST[LIST[$ConeRadiusPrompt]], column2]], [text[initialRadiusRope, ConeRadiusInData, numberSize]], [button["height:", LIST[LIST[$ConeHeightPrompt]], column3]], [text[initialHeightRope, ConeHeightInData, numberSize]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildConeSection BuildTorusSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Add Torus!", LIST[LIST[$AddTorus,$Add],NIL,LIST[$AddTorus,$Replace]] ]], [button["radius:", LIST[LIST[$BigRadiusPrompt]], column2]], [text["100", TorusBigRadiusInData, numberSize]], [button["section:", LIST[LIST[$SectionRadiusPrompt]], column3 ]], [text["50", TorusSectionInData, numberSize]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildTorusSection BuildLinearSweepSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Add Linear!", LIST[LIST[$AddLinear,$Add],NIL,LIST[$AddLinear,$Replace]] ]], [button["depth:", LIST[LIST[$LinDepthPrompt]], column2 ]], [text["100", DepthInData, numberSize]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildLinearSweepSection BuildRevoluteSweepSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Add Revolute!", LIST[LIST[$AddRevo,$Add],NIL,LIST[$AddRevo,$Replace]] ]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildRevoluteSweepSection BuildCopySection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Copy!", LIST[LIST[$Copy]] ]], [button["Rename!", LIST[LIST[$Rename]] ]], [button["NewParent!", LIST[LIST[$NewParent]] ]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildCopySection BuildListingSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["ListScenes!", LIST[LIST[$ListScenes]] ]], [button["ListAssemblies!", LIST[LIST[$ListAssemblies]] ]], [button["ListCoordSystems!", LIST[LIST[$ListCoordSystems]] ]], [button["ListLights!", LIST[LIST[$ListLights]] ]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["ListMasterObjects!", LIST[LIST[$ListMasterObjects]] ]], [button["ListViews!", LIST[LIST[$ListViews]] ]], [button["ListCameras!", LIST[LIST[$ListCameras]] ]] ]]; 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 SphereRadiusInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.sphereSection.radius _ button; }; BlockXYZInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.blockSection.xyz _ button; }; CylRadiusInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.cylinderSection.radius _ button; }; CylHeightInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.cylinderSection.height _ button; }; ConeRadiusInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.coneSection.radius _ button; }; ConeHeightInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.coneSection.height _ button; }; TorusBigRadiusInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.torusSection.bigRadius _ button; }; TorusSectionInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.torusSection.sectionRadius _ button; }; DepthInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.linSection.depth _ button; }; END. TFile: SVEditToolMenusImplA.mesa Last edited by Bier on May 4, 1987 5:41:30 pm PDT Copyright c 1984 by Xerox Corporation. All rights reserved. Contents: Procedures which build sections of the EditTool declare the standard distances between menu lines. Builds the Add! Menus This section implements a set of buttons, text windows, and options listers in this format: ADDCOMPOSITE! This section implements a set of buttons, text windows, and options listers in this format: AddHalfSpace! This section implements a set of buttons, text windows, and options listers in this format: ADDSPHERE RADIUS: This section implements a set of buttons, text windows, and options listers in this format: ADDBLOCK x, y, z: This section implements a set of buttons, text windows, and options listers in this format: ADDCYLINDER RADIUS: HEIGHT: This section implements a set of buttons, text windows, and options listers in this format: ADDCONE RADIUS: HEIGHT: This section implements a set of buttons, text windows, and options listers in this format: ADDTorusbig radius: section radius: This section implements a set of buttons, text windows, and options listers in this format: ADDLINEAR depth: This section implements a set of buttons, text windows, and options listers in this format: ADDREVOLUTE This section implements a set of buttons, text windows, and options listers in this format: COPY! Rename! NewParent! This section implements a set of buttons in this format: ListScenes! ListAssemblies! ListCS! ListLights! ListMOs! ListViews! Κ – "cedar" style˜Iheadšœ™Iprocšœ1™1Jšœ Οmœ1™Jšœ9˜9Jšœ˜J˜—LšœF˜FL˜Lšœ˜—š œžœžœ!˜?Lšœ[™[Lšœ™L˜Mšœžœ˜Lšœžœ˜,L˜šœwžœ˜|Jš œžœžœžœžœ˜QJšœžœžœ˜Lšœ[™[Lšœ)™)L˜Mšœžœ˜Lšœžœ ˜%Lšœžœ ˜%L˜šœwžœ˜|Jš œžœžœžœžœ˜NJšœžœžœ ˜Lšœ[™[Lšœ™L˜Mšœžœ˜L˜šœwžœ˜|Jšœžœžœ ˜&Jšœžœžœ˜*Jšœžœžœ˜/Jšœ˜J˜—LšœF˜FL˜Lšœ˜L˜—L˜š œžœžœ!˜ALšœ8™8LšœF™FL˜Mšœžœ˜L˜šœwžœ˜|Jšœžœžœ˜2Jšœžœžœ˜:Jšœžœžœ˜>Jšœžœžœ˜1Jšœ˜J˜—LšœG˜Gšœwžœ˜|Jšœžœžœ˜@Jšœžœžœ˜0Jšœžœžœ˜3Jšœ˜J˜—LšœF˜FL˜Lšœ ˜ —L˜š œžœžœ!˜6Lšœ˜L˜šœ˜Lšœ˜Lšœ˜Lšœ˜Lšœ˜Lšœ˜—Lšœ1˜1LšœB˜BLšœ˜—L˜š œ˜.Mšœžœ ˜0Mšœ+˜+M˜—š œ˜*Mšœžœ ˜0Mšœ'˜'M˜—š œ˜+Mšœžœ ˜0Mšœ-˜-M˜—š œ˜+Mšœžœ ˜0Mšœ-˜-M˜—š œ˜,Mšœžœ ˜0Mšœ)˜)M˜—š œ˜,Mšœžœ ˜0Mšœ)˜)M˜—š œ˜0Mšœžœ ˜0Mšœ-˜-M˜—š œ˜.Mšœžœ ˜0Mšœ1˜1M˜—š  œ˜'Mšœžœ ˜0Mšœ'˜'M˜M˜—L˜Lšžœ˜—…—!<0’