[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: CLOS Classes and Presentation Types
> From: "Fredric M. White" <fwhite@BBN.COM>
> Date: Fri, 15 Jun 90 12:08:47 -0400
>
> I tried your example. One way around the problem is to call
>
> (clos-internals::finalize-inheritance (clos:find-class 'class-z))
>
> after the defclass for class-z. This seems to run fairly fast, (it
> doesn't call the compiler) so it might not be unreasonable to do this
> for every clos:defclass.
>
Thank you for your suggestion. Unfortunately, that doesn't work in the
following case:
(defclass class-x () ())
(defclass class-y (class-x) ())
(clos-internals::finalize-inheritance (find-class 'class-y))
(scl:define-presentation-type class-x (())
:no-deftype t)
(scl:define-presentation-action print-class
(class-x t :gesture :select)
(class)
(print class))
(defclass class-z (class-x) ())
(clos-internals::finalize-inheritance (find-class 'class-z))
(scl:present (make-instance 'class-y)) works fine
(scl:present (make-instance 'class-y)) doesn't work, the presentation action
is not available.