[mcclim-devel] accept-values-pane and views
Paul Werkowski
pw at snoopy.mv.com
Tue Apr 11 13:46:17 UTC 2006
I have a mostly portable implementation of ACCEPT-VALUES-PANE
running in Lispworks CLIM. For those that don't know,
the accept-values-pane is a gadget based non modal dialog.
A display function for an accept-values-pane might contain
code like this:
(with-slots (some-value) pane
(setq some-value
(accept '(member A B C)
:stream pane
:default some-value
:view '(radio-box-view :orientation :vertical)
:prompt "Pick one")))
ACCEPT is supposed to do apply MAKE-INSTANCE to the
CAR and CDR of the :view parameter and the stuff in
the cdr is passed on to the gadget. In this example
the presentation method ACCEPT-PRESENT-DEFAULT calls
(apply 'MAKE-PANE 'RADIO-BOX-PANE <stuff> VIEW-OPTIONS).
But, there is no defined way to get the supplied values.
Lispworks CLIM has an internal function named
CLIM-INTERNALS::VIEW-GADGET-INITARGS that retrieves them.
It seems that the VIEW class has only two functions.
The first is to be a class so generic functions can
specialize on subclasses of it, and the second is to
pass gadget options via the :view keyword to ACCEPT.
This functionality is pretty important for usable
gadget based dialogs so I hope the McCLIM architects
can consider how this can be added to the code base.
Paul
More information about the mcclim-devel
mailing list