CLIM mail archive
Re: Overlapping windows to CLIM application frameworks
Date: Tue, 14 Jul 1992 14:46+0200
From: Stefan Bernemann <email@example.com>
That's exactly what we need, too. Can someone comment on how CLIM 2.0
will deal with this subject? Are those "frame-managers" the solution
that clim programmers are to use/implement (without "multi-proceccing")?
CLIM 2 probably won't do any better than CLIM 1 on this point.
Can you provide some (example) code, as the documentation on how to
implement my own top-level loop seems to be too straight for my simple
The lisp listener from the examples also doesn't enlighten me too much
for this problem.
Again, is there a chance that the functionality of this code will be
part of clim 2.0?
Here is some code to get you started that should work in clim 1.1. The basic
idea is that you have one frame, called the "master", that works like
normal clim application frames and that is used to provide the top-level
loop for the whole "desktop."
All of the rest of the frames have no top-level loop, they merely
provide some real estate that you can draw upon. I call these the
"slave" frames. If they share the same input buffer as the master,
then presentations drawn on slave frames become "applicable" to the
input context provided by the master. (I don't know if this behavior
is a documented feature of clim, but I have found it to be true.)
(frame &optional (master *application-frame*))
(let ((b (clim:stream-input-buffer (clim:frame-top-level-window master)))
(top-level-window (clim:frame-top-level-window frame)))
(labels ((set-input-buffer (window buffer)
(setf (clim:stream-input-buffer window) buffer)
(dolist (w (clim:window-children window))
(set-input-buffer w buffer))))
(set-input-buffer top-level-window b)
(clim:redisplay-frame-panes frame :force-p t))))
Main Index |