Update of /project/mcclim/cvsroot/mcclim In directory clnet:/tmp/cvs-serv796
Modified Files: mcclim.asd presentation-defs.lisp presentations.lisp Log Message: Moved with-output-as-presentation to presentations.lisp, so it can be available when input-editing.lisp is compiled.
--- /project/mcclim/cvsroot/mcclim/mcclim.asd 2008/01/10 09:38:07 1.74 +++ /project/mcclim/cvsroot/mcclim/mcclim.asd 2008/01/31 12:14:05 1.75 @@ -218,8 +218,8 @@ :depends-on (:clim-basic :goatee-core :clim-postscript) :components ((:file "text-formatting") (:file "defresource") - (:file "input-editing") (:file "presentations") + (:file "input-editing" :depends-on ("presentations")) (:file "pointer-tracking" :depends-on ("input-editing")) (:file "graph-formatting") (:file "frames" :depends-on ("commands" "presentations" "presentation-defs" --- /project/mcclim/cvsroot/mcclim/presentation-defs.lisp 2007/11/19 22:14:05 1.73 +++ /project/mcclim/cvsroot/mcclim/presentation-defs.lisp 2008/01/31 12:14:05 1.74 @@ -392,40 +392,6 @@ (type-key parameters options object type stream view &key &allow-other-keys))
-(defmacro with-output-as-presentation ((stream object type - &rest key-args - &key modifier single-box - (allow-sensitive-inferiors t) - parent - (record-type - ''standard-presentation) - &allow-other-keys) - &body body) - (declare (ignore parent single-box modifier)) - (setq stream (stream-designator-symbol stream '*standard-output*)) - (multiple-value-bind (decls with-body) - (get-body-declarations body) - (with-gensyms (record-arg continuation) - (with-keywords-removed (key-args (:record-type - :allow-sensitive-inferiors)) - `(flet ((,continuation () - ,@decls - ,@with-body)) - (declare (dynamic-extent #'continuation)) - (if (and (output-recording-stream-p ,stream) - *allow-sensitive-inferiors*) - (with-new-output-record - (,stream ,record-type ,record-arg - :object ,object - :type (expand-presentation-type-abbreviation - ,type) - ,@key-args) - (let ((*allow-sensitive-inferiors* - ,allow-sensitive-inferiors)) - (,continuation))) - (,continuation))))))) - - (defun present (object &optional (type (presentation-type-of object)) &key (stream *standard-output*) --- /project/mcclim/cvsroot/mcclim/presentations.lisp 2008/01/31 10:47:08 1.83 +++ /project/mcclim/cvsroot/mcclim/presentations.lisp 2008/01/31 12:14:05 1.84 @@ -52,6 +52,39 @@ (when *print-presentation-verbose* (format stream " ~S" (presentation-object self))))))
+(defmacro with-output-as-presentation ((stream object type + &rest key-args + &key modifier single-box + (allow-sensitive-inferiors t) + parent + (record-type + ''standard-presentation) + &allow-other-keys) + &body body) + (declare (ignore parent single-box modifier)) + (setq stream (stream-designator-symbol stream '*standard-output*)) + (multiple-value-bind (decls with-body) + (get-body-declarations body) + (with-gensyms (record-arg continuation) + (with-keywords-removed (key-args (:record-type + :allow-sensitive-inferiors)) + `(flet ((,continuation () + ,@decls + ,@with-body)) + (declare (dynamic-extent #'continuation)) + (if (and (output-recording-stream-p ,stream) + *allow-sensitive-inferiors*) + (with-new-output-record + (,stream ,record-type ,record-arg + :object ,object + :type (expand-presentation-type-abbreviation + ,type) + ,@key-args) + (let ((*allow-sensitive-inferiors* + ,allow-sensitive-inferiors)) + (,continuation))) + (,continuation))))))) + (defgeneric ptype-specializer (type) (:documentation "The specializer to use for this type in a presentation method lambda list"))