DIRECTORY ViewerClasses USING [Viewer], Buttons USING [Button, ButtonProc], Labels USING [Label], Rope USING [ROPE], TextNode USING [RefTextNode], TextLooks USING [Looks]; EditToolBuilder: CEDAR DEFINITIONS = BEGIN Layout: TYPE = REF LayoutRec; LayoutRec: TYPE = RECORD [ entryLeft: CARDINAL, initLeft: CARDINAL, heightSoFar: CARDINAL, initHeight: CARDINAL, entryHeight: CARDINAL _ 15, entryVSpace: CARDINAL _ 5, gapSize: CARDINAL _ 5, container: ViewerClasses.Viewer ]; ToMiddle: PROC [info: Layout]; ToNext: PROC [info: Layout, bigGap: BOOL _ FALSE]; HGap: PROC [info: Layout] = INLINE { OPEN info; entryLeft _ entryLeft + gapSize }; VGap: PROC [info: Layout] = INLINE { OPEN info; heightSoFar _ heightSoFar + entryVSpace }; BuildPair: PROC [info: Layout, proc: Buttons.ButtonProc, flag: BOOL, l1, l2: Rope.ROPE, clientData: REF ANY _ NIL, fork: BOOL _ FALSE] RETURNS [label: Labels.Label, button: Buttons.Button]; BuildTriple: PROC [info: Layout, proc: Buttons.ButtonProc, state: [0..2], l0, l1, l2: Rope.ROPE, clientData: REF ANY _ NIL, fork: BOOL _ FALSE] RETURNS [label: Labels.Label, button: Buttons.Button]; DataFieldButton: PROC [arg: ViewerClasses.Viewer, clear: BOOL]; BuildDataFieldPair: PROC [info: Layout, buttonRope: Rope.ROPE, buttonProc: Buttons.ButtonProc, clientData: REF ANY _ NIL, lines: CARDINAL _ 2] RETURNS [button: Buttons.Button, arg: ViewerClasses.Viewer]; GetDataNode: PROC [arg: ViewerClasses.Viewer] RETURNS [TextNode.RefTextNode]; GetDataLooks: PROC [arg: ViewerClasses.Viewer, name: Rope.ROPE] RETURNS [looks: TextLooks.Looks]; BadNumber: SIGNAL; GetInt: PROC [arg: ViewerClasses.Viewer] RETURNS [num: INT]; SetInt: PROC [arg: ViewerClasses.Viewer, num: INT]; ConvertList: PROC [list: LIST OF REF ANY] RETURNS [Rope.ROPE]; BuildButton: PROC [info: Layout, name: Rope.ROPE, proc: Buttons.ButtonProc, clientData: REF ANY _ NIL, fork: BOOL _ FALSE, gapAfter: BOOL _ TRUE, border: BOOL _ FALSE] RETURNS [button: Buttons.Button]; BuildLabel: PROC [info: Layout, name: Rope.ROPE, width: INTEGER _ 0] RETURNS [label: Labels.Label]; HRule: PROC [info: Layout, thickness: CARDINAL _ 1, gapAbove, gapBelow: BOOL _ TRUE]; END. EditToolBuilder.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Edited by Paxton on June 24, 1982 9:53 am Edited by McGregor on September 1, 1982 3:39 pm Doug Wyatt, March 4, 1985 10:13:12 am PST change entryLeft to middle of container places at current entryLeft & heightSoFar and then updates those parameters put a horizontal rule the full width of the container if gapAbove is true, then move down by entryVSpace before placing the rule if gapBelow if true, then move down by entryVSpace after placing the rule Κ“˜codešœ™Kšœ Οmœ1™K˜š  œžœžœ˜KKšœ žœžœžœžœžœ žœžœ žœžœ˜[Kšžœ˜!K˜—š  œžœžœ žœ˜DKšžœ˜K˜—š  œžœžœžœžœ˜UKšœ5™5KšœJ™JKšœI™IK˜—Kšžœ˜—…—z)