<> <> <> <> <> 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.