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