DIRECTORY AtomButtonsTypes, AtomButtons, Containers, Rope, Rules, VFonts, SVEditToolMenus, SVInterfaceTypes, SVUserInput; SVEditToolMenusImplD: CEDAR PROGRAM IMPORTS AtomButtons, SVUserInput, VFonts 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; BuildArtworkSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; smallStringSize: NAT _ VFonts.StringWidth["TinasEyes.ais >>>>>"]; booleanSize: NAT _ VFonts.StringWidth["FALSE "]; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["GetArtwork!", LIST[LIST[$GetArtwork ]]]], [button["picName:", LIST[LIST[$ArtworkNamePrompt ]]]], [text["TinaEyes.ais", PicNameInData, smallStringSize]], [button["isColorFile:", LIST[LIST[$IsColor ]]]], [text["FALSE", IsColorInData, booleanSize]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["material:", LIST[LIST[$MaterialCycle]]]], [label["plastic", MaterialInData]], [button["resolution:", LIST[LIST[$ResolutionPrompt ]]]], [text["72", ResolutionInData, VFonts.StringWidth["188.88 "]]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; Build3DArtworkSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Set3DArtwork!", LIST[LIST[$Set3DArtwork,$Do],NIL,LIST[$Set3DArtwork,$Undo]] ]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; BuildColorArtworkSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; bigColorSize: NAT _ VFonts.StringWidth["9.10000e-1, 9.10000e-1, 9.10000e-1 "]; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["SetColorArtwork!", LIST[LIST[$SetColorArtwork,$Do],NIL,LIST[$SetColorArtwork,$Undo]] ]], [button["r, g, b:", LIST[LIST[$RGBPrompt]] ]], [text["0.75, 0.75, 0.75", RGBInData, bigColorSize]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; BuildTubeArtworkSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; initialHeightRope: Rope.ROPE _ "100"; initialRadiusRope: Rope.ROPE _ "50"; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["SetTubeArtwork!", LIST[LIST[$SetTubeArtwork]] ]], [button["tubeH:", LIST[LIST[$TubeHeightPrompt]] ]], [text[initialHeightRope, TubeHeightInData, numberSize]], [button["tubeR:", LIST[LIST[$TubeRadiusPrompt]] ]], [text[initialRadiusRope, TubeRadiusInData, numberSize]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; BuildBoxArtworkSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; initialXYZRope: Rope.ROPE _ "100, 100, 100"; xyzSize: NAT _ VFonts.StringWidth["188.88, 188.88 188.88 "]; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["SetBoxArtwork!", LIST[LIST[$SetBoxArtwork]] ]], [button["X,Y,Z:", LIST[LIST[$BoxXYZPrompt]] ]], [text[initialXYZRope, BoxXYZInData, xyzSize]], [button["OMap:", LIST[LIST[$BoxOCycle]] ]], [text["Orthogonal", OMapLabelInData, VFonts.StringWidth["Orthogonal "]]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildBoxArtworkSecition BuildArtworkTransformSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Rotate!", LIST[LIST[$RotateArtwork]] ]], [button["degrees:", LIST[LIST[$ArtworkDegreesPrompt]] ]], [text["45", DegreesInData, numberSize]], [button["Normalize!", LIST[LIST[$NormalizeArtwork]] ]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildArtworkTransformSection BuildAssemblyOpsSection: PUBLIC PROC [editToolData: EditToolData] = { nextX: INTEGER; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["First!", LIST[LIST[$First]] ]], [button["DrawCS!", LIST[LIST[$DrawCS]] ]], [button["Delete!", LIST[LIST[$Delete,$Do],NIL,LIST[$Delete,$Undo]], column2]], [button["Edit!", LIST[LIST[$Edit]], column3]] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; nextX _ AtomButtons.BuildButtonLine[editToolData.outer, 0, editToolData.height, editToolData, SVUserInput.EventNotify, LIST[ [button["Set Pointset Op!", LIST[LIST[$SetOp,$Do],NIL,LIST[$SetOp,$Undo]] ]], [button["Op:", LIST[LIST[$SelectOp]], column2]], [label["union", OpLabelInData, VFonts.StringWidth["intersection>>>"]] ] ]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildAssemblyOpsSection PicNameInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.artworkSection.picName _ button; }; IsColorInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.artworkSection.isColor _ button; }; MaterialInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.artworkSection.material _ button; editToolData.artworkSection.materialValue _ 1; }; ResolutionInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.artworkSection.resolution _ button; }; RGBInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.artworkSection.rgb _ button; }; TubeHeightInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.artworkSection.tubeHeight _ button; }; TubeRadiusInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.artworkSection.tubeRadius _ button; }; BoxXYZInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.artworkSection.boxXYZ _ button; }; OMapLabelInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.artworkSection.oMapLabel _ button; }; DegreesInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.artworkTransformSection.degrees _ button; }; OpLabelInData: AtomButtons.UpdateProc = { editToolData: EditToolData _ NARROW[clientData]; editToolData.sceneSection.opLabel _ button; }; boldFont: VFonts.Font _ VFonts.EstablishFont[family: "Helvetica", size: 10, bold: TRUE, italic: FALSE, defaultOnFailure: TRUE]; END. ^File: SVEditToolMenusImplD.mesa Last edited by Bier on May 4, 1987 5:39:27 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. This section implements a set of buttons, text windows, and options listers in this format: SetArtwork! GetArtwork! picName: isColorFile: material: resolution: tubeHeight: tubeRadius: material: resolution: SET COLOR R,G,B: SET COLOR R,G,B: This section implements a set of buttons, text windows, and options listers in this format: SetTubeArtwork! tube height: tube radius: This section implements a set of buttons, text windows, and options listers in this format: SetTubeArtwork! tube height: tube radius: This section implements a set of buttons, text windows, and options listers in this format: Rotate! degrees: Normalize! FIRST! DrawCS! DELETE! EDIT! SET PointSetOp SET PointSetOp Op: Κ‘˜IheadšΟnœ™Iprocšœ1™1Jšœ Οmœ1™