Appendix F Common Lisp Streams
with-output-to-postscript-stream [Macro]
&key
(:display-device clim::*postscript-device*) :header-comments :multi-page)&body
body
icons-of-high-tech.ps
.(defun print-icons-of-high-tech-to-file () (with-open-file (file-stream "icons-of-high-tech.ps" :direction :output) (clim:with-output-to-postscript-stream (stream file-stream) (let* ((x1 150) (y 250) (size 100) (x2 (+ x1 size)) (radius (/ size2)) (base-y (+ y (/ (* size (sqrt 3)) 2)))) (clim:draw-rectangle* stream (- x1 size) (- y size) x1 y) (clim:draw-circle* stream (+ x2 radius) (- y radius) radius) (clim:draw-triangle* stream (+ x1 radius) y x1 base-y x2 base-y)))))The second example uses multi-page mode to draw a graph of the superclasses of the class window-stream by writing a PostScript program to the file some-pathname.
(with-open-file (file some-pathname :direction :output) (clim:with-output-to-postscript-stream (stream file :multi-page t) (clim:format-graph-from-root (clos:find-class 'clim::window-stream) #'(lambda (object s) (write-string (string (clos:class-name object)) s)) #'clos:class-direct-superclasses :stream stream)))
Generated with Harlequin WebMaker