On 11/2/07, Andy Chambers <[EMAIL PROTECTED]> wrote:

> (defmacro mk-expander ((&rest initargs) &rest kids)
>   `(make-instance 'expander ,@initargs
>     :fm-parent *parent*
>     :expansion (c? (the-kids ,@kids))
>     :expanded (c-in nil)
>     :kids (c? (the-kids
>               (mk-button-ex ((^label) (setf
>                                        (expanded (upper self expander))
>                                        (not (expanded (upper self 
> expander))))))
>               (when (^expanded)
>                 (^expansion))))))

(defmacro mk-expander ((&rest initargs) &rest kids)
  `(make-instance 'expander ,@initargs
    :fm-parent *parent*
    :expansion (c? (lambda ()
                     (the-kids ,@kids)))
    :expanded (c-in nil)
    :kids (c? (the-kids
              (mk-button-ex ((^label) (setf
                                       (expanded (upper self expander))
                                       (not (expanded (upper self expander))))))
              (when (^expanded)
                (funcall (^expansion)))))))

wrapping the expansion rule inside a lambda works.  This creates a new
set of widgets each time the rule runs though.  Is there some way of
doing it without that?
_______________________________________________
cells-devel site list
[email protected]
http://common-lisp.net/mailman/listinfo/cells-devel

Reply via email to