On 2/14/07, Christophe Rhodes csr21@cantab.net wrote:
A question came up on #lisp yesterday: essentially, it asked how to dynamically change the contents of a pane, in a similar way to changing layouts of a frame.
Apologies if I'm sending this twice, as gmail freaked out the first time around.
In the method browser example, I use sheet-adopt-child for this. (setf sheet-children) isn't in the spec, but seems like it should be the natural way to change all of the children. McCLIM has such a function, but it is not useful to user code, because (at least for the box layout panes) part of the magic is attached to sheet-adopt-child such that even explicitly following (push new-child (sheet-children a-box-or-rack-pane)) with (reorder-sheets ..) doesn't make the new child appear, despite now appearing in the list returned by sheet-children.
Incidentally, your approach of using reinitialize-instance is an idiom I was not familiar with.