CLIM mail archive

[Prev][Next][Index][Thread]

postscript output with scaling and draw-text* in CLIM 1.1



Dear Lois,

I'm re-sending my current version of a postscript grapher for 
class hierarchies. I have dropped the with-scaling macro and 
gone to the with-drawing-options equivalent since I need to 
explicitly pass the transform to the draw-text* function as well.
Unfortunately the entire combination results in no improvement
over the original. It appears that draw-text* generic-function
ignores the passed in transform after checking that it is indeed
a transform. Text is identical in size and placement no matter
what I supply for a size. The tree links only match up with the
textual node positions when the size = 1.0.

I'm back to using CLIM 1.1 because with-output-to-postscript-stream
is not yet supported in CLIM 2.0.alpha. I'm using the Franz version
on a SPARCstation 2. Surely someone out there has done this before!
What am I doing wrong?

Here is the code:

(defmethod print-scaled-subclass-tree ((name symbol) &optional (size 1.0))
  (let* ((class (find-class name))
	 (filename (concatenate 'string (string (class-name class))
				"-subclass-tree.ps")))
    (with-open-file (file filename :direction :output :if-exists :supersede)
      (clim:with-output-to-postscript-stream (stream file :multi-page t)
	(let ((transform (clim:make-scaling-transformation size size)))
	  (clim:with-drawing-options (stream :transformation transform)
	    (clim:format-graph-from-root 
	     class
	     #'(lambda (object s)
		 (multiple-value-call
		     #'clim:draw-text* 
		   s
		   (string (class-name object))
		   (clim:stream-cursor-position* s)
		   :align-y :center
		   :transformation transform))
	     #'clos:class-direct-subclasses :stream stream))))
      )))
;;;(excl:run-shell-command (concatenate 'string "lpr " filename)))))
;;; if you actually want to print out the results, uncomment the above
;;; line and delete the preceding three close-parens. I've been simply
;;; using pageview to examine the results of the tests, and only print-
;;; hardcopy when necesary for documentation.

 --------
Cordially,
 Gregory M. Whittaker,		 The MITRE Corporation
				 Center for Advanced Aviation 
				    System Development
Internet: greg@mitre.org	 7525 Colshire Drive 
   Phone: (703) 883-5549	 McLean Virginia 22102-3481
     FAX: (703) 883-1226	 Mail Stop: W215      



0,,

Follow-Ups:

Main Index | Thread Index