On Jul 2, 2005, at 10:46 PM, Raymond Toy wrote:
I've been playing around a bit over the last few days and have kind of hooked up maxima with mcclim, basically cargo-culting the listener app. The basic interaction works, and the computed expressions are displayed correctly. (Some random screenshots can be found at http://common-lisp.net/~rtoy. In particular, maxima-repl-boxed.png shows what the subexpressions should be.)
In this case, the output is computed as a string by maxima, and that is printed to the mcclim's *standard-output*.
However, to be able to present subexpressions (eventually), I changed the way output is done. I use maxima's capabilities of drawing to a terminal with cursor positioning and thus set the stream-cursor-position as needed.
This also works. Until I reach the bottom of the interactor pane. The pane never scrolls down and the prompt keeps getting overwritten.
I'm obviously missing something, but I don't know what. Anyone have some hints for this clim newbie?
This is annoying. If you're outputing a stream of expressions, like in a listener, you could try a call to fresh-line after each one. Otherwise You can try code like:
(defclass redisplay-frame-mixin () ())
(defmethod redisplay-frame-pane :after ((frame redisplay-frame-mixin) (pane application-pane) &key force-p) (declare (ignore force-p)) (change-space-requirements pane :height (bounding-rectangle-height (stream-output-history pane))))
Tim