Hi,
As some of you know, the tablature application suffers from scaling
problems in incremental redisplay because of the precision of the
algorithm. While the spatial-trees stuff might solve this in the end,
at the moment we are working around it by a conservative
incremental-redisplay.
In the interest of minimizing divergence from CVS McCLIM, we would
like to have that incremental-redisplay as a different method,
specialized on an application class. However, our first try (define a
new output record type) was a failure, as incremental-redisplay itself
is actually called on a stream, not on an output record; we could
specialize redisplay, but then we would have to duplicate a whole load
of stuff.
We do know that the stream we want to call our own method for
incremental-redisplay on is one obtained by OPEN-WINDOW-STREAM, and we
control the place where this is called. Our current code, then, is
(change-class (open-window-stream ...) 'tabcode-window-stream)
with
(defclass tabcode-window-stream (climi::window-stream) ())
This, however, uses a scary clim-internals internal symbol. That's
fine up to a point, but it would be better from our point of view if
there were a way of doing this in a documented way; is there a
spec-blessed way of having a custom incremental-redisplay method
called? Alternatively, can climi::window-stream be documented and
exported? Any other ideas?
Cheers,
Christophe