Re: Calling specific method

"Tim Bradshaw (as tfb at cley dot com)" <[email protected]> Sat, 18 Apr 2026 12:16:00 +0100
Newsgroups gmane.lisp.lispworks.general
Message-ID <[email protected]>
The version I posted is broken, I have a better one but I'm away till Tue: let me know if you want it.

> On 18 Apr 2026, at 09:48, Erik Ronström (as erik dot ronstrom at doremir dot com) <[email protected]> wrote:
> 
> Oh, that's a nice approach! Thanks a lot!
> 
> Erik
> 
>>> On 17 Apr 2026, at 18:12, Tim Bradshaw (as tfb at cley dot com) <[email protected]> wrote:
>> 
>> If you (rather than the system) are calling MPDC then it's likely better to write your own, in terms of a GF called, say, walk-pane-p which will normally return t but will have a method returning nil for your pane.  You can use map-pane-children to do each level.
> 
> This is an attempt at that.  Caveat emptor
> 
> (defgeneric walk-pane-p (pane)
>  ;; Define a method on this for a class you don't want to walk
>  (:method (pane)
>   (declare (ignorable pane))
>   t))
> 
> (defun mpdc (pane f &key visible test reverse leaf-only)
>  (let ((pane-leaf t))
>    (when (walk-pane-p pane)
>      (map-pane-children pane (lambda (c)
>                                (setf pane-leaf nil)
>                                (mpdc c f
>                                      :visible visible :test test :reverse reverse
>                                      :leaf-only leaf-only))
>                         :reverse reverse))
>    (when (and (or (not test) (funcall test pane))
>               (or (not visible) (interface-visible-p pane))
>               (or (not leaf-only) pane-leaf))
>      (funcall f pane)))
> 
> 
> _______________________________________________
> Lisp Hug - the mailing list for LispWorks users
> [email protected]
> http://www.lispworks.com/support/lisp-hug.html

_______________________________________________
Lisp Hug - the mailing list for LispWorks users
[email protected]
http://www.lispworks.com/support/lisp-hug.html