anchor.diff:                           :drawer (lambda ,arglist ,@body))))
   
   (define-application-frame drawing-tests ()
  -  ()
  +  ((recording-p :initform t))
     (:panes
      (backend-output :application-pane 
   		   :width *width*
  
positive.code:              :items (sort (loop for x being the hash-values of *drawing-tests*
                                  collect x) #'string< :key #'drawing-test-name)
               :value-changed-callback #'render-images)
     (print-ps :push-button
  	     :label "Print All (/tmp/*.ps)"
  	     :activate-callback #'(lambda (x) (print-all-postscript-tests)))
     (print-png :push-button
  	      :label "Print All (/tmp/*.png)"
  	      :activate-callback #'(lambda (x) (print-all-raster-image-tests :png))))
  
negative.code:     (handler-case
  	(clim:with-drawing-options (backend-output :clipping-region
  						   (clim:make-rectangle* 0 0 *width* *height*))
  	  (clim:draw-rectangle* backend-output 0 0 *width* *height* :filled t
  				:ink clim:+grey90+)
  	  (funcall (drawing-test-drawer item) backend-output))
        (condition (condition)
  	(format t "Backend:~a~%" condition)))
      ;;(handler-case
  	(with-slots (recording-p) clim:*application-frame*
  	  (let ((pattern (mcclim-raster-image:with-output-to-rgb-pattern
  			     (stream :width *width* :height *height* :border-width *border-width*
  				     :recording-p recording-p)
  			   (clim:draw-rectangle* stream 0 0 *width* *height* :filled t
  						 :ink clim:+grey90+)
  			   (funcall (drawing-test-drawer item) stream))))
  	    (draw-pattern* render-output pattern 0 0)
  	    (medium-finish-output (sheet-medium render-output))))
        ;;(condition (condition)
  	;;(format t "Render:~a~%" condition)))))
  	))
  (defun drawing-test-postscript (test &optional filename)
    (let* ((test (if (stringp test) (gethash test *drawing-tests*) test))
           (test-name (drawing-test-name test))
  