[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