DIRECTORY ViewerClasses USING [Viewer], Buttons USING [Button, ButtonProc], Labels USING [Label], Rope USING [ROPE], TextNode USING [RefTextNode], TextLooks USING [Looks]; EditToolBuilder: CEDAR DEFINITIONS = { 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: BOOLEAN _ 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: BOOLEAN, l1, l2: Rope.ROPE, clientData: REF ANY _ NIL, fork: BOOLEAN _ 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: BOOLEAN _ FALSE] RETURNS [label: Labels.Label, button: Buttons.Button]; DataFieldButton: PROC [arg: ViewerClasses.Viewer, clear: BOOLEAN]; 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: BOOLEAN _ TRUE]; }... Þ-- EditToolBuilder.mesa -- Edited by Paxton on June 24, 1982 9:53 am -- Edited by McGregor on September 1, 1982 3:39 pm -- general stuff -- 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 Êu˜JšÏc™Jš,™,Jš2™2J˜šÏk ˜ Jšœžœ ˜Jšœžœ˜#Jšœžœ ˜Jšœžœžœ˜Jšœ žœ˜Jšœ žœ ˜J˜—Jšœžœ˜&J˜Jš™J˜Jšœžœžœ ˜šœ žœžœ˜Jšœ žœ˜Jšœ žœ˜Jšœ žœ˜Jšœ žœ˜Jšœ žœ˜Jšœ žœ˜Jšœ žœ˜J˜"J˜—šÏnœžœ˜Jš*™*J˜—JšŸœžœžœžœ˜5J˜šŸœžœžœžœ˜/J˜"J˜—šŸœžœžœžœ˜/J˜*J˜—šŸ œžœ0žœžœ˜ZJš œ žœžœžœžœžœ˜1Jšžœ/˜6JšN™NJ˜—šŸ œžœJžœ˜`Jš œ žœžœžœžœžœ˜1Jšžœ/˜6J˜—JšŸœžœ$žœ˜BJ˜šŸœžœ!žœ!˜^Jš œ žœžœžœ žœ˜/Jšžœ5˜J˜šŸ œžœžœ˜KJšœ žœžœžœžœžœ žœžœžœžœžœ˜[Jšžœ˜!J˜—šŸ œžœžœ žœ˜DJšžœ˜J˜—š Ÿœžœžœžœžœ˜XJš8™8JšM™MJšL™LJ˜—J˜—…—Š Ý