[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.