DIRECTORY CD USING [Technology], Icons USING [IconFlavor], Rope USING [ROPE], TIPUser USING [TIPTable]; CDEnvironment: CEDAR DEFINITIONS = BEGIN SetTipTable: PROC [for: REF, tipTable: Rope.ROPE_NIL]; GetTipTable: PROC [for: REF] RETURNS [TIPUser.TIPTable]; SetIcon: PROC [for: REF, file: Rope.ROPE, n: NAT]; GetIcon: PROC [for: REF] RETURNS [Icons.IconFlavor]; SetPanelIcon: PROC [for: REF, file: Rope.ROPE, n: NAT]; GetPanelIcon: PROC [for: REF] RETURNS [Icons.IconFlavor]; SetWorkingDirectory: PROC [for: REF, wDir: Rope.ROPE_NIL]; GetWorkingDirectory: PROC [for: REF_NIL] RETURNS [wDir: Rope.ROPE]; DoWithWDir: PROC [wDir: Rope.ROPE, proc: PROC]; MakeName: PROC [base: Rope.ROPE, ext: Rope.ROPE_NIL, wDir: Rope.ROPE_NIL, modifier: Rope.ROPE_NIL] RETURNS [Rope.ROPE]; SplitLine: PROC [line: Rope.ROPE] RETURNS [key, rest: Rope.ROPE_NIL]; FetchKeyLine: PROC [fileName: Rope.ROPE, key: Rope.ROPE] RETURNS [entry: Rope.ROPE]; StuffToCommandTool: PROC [r: Rope.ROPE, wDir: Rope.ROPE_NIL, searchPath: LIST OF Rope.ROPE_NIL] RETURNS [result: REF_NIL]; ExecFileEntry: PROC [key: Rope.ROPE, technology: CD.Technology_NIL, modifier: Rope.ROPE_NIL]; LoadTechnology: PROC [key: ATOM, name: Rope.ROPE] RETURNS [CD.Technology]; END. CDEnvironment.mesa (part of ChipNDale) Copyright c 1983, 1984 by Xerox Corporation. All rights reserved. by Christian Jacobi, August 11, 1983 11:32 am Last Edited by: Christian Jacobi, August 4, 1986 7:38:12 pm PDT Implementation of Cedar user interface features -- Tip tables ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --verbose on TerminalIO --for: Design, Technology or global --tipTable: NIL for standard lookup (user profile) --for: Design, Technology or global -- Icons ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --for: Design, Technology or global --only new viewers might get the new icon --for: Design, Technology or global --for: Design, Technology or global --only new viewers might get the new icon --for: Design, Technology or global -- Working Directories ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --Sets the working directory of ChipNDale feature (not process) --for: Design, Technology, NIL for ChipNDale itself (dangerous) --wDir: if NIL: takes wDir from profile or process --Gets the working directory for a ChipNDale feature (not process) --design: Design, Technology or ChipNDale's global directory --executes proc with wDir as current working directory for process -- Names ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --makes a full path filename: adds extension ext if base does not have an extension; --adds working directory wDir if base is not a full path name --adds modifier if not NIL -- Loader ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --splits a line into a keyword and the rest --returns -- key: keyword at beginning of line; -- (leading spaces and trailing separator [space or colon] removed) -- rest: rest of line (after separator) -- (leading spaces removed) --Searches for a line starting with key in file --Returns the rest of the line found or NIL if not found --Executes r with a commandtool --checks whether a particular key is mentioned in a .CDLoadList file --if particular key is found, executes the rest of the line with a command tool --technology and modifier are used to make the name of the used .CDLoadList file --(using modifier .CDLoadList files for particular feature classes can be distinguished) --building of name for the .CDLoadList files: -- ChipNDale-CD.CDLoadList if {technology=NIL, modifier=NIL} -- ChipNDale-CD-modifier.CDLoadList if {technology=NIL, modifier#NIL} -- ChipNDale-technologyName.CDLoadList if {technology#NIL, modifier=NIL} -- ChipNDale-technologyName-modifier.CDLoadList if {technology#NIL, modifier#NIL} --makes all the necessary messages if not loaded Κ ˜codešœ-™-Kšœ Οmœ7™BKšœ.™.K™?—K˜šΟk ˜ Kšžœžœ˜Kšœžœ˜Kšœžœžœ˜Kšœžœ ˜—K˜KšΠbl œžœž œ˜#Kšž˜K˜K™/K™K™Kšœ6™6K˜šΟn œžœžœžœ˜6Kšœ™KšΟc#™#Kš‘œ‘(™2K˜—š  œžœžœžœ˜8Kš‘#™#K˜—K˜Kšœ4™4K˜š  œžœžœ žœžœ˜2Kš‘#™#Kšœ)™)K˜—š œžœžœžœ˜4Kš‘#™#K˜—š   œžœžœ žœžœ˜7Kš‘#™#Kšœ)™)K˜—š  œžœžœžœ˜9Kš‘#™#K˜—K™KšœB™BK˜š  œžœžœ žœžœ˜:Kš‘ œ ‘™?Kš‘œ‘œ™?Kš‘œ‘œ*™2K˜—š  œžœžœžœžœ žœ˜CKš‘#œ ‘™BKš‘œ‘œ ‘œ ™™>KšœG™GKšœJ™JKšœS™S—K˜š  œžœžœ žœžœžœ ˜JKšœ0™0—K™Kšžœ˜K˜K˜—…—ΰύ