CLIM mail archive


Question concerning methods

Dear CLIMmers,

I'm currently building an application interface with CLIM (1.0 & 1.1 on Lucid
and Allegro). One way to detect whether the execution of some code affects the
representation of interface objects is to provide :after-methods for those
application functions which might affect the interface state. So, it is not
necessary to change the application code itself. I don't know if I made this
clear, so an example would be:

in the application code:

  (defmethod create-new-application-object (arg1 arg2)

in the interface code:

  (defmethod create-new-application-object :after (a1 a2)
    (redisplay-pane ...))

My problem is now, that the interface code should be independent from the
application code (and, of course, vice versa), that is, I don't want to "copy"
the lambda-list of the application code into the after method of the interface
myself. What I have in mind is a macro which dynamically defines the after
method and gets the lambda-list from the generic function:

  (define-after-method-for-generic-function 'create-new-application-object

Now, I haven't found a legal way to get the lambda-list of a generic
function. In Allegro4.1, it is in the slot "CLOS::PRETTY-ARGLIST", in
Lucid, it is in the slot "CLOS::LAMBDA-LIST" of the generic function

My question is whether anybody has found a legal (Ansi-Draft-Conforming...)
way to get the lambda-list of a generic function object.

Any hints are welcome,

Oliver Christ, Student of Computer Science at the
University of Stuttgart, Germany


Main Index | Thread Index