(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "INTERLISP")
(filecreated " 4-Oct-88 10:13:44" {ivy}<hogg>lisp>plotboxpatch.\;1 2342   )


; Copyright (c) 1988 by Xerox Corporation.  All rights reserved.

(prettycomprint plotboxpatchcoms)

(rpaqq plotboxpatchcoms ((fns boxregion drawplot)))
(defineq

(boxregion
  (lambda (region stream noleft noright notop nobottom)      (* \; "Edited  4-Oct-88 10:04 by thh:")

    (* |;;| "Draw a box around a region in STREAM, omitting specified sides")

    (prog ((rleft (|fetch| left |of| region))
           (rbottom (|fetch| bottom |of| region))
           (rright (|fetch| right |of| region))
           (rtop (|fetch| top |of| region))
           (linewidth (dspscale nil stream)))
          (or nobottom (drawline rleft rbottom rright rbottom linewidth 'replace stream))
          (or noright (drawline rright rbottom rright rtop linewidth 'replace stream))
          (or notop (drawline rright rtop rleft rtop linewidth 'replace stream))
          (or noleft (drawline rleft rtop rleft rbottom linewidth 'replace stream)))))

(drawplot
  (lambda (plot currentstream streamviewport streamregion)   (* \; "Edited  4-Oct-88 10:06 by thh:")

    (* |;;| "Draws a plot on CURRENTSTREAM.  STREAMREGION is the region the PLOT will occupy.  Does not blank the STREAMREGION before drawing")

    (cond
       ((not (|type?| plot plot))
        (help "Not a PLOT " plot)))                          (* \; 
                              "Will not check, for the moment, that the streamregion is large enough")
    (boxregion (|fetch| streamsubregion |of| streamviewport)
           currentstream
           (plotprop plot 'noleft)
           (plotprop plot 'noright)
           (plotprop plot 'notop)
           (plotprop plot 'nobottom))
    (|for| margin |in| '(bottom left top right) |do| (drawmargin margin currentstream streamviewport
                                                            streamregion plot))
    (|for| object |in| (|fetch| plotobjects |of| plot) |do| (drawplotobject object streamviewport 
                                                                   plot))))
)
(putprops plotboxpatch copyright ("Xerox Corporation" 1988))
(declare\: dontcopy
  (filemap (nil (298 2258 (boxregion 308 . 1126) (drawplot 1128 . 2256)))))
stop